
int __gmpf_set_str(mpf_ptr x,char *str,int base)

{
  bool bVar1;
  ushort uVar2;
  byte *pbVar3;
  int iVar4;
  int *piVar5;
  mp_limb_t *pmVar6;
  int iVar7;
  mp_limb_t *pmVar8;
  mp_limb_t *pmVar9;
  byte *pbVar10;
  undefined4 uVar11;
  byte *pbVar12;
  byte bVar14;
  byte *pbVar13;
  mp_limb_t mVar15;
  mp_limb_t *pmVar16;
  mp_limb_t *pmVar17;
  mp_limb_t *in_a3;
  undefined1 *puVar18;
  int iVar19;
  byte *pbVar20;
  undefined *puVar21;
  uint uVar22;
  int iVar23;
  byte *pbVar24;
  undefined *puVar25;
  undefined1 *puVar26;
  undefined1 *puVar27;
  code *pcVar28;
  undefined1 auStack_88 [8];
  undefined1 auStack_80 [16];
  byte abStack_70 [8];
  int iStack_54;
  mp_limb_t *pmStack_50;
  mp_limb_t *pmStack_4c;
  byte *pbStack_44;
  mp_limb_t *pmStack_3c;
  tmp_reentrant_t *__tmp_marker;
  int iStack_2c;
  
  puVar25 = PTR___stack_chk_guard_0009d540;
  puVar27 = auStack_80;
  puVar26 = auStack_80;
  iStack_2c = *(int *)PTR___stack_chk_guard_0009d540;
  pmVar17 = (mp_limb_t *)base;
  pbVar3 = (byte *)(*(code *)PTR_nl_langinfo_0009d21c)(0x10000);
  iVar4 = (*(code *)PTR_strlen_0009d360)(pbVar3);
  uVar22 = (uint)(byte)*str;
  piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0009d0ac)();
  iVar19 = *piVar5;
  uVar2 = *(ushort *)(iVar19 + uVar22 * 2);
  while ((uVar2 & 0x20) != 0) {
    str = (char *)((int)str + 1);
    uVar22 = (uint)(byte)*str;
    uVar2 = *(ushort *)(iVar19 + uVar22 * 2);
  }
  bVar1 = uVar22 == 0x2d;
  if (bVar1) {
    uVar22 = (uint)*(byte *)((int)str + 1);
    str = (char *)((int)str + 1);
  }
  if (base != 0) {
    if (base < 0) {
      base = -base;
      iVar23 = 10;
      if (base < 0x25) goto LAB_000183f8;
    }
    else {
      iVar23 = base;
      if (base < 0x25) goto LAB_000183f8;
    }
    puVar18 = auStack_80;
    if (base < 0x3f) {
      puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;
      if (base <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;
      goto LAB_00018368;
    }
LAB_00018710:
    puVar27 = puVar18;
    iVar7 = -1;
    goto LAB_00018714;
  }
  base = (int)&DAT_0000000a;
  iVar23 = 10;
LAB_000183f8:
  puVar21 = PTR___gmp_digit_value_tab_0009d388;
  if (base <= (int)(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]) {
LAB_00018310:
    pmVar17 = (mp_limb_t *)str;
    if (iVar4 != 0) {
      puVar18 = auStack_80;
      if (*str == *pbVar3) {
        pmVar17 = (mp_limb_t *)((int)str + iVar4);
        pmVar6 = (mp_limb_t *)str;
        pbVar12 = pbVar3;
        do {
          pbVar12 = pbVar12 + 1;
          pmVar6 = (mp_limb_t *)((int)pmVar6 + 1);
          if (pmVar17 == pmVar6) goto LAB_0001834c;
          puVar18 = auStack_80;
        } while (*(byte *)pmVar6 == *pbVar12);
      }
      goto LAB_00018710;
    }
LAB_0001834c:
    iVar7 = -1;
    if (base <= (int)(uint)(byte)puVar21[*(byte *)pmVar17]) goto LAB_00018714;
  }
LAB_00018368:
  pmVar6 = (mp_limb_t *)(*(code *)PTR_strlen_0009d360)(str);
  pmVar17 = (mp_limb_t *)((int)pmVar6 + -1);
  if (pmVar17 == (mp_limb_t *)0x0) {
    puVar26 = auStack_88;
    __tmp_marker = (tmp_reentrant_t *)0x0;
    pbVar12 = (byte *)0x0;
    pbVar10 = abStack_70;
    pmVar17 = (mp_limb_t *)&DAT_00000001;
LAB_00018460:
    pmVar6 = (mp_limb_t *)0x0;
    pbVar20 = pbVar10;
    pbVar24 = (byte *)0x0;
    do {
      while( true ) {
        bVar14 = *str;
        puVar27 = puVar26;
        if ((*(ushort *)(iVar19 + (uint)bVar14 * 2) & 0x20) == 0) break;
LAB_00018474:
        pmVar6 = (mp_limb_t *)((int)pmVar6 + 1);
        str = (char *)((int)str + 1);
        if (pmVar17 <= pmVar6) goto LAB_00018500;
      }
      if (iVar4 != 0) {
        if (*pbVar3 == bVar14) {
          pmVar8 = (mp_limb_t *)str;
          pbVar13 = pbVar3;
          do {
            pbVar13 = pbVar13 + 1;
            pmVar8 = (mp_limb_t *)((int)pmVar8 + 1);
            if (pmVar8 == (mp_limb_t *)((int)str + iVar4)) goto LAB_000184e0;
          } while (*(byte *)pmVar8 == *pbVar13);
        }
        if ((int)(uint)(byte)puVar21[bVar14] < base) {
          *pbVar20 = puVar21[bVar14];
          pbVar20 = pbVar20 + 1;
          goto LAB_00018474;
        }
        goto LAB_000186f8;
      }
LAB_000184e0:
      if (pbVar24 != (byte *)0x0) goto LAB_000186f8;
      pmVar6 = (mp_limb_t *)((int)pmVar6 + iVar4);
      str = (char *)((int)str + iVar4);
      pbVar24 = pbVar20;
    } while (pmVar6 < pmVar17);
LAB_00018500:
    pmVar17 = (mp_limb_t *)(pbVar20 + -(int)pbVar10);
    iVar4 = x->_mp_prec;
    uVar22 = (((uint)((int)(ZEXT48(pmVar17) *
                            (ulonglong)*(uint *)(PTR___gmpn_bases_0009d338 + base * 0x14 + 8) >>
                           0x20) << 3) >> 5) + 2) * 4;
    str = (char *)(iVar4 + 1);
    if (uVar22 < 0x7f01) goto LAB_00018544;
    pmStack_3c = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);
  }
  else {
    bVar14 = *(byte *)((int)str + (int)pmVar17);
    if (bVar14 == 0x40) {
      pbVar12 = (byte *)((int)str + (int)pmVar6);
      pmVar8 = pmVar6;
    }
    else {
      pmVar8 = (mp_limb_t *)((int)pmVar6 + -2);
      pmVar16 = pmVar17;
      if (base < 0xb) {
        do {
          pmVar16 = pmVar17;
          pmVar17 = (mp_limb_t *)((int)pmVar16 + -1);
          if ((bVar14 & 0xdf) == 0x45) {
            pbVar12 = (byte *)((int)str + (int)pmVar16 + 1);
            pmVar8 = (mp_limb_t *)((int)pmVar16 + 1);
            pmVar17 = pmVar16;
            goto LAB_0001843c;
          }
          if (pmVar17 == (mp_limb_t *)0x0) goto LAB_00018434;
          bVar14 = *(byte *)((int)str + (int)pmVar17);
        } while (bVar14 != 0x40);
LAB_0001878c:
        pbVar12 = (byte *)((int)str + (int)pmVar16);
        pmVar8 = pmVar16;
      }
      else {
        while (pmVar17 = pmVar8, pmVar17 != (mp_limb_t *)0x0) {
          if (*(byte *)((int)str + (int)pmVar17) == 0x40) goto LAB_0001878c;
          pmVar16 = pmVar17;
          pmVar8 = (mp_limb_t *)((int)pmVar17 + -1);
        }
LAB_00018434:
        pbVar12 = (byte *)0x0;
        pmVar8 = (mp_limb_t *)((int)pmVar6 + 1);
        pmVar17 = pmVar6;
      }
    }
LAB_0001843c:
    __tmp_marker = (tmp_reentrant_t *)0x0;
    if ((mp_limb_t *)0x7f00 < pmVar8) {
      pbVar10 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);
      iVar19 = *piVar5;
      goto LAB_00018460;
    }
    iVar7 = -((uint)((int)pmVar8 + 7) & 0xfffffff8);
    puVar26 = auStack_80 + iVar7;
    puVar27 = auStack_80 + iVar7;
    pbVar10 = &stack0xffffff98 + iVar7;
    if (pmVar17 != (mp_limb_t *)0x0) goto LAB_00018460;
    pbVar24 = (byte *)0x0;
    uVar22 = 8;
    iVar4 = x->_mp_prec;
    str = (char *)(iVar4 + 1);
    pbVar20 = pbVar10;
LAB_00018544:
    iVar19 = -(uVar22 + 7 & 0xfffffff8);
    pmStack_3c = (mp_limb_t *)(puVar27 + iVar19 + 0x18);
    puVar27 = puVar27 + iVar19;
  }
  in_a3 = (mp_limb_t *)base;
  pmVar6 = (mp_limb_t *)(*(code *)PTR___gmpn_set_str_0009d5b4)(pmStack_3c,pbVar10);
  if (pmVar6 == (mp_limb_t *)0x0) {
    x->_mp_size = 0;
    x->_mp_exp = 0;
    if (__tmp_marker != (tmp_reentrant_t *)0x0) {
      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();
      iVar7 = 0;
      goto LAB_00018714;
    }
LAB_000187ac:
    iVar7 = 0;
    goto LAB_00018714;
  }
  iStack_54 = (int)pmVar6 - (int)str;
  if ((int)str < (int)pmVar6) {
    pmStack_3c = pmStack_3c + iStack_54;
    pmStack_4c = (mp_limb_t *)str;
    if (pbVar12 == (byte *)0x0) goto LAB_000187d0;
LAB_000185a0:
    bVar14 = *pbVar12;
    in_a3 = (mp_limb_t *)(uint)(bVar14 == 0x2d);
    pbVar12 = pbVar12 + (bVar14 == 0x2b || bVar14 == 0x2d);
    pmVar8 = (mp_limb_t *)(uint)(byte)puVar21[*pbVar12];
    if (iVar23 <= (int)pmVar8) {
LAB_000186f8:
      iVar7 = -1;
      if (__tmp_marker == (tmp_reentrant_t *)0x0) goto LAB_00018714;
      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();
      puVar18 = puVar27;
      goto LAB_00018710;
    }
    pmVar17 = (mp_limb_t *)(uint)(byte)puVar21[pbVar12[1]];
    if ((int)pmVar17 < iVar23) {
      pbVar12 = pbVar12 + 3;
      do {
        pmVar8 = (mp_limb_t *)((int)pmVar8 * iVar23 + (int)pmVar17);
        pmVar17 = (mp_limb_t *)(uint)(byte)puVar21[pbVar12[-1]];
        pbVar12 = pbVar12 + 1;
      } while ((int)pmVar17 < iVar23);
    }
    pbStack_44 = (byte *)((int)in_a3 + (-(int)in_a3 ^ (uint)pmVar8));
    if (pbVar24 != (byte *)0x0) {
LAB_00018628:
      pbStack_44 = pbStack_44 + -((int)pbVar20 - (int)pbVar24);
    }
    if (pbStack_44 == (byte *)0x0) goto LAB_000187e0;
    iVar4 = iVar4 + 2;
    uVar22 = iVar4 * 8;
    if (uVar22 < 0x7f01) {
      pmStack_50 = (mp_limb_t *)(puVar27 + iVar4 * -8 + 0x18);
      pmVar17 = (mp_limb_t *)(puVar27 + iVar4 * -0x10 + 0x18);
      puVar27 = puVar27 + iVar4 * -0x10;
    }
    else {
      pmStack_50 = (mp_limb_t *)
                   (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22);
      pmVar17 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22)
      ;
    }
    puVar21 = PTR___gmpn_clz_tab_0009d18c;
    pbVar3 = pbStack_44;
    if ((int)pbStack_44 < 0) {
      pbVar3 = (byte *)-(int)pbStack_44;
    }
    *pmStack_50 = base;
    if ((int)pbVar3 < 0x10000) {
      if (0xff < (int)pbVar3) {
        iVar4 = FUN_00018870();
        return iVar4;
      }
      uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;
      if (-1 < (int)uVar22) goto LAB_00018890;
      if ((int)str < 1) {
        iVar23 = 0;
        pmVar6 = (mp_limb_t *)&DAT_00000001;
        iVar19 = 0;
        pmVar17 = pmStack_50;
        goto LAB_00018988;
      }
      pmVar6 = (mp_limb_t *)&DAT_00000001;
      iVar23 = 0;
      *pmStack_50 = base;
    }
    else {
      iVar19 = 0x19;
      if ((int)pbVar3 < 0x1000000) {
        iVar19 = 0x11;
      }
      iVar23 = 0x10;
      if ((int)pbVar3 >= 0x1000000) {
        iVar23 = 8;
      }
      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar19] - iVar23) + 0x1e;
LAB_00018890:
      iVar23 = 0;
      pmVar6 = (mp_limb_t *)&DAT_00000001;
      iVar19 = 0;
      pmVar8 = pmStack_50;
      while( true ) {
        pmVar16 = pmVar8;
        (*(code *)PTR___gmpn_sqr_0009d394)(pmVar17,pmVar16 + iVar19,pmVar6);
        iVar23 = iVar23 * 2;
        pmVar6 = (mp_limb_t *)((int)pmVar6 * 2 - (uint)(pmVar17[(int)pmVar6 * 2 + 0x3fffffff] == 0))
        ;
        if ((int)str < (int)pmVar6) {
          iVar19 = (int)pmVar6 - (int)str;
          iVar23 = iVar23 + iVar19;
          pmVar6 = (mp_limb_t *)str;
        }
        else {
          iVar19 = 0;
        }
        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {
          mVar15 = (*(code *)PTR___gmpn_mul_1_0009d0a4)(pmVar17,pmVar17 + iVar19,pmVar6,base);
          pmVar8 = pmVar17 + (int)pmVar6;
          pmVar6 = (mp_limb_t *)((int)pmVar6 + (uint)(mVar15 != 0));
          *pmVar8 = mVar15;
          iVar19 = 0;
        }
        if (uVar22 == 0) break;
        uVar22 = uVar22 - 1;
        pmVar8 = pmVar17;
        pmVar17 = pmVar16;
      }
      if ((int)str < (int)pmVar6) {
LAB_00018988:
        iVar23 = iVar23 + ((int)pmVar6 - (int)str);
        pmVar17 = pmVar17 + ((int)pmVar6 - (int)str);
        pmVar6 = (mp_limb_t *)str;
      }
      pbVar3 = (byte *)((int)pmVar6 + -1);
      if (pmVar6 != (mp_limb_t *)0x0) {
        mVar15 = pmVar17[iVar19];
        if (pbVar3 == (byte *)0x0) {
          pmVar6 = (mp_limb_t *)&DAT_00000001;
          *pmStack_50 = mVar15;
        }
        else {
          pmVar17 = pmVar17 + iVar19 + 1;
          pmVar8 = pmStack_50;
          do {
            *pmVar8 = mVar15;
            pbVar3 = pbVar3 + -1;
            mVar15 = *pmVar17;
            pmVar17 = pmVar17 + 1;
            pmVar8 = pmVar8 + 1;
          } while (pbVar3 != (byte *)0x0);
          pmStack_50[(int)((int)pmVar6 + -1)] = mVar15;
        }
      }
    }
    pmVar8 = (mp_limb_t *)str;
    if ((int)pbStack_44 < 0) {
      if ((int)pmStack_4c < (int)pmVar6) {
        uVar22 = (int)((int)pmVar6 + 1) * 4;
        if (uVar22 < 0x7f01) {
          iVar19 = -(uVar22 + 7 & 0xfffffff8);
          puVar18 = puVar27 + iVar19 + 0x18;
          puVar27 = puVar27 + iVar19;
        }
        else {
          puVar18 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);
        }
        iVar19 = (int)pmVar6 - (int)pmStack_4c;
        pmVar17 = (mp_limb_t *)(*(code *)PTR_memset_0009d2e8)(puVar18,0,iVar19 * 4);
        if (pmStack_4c != (mp_limb_t *)0x0) {
          pbVar3 = (byte *)((int)pmStack_4c + -1);
          pmVar9 = pmVar17 + iVar19;
          mVar15 = *pmStack_3c;
          pmVar16 = pmVar9;
          if (pbVar3 != (byte *)0x0) {
            do {
              pmStack_3c = pmStack_3c + 1;
              *pmVar16 = mVar15;
              pbVar3 = pbVar3 + -1;
              mVar15 = *pmStack_3c;
              pmVar16 = pmVar16 + 1;
            } while (pbVar3 != (byte *)0x0);
            pmVar9 = pmVar9 + (int)((int)pmStack_4c + -1);
          }
          *pmVar9 = mVar15;
        }
        iStack_54 = iStack_54 - iVar19;
        pmStack_4c = pmVar6;
        pmStack_3c = pmVar17;
      }
      uVar22 = pmStack_50[(int)((int)pmVar6 + -1)];
      if (-1 < (int)uVar22) {
        if (uVar22 < 0x10000) {
          iVar19 = 0x20;
          if (0xff < uVar22) {
            iVar19 = 0x18;
          }
          iVar7 = 9;
          if (0xff >= uVar22) {
            iVar7 = 1;
          }
        }
        else {
          iVar19 = 0x10;
          if (0xffffff < uVar22) {
            iVar19 = 8;
          }
          iVar7 = 0x19;
          if (0xffffff >= uVar22) {
            iVar7 = 0x11;
          }
        }
        bVar14 = puVar21[uVar22 >> iVar7];
        (*(code *)PTR___gmpn_lshift_0009d56c)(pmStack_50,pmStack_50,pmVar6,iVar19 - (uint)bVar14);
        mVar15 = (*(code *)PTR___gmpn_lshift_0009d56c)
                           (pmStack_3c,pmStack_3c,pmStack_4c,iVar19 - (uint)bVar14);
        if (mVar15 != 0) {
          pmStack_3c[(int)pmStack_4c] = mVar15;
          pmStack_4c = (mp_limb_t *)((int)pmStack_4c + 1);
        }
      }
      if ((uint)(iVar4 * 4) < 0x7f01) {
        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);
        pmVar17 = (mp_limb_t *)(puVar27 + iVar4 + 0x18);
        puVar27 = puVar27 + iVar4;
      }
      else {
        pmVar17 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);
      }
      iVar4 = (int)pmStack_4c - (int)pmVar6;
      *(mp_limb_t **)(puVar27 + 0x14) = pmVar6;
      *(mp_limb_t **)(puVar27 + 0x10) = pmStack_50;
      mVar15 = (*(code *)PTR___gmpn_divrem_0009d0e4)(pmVar17,(int)str - iVar4);
      pbVar3 = (byte *)((iStack_54 - iVar23) + iVar4 + mVar15);
      if (mVar15 != 0) {
        pmVar6 = pmVar17 + (int)str;
        pmVar17 = pmVar17 + 1;
        *pmVar6 = mVar15;
      }
    }
    else {
      pbVar3 = (byte *)((int)pmVar6 + (int)pmStack_4c);
      uVar22 = (int)pbVar3 * 4;
      if (uVar22 < 0x7f01) {
        iVar4 = -(uVar22 + 7 & 0xfffffff8);
        pmVar17 = (mp_limb_t *)(puVar27 + iVar4 + 0x18);
        puVar27 = puVar27 + iVar4;
      }
      else {
        pmVar17 = (mp_limb_t *)
                  (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22);
      }
      if ((int)pmStack_4c < (int)pmVar6) {
        *(mp_limb_t **)(puVar27 + 0x10) = pmStack_4c;
        pmStack_4c = pmStack_3c;
        (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar17,pmStack_50);
        pmStack_3c = pmVar6;
      }
      else {
        *(mp_limb_t **)(puVar27 + 0x10) = pmVar6;
        (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar17,pmStack_3c);
        pmStack_3c = pmStack_4c;
        pmStack_4c = pmStack_50;
      }
      pmVar8 = (mp_limb_t *)(pbVar3 + -(uint)(pmVar17[(int)(pbVar3 + -1)] == 0));
      pbVar3 = (byte *)((int)pmVar8 + iVar23 + iStack_54);
      if ((int)str < (int)pmVar8) {
        pmVar17 = pmVar17 + ((int)pmVar8 - (int)str);
        pmVar8 = (mp_limb_t *)str;
      }
    }
    if (pmVar8 != (mp_limb_t *)0x0) {
      pbVar12 = (byte *)((int)pmVar8 + -1);
      mVar15 = *pmVar17;
      pmStack_3c = x->_mp_d;
      pmVar6 = pmStack_3c;
      if (pbVar12 != (byte *)0x0) {
        do {
          pmVar17 = pmVar17 + 1;
          *pmVar6 = mVar15;
          pbVar12 = pbVar12 + -1;
          mVar15 = *pmVar17;
          pmVar6 = pmVar6 + 1;
        } while (pbVar12 != (byte *)0x0);
        pmStack_3c = pmStack_3c + (int)((int)pmVar8 + -1);
      }
      *pmStack_3c = mVar15;
    }
    if (bVar1) {
      pmVar8 = (mp_limb_t *)-(int)pmVar8;
    }
    x->_mp_size = (int)pmVar8;
    x->_mp_exp = (mp_exp_t)pbVar3;
    pmVar17 = pmStack_3c;
    in_a3 = pmStack_4c;
    str = (char *)pmVar8;
    if (__tmp_marker == (tmp_reentrant_t *)0x0) {
      iVar7 = 0;
      goto LAB_00018714;
    }
  }
  else {
    iStack_54 = 0;
    pmStack_4c = pmVar6;
    if (pbVar12 != (byte *)0x0) goto LAB_000185a0;
LAB_000187d0:
    if (pbVar24 != (byte *)0x0) {
      pbStack_44 = (byte *)0x0;
      goto LAB_00018628;
    }
LAB_000187e0:
    if (pmStack_4c != (mp_limb_t *)0x0) {
      pbVar3 = (byte *)((int)pmStack_4c + -1);
      pmVar17 = x->_mp_d;
      mVar15 = *pmStack_3c;
      pmVar8 = pmVar17;
      if (pbVar3 != (byte *)0x0) {
        do {
          pmStack_3c = pmStack_3c + 1;
          *pmVar8 = mVar15;
          pbVar3 = pbVar3 + -1;
          mVar15 = *pmStack_3c;
          pmVar8 = pmVar8 + 1;
        } while (pbVar3 != (byte *)0x0);
        pmVar17 = pmVar17 + (int)((int)pmStack_4c + -1);
      }
      *pmVar17 = mVar15;
    }
    if (bVar1) {
      pmStack_4c = (mp_limb_t *)-(int)pmStack_4c;
    }
    x->_mp_size = (int)pmStack_4c;
    x->_mp_exp = (mp_exp_t)pmVar6;
    if (__tmp_marker == (tmp_reentrant_t *)0x0) goto LAB_000187ac;
  }
  (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();
  iVar7 = 0;
LAB_00018714:
  if (iStack_2c == *(int *)puVar25) {
    return iVar7;
  }
  pcVar28 = __gmpf_set_d;
  iVar4 = iStack_2c;
  puVar25 = PTR___stack_chk_fail_0009d4d0;
  (*(code *)PTR___stack_chk_fail_0009d4d0)();
  *(mp_limb_t **)(puVar27 + 8) = pmVar17;
  *(undefined **)(puVar27 + -0x18) = puVar25 + 0x8c170;
  *(code **)(puVar27 + -4) = pcVar28;
  *(char **)(puVar27 + -8) = str;
  *(mp_limb_t **)(puVar27 + 0xc) = in_a3;
  uVar22 = *(uint *)(puVar27 + 8) & 0x7ff00000;
  if (uVar22 == 0x7ff00000) {
    uVar22 = (**(code **)(puVar25 + 0x8468c))();
  }
  else if ((double)CONCAT44(pmVar17,in_a3) != 0.0) {
    if (0.0 <= (double)CONCAT44(pmVar17,in_a3)) {
      *(ulonglong *)(puVar27 + -0x10) = CONCAT44(pmVar17,in_a3);
    }
    else {
      *(uint *)(puVar27 + -0x10) = *(uint *)(puVar27 + 8) ^ 0x80000000;
      *(undefined4 *)(puVar27 + -0xc) = *(undefined4 *)(puVar27 + 0xc);
    }
    pcVar28 = *(code **)(puVar25 + 0x84254);
    uVar11 = 0xfffffffd;
    if (0.0 <= (double)CONCAT44(pmVar17,in_a3)) {
      uVar11 = 3;
    }
    *(undefined4 *)(iVar4 + 4) = uVar11;
    iVar19 = (*pcVar28)(*(undefined4 *)(iVar4 + 0xc));
    *(int *)(iVar4 + 8) = iVar19;
    return iVar19;
  }
  *(undefined4 *)(iVar4 + 4) = 0;
  *(undefined4 *)(iVar4 + 8) = 0;
  return uVar22;
}



uint __gmpf_set_str(int *param_1,byte *param_2,byte *param_3,byte *param_4)

{
  bool bVar1;
  ushort uVar2;
  byte *pbVar3;
  int iVar4;
  int *piVar5;
  byte *pbVar6;
  byte *pbVar7;
  byte *pbVar8;
  byte bVar11;
  byte *pbVar9;
  int iVar10;
  undefined4 uVar12;
  int iVar13;
  byte *pbVar14;
  undefined1 *puVar15;
  byte *pbVar16;
  int iVar17;
  byte *pbVar18;
  byte *pbVar19;
  undefined4 *puVar20;
  undefined *puVar21;
  uint uVar22;
  byte *pbVar23;
  undefined *puVar24;
  undefined1 *puVar25;
  undefined1 *puVar26;
  code *pcVar27;
  undefined1 auStack_88 [8];
  undefined1 auStack_80 [16];
  byte abStack_70 [8];
  int local_54;
  byte *local_50;
  byte *local_4c;
  byte *local_44;
  byte *local_3c;
  int local_30;
  int local_2c;
  
  puVar24 = PTR___stack_chk_guard_0009d540;
  puVar26 = auStack_80;
  puVar25 = auStack_80;
  local_2c = *(int *)PTR___stack_chk_guard_0009d540;
  pbVar14 = param_3;
  pbVar3 = (byte *)(*(code *)PTR_nl_langinfo_0009d21c)(0x10000);
  iVar4 = (*(code *)PTR_strlen_0009d360)(pbVar3);
  uVar22 = (uint)*param_2;
  piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0009d0ac)();
  iVar17 = *piVar5;
  uVar2 = *(ushort *)(iVar17 + uVar22 * 2);
  while ((uVar2 & 0x20) != 0) {
    param_2 = param_2 + 1;
    uVar22 = (uint)*param_2;
    uVar2 = *(ushort *)(iVar17 + uVar22 * 2);
  }
  bVar1 = uVar22 == 0x2d;
  if (bVar1) {
    uVar22 = (uint)param_2[1];
    param_2 = param_2 + 1;
  }
  if (param_3 != (byte *)0x0) {
    if ((int)param_3 < 0) {
      param_3 = (byte *)-(int)param_3;
      pbVar19 = &DAT_0000000a;
      if ((int)param_3 < 0x25) goto LAB_000183f8;
    }
    else {
      pbVar19 = param_3;
      if ((int)param_3 < 0x25) goto LAB_000183f8;
    }
    puVar15 = auStack_80;
    if ((int)param_3 < 0x3f) {
      puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;
      if ((int)param_3 <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;
      goto LAB_00018368;
    }
LAB_00018710:
    puVar26 = puVar15;
    uVar22 = 0xffffffff;
    goto LAB_00018714;
  }
  param_3 = &DAT_0000000a;
  pbVar19 = &DAT_0000000a;
LAB_000183f8:
  puVar21 = PTR___gmp_digit_value_tab_0009d388;
  if ((int)param_3 <= (int)(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]) {
LAB_00018310:
    pbVar14 = param_2;
    if (iVar4 != 0) {
      puVar15 = auStack_80;
      if (*param_2 == *pbVar3) {
        pbVar14 = param_2 + iVar4;
        pbVar6 = param_2;
        pbVar8 = pbVar3;
        do {
          pbVar8 = pbVar8 + 1;
          pbVar6 = pbVar6 + 1;
          if (pbVar14 == pbVar6) goto LAB_0001834c;
          puVar15 = auStack_80;
        } while (*pbVar6 == *pbVar8);
      }
      goto LAB_00018710;
    }
LAB_0001834c:
    uVar22 = 0xffffffff;
    if ((int)param_3 <= (int)(uint)(byte)puVar21[*pbVar14]) goto LAB_00018714;
  }
LAB_00018368:
  pbVar6 = (byte *)(*(code *)PTR_strlen_0009d360)(param_2);
  pbVar14 = pbVar6 + -1;
  if (pbVar14 == (byte *)0x0) {
    puVar25 = auStack_88;
    local_30 = 0;
    pbVar16 = (byte *)0x0;
    pbVar6 = abStack_70;
    pbVar14 = (byte *)0x1;
LAB_00018460:
    pbVar18 = (byte *)0x0;
    pbVar8 = pbVar6;
    pbVar23 = (byte *)0x0;
    do {
      while( true ) {
        bVar11 = *param_2;
        puVar26 = puVar25;
        if ((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0) break;
LAB_00018474:
        pbVar18 = pbVar18 + 1;
        param_2 = param_2 + 1;
        if (pbVar14 <= pbVar18) goto LAB_00018500;
      }
      if (iVar4 != 0) {
        if (*pbVar3 == bVar11) {
          pbVar7 = param_2;
          pbVar9 = pbVar3;
          do {
            pbVar9 = pbVar9 + 1;
            pbVar7 = pbVar7 + 1;
            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;
          } while (*pbVar7 == *pbVar9);
        }
        if ((int)(uint)(byte)puVar21[bVar11] < (int)param_3) {
          *pbVar8 = puVar21[bVar11];
          pbVar8 = pbVar8 + 1;
          goto LAB_00018474;
        }
        goto LAB_000186f8;
      }
LAB_000184e0:
      if (pbVar23 != (byte *)0x0) goto LAB_000186f8;
      pbVar18 = pbVar18 + iVar4;
      param_2 = param_2 + iVar4;
      pbVar23 = pbVar8;
    } while (pbVar18 < pbVar14);
LAB_00018500:
    pbVar14 = pbVar8 + -(int)pbVar6;
    iVar4 = *param_1;
    uVar22 = (((uint)((int)(ZEXT48(pbVar14) *
                            (ulonglong)
                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)
                     << 3) >> 5) + 2) * 4;
    param_2 = (byte *)(iVar4 + 1);
    if (uVar22 < 0x7f01) goto LAB_00018544;
    local_3c = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);
  }
  else {
    bVar11 = param_2[(int)pbVar14];
    if (bVar11 == 0x40) {
      pbVar16 = param_2 + (int)pbVar6;
      pbVar8 = pbVar6;
    }
    else {
      pbVar8 = pbVar6 + -2;
      pbVar23 = pbVar14;
      if ((int)param_3 < 0xb) {
        do {
          pbVar23 = pbVar14;
          pbVar14 = pbVar23 + -1;
          if ((bVar11 & 0xdf) == 0x45) {
            pbVar16 = param_2 + (int)(pbVar23 + 1);
            pbVar8 = pbVar23 + 1;
            pbVar14 = pbVar23;
            goto LAB_0001843c;
          }
          if (pbVar14 == (byte *)0x0) goto LAB_00018434;
          bVar11 = param_2[(int)pbVar14];
        } while (bVar11 != 0x40);
LAB_0001878c:
        pbVar16 = param_2 + (int)pbVar23;
        pbVar8 = pbVar23;
      }
      else {
        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {
          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;
          pbVar23 = pbVar14;
          pbVar8 = pbVar14 + -1;
        }
LAB_00018434:
        pbVar16 = (byte *)0x0;
        pbVar8 = pbVar6 + 1;
        pbVar14 = pbVar6;
      }
    }
LAB_0001843c:
    local_30 = 0;
    if ((byte *)0x7f00 < pbVar8) {
      pbVar6 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);
      iVar17 = *piVar5;
      goto LAB_00018460;
    }
    iVar10 = -((uint)(pbVar8 + 7) & 0xfffffff8);
    puVar25 = auStack_80 + iVar10;
    puVar26 = auStack_80 + iVar10;
    pbVar6 = &stack0xffffff98 + iVar10;
    if (pbVar14 != (byte *)0x0) goto LAB_00018460;
    pbVar23 = (byte *)0x0;
    uVar22 = 8;
    iVar4 = *param_1;
    param_2 = (byte *)(iVar4 + 1);
    pbVar8 = pbVar6;
LAB_00018544:
    iVar17 = -(uVar22 + 7 & 0xfffffff8);
    local_3c = puVar26 + iVar17 + 0x18;
    puVar26 = puVar26 + iVar17;
  }
  param_4 = param_3;
  pbVar3 = (byte *)(*(code *)PTR___gmpn_set_str_0009d5b4)(local_3c,pbVar6);
  if (pbVar3 == (byte *)0x0) {
    param_1[1] = 0;
    param_1[2] = 0;
    if (local_30 != 0) {
      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();
      uVar22 = 0;
      goto LAB_00018714;
    }
LAB_000187ac:
    uVar22 = 0;
    goto LAB_00018714;
  }
  local_54 = (int)pbVar3 - (int)param_2;
  if ((int)param_2 < (int)pbVar3) {
    local_3c = local_3c + local_54 * 4;
    local_4c = param_2;
    if (pbVar16 == (byte *)0x0) goto LAB_000187d0;
LAB_000185a0:
    bVar11 = *pbVar16;
    param_4 = (byte *)(uint)(bVar11 == 0x2d);
    pbVar16 = pbVar16 + (bVar11 == 0x2b || bVar11 == 0x2d);
    pbVar6 = (byte *)(uint)(byte)puVar21[*pbVar16];
    if ((int)pbVar19 <= (int)pbVar6) {
LAB_000186f8:
      uVar22 = 0xffffffff;
      if (local_30 == 0) goto LAB_00018714;
      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();
      puVar15 = puVar26;
      goto LAB_00018710;
    }
    pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[1]];
    if ((int)pbVar14 < (int)pbVar19) {
      pbVar16 = pbVar16 + 3;
      do {
        pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19;
        pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]];
        pbVar16 = pbVar16 + 1;
      } while ((int)pbVar14 < (int)pbVar19);
    }
    local_44 = param_4 + (-(int)param_4 ^ (uint)pbVar6);
    if (pbVar23 != (byte *)0x0) {
LAB_00018628:
      local_44 = local_44 + -((int)pbVar8 - (int)pbVar23);
    }
    if (local_44 == (byte *)0x0) goto LAB_000187e0;
    iVar4 = iVar4 + 2;
    uVar22 = iVar4 * 8;
    if (uVar22 < 0x7f01) {
      local_50 = puVar26 + iVar4 * -8 + 0x18;
      pbVar14 = puVar26 + iVar4 * -0x10 + 0x18;
      puVar26 = puVar26 + iVar4 * -0x10;
    }
    else {
      local_50 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);
      pbVar14 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);
    }
    puVar21 = PTR___gmpn_clz_tab_0009d18c;
    pbVar3 = local_44;
    if ((int)local_44 < 0) {
      pbVar3 = (byte *)-(int)local_44;
    }
    *(byte **)local_50 = param_3;
    if ((int)pbVar3 < 0x10000) {
      iVar10 = 0x18;
      if (0xff < (int)pbVar3) {
        iVar17 = 9;
        goto LAB_00018870;
      }
      uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;
      if (-1 < (int)uVar22) goto LAB_00018890;
      if ((int)param_2 < 1) {
        iVar10 = 0;
        pbVar19 = (byte *)0x1;
        iVar17 = 0;
        pbVar14 = local_50;
        goto LAB_00018988;
      }
      pbVar19 = (byte *)0x1;
      iVar10 = 0;
      *(byte **)local_50 = param_3;
    }
    else {
      iVar17 = 0x19;
      if ((int)pbVar3 < 0x1000000) {
        iVar17 = 0x11;
      }
      iVar10 = 0x10;
      if ((int)pbVar3 >= 0x1000000) {
        iVar10 = 8;
      }
LAB_00018870:
      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e;
LAB_00018890:
      iVar10 = 0;
      pbVar19 = (byte *)0x1;
      iVar17 = 0;
      pbVar6 = local_50;
      while( true ) {
        pbVar8 = pbVar6;
        (*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);
        iVar10 = iVar10 * 2;
        pbVar19 = (byte *)((int)pbVar19 * 2 -
                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));
        if ((int)param_2 < (int)pbVar19) {
          iVar17 = (int)pbVar19 - (int)param_2;
          iVar10 = iVar10 + iVar17;
          pbVar19 = param_2;
        }
        else {
          iVar17 = 0;
        }
        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {
          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)
                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);
          iVar13 = (int)pbVar19 * 4;
          pbVar19 = pbVar19 + (iVar17 != 0);
          *(int *)(pbVar14 + iVar13) = iVar17;
          iVar17 = 0;
        }
        if (uVar22 == 0) break;
        uVar22 = uVar22 - 1;
        pbVar6 = pbVar14;
        pbVar14 = pbVar8;
      }
      if ((int)param_2 < (int)pbVar19) {
LAB_00018988:
        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);
        pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;
        pbVar19 = param_2;
      }
      pbVar3 = pbVar19 + -1;
      if (pbVar19 != (byte *)0x0) {
        uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);
        if (pbVar3 == (byte *)0x0) {
          pbVar19 = (byte *)0x1;
          *(undefined4 *)local_50 = uVar12;
        }
        else {
          pbVar14 = pbVar14 + iVar17 * 4 + 4;
          pbVar6 = local_50;
          do {
            *(undefined4 *)pbVar6 = uVar12;
            pbVar3 = pbVar3 + -1;
            uVar12 = *(undefined4 *)pbVar14;
            pbVar14 = pbVar14 + 4;
            pbVar6 = pbVar6 + 4;
          } while (pbVar3 != (byte *)0x0);
          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;
        }
      }
    }
    pbVar3 = param_2;
    if ((int)local_44 < 0) {
      if ((int)local_4c < (int)pbVar19) {
        if ((uint)((int)(pbVar19 + 1) * 4) < 0x7f01) {
          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);
          puVar15 = puVar26 + iVar17 + 0x18;
          puVar26 = puVar26 + iVar17;
        }
        else {
          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);
        }
        iVar17 = ((int)pbVar19 - (int)local_4c) * 4;
        pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17);
        if (local_4c != (byte *)0x0) {
          pbVar16 = local_4c + -1;
          pbVar8 = pbVar14 + iVar17;
          uVar12 = *(undefined4 *)local_3c;
          pbVar6 = pbVar8;
          if (pbVar16 != (byte *)0x0) {
            do {
              local_3c = local_3c + 4;
              *(undefined4 *)pbVar6 = uVar12;
              pbVar16 = pbVar16 + -1;
              uVar12 = *(undefined4 *)local_3c;
              pbVar6 = pbVar6 + 4;
            } while (pbVar16 != (byte *)0x0);
            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;
          }
          *(undefined4 *)pbVar8 = uVar12;
        }
        local_54 = local_54 - ((int)pbVar19 - (int)local_4c);
        local_4c = pbVar19;
        local_3c = pbVar14;
      }
      uVar22 = *(uint *)(local_50 + (int)pbVar19 * 4 + -4);
      if (-1 < (int)uVar22) {
        if (uVar22 < 0x10000) {
          iVar17 = 0x20;
          if (0xff < uVar22) {
            iVar17 = 0x18;
          }
          iVar13 = 9;
          if (0xff >= uVar22) {
            iVar13 = 1;
          }
        }
        else {
          iVar17 = 0x10;
          if (0xffffff < uVar22) {
            iVar17 = 8;
          }
          iVar13 = 0x19;
          if (0xffffff >= uVar22) {
            iVar13 = 0x11;
          }
        }
        bVar11 = puVar21[uVar22 >> iVar13];
        (*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11);
        iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)
                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11);
        if (iVar17 != 0) {
          iVar13 = (int)local_4c * 4;
          local_4c = local_4c + 1;
          *(int *)(local_3c + iVar13) = iVar17;
        }
      }
      if ((uint)(iVar4 * 4) < 0x7f01) {
        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);
        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);
        puVar26 = puVar26 + iVar4;
      }
      else {
        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);
      }
      iVar17 = (int)local_4c - (int)pbVar19;
      *(byte **)(puVar26 + 0x14) = pbVar19;
      *(byte **)(puVar26 + 0x10) = local_50;
      iVar4 = (*(code *)PTR___gmpn_divrem_0009d0e4)(puVar20,(int)param_2 - iVar17);
      pbVar14 = (byte *)((local_54 - iVar10) + iVar17 + iVar4);
      if (iVar4 != 0) {
        piVar5 = puVar20 + (int)param_2;
        puVar20 = puVar20 + 1;
        *piVar5 = iVar4;
      }
    }
    else {
      pbVar3 = pbVar19 + (int)local_4c;
      uVar22 = (int)pbVar3 * 4;
      if (uVar22 < 0x7f01) {
        iVar4 = -(uVar22 + 7 & 0xfffffff8);
        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);
        puVar26 = puVar26 + iVar4;
      }
      else {
        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);
      }
      if ((int)local_4c < (int)pbVar19) {
        *(byte **)(puVar26 + 0x10) = local_4c;
        local_4c = local_3c;
        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);
        local_3c = pbVar19;
      }
      else {
        *(byte **)(puVar26 + 0x10) = pbVar19;
        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);
        local_3c = local_4c;
        local_4c = local_50;
      }
      pbVar3 = pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0);
      pbVar14 = pbVar3 + iVar10 + local_54;
      if ((int)param_2 < (int)pbVar3) {
        puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);
        pbVar3 = param_2;
      }
    }
    if (pbVar3 != (byte *)0x0) {
      pbVar6 = pbVar3 + -1;
      uVar12 = *puVar20;
      local_3c = (byte *)param_1[3];
      pbVar19 = local_3c;
      if (pbVar6 != (byte *)0x0) {
        do {
          puVar20 = puVar20 + 1;
          *(undefined4 *)pbVar19 = uVar12;
          pbVar6 = pbVar6 + -1;
          uVar12 = *puVar20;
          pbVar19 = pbVar19 + 4;
        } while (pbVar6 != (byte *)0x0);
        local_3c = local_3c + (int)pbVar3 * 4 + -4;
      }
      *(undefined4 *)local_3c = uVar12;
    }
    if (bVar1) {
      pbVar3 = (byte *)-(int)pbVar3;
    }
    param_1[1] = (int)pbVar3;
    param_1[2] = (int)pbVar14;
    pbVar14 = local_3c;
    param_4 = local_4c;
    param_2 = pbVar3;
    if (local_30 == 0) {
      uVar22 = 0;
      goto LAB_00018714;
    }
  }
  else {
    local_54 = 0;
    local_4c = pbVar3;
    if (pbVar16 != (byte *)0x0) goto LAB_000185a0;
LAB_000187d0:
    if (pbVar23 != (byte *)0x0) {
      local_44 = (byte *)0x0;
      goto LAB_00018628;
    }
LAB_000187e0:
    if (local_4c != (byte *)0x0) {
      pbVar6 = local_4c + -1;
      pbVar14 = (byte *)param_1[3];
      uVar12 = *(undefined4 *)local_3c;
      pbVar19 = pbVar14;
      if (pbVar6 != (byte *)0x0) {
        do {
          local_3c = local_3c + 4;
          *(undefined4 *)pbVar19 = uVar12;
          pbVar6 = pbVar6 + -1;
          uVar12 = *(undefined4 *)local_3c;
          pbVar19 = pbVar19 + 4;
        } while (pbVar6 != (byte *)0x0);
        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;
      }
      *(undefined4 *)pbVar14 = uVar12;
    }
    if (bVar1) {
      local_4c = (byte *)-(int)local_4c;
    }
    param_1[1] = (int)local_4c;
    param_1[2] = (int)pbVar3;
    if (local_30 == 0) goto LAB_000187ac;
  }
  (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();
  uVar22 = 0;
LAB_00018714:
  if (local_2c == *(int *)puVar24) {
    return uVar22;
  }
  pcVar27 = __gmpf_set_d;
  iVar4 = local_2c;
  puVar24 = PTR___stack_chk_fail_0009d4d0;
  (*(code *)PTR___stack_chk_fail_0009d4d0)();
  *(byte **)(puVar26 + 8) = pbVar14;
  *(undefined **)(puVar26 + -0x18) = puVar24 + 0x8c170;
  *(code **)(puVar26 + -4) = pcVar27;
  *(byte **)(puVar26 + -8) = param_2;
  *(byte **)(puVar26 + 0xc) = param_4;
  uVar22 = *(uint *)(puVar26 + 8) & 0x7ff00000;
  if (uVar22 == 0x7ff00000) {
    uVar22 = (**(code **)(puVar24 + 0x8468c))();
  }
  else if ((double)CONCAT44(pbVar14,param_4) != 0.0) {
    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {
      *(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4);
    }
    else {
      *(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;
      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);
    }
    pcVar27 = *(code **)(puVar24 + 0x84254);
    uVar12 = 0xfffffffd;
    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {
      uVar12 = 3;
    }
    *(undefined4 *)(iVar4 + 4) = uVar12;
    uVar22 = (*pcVar27)(*(undefined4 *)(iVar4 + 0xc));
    *(uint *)(iVar4 + 8) = uVar22;
    return uVar22;
  }
  *(undefined4 *)(iVar4 + 4) = 0;
  *(undefined4 *)(iVar4 + 8) = 0;
  return uVar22;
}


lui gp,0x9
addiu gp,gp,-0x31b0
addu gp,gp,t9
addiu sp,sp,-0x80
lw v0,-0x7b00(gp)
lw t9,-0x7e24(gp)
sw s8,0x78(sp)
or s8,sp,zero
sw ra,0x7c(sp)
sw v0,0x48(s8)
sw a0,0x4c(s8)
lui a0,0x1
sw s7,0x74(sp)
sw s6,0x70(sp)
sw s4,0x68(sp)
sw s2,0x60(sp)
sw s1,0x5c(sp)
or s1,a2,zero
sw s0,0x58(sp)
or s0,a1,zero
sw gp,0x18(sp)
sw s5,0x6c(sp)
sw s3,0x64(sp)
lw v0,0x0(v0)
sw v0,0x54(s8)
jalr t9
_nop
lw gp,0x18(s8)
or a0,v0,zero
lw t9,-0x7ce0(gp)
jalr t9
_or s2,v0,zero
lw gp,0x18(s8)
or s7,v0,zero
lw t9,-0x7f94(gp)
jalr t9
_lbu s6,0x0(s0)
or s4,v0,zero
sll v0,s6,0x1
lw t3,0x0(s4)
addu v0,t3,v0
lhu v0,0x0(v0)
andi v0,v0,0x20
beq v0,zero,0x000182c4
_lw gp,0x18(s8)
addiu s0,s0,0x1
lbu s6,0x0(s0)
sll v0,s6,0x1
addu v0,t3,v0
lhu v0,0x0(v0)
andi v0,v0,0x20
bne v0,zero,0x000182a4
_nop
li v0,0x2d
beq s6,v0,0x0001877c
_li v0,0x1
sw zero,0x38(s8)
beq s1,zero,0x000183f0
_lw s5,-0x7cb8(gp)
bltz s1,0x000186dc
_slti v0,s1,0x25
bne v0,zero,0x000186ec
_or s3,s1,zero
slti v0,s1,0x3f
beq v0,zero,0x00018710
_lw s5,-0x7cb8(gp)
addiu s5,s5,0xd0
addu s6,s5,s6
lbu v0,0x0(s6)
slt v0,v0,s1
bne v0,zero,0x00018368
_lw t9,-0x7ce0(gp)
beq s7,zero,0x0001834c
_or a2,s0,zero
lb v1,0x0(s0)
lb v0,0x0(s2)
bne v1,v0,0x00018710
_addiu v0,s0,0x1
addiu v1,s2,0x1
b 0x00018344
_addu a2,s0,s7
lb a1,0x0(v0)
lb a0,-0x1(v1)
bne a1,a0,0x00018710
_addiu v0,v0,0x1
bne a2,v0,0x00018334
_addiu v1,v1,0x1
lbu v0,0x0(a2)
addu v0,s5,v0
lbu v0,0x0(v0)
slt v0,v0,s1
beq v0,zero,0x00018714
_li v0,-0x1
lw t9,-0x7ce0(gp)
or a0,s0,zero
jalr t9
_sw t3,0x44(s8)
addiu a1,v0,-0x1
lw gp,0x18(s8)
or a2,v0,zero
lw t3,0x44(s8)
beq a1,zero,0x00018e08
_or t2,v0,zero
addu v0,s0,a1
li a0,0x40
lbu v1,0x0(v0)
beq v1,a0,0x00018e58
_slti v0,s1,0xb
beq v0,zero,0x0001842c
_addiu v0,a1,-0x1
li t2,-0x21
li a0,0x45
b 0x000183d4
_li t4,0x40
beq v0,zero,0x00018434
_nop
addu v1,s0,v0
lbu v1,0x0(v1)
beq v1,t4,0x0001878c
_nop
or a1,v0,zero
and v1,v1,t2
bne v1,a0,0x000183b8
_addiu v0,a1,-0x1
or a2,a1,zero
addiu a1,a1,0x1
b 0x0001843c
_addu t2,s0,a1
li s3,0xa
li s1,0xa
addu s6,s5,s6
lbu v0,0x0(s6)
slt v0,v0,s1
bne v0,zero,0x00018368
_lw t9,-0x7ce0(gp)
b 0x00018310
_nop
addu v1,s0,v0
lb v1,0x0(v1)
beq v1,a0,0x0001878c
_nop
or a1,v0,zero
addiu v0,a1,-0x1
bne v0,zero,0x00018414
_nop
addiu a1,a2,0x1
or t2,zero,zero
sltiu v0,a1,0x7f01
beq v0,zero,0x00018ca4
_sw zero,0x50(s8)
addiu v0,a1,0x7
srl v0,v0,0x3
sll v0,v0,0x3
subu sp,sp,v0
beq a2,zero,0x00018dc8
_addiu t0,sp,0x18
or s6,zero,zero
or t4,zero,zero
addiu t6,s7,-0x1
b 0x00018484
_or s4,t0,zero
addiu t4,t4,0x1
sltu v0,t4,a2
beq v0,zero,0x00018500
_addiu s0,s0,0x1
lb v1,0x0(s0)
andi t5,v1,0xff
sll v0,t5,0x1
addu v0,t3,v0
lhu v0,0x0(v0)
andi v0,v0,0x20
bne v0,zero,0x00018474
_nop
beq s7,zero,0x000184e0
_nop
lb v0,0x0(s2)
bne v0,v1,0x0001875c
_addiu v0,s0,0x1
addiu v1,s2,0x1
b 0x000184d4
_addu t7,s0,s7
lb a1,0x0(v0)
lb a0,-0x1(v1)
bne a1,a0,0x0001875c
_addiu v0,v0,0x1
bne v0,t7,0x000184c4
_addiu v1,v1,0x1
addiu v1,v1,-0x1
bne s6,zero,0x000186f4
_addu t4,t4,t6
addu s0,s0,t6
addiu t4,t4,0x1
or s6,s4,zero
sltu v0,t4,a2
bne v0,zero,0x00018484
_addiu s0,s0,0x1
sll v0,s1,0x2
lw a0,-0x7d08(gp)
subu a2,s4,t0
lw v1,0x4c(s8)
addu v0,v0,s1
sll v0,v0,0x2
lw v1,0x0(v1)
addu v0,a0,v0
lw a0,0x8(v0)
multu a2,a0
mfhi a0
ext a1,a0,0x2,0x1b
addiu a1,a1,0x2
sll a1,a1,0x2
sltiu v0,a1,0x7f01
beq v0,zero,0x00018cf8
_addiu s0,v1,0x1
addiu v0,a1,0x7
srl v0,v0,0x3
sll v0,v0,0x3
subu sp,sp,v0
addiu v0,sp,0x18
sw v0,0x44(s8)
or a0,v0,zero
lw t9,-0x7a8c(gp)
or a3,s1,zero
sw t2,0x3c(s8)
or a1,t0,zero
jalr t9
_sw v1,0x40(s8)
lw gp,0x18(s8)
lw v1,0x40(s8)
beq v0,zero,0x00018798
_lw t2,0x3c(s8)
slt a0,s0,v0
bne a0,zero,0x000187b4
_subu a0,v0,s0
sw zero,0x2c(s8)
beq t2,zero,0x000187d0
_sw v0,0x34(s8)
lbu a0,0x0(t2)
xori a3,a0,0x2d
xori a0,a0,0x2b
sltiu a3,a3,0x1
sltiu a0,a0,0x1
subu t3,zero,a3
subu a0,zero,a0
or a0,a0,t3
subu a0,t2,a0
lbu a1,0x0(a0)
addu a1,s5,a1
lbu t2,0x0(a1)
slt a1,t2,s3
beq a1,zero,0x000186f4
_nop
lbu a1,0x1(a0)
addu a1,s5,a1
lbu a2,0x0(a1)
slt a1,a2,s3
beq a1,zero,0x00018618
_addiu a0,a0,0x2
addiu a0,a0,0x1
lbu a1,-0x1(a0)
mul t0,t2,s3
addu a1,s5,a1
addu t2,t0,a2
lbu a2,0x0(a1)
slt a1,a2,s3
bne a1,zero,0x000185f8
_addiu a0,a0,0x1
xor t2,t3,t2
addu a0,a3,t2
beq s6,zero,0x00018638
_sw a0,0x3c(s8)
lw a0,0x3c(s8)
subu s4,s4,s6
subu a0,a0,s4
sw a0,0x3c(s8)
beq a0,zero,0x000187e0
_nop
addiu v0,v1,0x2
sll s4,v0,0x3
sw v0,0x28(s8)
sltiu v0,s4,0x7f01
beq v0,zero,0x00018e20
_lw t9,-0x7d50(gp)
subu sp,sp,s4
addiu v0,sp,0x18
subu sp,sp,s4
sw v0,0x30(s8)
or v0,a0,zero
addiu s7,sp,0x18
bgez v0,0x0001867c
_or s4,v0,zero
subu s4,zero,v0
lw v0,0x30(s8)
sw s1,0x0(v0)
lui v0,0x1
slt v0,s4,v0
beq v0,zero,0x0001884c
_or a3,s1,zero
slti v0,s4,0x100
beq v0,zero,0x00018d34
_li v1,0x18
lw v0,-0x7eb4(gp)
or v1,v0,zero
sw v0,0x24(s8)
srl v0,s4,0x1
addu v0,v1,v0
lbu t3,0x0(v0)
addiu s3,t3,-0x2
bgez s3,0x00018890
_lui v0,0x3fff
blez s0,0x00018e68
_lw v0,0x30(s8)
li s2,0x1
or s6,zero,zero
b 0x000189a4
_sw a3,0x0(v0)
subu s1,zero,s1
slti v0,s1,0x25
beq v0,zero,0x000182ec
_li s3,0xa
b 0x000183f8
_lw s5,-0x7cb8(gp)
lw a0,0x50(s8)
beq a0,zero,0x00018714
_li v0,-0x1
lw t9,-0x7a28(gp)
jalr t9
_nop
lw gp,0x18(s8)
li v0,-0x1
lw v1,0x48(s8)
lw a0,0x54(s8)
lw v1,0x0(v1)
bne a0,v1,0x00018ec8
_lw t9,-0x7b70(gp)
or sp,s8,zero
lw ra,0x7c(sp)
lw s8,0x78(sp)
lw s7,0x74(sp)
lw s6,0x70(sp)
lw s5,0x6c(sp)
lw s4,0x68(sp)
lw s3,0x64(sp)
lw s2,0x60(sp)
lw s1,0x5c(sp)
lw s0,0x58(sp)
jr ra
_addiu sp,sp,0x80
addu t5,s5,t5
lbu v0,0x0(t5)
slt v1,v0,s1
beq v1,zero,0x000186f8
_lw a0,0x50(s8)
sb v0,0x0(s4)
b 0x00018474
_addiu s4,s4,0x1
lbu s6,0x1(s0)
addiu s0,s0,0x1
b 0x000182d4
_sw v0,0x38(s8)
or a2,v0,zero
b 0x0001843c
_addu t2,s0,a1
lw v1,0x4c(s8)
lw a0,0x50(s8)
sw zero,0x4(v1)
bne a0,zero,0x00018db0
_sw zero,0x8(v1)
b 0x00018714
_or v0,zero,zero
lw a1,0x44(s8)
sw s0,0x34(s8)
sw a0,0x2c(s8)
sll a0,a0,0x2
addu a0,a1,a0
bne t2,zero,0x000185a0
_sw a0,0x44(s8)
beq s6,zero,0x000187e0
_nop
b 0x00018628
_sw zero,0x3c(s8)
lw v1,0x34(s8)
beq v1,zero,0x00018804
_lw a0,0x4c(s8)
addiu v1,v1,-0x1
lw a2,0xc(a0)
lw a0,0x44(s8)
bne v1,zero,0x00018d7c
_lw a1,0x0(a0)
sw a1,0x0(a2)
lw v1,0x38(s8)
beq v1,zero,0x00018820
_lw v1,0x4c(s8)
lw v1,0x34(s8)
subu v1,zero,v1
sw v1,0x34(s8)
lw v1,0x4c(s8)
lw a1,0x34(s8)
lw a0,0x50(s8)
sw a1,0x4(v1)
beq a0,zero,0x000187ac
_sw v0,0x8(v1)
lw t9,-0x7a28(gp)
jalr t9
_nop
or v0,zero,zero
b 0x00018714
_lw gp,0x18(s8)
lui v0,0x100
li a1,0x11
li a0,0x19
slt v0,s4,v0
movn a0,a1,v0
li v1,0x10
li t3,0x8
movz v1,t3,v0
or v0,a0,zero
lw a0,-0x7eb4(gp)
srlv v0,s4,v0
addu v0,a0,v0
sw a0,0x24(s8)
lbu t3,0x0(v0)
subu t3,t3,v1
addiu s3,t3,0x1e
lui v0,0x3fff
lw s5,0x30(s8)
or s6,zero,zero
ori v0,v0,0xffff
li s2,0x1
sw v0,0x40(s8)
b 0x000188e0
_or a1,zero,zero
srav v0,s4,s3
subu a1,s2,s0
andi v0,v0,0x1
or s2,s0,zero
bne v0,zero,0x00018938
_addu s6,s6,a1
addiu s3,s3,-0x1
li v0,-0x1
beq s3,v0,0x00018980
_slt v0,s0,s2
or v0,s5,zero
or s5,s7,zero
or s7,v0,zero
sll a1,a1,0x2
lw t9,-0x7cac(gp)
or a2,s2,zero
addu a1,s5,a1
jalr t9
_or a0,s7,zero
sll v1,s2,0x1
lw v0,0x40(s8)
sll s6,s6,0x1
addu v0,v1,v0
sll v0,v0,0x2
addu v0,s7,v0
lw v0,0x0(v0)
sltiu v0,v0,0x1
subu s2,v1,v0
slt v0,s0,s2
bne v0,zero,0x000188ac
_lw gp,0x18(s8)
srav v0,s4,s3
andi v0,v0,0x1
beq v0,zero,0x000188c4
_or a1,zero,zero
sll a1,a1,0x2
lw t9,-0x7f9c(gp)
or a2,s2,zero
addu a1,s7,a1
or a0,s7,zero
jalr t9
_or a3,s1,zero
sll a0,s2,0x2
sltu a1,zero,v0
lw gp,0x18(s8)
addu a0,s7,a0
addiu s3,s3,-0x1
addu s2,s2,a1
sw v0,0x0(a0)
li v0,-0x1
bne s3,v0,0x000188d4
_or a1,zero,zero
slt v0,s0,s2
beq v0,zero,0x0001899c
_nop
subu v0,s2,s0
or s2,s0,zero
sll a0,v0,0x2
addu s6,s6,v0
addu s7,s7,a0
bne s2,zero,0x00018a78
_addiu a0,s2,-0x1
lw v0,0x3c(s8)
bltz v0,0x00018ac4
_lw v0,0x34(s8)
addu s5,s2,v0
sll s1,s5,0x2
sltiu v0,s1,0x7f01
beq v0,zero,0x00018e7c
_addiu v0,s1,0x7
srl v0,v0,0x3
sll v0,v0,0x3
subu sp,sp,v0
addiu s4,sp,0x18
lw v1,0x34(s8)
slt v0,v1,s2
beq v0,zero,0x00018cd8
_lw t9,-0x7d8c(gp)
or a2,s2,zero
lw a3,0x44(s8)
or a0,s4,zero
lw a1,0x30(s8)
jalr t9
_sw v1,0x10(sp)
lw gp,0x18(s8)
addu v0,s4,s1
lw v1,-0x4(v0)
lw v0,0x2c(s8)
sltiu v1,v1,0x1
subu v1,s5,v1
addu v0,v0,v1
slt a0,s0,v1
beq a0,zero,0x00018cd0
_addu t1,v0,s6
subu v0,v1,s0
sll v0,v0,0x2
addu s4,s4,v0
beq s0,zero,0x00018a54
_lw v0,0x38(s8)
lw v0,0x4c(s8)
addiu v1,s0,-0x1
lw a1,0x0(s4)
bne v1,zero,0x00018d3c
_lw a2,0xc(v0)
sw a1,0x0(a2)
lw v0,0x38(s8)
beq v0,zero,0x00018a60
_lw v0,0x4c(s8)
subu s0,zero,s0
lw a0,0x50(s8)
sw s0,0x4(v0)
bne a0,zero,0x00018834
_sw t1,0x8(v0)
b 0x00018714
_or v0,zero,zero
sll a1,a1,0x2
addu v0,s7,a1
beq a0,zero,0x00018d6c
_lw a3,0x0(v0)
addiu a1,a1,0x4
lw a2,0x30(s8)
addu v0,s7,a1
addiu a2,a2,0x4
sw a3,-0x4(a2)
addiu v0,v0,0x4
addiu a0,a0,-0x1
bne a0,zero,0x00018a94
_lw a3,-0x4(v0)
sll v0,s2,0x2
lw v1,0x30(s8)
addiu v0,v0,-0x4
addu v0,v1,v0
b 0x000189a4
_sw a3,0x0(v0)
slt v0,v0,s2
beq v0,zero,0x00018b80
_lw v1,0x30(s8)
addiu a1,s2,0x1
sll a1,a1,0x2
sltiu v0,a1,0x7f01
beq v0,zero,0x00018eb0
_addiu v0,a1,0x7
srl v0,v0,0x3
sll v0,v0,0x3
subu sp,sp,v0
addiu a3,sp,0x18
lw s1,0x34(s8)
or a1,zero,zero
lw t9,-0x7d58(gp)
or a0,a3,zero
subu s5,s2,s1
sll s4,s5,0x2
jalr t9
_or a2,s4,zero
lw gp,0x18(s8)
beq s1,zero,0x00018b68
_or a3,v0,zero
lw v1,0x44(s8)
addiu a0,s1,-0x1
addu v0,v0,s4
beq a0,zero,0x00018b64
_lw a2,0x0(v1)
addiu v1,v1,0x4
or a1,v0,zero
addiu a1,a1,0x4
sw a2,-0x4(a1)
addiu v1,v1,0x4
addiu a0,a0,-0x1
bne a0,zero,0x00018b3c
_lw a2,-0x4(v1)
lw v1,0x34(s8)
sll a0,v1,0x2
addiu a0,a0,-0x4
addu v0,v0,a0
sw a2,0x0(v0)
lw v0,0x2c(s8)
sw a3,0x44(s8)
sw s2,0x34(s8)
subu v0,v0,s5
sw v0,0x2c(s8)
lw v1,0x30(s8)
sll v0,s2,0x2
addu v0,v1,v0
lw v0,-0x4(v0)
bltz v0,0x00018c2c
_lui a0,0x1
sltu a0,v0,a0
beq a0,zero,0x00018de4
_li a1,0x8
li a1,0x18
li s4,0x20
sltiu a0,v0,0x100
movz s4,a1,a0
li a2,0x1
li a1,0x9
movn a1,a2,a0
or a0,a1,zero
lw v1,0x24(s8)
srlv v0,v0,a0
lw a0,0x30(s8)
or a2,s2,zero
lw t9,-0x7ad4(gp)
addu v0,v1,v0
or a1,a0,zero
lbu v0,0x0(v0)
subu s4,s4,v0
jalr t9
_or a3,s4,zero
or a3,s4,zero
lw gp,0x18(s8)
lw s3,0x44(s8)
lw s1,0x34(s8)
lw t9,-0x7ad4(gp)
or a1,s3,zero
or a2,s1,zero
jalr t9
_or a0,s3,zero
beq v0,zero,0x00018c2c
_lw gp,0x18(s8)
sll a0,s1,0x2
addiu v1,s1,0x1
addu a0,s3,a0
sw v1,0x34(s8)
sw v0,0x0(a0)
lw v0,0x28(s8)
sll a1,v0,0x2
sltiu v0,a1,0x7f01
beq v0,zero,0x00018e98
_addiu v0,a1,0x7
srl v0,v0,0x3
sll v0,v0,0x3
subu sp,sp,v0
addiu s4,sp,0x18
lw a3,0x34(s8)
or a0,s4,zero
lw v0,0x30(s8)
lw t9,-0x7f5c(gp)
subu s5,a3,s2
lw a2,0x44(s8)
sw s2,0x14(sp)
subu a1,s0,s5
jalr t9
_sw v0,0x10(sp)
lw v1,0x2c(s8)
lw gp,0x18(s8)
subu t1,v1,s6
addu t1,t1,s5
beq v0,zero,0x00018a30
_addu t1,t1,v0
sll v1,s0,0x2
addu v1,s4,v1
addiu s4,s4,0x4
b 0x00018a30
_sw v0,0x0(v1)
lw t9,-0x7d50(gp)
addiu a0,s8,0x50
sw t2,0x40(s8)
jalr t9
_sw a2,0x44(s8)
lw gp,0x18(s8)
or t0,v0,zero
lw t3,0x0(s4)
lw t2,0x40(s8)
b 0x00018460
_lw a2,0x44(s8)
b 0x00018a30
_or s0,v1,zero
or a2,v1,zero
lw a3,0x30(s8)
or a0,s4,zero
lw a1,0x44(s8)
jalr t9
_sw s2,0x10(sp)
b 0x00018a00
_lw gp,0x18(s8)
lw t9,-0x7d50(gp)
addiu a0,s8,0x50
sw t0,0x30(s8)
sw t2,0x34(s8)
sw a2,0x3c(s8)
jalr t9
_sw v1,0x40(s8)
lw gp,0x18(s8)
or a0,v0,zero
lw t0,0x30(s8)
lw t2,0x34(s8)
lw a2,0x3c(s8)
lw v1,0x40(s8)
b 0x00018560
_sw v0,0x44(s8)
b 0x00018870
_li v0,0x9
addiu v0,s4,0x4
or a0,a2,zero
addiu a0,a0,0x4
sw a1,-0x4(a0)
addiu v0,v0,0x4
addiu v1,v1,-0x1
bne v1,zero,0x00018d44
_lw a1,-0x4(v0)
sll v0,s0,0x2
addiu v0,v0,-0x4
b 0x00018a4c
_addu a2,a2,v0
lw v0,0x30(s8)
li s2,0x1
b 0x000189a4
_sw a3,0x0(v0)
addiu s2,a0,0x4
or a0,a2,zero
addiu a0,a0,0x4
sw a1,-0x4(a0)
addiu s2,s2,0x4
addiu v1,v1,-0x1
bne v1,zero,0x00018d84
_lw a1,-0x4(s2)
lw v1,0x34(s8)
sll v1,v1,0x2
addiu v1,v1,-0x4
b 0x00018800
_addu a2,a2,v1
lw t9,-0x7a28(gp)
jalr t9
_sw v0,0x4c(s8)
lw gp,0x18(s8)
b 0x00018714
_lw v0,0x4c(s8)
lw v0,0x4c(s8)
or s4,t0,zero
or s6,zero,zero
li a1,0x8
lw v1,0x0(v0)
b 0x00018544
_addiu s0,v1,0x1
lui a0,0x100
li s4,0x10
sltu a0,v0,a0
movz s4,a1,a0
li a2,0x11
li a1,0x19
movn a1,a2,a0
b 0x00018bc0
_or a0,a1,zero
addiu sp,sp,-0x8
sw zero,0x50(s8)
or t2,zero,zero
addiu t0,sp,0x18
b 0x00018460
_li a2,0x1
addiu s5,s8,0x50
or a1,s4,zero
jalr t9
_or a0,s5,zero
or a1,s4,zero
lw gp,0x18(s8)
or a0,s5,zero
lw t9,-0x7d50(gp)
jalr t9
_sw v0,0x30(s8)
or s7,v0,zero
lw gp,0x18(s8)
b 0x00018670
_lw v0,0x3c(s8)
or a2,a1,zero
or a1,t2,zero
b 0x0001843c
_addu t2,s0,a1
or s6,zero,zero
lw s7,0x30(s8)
li s2,0x1
b 0x00018988
_or a1,zero,zero
lw t9,-0x7d50(gp)
addiu a0,s8,0x50
jalr t9
_or a1,s1,zero
lw gp,0x18(s8)
b 0x000189d4
_or s4,v0,zero
lw t9,-0x7d50(gp)
jalr t9
_addiu a0,s8,0x50
lw gp,0x18(s8)
b 0x00018c50
_or s4,v0,zero
lw t9,-0x7d50(gp)
jalr t9
_addiu a0,s8,0x50
lw gp,0x18(s8)
b 0x00018af4
_or a3,v0,zero
jalr t9
_nop
(translation_unit "uint __gmpf_set_str(int *param_1,byte *param_2,byte *param_3,byte *param_4)\n\n{\n  bool bVar1;\n  ushort uVar2;\n  byte *pbVar3;\n  int iVar4;\n  int *piVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte bVar11;\n  byte *pbVar9;\n  int iVar10;\n  undefined4 uVar12;\n  int iVar13;\n  byte *pbVar14;\n  undefined1 *puVar15;\n  byte *pbVar16;\n  int iVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  undefined4 *puVar20;\n  undefined *puVar21;\n  uint uVar22;\n  byte *pbVar23;\n  undefined *puVar24;\n  undefined1 *puVar25;\n  undefined1 *puVar26;\n  code *pcVar27;\n  undefined1 auStack_88 [8];\n  undefined1 auStack_80 [16];\n  byte abStack_70 [8];\n  int local_54;\n  byte *local_50;\n  byte *local_4c;\n  byte *local_44;\n  byte *local_3c;\n  int local_30;\n  int local_2c;\n  \n  puVar24 = PTR___stack_chk_guard_0009d540;\n  puVar26 = auStack_80;\n  puVar25 = auStack_80;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  pbVar14 = param_3;\n  pbVar3 = (byte *)(*(code *)PTR_nl_langinfo_0009d21c)(0x10000);\n  iVar4 = (*(code *)PTR_strlen_0009d360)(pbVar3);\n  uVar22 = (uint)*param_2;\n  piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0009d0ac)();\n  iVar17 = *piVar5;\n  uVar2 = *(ushort *)(iVar17 + uVar22 * 2);\n  while ((uVar2 & 0x20) != 0) {\n    param_2 = param_2 + 1;\n    uVar22 = (uint)*param_2;\n    uVar2 = *(ushort *)(iVar17 + uVar22 * 2);\n  }\n  bVar1 = uVar22 == 0x2d;\n  if (bVar1) {\n    uVar22 = (uint)param_2[1];\n    param_2 = param_2 + 1;\n  }\n  if (param_3 != (byte *)0x0) {\n    if ((int)param_3 < 0) {\n      param_3 = (byte *)-(int)param_3;\n      pbVar19 = &DAT_0000000a;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }\n    else {\n      pbVar19 = param_3;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }\n    puVar15 = auStack_80;\n    if ((int)param_3 < 0x3f) {\n      puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;\n      if ((int)param_3 <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;\n      goto LAB_00018368;\n    }\nLAB_00018710:\n    puVar26 = puVar15;\n    uVar22 = 0xffffffff;\n    goto LAB_00018714;\n  }\n  param_3 = &DAT_0000000a;\n  pbVar19 = &DAT_0000000a;\nLAB_000183f8:\n  puVar21 = PTR___gmp_digit_value_tab_0009d388;\n  if ((int)param_3 <= (int)(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]) {\nLAB_00018310:\n    pbVar14 = param_2;\n    if (iVar4 != 0) {\n      puVar15 = auStack_80;\n      if (*param_2 == *pbVar3) {\n        pbVar14 = param_2 + iVar4;\n        pbVar6 = param_2;\n        pbVar8 = pbVar3;\n        do {\n          pbVar8 = pbVar8 + 1;\n          pbVar6 = pbVar6 + 1;\n          if (pbVar14 == pbVar6) goto LAB_0001834c;\n          puVar15 = auStack_80;\n        } while (*pbVar6 == *pbVar8);\n      }\n      goto LAB_00018710;\n    }\nLAB_0001834c:\n    uVar22 = 0xffffffff;\n    if ((int)param_3 <= (int)(uint)(byte)puVar21[*pbVar14]) goto LAB_00018714;\n  }\nLAB_00018368:\n  pbVar6 = (byte *)(*(code *)PTR_strlen_0009d360)(param_2);\n  pbVar14 = pbVar6 + -1;\n  if (pbVar14 == (byte *)0x0) {\n    puVar25 = auStack_88;\n    local_30 = 0;\n    pbVar16 = (byte *)0x0;\n    pbVar6 = abStack_70;\n    pbVar14 = (byte *)0x1;\nLAB_00018460:\n    pbVar18 = (byte *)0x0;\n    pbVar8 = pbVar6;\n    pbVar23 = (byte *)0x0;\n    do {\n      while( true ) {\n        bVar11 = *param_2;\n        puVar26 = puVar25;\n        if ((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pbVar18 = pbVar18 + 1;\n        param_2 = param_2 + 1;\n        if (pbVar14 <= pbVar18) goto LAB_00018500;\n      }\n      if (iVar4 != 0) {\n        if (*pbVar3 == bVar11) {\n          pbVar7 = param_2;\n          pbVar9 = pbVar3;\n          do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);\n        }\n        if ((int)(uint)(byte)puVar21[bVar11] < (int)param_3) {\n          *pbVar8 = puVar21[bVar11];\n          pbVar8 = pbVar8 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }\nLAB_000184e0:\n      if (pbVar23 != (byte *)0x0) goto LAB_000186f8;\n      pbVar18 = pbVar18 + iVar4;\n      param_2 = param_2 + iVar4;\n      pbVar23 = pbVar8;\n    } while (pbVar18 < pbVar14);\nLAB_00018500:\n    pbVar14 = pbVar8 + -(int)pbVar6;\n    iVar4 = *param_1;\n    uVar22 = (((uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5) + 2) * 4;\n    param_2 = (byte *)(iVar4 + 1);\n    if (uVar22 < 0x7f01) goto LAB_00018544;\n    local_3c = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }\n  else {\n    bVar11 = param_2[(int)pbVar14];\n    if (bVar11 == 0x40) {\n      pbVar16 = param_2 + (int)pbVar6;\n      pbVar8 = pbVar6;\n    }\n    else {\n      pbVar8 = pbVar6 + -2;\n      pbVar23 = pbVar14;\n      if ((int)param_3 < 0xb) {\n        do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);\nLAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;\n        pbVar8 = pbVar23;\n      }\n      else {\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }\n    }\nLAB_0001843c:\n    local_30 = 0;\n    if ((byte *)0x7f00 < pbVar8) {\n      pbVar6 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      iVar17 = *piVar5;\n      goto LAB_00018460;\n    }\n    iVar10 = -((uint)(pbVar8 + 7) & 0xfffffff8);\n    puVar25 = auStack_80 + iVar10;\n    puVar26 = auStack_80 + iVar10;\n    pbVar6 = &stack0xffffff98 + iVar10;\n    if (pbVar14 != (byte *)0x0) goto LAB_00018460;\n    pbVar23 = (byte *)0x0;\n    uVar22 = 8;\n    iVar4 = *param_1;\n    param_2 = (byte *)(iVar4 + 1);\n    pbVar8 = pbVar6;\nLAB_00018544:\n    iVar17 = -(uVar22 + 7 & 0xfffffff8);\n    local_3c = puVar26 + iVar17 + 0x18;\n    puVar26 = puVar26 + iVar17;\n  }\n  param_4 = param_3;\n  pbVar3 = (byte *)(*(code *)PTR___gmpn_set_str_0009d5b4)(local_3c,pbVar6);\n  if (pbVar3 == (byte *)0x0) {\n    param_1[1] = 0;\n    param_1[2] = 0;\n    if (local_30 != 0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      uVar22 = 0;\n      goto LAB_00018714;\n    }\nLAB_000187ac:\n    uVar22 = 0;\n    goto LAB_00018714;\n  }\n  local_54 = (int)pbVar3 - (int)param_2;\n  if ((int)param_2 < (int)pbVar3) {\n    local_3c = local_3c + local_54 * 4;\n    local_4c = param_2;\n    if (pbVar16 == (byte *)0x0) goto LAB_000187d0;\nLAB_000185a0:\n    bVar11 = *pbVar16;\n    param_4 = (byte *)(uint)(bVar11 == 0x2d);\n    pbVar16 = pbVar16 + (bVar11 == 0x2b || bVar11 == 0x2d);\n    pbVar6 = (byte *)(uint)(byte)puVar21[*pbVar16];\n    if ((int)pbVar19 <= (int)pbVar6) {\nLAB_000186f8:\n      uVar22 = 0xffffffff;\n      if (local_30 == 0) goto LAB_00018714;\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      puVar15 = puVar26;\n      goto LAB_00018710;\n    }\n    pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[1]];\n    if ((int)pbVar14 < (int)pbVar19) {\n      pbVar16 = pbVar16 + 3;\n      do {\n        pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19;\n        pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]];\n        pbVar16 = pbVar16 + 1;\n      } while ((int)pbVar14 < (int)pbVar19);\n    }\n    local_44 = param_4 + (-(int)param_4 ^ (uint)pbVar6);\n    if (pbVar23 != (byte *)0x0) {\nLAB_00018628:\n      local_44 = local_44 + -((int)pbVar8 - (int)pbVar23);\n    }\n    if (local_44 == (byte *)0x0) goto LAB_000187e0;\n    iVar4 = iVar4 + 2;\n    uVar22 = iVar4 * 8;\n    if (uVar22 < 0x7f01) {\n      local_50 = puVar26 + iVar4 * -8 + 0x18;\n      pbVar14 = puVar26 + iVar4 * -0x10 + 0x18;\n      puVar26 = puVar26 + iVar4 * -0x10;\n    }\n    else {\n      local_50 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      pbVar14 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n    }\n    puVar21 = PTR___gmpn_clz_tab_0009d18c;\n    pbVar3 = local_44;\n    if ((int)local_44 < 0) {\n      pbVar3 = (byte *)-(int)local_44;\n    }\n    *(byte **)local_50 = param_3;\n    if ((int)pbVar3 < 0x10000) {\n      iVar10 = 0x18;\n      if (0xff < (int)pbVar3) {\n        iVar17 = 9;\n        goto LAB_00018870;\n      }\n      uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;\n      if (-1 < (int)uVar22) goto LAB_00018890;\n      if ((int)param_2 < 1) {\n        iVar10 = 0;\n        pbVar19 = (byte *)0x1;\n        iVar17 = 0;\n        pbVar14 = local_50;\n        goto LAB_00018988;\n      }\n      pbVar19 = (byte *)0x1;\n      iVar10 = 0;\n      *(byte **)local_50 = param_3;\n    }\n    else {\n      iVar17 = 0x19;\n      if ((int)pbVar3 < 0x1000000) {\n        iVar17 = 0x11;\n      }\n      iVar10 = 0x10;\n      if ((int)pbVar3 >= 0x1000000) {\n        iVar10 = 8;\n      }\nLAB_00018870:\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e;\nLAB_00018890:\n      iVar10 = 0;\n      pbVar19 = (byte *)0x1;\n      iVar17 = 0;\n      pbVar6 = local_50;\n      while( true ) {\n        pbVar8 = pbVar6;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);\n        iVar10 = iVar10 * 2;\n        pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));\n        if ((int)param_2 < (int)pbVar19) {\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }\n        else {\n          iVar17 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pbVar6 = pbVar14;\n        pbVar14 = pbVar8;\n      }\n      if ((int)param_2 < (int)pbVar19) {\nLAB_00018988:\n        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);\n        pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;\n        pbVar19 = param_2;\n      }\n      pbVar3 = pbVar19 + -1;\n      if (pbVar19 != (byte *)0x0) {\n        uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);\n        if (pbVar3 == (byte *)0x0) {\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }\n        else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }\n      }\n    }\n    pbVar3 = param_2;\n    if ((int)local_44 < 0) {\n      if ((int)local_4c < (int)pbVar19) {\n        if ((uint)((int)(pbVar19 + 1) * 4) < 0x7f01) {\n          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);\n          puVar15 = puVar26 + iVar17 + 0x18;\n          puVar26 = puVar26 + iVar17;\n        }\n        else {\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }\n        iVar17 = ((int)pbVar19 - (int)local_4c) * 4;\n        pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17);\n        if (local_4c != (byte *)0x0) {\n          pbVar16 = local_4c + -1;\n          pbVar8 = pbVar14 + iVar17;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar6 = pbVar8;\n          if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }\n          *(undefined4 *)pbVar8 = uVar12;\n        }\n        local_54 = local_54 - ((int)pbVar19 - (int)local_4c);\n        local_4c = pbVar19;\n        local_3c = pbVar14;\n      }\n      uVar22 = *(uint *)(local_50 + (int)pbVar19 * 4 + -4);\n      if (-1 < (int)uVar22) {\n        if (uVar22 < 0x10000) {\n          iVar17 = 0x20;\n          if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }\n          iVar13 = 9;\n          if (0xff >= uVar22) {\n            iVar13 = 1;\n          }\n        }\n        else {\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }\n        bVar11 = puVar21[uVar22 >> iVar13];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11);\n        iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11);\n        if (iVar17 != 0) {\n          iVar13 = (int)local_4c * 4;\n          local_4c = local_4c + 1;\n          *(int *)(local_3c + iVar13) = iVar17;\n        }\n      }\n      if ((uint)(iVar4 * 4) < 0x7f01) {\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      }\n      iVar17 = (int)local_4c - (int)pbVar19;\n      *(byte **)(puVar26 + 0x14) = pbVar19;\n      *(byte **)(puVar26 + 0x10) = local_50;\n      iVar4 = (*(code *)PTR___gmpn_divrem_0009d0e4)(puVar20,(int)param_2 - iVar17);\n      pbVar14 = (byte *)((local_54 - iVar10) + iVar17 + iVar4);\n      if (iVar4 != 0) {\n        piVar5 = puVar20 + (int)param_2;\n        puVar20 = puVar20 + 1;\n        *piVar5 = iVar4;\n      }\n    }\n    else {\n      pbVar3 = pbVar19 + (int)local_4c;\n      uVar22 = (int)pbVar3 * 4;\n      if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      }\n      if ((int)local_4c < (int)pbVar19) {\n        *(byte **)(puVar26 + 0x10) = local_4c;\n        local_4c = local_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);\n        local_3c = pbVar19;\n      }\n      else {\n        *(byte **)(puVar26 + 0x10) = pbVar19;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);\n        local_3c = local_4c;\n        local_4c = local_50;\n      }\n      pbVar3 = pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0);\n      pbVar14 = pbVar3 + iVar10 + local_54;\n      if ((int)param_2 < (int)pbVar3) {\n        puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);\n        pbVar3 = param_2;\n      }\n    }\n    if (pbVar3 != (byte *)0x0) {\n      pbVar6 = pbVar3 + -1;\n      uVar12 = *puVar20;\n      local_3c = (byte *)param_1[3];\n      pbVar19 = local_3c;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          puVar20 = puVar20 + 1;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *puVar20;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        local_3c = local_3c + (int)pbVar3 * 4 + -4;\n      }\n      *(undefined4 *)local_3c = uVar12;\n    }\n    if (bVar1) {\n      pbVar3 = (byte *)-(int)pbVar3;\n    }\n    param_1[1] = (int)pbVar3;\n    param_1[2] = (int)pbVar14;\n    pbVar14 = local_3c;\n    param_4 = local_4c;\n    param_2 = pbVar3;\n    if (local_30 == 0) {\n      uVar22 = 0;\n      goto LAB_00018714;\n    }\n  }\n  else {\n    local_54 = 0;\n    local_4c = pbVar3;\n    if (pbVar16 != (byte *)0x0) goto LAB_000185a0;\nLAB_000187d0:\n    if (pbVar23 != (byte *)0x0) {\n      local_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }\nLAB_000187e0:\n    if (local_4c != (byte *)0x0) {\n      pbVar6 = local_4c + -1;\n      pbVar14 = (byte *)param_1[3];\n      uVar12 = *(undefined4 *)local_3c;\n      pbVar19 = pbVar14;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;\n      }\n      *(undefined4 *)pbVar14 = uVar12;\n    }\n    if (bVar1) {\n      local_4c = (byte *)-(int)local_4c;\n    }\n    param_1[1] = (int)local_4c;\n    param_1[2] = (int)pbVar3;\n    if (local_30 == 0) goto LAB_000187ac;\n  }\n  (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  uVar22 = 0;\nLAB_00018714:\n  if (local_2c == *(int *)puVar24) {\n    return uVar22;\n  }\n  pcVar27 = __gmpf_set_d;\n  iVar4 = local_2c;\n  puVar24 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  *(byte **)(puVar26 + 8) = pbVar14;\n  *(undefined **)(puVar26 + -0x18) = puVar24 + 0x8c170;\n  *(code **)(puVar26 + -4) = pcVar27;\n  *(byte **)(puVar26 + -8) = param_2;\n  *(byte **)(puVar26 + 0xc) = param_4;\n  uVar22 = *(uint *)(puVar26 + 8) & 0x7ff00000;\n  if (uVar22 == 0x7ff00000) {\n    uVar22 = (**(code **)(puVar24 + 0x8468c))();\n  }\n  else if ((double)CONCAT44(pbVar14,param_4) != 0.0) {\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      *(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4);\n    }\n    else {\n      *(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);\n    }\n    pcVar27 = *(code **)(puVar24 + 0x84254);\n    uVar12 = 0xfffffffd;\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      uVar12 = 3;\n    }\n    *(undefined4 *)(iVar4 + 4) = uVar12;\n    uVar22 = (*pcVar27)(*(undefined4 *)(iVar4 + 0xc));\n    *(uint *)(iVar4 + 8) = uVar22;\n    return uVar22;\n  }\n  *(undefined4 *)(iVar4 + 4) = 0;\n  *(undefined4 *)(iVar4 + 8) = 0;\n  return uVar22;\n}\n\n" (function_definition "uint __gmpf_set_str(int *param_1,byte *param_2,byte *param_3,byte *param_4)\n\n{\n  bool bVar1;\n  ushort uVar2;\n  byte *pbVar3;\n  int iVar4;\n  int *piVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte bVar11;\n  byte *pbVar9;\n  int iVar10;\n  undefined4 uVar12;\n  int iVar13;\n  byte *pbVar14;\n  undefined1 *puVar15;\n  byte *pbVar16;\n  int iVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  undefined4 *puVar20;\n  undefined *puVar21;\n  uint uVar22;\n  byte *pbVar23;\n  undefined *puVar24;\n  undefined1 *puVar25;\n  undefined1 *puVar26;\n  code *pcVar27;\n  undefined1 auStack_88 [8];\n  undefined1 auStack_80 [16];\n  byte abStack_70 [8];\n  int local_54;\n  byte *local_50;\n  byte *local_4c;\n  byte *local_44;\n  byte *local_3c;\n  int local_30;\n  int local_2c;\n  \n  puVar24 = PTR___stack_chk_guard_0009d540;\n  puVar26 = auStack_80;\n  puVar25 = auStack_80;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  pbVar14 = param_3;\n  pbVar3 = (byte *)(*(code *)PTR_nl_langinfo_0009d21c)(0x10000);\n  iVar4 = (*(code *)PTR_strlen_0009d360)(pbVar3);\n  uVar22 = (uint)*param_2;\n  piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0009d0ac)();\n  iVar17 = *piVar5;\n  uVar2 = *(ushort *)(iVar17 + uVar22 * 2);\n  while ((uVar2 & 0x20) != 0) {\n    param_2 = param_2 + 1;\n    uVar22 = (uint)*param_2;\n    uVar2 = *(ushort *)(iVar17 + uVar22 * 2);\n  }\n  bVar1 = uVar22 == 0x2d;\n  if (bVar1) {\n    uVar22 = (uint)param_2[1];\n    param_2 = param_2 + 1;\n  }\n  if (param_3 != (byte *)0x0) {\n    if ((int)param_3 < 0) {\n      param_3 = (byte *)-(int)param_3;\n      pbVar19 = &DAT_0000000a;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }\n    else {\n      pbVar19 = param_3;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }\n    puVar15 = auStack_80;\n    if ((int)param_3 < 0x3f) {\n      puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;\n      if ((int)param_3 <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;\n      goto LAB_00018368;\n    }\nLAB_00018710:\n    puVar26 = puVar15;\n    uVar22 = 0xffffffff;\n    goto LAB_00018714;\n  }\n  param_3 = &DAT_0000000a;\n  pbVar19 = &DAT_0000000a;\nLAB_000183f8:\n  puVar21 = PTR___gmp_digit_value_tab_0009d388;\n  if ((int)param_3 <= (int)(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]) {\nLAB_00018310:\n    pbVar14 = param_2;\n    if (iVar4 != 0) {\n      puVar15 = auStack_80;\n      if (*param_2 == *pbVar3) {\n        pbVar14 = param_2 + iVar4;\n        pbVar6 = param_2;\n        pbVar8 = pbVar3;\n        do {\n          pbVar8 = pbVar8 + 1;\n          pbVar6 = pbVar6 + 1;\n          if (pbVar14 == pbVar6) goto LAB_0001834c;\n          puVar15 = auStack_80;\n        } while (*pbVar6 == *pbVar8);\n      }\n      goto LAB_00018710;\n    }\nLAB_0001834c:\n    uVar22 = 0xffffffff;\n    if ((int)param_3 <= (int)(uint)(byte)puVar21[*pbVar14]) goto LAB_00018714;\n  }\nLAB_00018368:\n  pbVar6 = (byte *)(*(code *)PTR_strlen_0009d360)(param_2);\n  pbVar14 = pbVar6 + -1;\n  if (pbVar14 == (byte *)0x0) {\n    puVar25 = auStack_88;\n    local_30 = 0;\n    pbVar16 = (byte *)0x0;\n    pbVar6 = abStack_70;\n    pbVar14 = (byte *)0x1;\nLAB_00018460:\n    pbVar18 = (byte *)0x0;\n    pbVar8 = pbVar6;\n    pbVar23 = (byte *)0x0;\n    do {\n      while( true ) {\n        bVar11 = *param_2;\n        puVar26 = puVar25;\n        if ((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pbVar18 = pbVar18 + 1;\n        param_2 = param_2 + 1;\n        if (pbVar14 <= pbVar18) goto LAB_00018500;\n      }\n      if (iVar4 != 0) {\n        if (*pbVar3 == bVar11) {\n          pbVar7 = param_2;\n          pbVar9 = pbVar3;\n          do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);\n        }\n        if ((int)(uint)(byte)puVar21[bVar11] < (int)param_3) {\n          *pbVar8 = puVar21[bVar11];\n          pbVar8 = pbVar8 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }\nLAB_000184e0:\n      if (pbVar23 != (byte *)0x0) goto LAB_000186f8;\n      pbVar18 = pbVar18 + iVar4;\n      param_2 = param_2 + iVar4;\n      pbVar23 = pbVar8;\n    } while (pbVar18 < pbVar14);\nLAB_00018500:\n    pbVar14 = pbVar8 + -(int)pbVar6;\n    iVar4 = *param_1;\n    uVar22 = (((uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5) + 2) * 4;\n    param_2 = (byte *)(iVar4 + 1);\n    if (uVar22 < 0x7f01) goto LAB_00018544;\n    local_3c = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }\n  else {\n    bVar11 = param_2[(int)pbVar14];\n    if (bVar11 == 0x40) {\n      pbVar16 = param_2 + (int)pbVar6;\n      pbVar8 = pbVar6;\n    }\n    else {\n      pbVar8 = pbVar6 + -2;\n      pbVar23 = pbVar14;\n      if ((int)param_3 < 0xb) {\n        do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);\nLAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;\n        pbVar8 = pbVar23;\n      }\n      else {\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }\n    }\nLAB_0001843c:\n    local_30 = 0;\n    if ((byte *)0x7f00 < pbVar8) {\n      pbVar6 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      iVar17 = *piVar5;\n      goto LAB_00018460;\n    }\n    iVar10 = -((uint)(pbVar8 + 7) & 0xfffffff8);\n    puVar25 = auStack_80 + iVar10;\n    puVar26 = auStack_80 + iVar10;\n    pbVar6 = &stack0xffffff98 + iVar10;\n    if (pbVar14 != (byte *)0x0) goto LAB_00018460;\n    pbVar23 = (byte *)0x0;\n    uVar22 = 8;\n    iVar4 = *param_1;\n    param_2 = (byte *)(iVar4 + 1);\n    pbVar8 = pbVar6;\nLAB_00018544:\n    iVar17 = -(uVar22 + 7 & 0xfffffff8);\n    local_3c = puVar26 + iVar17 + 0x18;\n    puVar26 = puVar26 + iVar17;\n  }\n  param_4 = param_3;\n  pbVar3 = (byte *)(*(code *)PTR___gmpn_set_str_0009d5b4)(local_3c,pbVar6);\n  if (pbVar3 == (byte *)0x0) {\n    param_1[1] = 0;\n    param_1[2] = 0;\n    if (local_30 != 0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      uVar22 = 0;\n      goto LAB_00018714;\n    }\nLAB_000187ac:\n    uVar22 = 0;\n    goto LAB_00018714;\n  }\n  local_54 = (int)pbVar3 - (int)param_2;\n  if ((int)param_2 < (int)pbVar3) {\n    local_3c = local_3c + local_54 * 4;\n    local_4c = param_2;\n    if (pbVar16 == (byte *)0x0) goto LAB_000187d0;\nLAB_000185a0:\n    bVar11 = *pbVar16;\n    param_4 = (byte *)(uint)(bVar11 == 0x2d);\n    pbVar16 = pbVar16 + (bVar11 == 0x2b || bVar11 == 0x2d);\n    pbVar6 = (byte *)(uint)(byte)puVar21[*pbVar16];\n    if ((int)pbVar19 <= (int)pbVar6) {\nLAB_000186f8:\n      uVar22 = 0xffffffff;\n      if (local_30 == 0) goto LAB_00018714;\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      puVar15 = puVar26;\n      goto LAB_00018710;\n    }\n    pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[1]];\n    if ((int)pbVar14 < (int)pbVar19) {\n      pbVar16 = pbVar16 + 3;\n      do {\n        pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19;\n        pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]];\n        pbVar16 = pbVar16 + 1;\n      } while ((int)pbVar14 < (int)pbVar19);\n    }\n    local_44 = param_4 + (-(int)param_4 ^ (uint)pbVar6);\n    if (pbVar23 != (byte *)0x0) {\nLAB_00018628:\n      local_44 = local_44 + -((int)pbVar8 - (int)pbVar23);\n    }\n    if (local_44 == (byte *)0x0) goto LAB_000187e0;\n    iVar4 = iVar4 + 2;\n    uVar22 = iVar4 * 8;\n    if (uVar22 < 0x7f01) {\n      local_50 = puVar26 + iVar4 * -8 + 0x18;\n      pbVar14 = puVar26 + iVar4 * -0x10 + 0x18;\n      puVar26 = puVar26 + iVar4 * -0x10;\n    }\n    else {\n      local_50 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      pbVar14 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n    }\n    puVar21 = PTR___gmpn_clz_tab_0009d18c;\n    pbVar3 = local_44;\n    if ((int)local_44 < 0) {\n      pbVar3 = (byte *)-(int)local_44;\n    }\n    *(byte **)local_50 = param_3;\n    if ((int)pbVar3 < 0x10000) {\n      iVar10 = 0x18;\n      if (0xff < (int)pbVar3) {\n        iVar17 = 9;\n        goto LAB_00018870;\n      }\n      uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;\n      if (-1 < (int)uVar22) goto LAB_00018890;\n      if ((int)param_2 < 1) {\n        iVar10 = 0;\n        pbVar19 = (byte *)0x1;\n        iVar17 = 0;\n        pbVar14 = local_50;\n        goto LAB_00018988;\n      }\n      pbVar19 = (byte *)0x1;\n      iVar10 = 0;\n      *(byte **)local_50 = param_3;\n    }\n    else {\n      iVar17 = 0x19;\n      if ((int)pbVar3 < 0x1000000) {\n        iVar17 = 0x11;\n      }\n      iVar10 = 0x10;\n      if ((int)pbVar3 >= 0x1000000) {\n        iVar10 = 8;\n      }\nLAB_00018870:\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e;\nLAB_00018890:\n      iVar10 = 0;\n      pbVar19 = (byte *)0x1;\n      iVar17 = 0;\n      pbVar6 = local_50;\n      while( true ) {\n        pbVar8 = pbVar6;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);\n        iVar10 = iVar10 * 2;\n        pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));\n        if ((int)param_2 < (int)pbVar19) {\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }\n        else {\n          iVar17 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pbVar6 = pbVar14;\n        pbVar14 = pbVar8;\n      }\n      if ((int)param_2 < (int)pbVar19) {\nLAB_00018988:\n        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);\n        pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;\n        pbVar19 = param_2;\n      }\n      pbVar3 = pbVar19 + -1;\n      if (pbVar19 != (byte *)0x0) {\n        uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);\n        if (pbVar3 == (byte *)0x0) {\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }\n        else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }\n      }\n    }\n    pbVar3 = param_2;\n    if ((int)local_44 < 0) {\n      if ((int)local_4c < (int)pbVar19) {\n        if ((uint)((int)(pbVar19 + 1) * 4) < 0x7f01) {\n          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);\n          puVar15 = puVar26 + iVar17 + 0x18;\n          puVar26 = puVar26 + iVar17;\n        }\n        else {\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }\n        iVar17 = ((int)pbVar19 - (int)local_4c) * 4;\n        pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17);\n        if (local_4c != (byte *)0x0) {\n          pbVar16 = local_4c + -1;\n          pbVar8 = pbVar14 + iVar17;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar6 = pbVar8;\n          if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }\n          *(undefined4 *)pbVar8 = uVar12;\n        }\n        local_54 = local_54 - ((int)pbVar19 - (int)local_4c);\n        local_4c = pbVar19;\n        local_3c = pbVar14;\n      }\n      uVar22 = *(uint *)(local_50 + (int)pbVar19 * 4 + -4);\n      if (-1 < (int)uVar22) {\n        if (uVar22 < 0x10000) {\n          iVar17 = 0x20;\n          if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }\n          iVar13 = 9;\n          if (0xff >= uVar22) {\n            iVar13 = 1;\n          }\n        }\n        else {\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }\n        bVar11 = puVar21[uVar22 >> iVar13];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11);\n        iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11);\n        if (iVar17 != 0) {\n          iVar13 = (int)local_4c * 4;\n          local_4c = local_4c + 1;\n          *(int *)(local_3c + iVar13) = iVar17;\n        }\n      }\n      if ((uint)(iVar4 * 4) < 0x7f01) {\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      }\n      iVar17 = (int)local_4c - (int)pbVar19;\n      *(byte **)(puVar26 + 0x14) = pbVar19;\n      *(byte **)(puVar26 + 0x10) = local_50;\n      iVar4 = (*(code *)PTR___gmpn_divrem_0009d0e4)(puVar20,(int)param_2 - iVar17);\n      pbVar14 = (byte *)((local_54 - iVar10) + iVar17 + iVar4);\n      if (iVar4 != 0) {\n        piVar5 = puVar20 + (int)param_2;\n        puVar20 = puVar20 + 1;\n        *piVar5 = iVar4;\n      }\n    }\n    else {\n      pbVar3 = pbVar19 + (int)local_4c;\n      uVar22 = (int)pbVar3 * 4;\n      if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      }\n      if ((int)local_4c < (int)pbVar19) {\n        *(byte **)(puVar26 + 0x10) = local_4c;\n        local_4c = local_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);\n        local_3c = pbVar19;\n      }\n      else {\n        *(byte **)(puVar26 + 0x10) = pbVar19;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);\n        local_3c = local_4c;\n        local_4c = local_50;\n      }\n      pbVar3 = pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0);\n      pbVar14 = pbVar3 + iVar10 + local_54;\n      if ((int)param_2 < (int)pbVar3) {\n        puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);\n        pbVar3 = param_2;\n      }\n    }\n    if (pbVar3 != (byte *)0x0) {\n      pbVar6 = pbVar3 + -1;\n      uVar12 = *puVar20;\n      local_3c = (byte *)param_1[3];\n      pbVar19 = local_3c;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          puVar20 = puVar20 + 1;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *puVar20;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        local_3c = local_3c + (int)pbVar3 * 4 + -4;\n      }\n      *(undefined4 *)local_3c = uVar12;\n    }\n    if (bVar1) {\n      pbVar3 = (byte *)-(int)pbVar3;\n    }\n    param_1[1] = (int)pbVar3;\n    param_1[2] = (int)pbVar14;\n    pbVar14 = local_3c;\n    param_4 = local_4c;\n    param_2 = pbVar3;\n    if (local_30 == 0) {\n      uVar22 = 0;\n      goto LAB_00018714;\n    }\n  }\n  else {\n    local_54 = 0;\n    local_4c = pbVar3;\n    if (pbVar16 != (byte *)0x0) goto LAB_000185a0;\nLAB_000187d0:\n    if (pbVar23 != (byte *)0x0) {\n      local_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }\nLAB_000187e0:\n    if (local_4c != (byte *)0x0) {\n      pbVar6 = local_4c + -1;\n      pbVar14 = (byte *)param_1[3];\n      uVar12 = *(undefined4 *)local_3c;\n      pbVar19 = pbVar14;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;\n      }\n      *(undefined4 *)pbVar14 = uVar12;\n    }\n    if (bVar1) {\n      local_4c = (byte *)-(int)local_4c;\n    }\n    param_1[1] = (int)local_4c;\n    param_1[2] = (int)pbVar3;\n    if (local_30 == 0) goto LAB_000187ac;\n  }\n  (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  uVar22 = 0;\nLAB_00018714:\n  if (local_2c == *(int *)puVar24) {\n    return uVar22;\n  }\n  pcVar27 = __gmpf_set_d;\n  iVar4 = local_2c;\n  puVar24 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  *(byte **)(puVar26 + 8) = pbVar14;\n  *(undefined **)(puVar26 + -0x18) = puVar24 + 0x8c170;\n  *(code **)(puVar26 + -4) = pcVar27;\n  *(byte **)(puVar26 + -8) = param_2;\n  *(byte **)(puVar26 + 0xc) = param_4;\n  uVar22 = *(uint *)(puVar26 + 8) & 0x7ff00000;\n  if (uVar22 == 0x7ff00000) {\n    uVar22 = (**(code **)(puVar24 + 0x8468c))();\n  }\n  else if ((double)CONCAT44(pbVar14,param_4) != 0.0) {\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      *(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4);\n    }\n    else {\n      *(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);\n    }\n    pcVar27 = *(code **)(puVar24 + 0x84254);\n    uVar12 = 0xfffffffd;\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      uVar12 = 3;\n    }\n    *(undefined4 *)(iVar4 + 4) = uVar12;\n    uVar22 = (*pcVar27)(*(undefined4 *)(iVar4 + 0xc));\n    *(uint *)(iVar4 + 8) = uVar22;\n    return uVar22;\n  }\n  *(undefined4 *)(iVar4 + 4) = 0;\n  *(undefined4 *)(iVar4 + 8) = 0;\n  return uVar22;\n}" type_identifier (function_declarator "__gmpf_set_str(int *param_1,byte *param_2,byte *param_3,byte *param_4)" identifier (parameter_list "(int *param_1,byte *param_2,byte *param_3,byte *param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "byte *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "byte *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  ushort uVar2;\n  byte *pbVar3;\n  int iVar4;\n  int *piVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte bVar11;\n  byte *pbVar9;\n  int iVar10;\n  undefined4 uVar12;\n  int iVar13;\n  byte *pbVar14;\n  undefined1 *puVar15;\n  byte *pbVar16;\n  int iVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  undefined4 *puVar20;\n  undefined *puVar21;\n  uint uVar22;\n  byte *pbVar23;\n  undefined *puVar24;\n  undefined1 *puVar25;\n  undefined1 *puVar26;\n  code *pcVar27;\n  undefined1 auStack_88 [8];\n  undefined1 auStack_80 [16];\n  byte abStack_70 [8];\n  int local_54;\n  byte *local_50;\n  byte *local_4c;\n  byte *local_44;\n  byte *local_3c;\n  int local_30;\n  int local_2c;\n  \n  puVar24 = PTR___stack_chk_guard_0009d540;\n  puVar26 = auStack_80;\n  puVar25 = auStack_80;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  pbVar14 = param_3;\n  pbVar3 = (byte *)(*(code *)PTR_nl_langinfo_0009d21c)(0x10000);\n  iVar4 = (*(code *)PTR_strlen_0009d360)(pbVar3);\n  uVar22 = (uint)*param_2;\n  piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0009d0ac)();\n  iVar17 = *piVar5;\n  uVar2 = *(ushort *)(iVar17 + uVar22 * 2);\n  while ((uVar2 & 0x20) != 0) {\n    param_2 = param_2 + 1;\n    uVar22 = (uint)*param_2;\n    uVar2 = *(ushort *)(iVar17 + uVar22 * 2);\n  }\n  bVar1 = uVar22 == 0x2d;\n  if (bVar1) {\n    uVar22 = (uint)param_2[1];\n    param_2 = param_2 + 1;\n  }\n  if (param_3 != (byte *)0x0) {\n    if ((int)param_3 < 0) {\n      param_3 = (byte *)-(int)param_3;\n      pbVar19 = &DAT_0000000a;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }\n    else {\n      pbVar19 = param_3;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }\n    puVar15 = auStack_80;\n    if ((int)param_3 < 0x3f) {\n      puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;\n      if ((int)param_3 <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;\n      goto LAB_00018368;\n    }\nLAB_00018710:\n    puVar26 = puVar15;\n    uVar22 = 0xffffffff;\n    goto LAB_00018714;\n  }\n  param_3 = &DAT_0000000a;\n  pbVar19 = &DAT_0000000a;\nLAB_000183f8:\n  puVar21 = PTR___gmp_digit_value_tab_0009d388;\n  if ((int)param_3 <= (int)(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]) {\nLAB_00018310:\n    pbVar14 = param_2;\n    if (iVar4 != 0) {\n      puVar15 = auStack_80;\n      if (*param_2 == *pbVar3) {\n        pbVar14 = param_2 + iVar4;\n        pbVar6 = param_2;\n        pbVar8 = pbVar3;\n        do {\n          pbVar8 = pbVar8 + 1;\n          pbVar6 = pbVar6 + 1;\n          if (pbVar14 == pbVar6) goto LAB_0001834c;\n          puVar15 = auStack_80;\n        } while (*pbVar6 == *pbVar8);\n      }\n      goto LAB_00018710;\n    }\nLAB_0001834c:\n    uVar22 = 0xffffffff;\n    if ((int)param_3 <= (int)(uint)(byte)puVar21[*pbVar14]) goto LAB_00018714;\n  }\nLAB_00018368:\n  pbVar6 = (byte *)(*(code *)PTR_strlen_0009d360)(param_2);\n  pbVar14 = pbVar6 + -1;\n  if (pbVar14 == (byte *)0x0) {\n    puVar25 = auStack_88;\n    local_30 = 0;\n    pbVar16 = (byte *)0x0;\n    pbVar6 = abStack_70;\n    pbVar14 = (byte *)0x1;\nLAB_00018460:\n    pbVar18 = (byte *)0x0;\n    pbVar8 = pbVar6;\n    pbVar23 = (byte *)0x0;\n    do {\n      while( true ) {\n        bVar11 = *param_2;\n        puVar26 = puVar25;\n        if ((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pbVar18 = pbVar18 + 1;\n        param_2 = param_2 + 1;\n        if (pbVar14 <= pbVar18) goto LAB_00018500;\n      }\n      if (iVar4 != 0) {\n        if (*pbVar3 == bVar11) {\n          pbVar7 = param_2;\n          pbVar9 = pbVar3;\n          do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);\n        }\n        if ((int)(uint)(byte)puVar21[bVar11] < (int)param_3) {\n          *pbVar8 = puVar21[bVar11];\n          pbVar8 = pbVar8 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }\nLAB_000184e0:\n      if (pbVar23 != (byte *)0x0) goto LAB_000186f8;\n      pbVar18 = pbVar18 + iVar4;\n      param_2 = param_2 + iVar4;\n      pbVar23 = pbVar8;\n    } while (pbVar18 < pbVar14);\nLAB_00018500:\n    pbVar14 = pbVar8 + -(int)pbVar6;\n    iVar4 = *param_1;\n    uVar22 = (((uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5) + 2) * 4;\n    param_2 = (byte *)(iVar4 + 1);\n    if (uVar22 < 0x7f01) goto LAB_00018544;\n    local_3c = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }\n  else {\n    bVar11 = param_2[(int)pbVar14];\n    if (bVar11 == 0x40) {\n      pbVar16 = param_2 + (int)pbVar6;\n      pbVar8 = pbVar6;\n    }\n    else {\n      pbVar8 = pbVar6 + -2;\n      pbVar23 = pbVar14;\n      if ((int)param_3 < 0xb) {\n        do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);\nLAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;\n        pbVar8 = pbVar23;\n      }\n      else {\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }\n    }\nLAB_0001843c:\n    local_30 = 0;\n    if ((byte *)0x7f00 < pbVar8) {\n      pbVar6 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      iVar17 = *piVar5;\n      goto LAB_00018460;\n    }\n    iVar10 = -((uint)(pbVar8 + 7) & 0xfffffff8);\n    puVar25 = auStack_80 + iVar10;\n    puVar26 = auStack_80 + iVar10;\n    pbVar6 = &stack0xffffff98 + iVar10;\n    if (pbVar14 != (byte *)0x0) goto LAB_00018460;\n    pbVar23 = (byte *)0x0;\n    uVar22 = 8;\n    iVar4 = *param_1;\n    param_2 = (byte *)(iVar4 + 1);\n    pbVar8 = pbVar6;\nLAB_00018544:\n    iVar17 = -(uVar22 + 7 & 0xfffffff8);\n    local_3c = puVar26 + iVar17 + 0x18;\n    puVar26 = puVar26 + iVar17;\n  }\n  param_4 = param_3;\n  pbVar3 = (byte *)(*(code *)PTR___gmpn_set_str_0009d5b4)(local_3c,pbVar6);\n  if (pbVar3 == (byte *)0x0) {\n    param_1[1] = 0;\n    param_1[2] = 0;\n    if (local_30 != 0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      uVar22 = 0;\n      goto LAB_00018714;\n    }\nLAB_000187ac:\n    uVar22 = 0;\n    goto LAB_00018714;\n  }\n  local_54 = (int)pbVar3 - (int)param_2;\n  if ((int)param_2 < (int)pbVar3) {\n    local_3c = local_3c + local_54 * 4;\n    local_4c = param_2;\n    if (pbVar16 == (byte *)0x0) goto LAB_000187d0;\nLAB_000185a0:\n    bVar11 = *pbVar16;\n    param_4 = (byte *)(uint)(bVar11 == 0x2d);\n    pbVar16 = pbVar16 + (bVar11 == 0x2b || bVar11 == 0x2d);\n    pbVar6 = (byte *)(uint)(byte)puVar21[*pbVar16];\n    if ((int)pbVar19 <= (int)pbVar6) {\nLAB_000186f8:\n      uVar22 = 0xffffffff;\n      if (local_30 == 0) goto LAB_00018714;\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      puVar15 = puVar26;\n      goto LAB_00018710;\n    }\n    pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[1]];\n    if ((int)pbVar14 < (int)pbVar19) {\n      pbVar16 = pbVar16 + 3;\n      do {\n        pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19;\n        pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]];\n        pbVar16 = pbVar16 + 1;\n      } while ((int)pbVar14 < (int)pbVar19);\n    }\n    local_44 = param_4 + (-(int)param_4 ^ (uint)pbVar6);\n    if (pbVar23 != (byte *)0x0) {\nLAB_00018628:\n      local_44 = local_44 + -((int)pbVar8 - (int)pbVar23);\n    }\n    if (local_44 == (byte *)0x0) goto LAB_000187e0;\n    iVar4 = iVar4 + 2;\n    uVar22 = iVar4 * 8;\n    if (uVar22 < 0x7f01) {\n      local_50 = puVar26 + iVar4 * -8 + 0x18;\n      pbVar14 = puVar26 + iVar4 * -0x10 + 0x18;\n      puVar26 = puVar26 + iVar4 * -0x10;\n    }\n    else {\n      local_50 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      pbVar14 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n    }\n    puVar21 = PTR___gmpn_clz_tab_0009d18c;\n    pbVar3 = local_44;\n    if ((int)local_44 < 0) {\n      pbVar3 = (byte *)-(int)local_44;\n    }\n    *(byte **)local_50 = param_3;\n    if ((int)pbVar3 < 0x10000) {\n      iVar10 = 0x18;\n      if (0xff < (int)pbVar3) {\n        iVar17 = 9;\n        goto LAB_00018870;\n      }\n      uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;\n      if (-1 < (int)uVar22) goto LAB_00018890;\n      if ((int)param_2 < 1) {\n        iVar10 = 0;\n        pbVar19 = (byte *)0x1;\n        iVar17 = 0;\n        pbVar14 = local_50;\n        goto LAB_00018988;\n      }\n      pbVar19 = (byte *)0x1;\n      iVar10 = 0;\n      *(byte **)local_50 = param_3;\n    }\n    else {\n      iVar17 = 0x19;\n      if ((int)pbVar3 < 0x1000000) {\n        iVar17 = 0x11;\n      }\n      iVar10 = 0x10;\n      if ((int)pbVar3 >= 0x1000000) {\n        iVar10 = 8;\n      }\nLAB_00018870:\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e;\nLAB_00018890:\n      iVar10 = 0;\n      pbVar19 = (byte *)0x1;\n      iVar17 = 0;\n      pbVar6 = local_50;\n      while( true ) {\n        pbVar8 = pbVar6;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);\n        iVar10 = iVar10 * 2;\n        pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));\n        if ((int)param_2 < (int)pbVar19) {\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }\n        else {\n          iVar17 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pbVar6 = pbVar14;\n        pbVar14 = pbVar8;\n      }\n      if ((int)param_2 < (int)pbVar19) {\nLAB_00018988:\n        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);\n        pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;\n        pbVar19 = param_2;\n      }\n      pbVar3 = pbVar19 + -1;\n      if (pbVar19 != (byte *)0x0) {\n        uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);\n        if (pbVar3 == (byte *)0x0) {\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }\n        else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }\n      }\n    }\n    pbVar3 = param_2;\n    if ((int)local_44 < 0) {\n      if ((int)local_4c < (int)pbVar19) {\n        if ((uint)((int)(pbVar19 + 1) * 4) < 0x7f01) {\n          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);\n          puVar15 = puVar26 + iVar17 + 0x18;\n          puVar26 = puVar26 + iVar17;\n        }\n        else {\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }\n        iVar17 = ((int)pbVar19 - (int)local_4c) * 4;\n        pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17);\n        if (local_4c != (byte *)0x0) {\n          pbVar16 = local_4c + -1;\n          pbVar8 = pbVar14 + iVar17;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar6 = pbVar8;\n          if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }\n          *(undefined4 *)pbVar8 = uVar12;\n        }\n        local_54 = local_54 - ((int)pbVar19 - (int)local_4c);\n        local_4c = pbVar19;\n        local_3c = pbVar14;\n      }\n      uVar22 = *(uint *)(local_50 + (int)pbVar19 * 4 + -4);\n      if (-1 < (int)uVar22) {\n        if (uVar22 < 0x10000) {\n          iVar17 = 0x20;\n          if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }\n          iVar13 = 9;\n          if (0xff >= uVar22) {\n            iVar13 = 1;\n          }\n        }\n        else {\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }\n        bVar11 = puVar21[uVar22 >> iVar13];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11);\n        iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11);\n        if (iVar17 != 0) {\n          iVar13 = (int)local_4c * 4;\n          local_4c = local_4c + 1;\n          *(int *)(local_3c + iVar13) = iVar17;\n        }\n      }\n      if ((uint)(iVar4 * 4) < 0x7f01) {\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      }\n      iVar17 = (int)local_4c - (int)pbVar19;\n      *(byte **)(puVar26 + 0x14) = pbVar19;\n      *(byte **)(puVar26 + 0x10) = local_50;\n      iVar4 = (*(code *)PTR___gmpn_divrem_0009d0e4)(puVar20,(int)param_2 - iVar17);\n      pbVar14 = (byte *)((local_54 - iVar10) + iVar17 + iVar4);\n      if (iVar4 != 0) {\n        piVar5 = puVar20 + (int)param_2;\n        puVar20 = puVar20 + 1;\n        *piVar5 = iVar4;\n      }\n    }\n    else {\n      pbVar3 = pbVar19 + (int)local_4c;\n      uVar22 = (int)pbVar3 * 4;\n      if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      }\n      if ((int)local_4c < (int)pbVar19) {\n        *(byte **)(puVar26 + 0x10) = local_4c;\n        local_4c = local_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);\n        local_3c = pbVar19;\n      }\n      else {\n        *(byte **)(puVar26 + 0x10) = pbVar19;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);\n        local_3c = local_4c;\n        local_4c = local_50;\n      }\n      pbVar3 = pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0);\n      pbVar14 = pbVar3 + iVar10 + local_54;\n      if ((int)param_2 < (int)pbVar3) {\n        puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);\n        pbVar3 = param_2;\n      }\n    }\n    if (pbVar3 != (byte *)0x0) {\n      pbVar6 = pbVar3 + -1;\n      uVar12 = *puVar20;\n      local_3c = (byte *)param_1[3];\n      pbVar19 = local_3c;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          puVar20 = puVar20 + 1;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *puVar20;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        local_3c = local_3c + (int)pbVar3 * 4 + -4;\n      }\n      *(undefined4 *)local_3c = uVar12;\n    }\n    if (bVar1) {\n      pbVar3 = (byte *)-(int)pbVar3;\n    }\n    param_1[1] = (int)pbVar3;\n    param_1[2] = (int)pbVar14;\n    pbVar14 = local_3c;\n    param_4 = local_4c;\n    param_2 = pbVar3;\n    if (local_30 == 0) {\n      uVar22 = 0;\n      goto LAB_00018714;\n    }\n  }\n  else {\n    local_54 = 0;\n    local_4c = pbVar3;\n    if (pbVar16 != (byte *)0x0) goto LAB_000185a0;\nLAB_000187d0:\n    if (pbVar23 != (byte *)0x0) {\n      local_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }\nLAB_000187e0:\n    if (local_4c != (byte *)0x0) {\n      pbVar6 = local_4c + -1;\n      pbVar14 = (byte *)param_1[3];\n      uVar12 = *(undefined4 *)local_3c;\n      pbVar19 = pbVar14;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;\n      }\n      *(undefined4 *)pbVar14 = uVar12;\n    }\n    if (bVar1) {\n      local_4c = (byte *)-(int)local_4c;\n    }\n    param_1[1] = (int)local_4c;\n    param_1[2] = (int)pbVar3;\n    if (local_30 == 0) goto LAB_000187ac;\n  }\n  (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  uVar22 = 0;\nLAB_00018714:\n  if (local_2c == *(int *)puVar24) {\n    return uVar22;\n  }\n  pcVar27 = __gmpf_set_d;\n  iVar4 = local_2c;\n  puVar24 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  *(byte **)(puVar26 + 8) = pbVar14;\n  *(undefined **)(puVar26 + -0x18) = puVar24 + 0x8c170;\n  *(code **)(puVar26 + -4) = pcVar27;\n  *(byte **)(puVar26 + -8) = param_2;\n  *(byte **)(puVar26 + 0xc) = param_4;\n  uVar22 = *(uint *)(puVar26 + 8) & 0x7ff00000;\n  if (uVar22 == 0x7ff00000) {\n    uVar22 = (**(code **)(puVar24 + 0x8468c))();\n  }\n  else if ((double)CONCAT44(pbVar14,param_4) != 0.0) {\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      *(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4);\n    }\n    else {\n      *(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);\n    }\n    pcVar27 = *(code **)(puVar24 + 0x84254);\n    uVar12 = 0xfffffffd;\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      uVar12 = 3;\n    }\n    *(undefined4 *)(iVar4 + 4) = uVar12;\n    uVar22 = (*pcVar27)(*(undefined4 *)(iVar4 + 0xc));\n    *(uint *)(iVar4 + 8) = uVar22;\n    return uVar22;\n  }\n  *(undefined4 *)(iVar4 + 4) = 0;\n  *(undefined4 *)(iVar4 + 8) = 0;\n  return uVar22;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "byte bVar11;" type_identifier identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "undefined1 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "undefined4 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "byte *pbVar23;" type_identifier (pointer_declarator "*pbVar23" * identifier) ;) (declaration "undefined *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "undefined1 *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "undefined1 *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "code *pcVar27;" type_identifier (pointer_declarator "*pcVar27" * identifier) ;) (declaration "undefined1 auStack_88 [8];" type_identifier (array_declarator "auStack_88 [8]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_80 [16];" type_identifier (array_declarator "auStack_80 [16]" identifier [ number_literal ]) ;) (declaration "byte abStack_70 [8];" type_identifier (array_declarator "abStack_70 [8]" identifier [ number_literal ]) ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "byte *local_50;" type_identifier (pointer_declarator "*local_50" * identifier) ;) (declaration "byte *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "byte *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "byte *local_3c;" type_identifier (pointer_declarator "*local_3c" * identifier) ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar24 = PTR___stack_chk_guard_0009d540;" (assignment_expression "puVar24 = PTR___stack_chk_guard_0009d540" identifier = identifier) ;) (expression_statement "puVar26 = auStack_80;" (assignment_expression "puVar26 = auStack_80" identifier = identifier) ;) (expression_statement "puVar25 = auStack_80;" (assignment_expression "puVar25 = auStack_80" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0009d540;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0009d540" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0009d540" * (cast_expression "(int *)PTR___stack_chk_guard_0009d540" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar14 = param_3;" (assignment_expression "pbVar14 = param_3" identifier = identifier) ;) (expression_statement "pbVar3 = (byte *)(*(code *)PTR_nl_langinfo_0009d21c)(0x10000);" (assignment_expression "pbVar3 = (byte *)(*(code *)PTR_nl_langinfo_0009d21c)(0x10000)" identifier = (cast_expression "(byte *)(*(code *)PTR_nl_langinfo_0009d21c)(0x10000)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_nl_langinfo_0009d21c)(0x10000)" (parenthesized_expression "(*(code *)PTR_nl_langinfo_0009d21c)" ( (pointer_expression "*(code *)PTR_nl_langinfo_0009d21c" * (cast_expression "(code *)PTR_nl_langinfo_0009d21c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x10000)" ( number_literal ))))) ;) (expression_statement "iVar4 = (*(code *)PTR_strlen_0009d360)(pbVar3);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_0009d360)(pbVar3)" identifier = (call_expression "(*(code *)PTR_strlen_0009d360)(pbVar3)" (parenthesized_expression "(*(code *)PTR_strlen_0009d360)" ( (pointer_expression "*(code *)PTR_strlen_0009d360" * (cast_expression "(code *)PTR_strlen_0009d360" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar3)" ( identifier )))) ;) (expression_statement "uVar22 = (uint)*param_2;" (assignment_expression "uVar22 = (uint)*param_2" identifier = (binary_expression "(uint)*param_2" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0009d0ac)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0009d0ac)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_0009d0ac)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0009d0ac)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0009d0ac)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0009d0ac" * (cast_expression "(code *)PTR___ctype_b_loc_0009d0ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar17 = *piVar5;" (assignment_expression "iVar17 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "uVar2 = *(ushort *)(iVar17 + uVar22 * 2);" (assignment_expression "uVar2 = *(ushort *)(iVar17 + uVar22 * 2)" identifier = (pointer_expression "*(ushort *)(iVar17 + uVar22 * 2)" * (cast_expression "(ushort *)(iVar17 + uVar22 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + uVar22 * 2)" ( (binary_expression "iVar17 + uVar22 * 2" identifier + (binary_expression "uVar22 * 2" identifier * number_literal)) ))))) ;) (while_statement "while ((uVar2 & 0x20) != 0) {\n    param_2 = param_2 + 1;\n    uVar22 = (uint)*param_2;\n    uVar2 = *(ushort *)(iVar17 + uVar22 * 2);\n  }" while (parenthesized_expression "((uVar2 & 0x20) != 0)" ( (binary_expression "(uVar2 & 0x20) != 0" (parenthesized_expression "(uVar2 & 0x20)" ( (binary_expression "uVar2 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    param_2 = param_2 + 1;\n    uVar22 = (uint)*param_2;\n    uVar2 = *(ushort *)(iVar17 + uVar22 * 2);\n  }" { (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "uVar22 = (uint)*param_2;" (assignment_expression "uVar22 = (uint)*param_2" identifier = (binary_expression "(uint)*param_2" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "uVar2 = *(ushort *)(iVar17 + uVar22 * 2);" (assignment_expression "uVar2 = *(ushort *)(iVar17 + uVar22 * 2)" identifier = (pointer_expression "*(ushort *)(iVar17 + uVar22 * 2)" * (cast_expression "(ushort *)(iVar17 + uVar22 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + uVar22 * 2)" ( (binary_expression "iVar17 + uVar22 * 2" identifier + (binary_expression "uVar22 * 2" identifier * number_literal)) ))))) ;) })) (expression_statement "bVar1 = uVar22 == 0x2d;" (assignment_expression "bVar1 = uVar22 == 0x2d" identifier = (binary_expression "uVar22 == 0x2d" identifier == number_literal)) ;) (if_statement "if (bVar1) {\n    uVar22 = (uint)param_2[1];\n    param_2 = param_2 + 1;\n  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n    uVar22 = (uint)param_2[1];\n    param_2 = param_2 + 1;\n  }" { (expression_statement "uVar22 = (uint)param_2[1];" (assignment_expression "uVar22 = (uint)param_2[1]" identifier = (cast_expression "(uint)param_2[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[1]" identifier [ number_literal ]))) ;) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) })) (if_statement "if (param_3 != (byte *)0x0) {\n    if ((int)param_3 < 0) {\n      param_3 = (byte *)-(int)param_3;\n      pbVar19 = &DAT_0000000a;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }\n    else {\n      pbVar19 = param_3;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }\n    puVar15 = auStack_80;\n    if ((int)param_3 < 0x3f) {\n      puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;\n      if ((int)param_3 <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;\n      goto LAB_00018368;\n    }\nLAB_00018710:\n    puVar26 = puVar15;\n    uVar22 = 0xffffffff;\n    goto LAB_00018714;\n  }" if (parenthesized_expression "(param_3 != (byte *)0x0)" ( (binary_expression "param_3 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if ((int)param_3 < 0) {\n      param_3 = (byte *)-(int)param_3;\n      pbVar19 = &DAT_0000000a;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }\n    else {\n      pbVar19 = param_3;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }\n    puVar15 = auStack_80;\n    if ((int)param_3 < 0x3f) {\n      puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;\n      if ((int)param_3 <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;\n      goto LAB_00018368;\n    }\nLAB_00018710:\n    puVar26 = puVar15;\n    uVar22 = 0xffffffff;\n    goto LAB_00018714;\n  }" { (if_statement "if ((int)param_3 < 0) {\n      param_3 = (byte *)-(int)param_3;\n      pbVar19 = &DAT_0000000a;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }\n    else {\n      pbVar19 = param_3;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }" if (parenthesized_expression "((int)param_3 < 0)" ( (binary_expression "(int)param_3 < 0" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      param_3 = (byte *)-(int)param_3;\n      pbVar19 = &DAT_0000000a;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }" { (expression_statement "param_3 = (byte *)-(int)param_3;" (assignment_expression "param_3 = (byte *)-(int)param_3" identifier = (cast_expression "(byte *)-(int)param_3" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)param_3" - (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "pbVar19 = &DAT_0000000a;" (assignment_expression "pbVar19 = &DAT_0000000a" identifier = (pointer_expression "&DAT_0000000a" & identifier)) ;) (if_statement "if ((int)param_3 < 0x25) goto LAB_000183f8;" if (parenthesized_expression "((int)param_3 < 0x25)" ( (binary_expression "(int)param_3 < 0x25" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_000183f8;" goto statement_identifier ;)) }) (else_clause "else {\n      pbVar19 = param_3;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }" else (compound_statement "{\n      pbVar19 = param_3;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }" { (expression_statement "pbVar19 = param_3;" (assignment_expression "pbVar19 = param_3" identifier = identifier) ;) (if_statement "if ((int)param_3 < 0x25) goto LAB_000183f8;" if (parenthesized_expression "((int)param_3 < 0x25)" ( (binary_expression "(int)param_3 < 0x25" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_000183f8;" goto statement_identifier ;)) }))) (expression_statement "puVar15 = auStack_80;" (assignment_expression "puVar15 = auStack_80" identifier = identifier) ;) (if_statement "if ((int)param_3 < 0x3f) {\n      puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;\n      if ((int)param_3 <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;\n      goto LAB_00018368;\n    }" if (parenthesized_expression "((int)param_3 < 0x3f)" ( (binary_expression "(int)param_3 < 0x3f" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;\n      if ((int)param_3 <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;\n      goto LAB_00018368;\n    }" { (expression_statement "puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;" (assignment_expression "puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0" identifier = (binary_expression "PTR___gmp_digit_value_tab_0009d388 + 0xd0" identifier + number_literal)) ;) (if_statement "if ((int)param_3 <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;" if (parenthesized_expression "((int)param_3 <= (int)(uint)(byte)puVar21[uVar22])" ( (binary_expression "(int)param_3 <= (int)(uint)(byte)puVar21[uVar22]" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(uint)(byte)puVar21[uVar22]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)(byte)puVar21[uVar22]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar21[uVar22]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar21[uVar22]" identifier [ identifier ]))))) )) (goto_statement "goto LAB_00018310;" goto statement_identifier ;)) (goto_statement "goto LAB_00018368;" goto statement_identifier ;) })) (labeled_statement "LAB_00018710:\n    puVar26 = puVar15;" statement_identifier : (expression_statement "puVar26 = puVar15;" (assignment_expression "puVar26 = puVar15" identifier = identifier) ;)) (expression_statement "uVar22 = 0xffffffff;" (assignment_expression "uVar22 = 0xffffffff" identifier = number_literal) ;) (goto_statement "goto LAB_00018714;" goto statement_identifier ;) })) (expression_statement "param_3 = &DAT_0000000a;" (assignment_expression "param_3 = &DAT_0000000a" identifier = (pointer_expression "&DAT_0000000a" & identifier)) ;) (expression_statement "pbVar19 = &DAT_0000000a;" (assignment_expression "pbVar19 = &DAT_0000000a" identifier = (pointer_expression "&DAT_0000000a" & identifier)) ;) (labeled_statement "LAB_000183f8:\n  puVar21 = PTR___gmp_digit_value_tab_0009d388;" statement_identifier : (expression_statement "puVar21 = PTR___gmp_digit_value_tab_0009d388;" (assignment_expression "puVar21 = PTR___gmp_digit_value_tab_0009d388" identifier = identifier) ;)) (if_statement "if ((int)param_3 <= (int)(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]) {\nLAB_00018310:\n    pbVar14 = param_2;\n    if (iVar4 != 0) {\n      puVar15 = auStack_80;\n      if (*param_2 == *pbVar3) {\n        pbVar14 = param_2 + iVar4;\n        pbVar6 = param_2;\n        pbVar8 = pbVar3;\n        do {\n          pbVar8 = pbVar8 + 1;\n          pbVar6 = pbVar6 + 1;\n          if (pbVar14 == pbVar6) goto LAB_0001834c;\n          puVar15 = auStack_80;\n        } while (*pbVar6 == *pbVar8);\n      }\n      goto LAB_00018710;\n    }\nLAB_0001834c:\n    uVar22 = 0xffffffff;\n    if ((int)param_3 <= (int)(uint)(byte)puVar21[*pbVar14]) goto LAB_00018714;\n  }" if (parenthesized_expression "((int)param_3 <= (int)(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22])" ( (binary_expression "(int)param_3 <= (int)(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR___gmp_digit_value_tab_0009d388[uVar22]" identifier [ identifier ]))))) )) (compound_statement "{\nLAB_00018310:\n    pbVar14 = param_2;\n    if (iVar4 != 0) {\n      puVar15 = auStack_80;\n      if (*param_2 == *pbVar3) {\n        pbVar14 = param_2 + iVar4;\n        pbVar6 = param_2;\n        pbVar8 = pbVar3;\n        do {\n          pbVar8 = pbVar8 + 1;\n          pbVar6 = pbVar6 + 1;\n          if (pbVar14 == pbVar6) goto LAB_0001834c;\n          puVar15 = auStack_80;\n        } while (*pbVar6 == *pbVar8);\n      }\n      goto LAB_00018710;\n    }\nLAB_0001834c:\n    uVar22 = 0xffffffff;\n    if ((int)param_3 <= (int)(uint)(byte)puVar21[*pbVar14]) goto LAB_00018714;\n  }" { (labeled_statement "LAB_00018310:\n    pbVar14 = param_2;" statement_identifier : (expression_statement "pbVar14 = param_2;" (assignment_expression "pbVar14 = param_2" identifier = identifier) ;)) (if_statement "if (iVar4 != 0) {\n      puVar15 = auStack_80;\n      if (*param_2 == *pbVar3) {\n        pbVar14 = param_2 + iVar4;\n        pbVar6 = param_2;\n        pbVar8 = pbVar3;\n        do {\n          pbVar8 = pbVar8 + 1;\n          pbVar6 = pbVar6 + 1;\n          if (pbVar14 == pbVar6) goto LAB_0001834c;\n          puVar15 = auStack_80;\n        } while (*pbVar6 == *pbVar8);\n      }\n      goto LAB_00018710;\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      puVar15 = auStack_80;\n      if (*param_2 == *pbVar3) {\n        pbVar14 = param_2 + iVar4;\n        pbVar6 = param_2;\n        pbVar8 = pbVar3;\n        do {\n          pbVar8 = pbVar8 + 1;\n          pbVar6 = pbVar6 + 1;\n          if (pbVar14 == pbVar6) goto LAB_0001834c;\n          puVar15 = auStack_80;\n        } while (*pbVar6 == *pbVar8);\n      }\n      goto LAB_00018710;\n    }" { (expression_statement "puVar15 = auStack_80;" (assignment_expression "puVar15 = auStack_80" identifier = identifier) ;) (if_statement "if (*param_2 == *pbVar3) {\n        pbVar14 = param_2 + iVar4;\n        pbVar6 = param_2;\n        pbVar8 = pbVar3;\n        do {\n          pbVar8 = pbVar8 + 1;\n          pbVar6 = pbVar6 + 1;\n          if (pbVar14 == pbVar6) goto LAB_0001834c;\n          puVar15 = auStack_80;\n        } while (*pbVar6 == *pbVar8);\n      }" if (parenthesized_expression "(*param_2 == *pbVar3)" ( (binary_expression "*param_2 == *pbVar3" (pointer_expression "*param_2" * identifier) == (pointer_expression "*pbVar3" * identifier)) )) (compound_statement "{\n        pbVar14 = param_2 + iVar4;\n        pbVar6 = param_2;\n        pbVar8 = pbVar3;\n        do {\n          pbVar8 = pbVar8 + 1;\n          pbVar6 = pbVar6 + 1;\n          if (pbVar14 == pbVar6) goto LAB_0001834c;\n          puVar15 = auStack_80;\n        } while (*pbVar6 == *pbVar8);\n      }" { (expression_statement "pbVar14 = param_2 + iVar4;" (assignment_expression "pbVar14 = param_2 + iVar4" identifier = (binary_expression "param_2 + iVar4" identifier + identifier)) ;) (expression_statement "pbVar6 = param_2;" (assignment_expression "pbVar6 = param_2" identifier = identifier) ;) (expression_statement "pbVar8 = pbVar3;" (assignment_expression "pbVar8 = pbVar3" identifier = identifier) ;) (do_statement "do {\n          pbVar8 = pbVar8 + 1;\n          pbVar6 = pbVar6 + 1;\n          if (pbVar14 == pbVar6) goto LAB_0001834c;\n          puVar15 = auStack_80;\n        } while (*pbVar6 == *pbVar8);" do (compound_statement "{\n          pbVar8 = pbVar8 + 1;\n          pbVar6 = pbVar6 + 1;\n          if (pbVar14 == pbVar6) goto LAB_0001834c;\n          puVar15 = auStack_80;\n        }" { (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" identifier = (binary_expression "pbVar6 + 1" identifier + number_literal)) ;) (if_statement "if (pbVar14 == pbVar6) goto LAB_0001834c;" if (parenthesized_expression "(pbVar14 == pbVar6)" ( (binary_expression "pbVar14 == pbVar6" identifier == identifier) )) (goto_statement "goto LAB_0001834c;" goto statement_identifier ;)) (expression_statement "puVar15 = auStack_80;" (assignment_expression "puVar15 = auStack_80" identifier = identifier) ;) }) while (parenthesized_expression "(*pbVar6 == *pbVar8)" ( (binary_expression "*pbVar6 == *pbVar8" (pointer_expression "*pbVar6" * identifier) == (pointer_expression "*pbVar8" * identifier)) )) ;) })) (goto_statement "goto LAB_00018710;" goto statement_identifier ;) })) (labeled_statement "LAB_0001834c:\n    uVar22 = 0xffffffff;" statement_identifier : (expression_statement "uVar22 = 0xffffffff;" (assignment_expression "uVar22 = 0xffffffff" identifier = number_literal) ;)) (if_statement "if ((int)param_3 <= (int)(uint)(byte)puVar21[*pbVar14]) goto LAB_00018714;" if (parenthesized_expression "((int)param_3 <= (int)(uint)(byte)puVar21[*pbVar14])" ( (binary_expression "(int)param_3 <= (int)(uint)(byte)puVar21[*pbVar14]" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(uint)(byte)puVar21[*pbVar14]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)(byte)puVar21[*pbVar14]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar21[*pbVar14]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar21[*pbVar14]" identifier [ (pointer_expression "*pbVar14" * identifier) ]))))) )) (goto_statement "goto LAB_00018714;" goto statement_identifier ;)) })) (labeled_statement "LAB_00018368:\n  pbVar6 = (byte *)(*(code *)PTR_strlen_0009d360)(param_2);" statement_identifier : (expression_statement "pbVar6 = (byte *)(*(code *)PTR_strlen_0009d360)(param_2);" (assignment_expression "pbVar6 = (byte *)(*(code *)PTR_strlen_0009d360)(param_2)" identifier = (cast_expression "(byte *)(*(code *)PTR_strlen_0009d360)(param_2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strlen_0009d360)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_0009d360)" ( (pointer_expression "*(code *)PTR_strlen_0009d360" * (cast_expression "(code *)PTR_strlen_0009d360" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier ))))) ;)) (expression_statement "pbVar14 = pbVar6 + -1;" (assignment_expression "pbVar14 = pbVar6 + -1" identifier = (binary_expression "pbVar6 + -1" identifier + number_literal)) ;) (if_statement "if (pbVar14 == (byte *)0x0) {\n    puVar25 = auStack_88;\n    local_30 = 0;\n    pbVar16 = (byte *)0x0;\n    pbVar6 = abStack_70;\n    pbVar14 = (byte *)0x1;\nLAB_00018460:\n    pbVar18 = (byte *)0x0;\n    pbVar8 = pbVar6;\n    pbVar23 = (byte *)0x0;\n    do {\n      while( true ) {\n        bVar11 = *param_2;\n        puVar26 = puVar25;\n        if ((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pbVar18 = pbVar18 + 1;\n        param_2 = param_2 + 1;\n        if (pbVar14 <= pbVar18) goto LAB_00018500;\n      }\n      if (iVar4 != 0) {\n        if (*pbVar3 == bVar11) {\n          pbVar7 = param_2;\n          pbVar9 = pbVar3;\n          do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);\n        }\n        if ((int)(uint)(byte)puVar21[bVar11] < (int)param_3) {\n          *pbVar8 = puVar21[bVar11];\n          pbVar8 = pbVar8 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }\nLAB_000184e0:\n      if (pbVar23 != (byte *)0x0) goto LAB_000186f8;\n      pbVar18 = pbVar18 + iVar4;\n      param_2 = param_2 + iVar4;\n      pbVar23 = pbVar8;\n    } while (pbVar18 < pbVar14);\nLAB_00018500:\n    pbVar14 = pbVar8 + -(int)pbVar6;\n    iVar4 = *param_1;\n    uVar22 = (((uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5) + 2) * 4;\n    param_2 = (byte *)(iVar4 + 1);\n    if (uVar22 < 0x7f01) goto LAB_00018544;\n    local_3c = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }\n  else {\n    bVar11 = param_2[(int)pbVar14];\n    if (bVar11 == 0x40) {\n      pbVar16 = param_2 + (int)pbVar6;\n      pbVar8 = pbVar6;\n    }\n    else {\n      pbVar8 = pbVar6 + -2;\n      pbVar23 = pbVar14;\n      if ((int)param_3 < 0xb) {\n        do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);\nLAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;\n        pbVar8 = pbVar23;\n      }\n      else {\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }\n    }\nLAB_0001843c:\n    local_30 = 0;\n    if ((byte *)0x7f00 < pbVar8) {\n      pbVar6 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      iVar17 = *piVar5;\n      goto LAB_00018460;\n    }\n    iVar10 = -((uint)(pbVar8 + 7) & 0xfffffff8);\n    puVar25 = auStack_80 + iVar10;\n    puVar26 = auStack_80 + iVar10;\n    pbVar6 = &stack0xffffff98 + iVar10;\n    if (pbVar14 != (byte *)0x0) goto LAB_00018460;\n    pbVar23 = (byte *)0x0;\n    uVar22 = 8;\n    iVar4 = *param_1;\n    param_2 = (byte *)(iVar4 + 1);\n    pbVar8 = pbVar6;\nLAB_00018544:\n    iVar17 = -(uVar22 + 7 & 0xfffffff8);\n    local_3c = puVar26 + iVar17 + 0x18;\n    puVar26 = puVar26 + iVar17;\n  }" if (parenthesized_expression "(pbVar14 == (byte *)0x0)" ( (binary_expression "pbVar14 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar25 = auStack_88;\n    local_30 = 0;\n    pbVar16 = (byte *)0x0;\n    pbVar6 = abStack_70;\n    pbVar14 = (byte *)0x1;\nLAB_00018460:\n    pbVar18 = (byte *)0x0;\n    pbVar8 = pbVar6;\n    pbVar23 = (byte *)0x0;\n    do {\n      while( true ) {\n        bVar11 = *param_2;\n        puVar26 = puVar25;\n        if ((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pbVar18 = pbVar18 + 1;\n        param_2 = param_2 + 1;\n        if (pbVar14 <= pbVar18) goto LAB_00018500;\n      }\n      if (iVar4 != 0) {\n        if (*pbVar3 == bVar11) {\n          pbVar7 = param_2;\n          pbVar9 = pbVar3;\n          do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);\n        }\n        if ((int)(uint)(byte)puVar21[bVar11] < (int)param_3) {\n          *pbVar8 = puVar21[bVar11];\n          pbVar8 = pbVar8 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }\nLAB_000184e0:\n      if (pbVar23 != (byte *)0x0) goto LAB_000186f8;\n      pbVar18 = pbVar18 + iVar4;\n      param_2 = param_2 + iVar4;\n      pbVar23 = pbVar8;\n    } while (pbVar18 < pbVar14);\nLAB_00018500:\n    pbVar14 = pbVar8 + -(int)pbVar6;\n    iVar4 = *param_1;\n    uVar22 = (((uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5) + 2) * 4;\n    param_2 = (byte *)(iVar4 + 1);\n    if (uVar22 < 0x7f01) goto LAB_00018544;\n    local_3c = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }" { (expression_statement "puVar25 = auStack_88;" (assignment_expression "puVar25 = auStack_88" identifier = identifier) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "pbVar16 = (byte *)0x0;" (assignment_expression "pbVar16 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar6 = abStack_70;" (assignment_expression "pbVar6 = abStack_70" identifier = identifier) ;) (expression_statement "pbVar14 = (byte *)0x1;" (assignment_expression "pbVar14 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00018460:\n    pbVar18 = (byte *)0x0;" statement_identifier : (expression_statement "pbVar18 = (byte *)0x0;" (assignment_expression "pbVar18 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pbVar8 = pbVar6;" (assignment_expression "pbVar8 = pbVar6" identifier = identifier) ;) (expression_statement "pbVar23 = (byte *)0x0;" (assignment_expression "pbVar23 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      while( true ) {\n        bVar11 = *param_2;\n        puVar26 = puVar25;\n        if ((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pbVar18 = pbVar18 + 1;\n        param_2 = param_2 + 1;\n        if (pbVar14 <= pbVar18) goto LAB_00018500;\n      }\n      if (iVar4 != 0) {\n        if (*pbVar3 == bVar11) {\n          pbVar7 = param_2;\n          pbVar9 = pbVar3;\n          do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);\n        }\n        if ((int)(uint)(byte)puVar21[bVar11] < (int)param_3) {\n          *pbVar8 = puVar21[bVar11];\n          pbVar8 = pbVar8 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }\nLAB_000184e0:\n      if (pbVar23 != (byte *)0x0) goto LAB_000186f8;\n      pbVar18 = pbVar18 + iVar4;\n      param_2 = param_2 + iVar4;\n      pbVar23 = pbVar8;\n    } while (pbVar18 < pbVar14);" do (compound_statement "{\n      while( true ) {\n        bVar11 = *param_2;\n        puVar26 = puVar25;\n        if ((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pbVar18 = pbVar18 + 1;\n        param_2 = param_2 + 1;\n        if (pbVar14 <= pbVar18) goto LAB_00018500;\n      }\n      if (iVar4 != 0) {\n        if (*pbVar3 == bVar11) {\n          pbVar7 = param_2;\n          pbVar9 = pbVar3;\n          do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);\n        }\n        if ((int)(uint)(byte)puVar21[bVar11] < (int)param_3) {\n          *pbVar8 = puVar21[bVar11];\n          pbVar8 = pbVar8 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }\nLAB_000184e0:\n      if (pbVar23 != (byte *)0x0) goto LAB_000186f8;\n      pbVar18 = pbVar18 + iVar4;\n      param_2 = param_2 + iVar4;\n      pbVar23 = pbVar8;\n    }" { (while_statement "while( true ) {\n        bVar11 = *param_2;\n        puVar26 = puVar25;\n        if ((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pbVar18 = pbVar18 + 1;\n        param_2 = param_2 + 1;\n        if (pbVar14 <= pbVar18) goto LAB_00018500;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        bVar11 = *param_2;\n        puVar26 = puVar25;\n        if ((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pbVar18 = pbVar18 + 1;\n        param_2 = param_2 + 1;\n        if (pbVar14 <= pbVar18) goto LAB_00018500;\n      }" { (expression_statement "bVar11 = *param_2;" (assignment_expression "bVar11 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "puVar26 = puVar25;" (assignment_expression "puVar26 = puVar25" identifier = identifier) ;) (if_statement "if ((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0) break;" if (parenthesized_expression "((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0)" ( (binary_expression "(*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20)" ( (binary_expression "*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20" (pointer_expression "*(ushort *)(iVar17 + (uint)bVar11 * 2)" * (cast_expression "(ushort *)(iVar17 + (uint)bVar11 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + (uint)bVar11 * 2)" ( (binary_expression "iVar17 + (uint)bVar11 * 2" identifier + (binary_expression "(uint)bVar11 * 2" (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00018474:\n        pbVar18 = pbVar18 + 1;" statement_identifier : (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;)) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (if_statement "if (pbVar14 <= pbVar18) goto LAB_00018500;" if (parenthesized_expression "(pbVar14 <= pbVar18)" ( (binary_expression "pbVar14 <= pbVar18" identifier <= identifier) )) (goto_statement "goto LAB_00018500;" goto statement_identifier ;)) })) (if_statement "if (iVar4 != 0) {\n        if (*pbVar3 == bVar11) {\n          pbVar7 = param_2;\n          pbVar9 = pbVar3;\n          do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);\n        }\n        if ((int)(uint)(byte)puVar21[bVar11] < (int)param_3) {\n          *pbVar8 = puVar21[bVar11];\n          pbVar8 = pbVar8 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        if (*pbVar3 == bVar11) {\n          pbVar7 = param_2;\n          pbVar9 = pbVar3;\n          do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);\n        }\n        if ((int)(uint)(byte)puVar21[bVar11] < (int)param_3) {\n          *pbVar8 = puVar21[bVar11];\n          pbVar8 = pbVar8 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }" { (if_statement "if (*pbVar3 == bVar11) {\n          pbVar7 = param_2;\n          pbVar9 = pbVar3;\n          do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);\n        }" if (parenthesized_expression "(*pbVar3 == bVar11)" ( (binary_expression "*pbVar3 == bVar11" (pointer_expression "*pbVar3" * identifier) == identifier) )) (compound_statement "{\n          pbVar7 = param_2;\n          pbVar9 = pbVar3;\n          do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);\n        }" { (expression_statement "pbVar7 = param_2;" (assignment_expression "pbVar7 = param_2" identifier = identifier) ;) (expression_statement "pbVar9 = pbVar3;" (assignment_expression "pbVar9 = pbVar3" identifier = identifier) ;) (do_statement "do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);" do (compound_statement "{\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          }" { (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (if_statement "if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;" if (parenthesized_expression "(pbVar7 == param_2 + iVar4)" ( (binary_expression "pbVar7 == param_2 + iVar4" identifier == (binary_expression "param_2 + iVar4" identifier + identifier)) )) (goto_statement "goto LAB_000184e0;" goto statement_identifier ;)) }) while (parenthesized_expression "(*pbVar7 == *pbVar9)" ( (binary_expression "*pbVar7 == *pbVar9" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar9" * identifier)) )) ;) })) (if_statement "if ((int)(uint)(byte)puVar21[bVar11] < (int)param_3) {\n          *pbVar8 = puVar21[bVar11];\n          pbVar8 = pbVar8 + 1;\n          goto LAB_00018474;\n        }" if (parenthesized_expression "((int)(uint)(byte)puVar21[bVar11] < (int)param_3)" ( (binary_expression "(int)(uint)(byte)puVar21[bVar11] < (int)param_3" (cast_expression "(int)(uint)(byte)puVar21[bVar11]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)(byte)puVar21[bVar11]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar21[bVar11]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar21[bVar11]" identifier [ identifier ])))) < (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          *pbVar8 = puVar21[bVar11];\n          pbVar8 = pbVar8 + 1;\n          goto LAB_00018474;\n        }" { (expression_statement "*pbVar8 = puVar21[bVar11];" (assignment_expression "*pbVar8 = puVar21[bVar11]" (pointer_expression "*pbVar8" * identifier) = (subscript_expression "puVar21[bVar11]" identifier [ identifier ])) ;) (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_00018474;" goto statement_identifier ;) })) (goto_statement "goto LAB_000186f8;" goto statement_identifier ;) })) (labeled_statement "LAB_000184e0:\n      if (pbVar23 != (byte *)0x0) goto LAB_000186f8;" statement_identifier : (if_statement "if (pbVar23 != (byte *)0x0) goto LAB_000186f8;" if (parenthesized_expression "(pbVar23 != (byte *)0x0)" ( (binary_expression "pbVar23 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000186f8;" goto statement_identifier ;))) (expression_statement "pbVar18 = pbVar18 + iVar4;" (assignment_expression "pbVar18 = pbVar18 + iVar4" identifier = (binary_expression "pbVar18 + iVar4" identifier + identifier)) ;) (expression_statement "param_2 = param_2 + iVar4;" (assignment_expression "param_2 = param_2 + iVar4" identifier = (binary_expression "param_2 + iVar4" identifier + identifier)) ;) (expression_statement "pbVar23 = pbVar8;" (assignment_expression "pbVar23 = pbVar8" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar18 < pbVar14)" ( (binary_expression "pbVar18 < pbVar14" identifier < identifier) )) ;) (labeled_statement "LAB_00018500:\n    pbVar14 = pbVar8 + -(int)pbVar6;" statement_identifier : (expression_statement "pbVar14 = pbVar8 + -(int)pbVar6;" (assignment_expression "pbVar14 = pbVar8 + -(int)pbVar6" identifier = (binary_expression "pbVar8 + -(int)pbVar6" identifier + (unary_expression "-(int)pbVar6" - (cast_expression "(int)pbVar6" ( (type_descriptor "int" primitive_type) ) identifier)))) ;)) (expression_statement "iVar4 = *param_1;" (assignment_expression "iVar4 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar22 = (((uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5) + 2) * 4;" (assignment_expression "uVar22 = (((uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5) + 2) * 4" identifier = (binary_expression "(((uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5) + 2) * 4" (parenthesized_expression "(((uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5) + 2)" ( (binary_expression "((uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5) + 2" (parenthesized_expression "((uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5)" ( (binary_expression "(uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5" (call_expression "(uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3)" ( (binary_expression "(int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3" (cast_expression "(int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)" ( (binary_expression "ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20" (binary_expression "ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8)" (binary_expression "ZEXT48(pbVar14) *\n                            (ulonglong)" (call_expression "ZEXT48(pbVar14)" identifier (argument_list "(pbVar14)" ( identifier ))) * (parenthesized_expression "(ulonglong)" ( identifier ))) * (cast_expression "(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8)" ( (binary_expression "PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8" (binary_expression "PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14" identifier + (binary_expression "(int)param_3 * 0x14" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) >> number_literal) ))) << number_literal) ))) >> number_literal) )) + number_literal) )) * number_literal)) ;) (expression_statement "param_2 = (byte *)(iVar4 + 1);" (assignment_expression "param_2 = (byte *)(iVar4 + 1)" identifier = (cast_expression "(byte *)(iVar4 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 1)" ( (binary_expression "iVar4 + 1" identifier + number_literal) )))) ;) (if_statement "if (uVar22 < 0x7f01) goto LAB_00018544;" if (parenthesized_expression "(uVar22 < 0x7f01)" ( (binary_expression "uVar22 < 0x7f01" identifier < number_literal) )) (goto_statement "goto LAB_00018544;" goto statement_identifier ;)) (expression_statement "local_3c = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);" (assignment_expression "local_3c = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" identifier = (cast_expression "(byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30)" ( (pointer_expression "&local_30" & identifier) ))))) ;) }) (else_clause "else {\n    bVar11 = param_2[(int)pbVar14];\n    if (bVar11 == 0x40) {\n      pbVar16 = param_2 + (int)pbVar6;\n      pbVar8 = pbVar6;\n    }\n    else {\n      pbVar8 = pbVar6 + -2;\n      pbVar23 = pbVar14;\n      if ((int)param_3 < 0xb) {\n        do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);\nLAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;\n        pbVar8 = pbVar23;\n      }\n      else {\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }\n    }\nLAB_0001843c:\n    local_30 = 0;\n    if ((byte *)0x7f00 < pbVar8) {\n      pbVar6 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      iVar17 = *piVar5;\n      goto LAB_00018460;\n    }\n    iVar10 = -((uint)(pbVar8 + 7) & 0xfffffff8);\n    puVar25 = auStack_80 + iVar10;\n    puVar26 = auStack_80 + iVar10;\n    pbVar6 = &stack0xffffff98 + iVar10;\n    if (pbVar14 != (byte *)0x0) goto LAB_00018460;\n    pbVar23 = (byte *)0x0;\n    uVar22 = 8;\n    iVar4 = *param_1;\n    param_2 = (byte *)(iVar4 + 1);\n    pbVar8 = pbVar6;\nLAB_00018544:\n    iVar17 = -(uVar22 + 7 & 0xfffffff8);\n    local_3c = puVar26 + iVar17 + 0x18;\n    puVar26 = puVar26 + iVar17;\n  }" else (compound_statement "{\n    bVar11 = param_2[(int)pbVar14];\n    if (bVar11 == 0x40) {\n      pbVar16 = param_2 + (int)pbVar6;\n      pbVar8 = pbVar6;\n    }\n    else {\n      pbVar8 = pbVar6 + -2;\n      pbVar23 = pbVar14;\n      if ((int)param_3 < 0xb) {\n        do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);\nLAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;\n        pbVar8 = pbVar23;\n      }\n      else {\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }\n    }\nLAB_0001843c:\n    local_30 = 0;\n    if ((byte *)0x7f00 < pbVar8) {\n      pbVar6 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      iVar17 = *piVar5;\n      goto LAB_00018460;\n    }\n    iVar10 = -((uint)(pbVar8 + 7) & 0xfffffff8);\n    puVar25 = auStack_80 + iVar10;\n    puVar26 = auStack_80 + iVar10;\n    pbVar6 = &stack0xffffff98 + iVar10;\n    if (pbVar14 != (byte *)0x0) goto LAB_00018460;\n    pbVar23 = (byte *)0x0;\n    uVar22 = 8;\n    iVar4 = *param_1;\n    param_2 = (byte *)(iVar4 + 1);\n    pbVar8 = pbVar6;\nLAB_00018544:\n    iVar17 = -(uVar22 + 7 & 0xfffffff8);\n    local_3c = puVar26 + iVar17 + 0x18;\n    puVar26 = puVar26 + iVar17;\n  }" { (expression_statement "bVar11 = param_2[(int)pbVar14];" (assignment_expression "bVar11 = param_2[(int)pbVar14]" identifier = (subscript_expression "param_2[(int)pbVar14]" identifier [ (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) (if_statement "if (bVar11 == 0x40) {\n      pbVar16 = param_2 + (int)pbVar6;\n      pbVar8 = pbVar6;\n    }\n    else {\n      pbVar8 = pbVar6 + -2;\n      pbVar23 = pbVar14;\n      if ((int)param_3 < 0xb) {\n        do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);\nLAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;\n        pbVar8 = pbVar23;\n      }\n      else {\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }\n    }" if (parenthesized_expression "(bVar11 == 0x40)" ( (binary_expression "bVar11 == 0x40" identifier == number_literal) )) (compound_statement "{\n      pbVar16 = param_2 + (int)pbVar6;\n      pbVar8 = pbVar6;\n    }" { (expression_statement "pbVar16 = param_2 + (int)pbVar6;" (assignment_expression "pbVar16 = param_2 + (int)pbVar6" identifier = (binary_expression "param_2 + (int)pbVar6" identifier + (cast_expression "(int)pbVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pbVar8 = pbVar6;" (assignment_expression "pbVar8 = pbVar6" identifier = identifier) ;) }) (else_clause "else {\n      pbVar8 = pbVar6 + -2;\n      pbVar23 = pbVar14;\n      if ((int)param_3 < 0xb) {\n        do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);\nLAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;\n        pbVar8 = pbVar23;\n      }\n      else {\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }\n    }" else (compound_statement "{\n      pbVar8 = pbVar6 + -2;\n      pbVar23 = pbVar14;\n      if ((int)param_3 < 0xb) {\n        do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);\nLAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;\n        pbVar8 = pbVar23;\n      }\n      else {\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }\n    }" { (expression_statement "pbVar8 = pbVar6 + -2;" (assignment_expression "pbVar8 = pbVar6 + -2" identifier = (binary_expression "pbVar6 + -2" identifier + number_literal)) ;) (expression_statement "pbVar23 = pbVar14;" (assignment_expression "pbVar23 = pbVar14" identifier = identifier) ;) (if_statement "if ((int)param_3 < 0xb) {\n        do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);\nLAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;\n        pbVar8 = pbVar23;\n      }\n      else {\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }" if (parenthesized_expression "((int)param_3 < 0xb)" ( (binary_expression "(int)param_3 < 0xb" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);\nLAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;\n        pbVar8 = pbVar23;\n      }" { (do_statement "do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);" do (compound_statement "{\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        }" { (expression_statement "pbVar23 = pbVar14;" (assignment_expression "pbVar23 = pbVar14" identifier = identifier) ;) (expression_statement "pbVar14 = pbVar23 + -1;" (assignment_expression "pbVar14 = pbVar23 + -1" identifier = (binary_expression "pbVar23 + -1" identifier + number_literal)) ;) (if_statement "if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }" if (parenthesized_expression "((bVar11 & 0xdf) == 0x45)" ( (binary_expression "(bVar11 & 0xdf) == 0x45" (parenthesized_expression "(bVar11 & 0xdf)" ( (binary_expression "bVar11 & 0xdf" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }" { (expression_statement "pbVar16 = param_2 + (int)(pbVar23 + 1);" (assignment_expression "pbVar16 = param_2 + (int)(pbVar23 + 1)" identifier = (binary_expression "param_2 + (int)(pbVar23 + 1)" identifier + (cast_expression "(int)(pbVar23 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar23 + 1)" ( (binary_expression "pbVar23 + 1" identifier + number_literal) ))))) ;) (expression_statement "pbVar8 = pbVar23 + 1;" (assignment_expression "pbVar8 = pbVar23 + 1" identifier = (binary_expression "pbVar23 + 1" identifier + number_literal)) ;) (expression_statement "pbVar14 = pbVar23;" (assignment_expression "pbVar14 = pbVar23" identifier = identifier) ;) (goto_statement "goto LAB_0001843c;" goto statement_identifier ;) })) (if_statement "if (pbVar14 == (byte *)0x0) goto LAB_00018434;" if (parenthesized_expression "(pbVar14 == (byte *)0x0)" ( (binary_expression "pbVar14 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00018434;" goto statement_identifier ;)) (expression_statement "bVar11 = param_2[(int)pbVar14];" (assignment_expression "bVar11 = param_2[(int)pbVar14]" identifier = (subscript_expression "param_2[(int)pbVar14]" identifier [ (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) }) while (parenthesized_expression "(bVar11 != 0x40)" ( (binary_expression "bVar11 != 0x40" identifier != number_literal) )) ;) (labeled_statement "LAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;" statement_identifier : (expression_statement "pbVar16 = param_2 + (int)pbVar23;" (assignment_expression "pbVar16 = param_2 + (int)pbVar23" identifier = (binary_expression "param_2 + (int)pbVar23" identifier + (cast_expression "(int)pbVar23" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (expression_statement "pbVar8 = pbVar23;" (assignment_expression "pbVar8 = pbVar23" identifier = identifier) ;) }) (else_clause "else {\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }" else (compound_statement "{\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }" { (while_statement "while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }" while (parenthesized_expression "(pbVar14 = pbVar8, pbVar14 != (byte *)0x0)" ( (comma_expression "pbVar14 = pbVar8, pbVar14 != (byte *)0x0" (assignment_expression "pbVar14 = pbVar8" identifier = identifier) , (binary_expression "pbVar14 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }" { (if_statement "if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;" if (parenthesized_expression "(param_2[(int)pbVar14] == 0x40)" ( (binary_expression "param_2[(int)pbVar14] == 0x40" (subscript_expression "param_2[(int)pbVar14]" identifier [ (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier) ]) == number_literal) )) (goto_statement "goto LAB_0001878c;" goto statement_identifier ;)) (expression_statement "pbVar23 = pbVar14;" (assignment_expression "pbVar23 = pbVar14" identifier = identifier) ;) (expression_statement "pbVar8 = pbVar14 + -1;" (assignment_expression "pbVar8 = pbVar14 + -1" identifier = (binary_expression "pbVar14 + -1" identifier + number_literal)) ;) })) (labeled_statement "LAB_00018434:\n        pbVar16 = (byte *)0x0;" statement_identifier : (expression_statement "pbVar16 = (byte *)0x0;" (assignment_expression "pbVar16 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pbVar8 = pbVar6 + 1;" (assignment_expression "pbVar8 = pbVar6 + 1" identifier = (binary_expression "pbVar6 + 1" identifier + number_literal)) ;) (expression_statement "pbVar14 = pbVar6;" (assignment_expression "pbVar14 = pbVar6" identifier = identifier) ;) }))) }))) (labeled_statement "LAB_0001843c:\n    local_30 = 0;" statement_identifier : (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;)) (if_statement "if ((byte *)0x7f00 < pbVar8) {\n      pbVar6 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      iVar17 = *piVar5;\n      goto LAB_00018460;\n    }" if (parenthesized_expression "((byte *)0x7f00 < pbVar8)" ( (binary_expression "(byte *)0x7f00 < pbVar8" (cast_expression "(byte *)0x7f00" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n      pbVar6 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      iVar17 = *piVar5;\n      goto LAB_00018460;\n    }" { (expression_statement "pbVar6 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);" (assignment_expression "pbVar6 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" identifier = (cast_expression "(byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30)" ( (pointer_expression "&local_30" & identifier) ))))) ;) (expression_statement "iVar17 = *piVar5;" (assignment_expression "iVar17 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (goto_statement "goto LAB_00018460;" goto statement_identifier ;) })) (expression_statement "iVar10 = -((uint)(pbVar8 + 7) & 0xfffffff8);" (assignment_expression "iVar10 = -((uint)(pbVar8 + 7) & 0xfffffff8)" identifier = (unary_expression "-((uint)(pbVar8 + 7) & 0xfffffff8)" - (parenthesized_expression "((uint)(pbVar8 + 7) & 0xfffffff8)" ( (binary_expression "(uint)(pbVar8 + 7) & 0xfffffff8" (call_expression "(uint)(pbVar8 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar8 + 7)" ( (binary_expression "pbVar8 + 7" identifier + number_literal) ))) & number_literal) )))) ;) (expression_statement "puVar25 = auStack_80 + iVar10;" (assignment_expression "puVar25 = auStack_80 + iVar10" identifier = (binary_expression "auStack_80 + iVar10" identifier + identifier)) ;) (expression_statement "puVar26 = auStack_80 + iVar10;" (assignment_expression "puVar26 = auStack_80 + iVar10" identifier = (binary_expression "auStack_80 + iVar10" identifier + identifier)) ;) (expression_statement "pbVar6 = &stack0xffffff98 + iVar10;" (assignment_expression "pbVar6 = &stack0xffffff98 + iVar10" identifier = (binary_expression "&stack0xffffff98 + iVar10" (pointer_expression "&stack0xffffff98" & identifier) + identifier)) ;) (if_statement "if (pbVar14 != (byte *)0x0) goto LAB_00018460;" if (parenthesized_expression "(pbVar14 != (byte *)0x0)" ( (binary_expression "pbVar14 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00018460;" goto statement_identifier ;)) (expression_statement "pbVar23 = (byte *)0x0;" (assignment_expression "pbVar23 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar22 = 8;" (assignment_expression "uVar22 = 8" identifier = number_literal) ;) (expression_statement "iVar4 = *param_1;" (assignment_expression "iVar4 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "param_2 = (byte *)(iVar4 + 1);" (assignment_expression "param_2 = (byte *)(iVar4 + 1)" identifier = (cast_expression "(byte *)(iVar4 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 1)" ( (binary_expression "iVar4 + 1" identifier + number_literal) )))) ;) (expression_statement "pbVar8 = pbVar6;" (assignment_expression "pbVar8 = pbVar6" identifier = identifier) ;) (labeled_statement "LAB_00018544:\n    iVar17 = -(uVar22 + 7 & 0xfffffff8);" statement_identifier : (expression_statement "iVar17 = -(uVar22 + 7 & 0xfffffff8);" (assignment_expression "iVar17 = -(uVar22 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar22 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar22 + 7 & 0xfffffff8)" ( (binary_expression "uVar22 + 7 & 0xfffffff8" (binary_expression "uVar22 + 7" identifier + number_literal) & number_literal) )))) ;)) (expression_statement "local_3c = puVar26 + iVar17 + 0x18;" (assignment_expression "local_3c = puVar26 + iVar17 + 0x18" identifier = (binary_expression "puVar26 + iVar17 + 0x18" (binary_expression "puVar26 + iVar17" identifier + identifier) + number_literal)) ;) (expression_statement "puVar26 = puVar26 + iVar17;" (assignment_expression "puVar26 = puVar26 + iVar17" identifier = (binary_expression "puVar26 + iVar17" identifier + identifier)) ;) }))) (expression_statement "param_4 = param_3;" (assignment_expression "param_4 = param_3" identifier = identifier) ;) (expression_statement "pbVar3 = (byte *)(*(code *)PTR___gmpn_set_str_0009d5b4)(local_3c,pbVar6);" (assignment_expression "pbVar3 = (byte *)(*(code *)PTR___gmpn_set_str_0009d5b4)(local_3c,pbVar6)" identifier = (cast_expression "(byte *)(*(code *)PTR___gmpn_set_str_0009d5b4)(local_3c,pbVar6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmpn_set_str_0009d5b4)(local_3c,pbVar6)" (parenthesized_expression "(*(code *)PTR___gmpn_set_str_0009d5b4)" ( (pointer_expression "*(code *)PTR___gmpn_set_str_0009d5b4" * (cast_expression "(code *)PTR___gmpn_set_str_0009d5b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_3c,pbVar6)" ( identifier , identifier ))))) ;) (if_statement "if (pbVar3 == (byte *)0x0) {\n    param_1[1] = 0;\n    param_1[2] = 0;\n    if (local_30 != 0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      uVar22 = 0;\n      goto LAB_00018714;\n    }\nLAB_000187ac:\n    uVar22 = 0;\n    goto LAB_00018714;\n  }" if (parenthesized_expression "(pbVar3 == (byte *)0x0)" ( (binary_expression "pbVar3 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    param_1[1] = 0;\n    param_1[2] = 0;\n    if (local_30 != 0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      uVar22 = 0;\n      goto LAB_00018714;\n    }\nLAB_000187ac:\n    uVar22 = 0;\n    goto LAB_00018714;\n  }" { (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (local_30 != 0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      uVar22 = 0;\n      goto LAB_00018714;\n    }" if (parenthesized_expression "(local_30 != 0)" ( (binary_expression "local_30 != 0" identifier != number_literal) )) (compound_statement "{\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      uVar22 = 0;\n      goto LAB_00018714;\n    }" { (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_0009d618" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_0009d618" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00018714;" goto statement_identifier ;) })) (labeled_statement "LAB_000187ac:\n    uVar22 = 0;" statement_identifier : (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_00018714;" goto statement_identifier ;) })) (expression_statement "local_54 = (int)pbVar3 - (int)param_2;" (assignment_expression "local_54 = (int)pbVar3 - (int)param_2" identifier = (binary_expression "(int)pbVar3 - (int)param_2" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)param_2 < (int)pbVar3) {\n    local_3c = local_3c + local_54 * 4;\n    local_4c = param_2;\n    if (pbVar16 == (byte *)0x0) goto LAB_000187d0;\nLAB_000185a0:\n    bVar11 = *pbVar16;\n    param_4 = (byte *)(uint)(bVar11 == 0x2d);\n    pbVar16 = pbVar16 + (bVar11 == 0x2b || bVar11 == 0x2d);\n    pbVar6 = (byte *)(uint)(byte)puVar21[*pbVar16];\n    if ((int)pbVar19 <= (int)pbVar6) {\nLAB_000186f8:\n      uVar22 = 0xffffffff;\n      if (local_30 == 0) goto LAB_00018714;\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      puVar15 = puVar26;\n      goto LAB_00018710;\n    }\n    pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[1]];\n    if ((int)pbVar14 < (int)pbVar19) {\n      pbVar16 = pbVar16 + 3;\n      do {\n        pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19;\n        pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]];\n        pbVar16 = pbVar16 + 1;\n      } while ((int)pbVar14 < (int)pbVar19);\n    }\n    local_44 = param_4 + (-(int)param_4 ^ (uint)pbVar6);\n    if (pbVar23 != (byte *)0x0) {\nLAB_00018628:\n      local_44 = local_44 + -((int)pbVar8 - (int)pbVar23);\n    }\n    if (local_44 == (byte *)0x0) goto LAB_000187e0;\n    iVar4 = iVar4 + 2;\n    uVar22 = iVar4 * 8;\n    if (uVar22 < 0x7f01) {\n      local_50 = puVar26 + iVar4 * -8 + 0x18;\n      pbVar14 = puVar26 + iVar4 * -0x10 + 0x18;\n      puVar26 = puVar26 + iVar4 * -0x10;\n    }\n    else {\n      local_50 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      pbVar14 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n    }\n    puVar21 = PTR___gmpn_clz_tab_0009d18c;\n    pbVar3 = local_44;\n    if ((int)local_44 < 0) {\n      pbVar3 = (byte *)-(int)local_44;\n    }\n    *(byte **)local_50 = param_3;\n    if ((int)pbVar3 < 0x10000) {\n      iVar10 = 0x18;\n      if (0xff < (int)pbVar3) {\n        iVar17 = 9;\n        goto LAB_00018870;\n      }\n      uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;\n      if (-1 < (int)uVar22) goto LAB_00018890;\n      if ((int)param_2 < 1) {\n        iVar10 = 0;\n        pbVar19 = (byte *)0x1;\n        iVar17 = 0;\n        pbVar14 = local_50;\n        goto LAB_00018988;\n      }\n      pbVar19 = (byte *)0x1;\n      iVar10 = 0;\n      *(byte **)local_50 = param_3;\n    }\n    else {\n      iVar17 = 0x19;\n      if ((int)pbVar3 < 0x1000000) {\n        iVar17 = 0x11;\n      }\n      iVar10 = 0x10;\n      if ((int)pbVar3 >= 0x1000000) {\n        iVar10 = 8;\n      }\nLAB_00018870:\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e;\nLAB_00018890:\n      iVar10 = 0;\n      pbVar19 = (byte *)0x1;\n      iVar17 = 0;\n      pbVar6 = local_50;\n      while( true ) {\n        pbVar8 = pbVar6;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);\n        iVar10 = iVar10 * 2;\n        pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));\n        if ((int)param_2 < (int)pbVar19) {\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }\n        else {\n          iVar17 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pbVar6 = pbVar14;\n        pbVar14 = pbVar8;\n      }\n      if ((int)param_2 < (int)pbVar19) {\nLAB_00018988:\n        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);\n        pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;\n        pbVar19 = param_2;\n      }\n      pbVar3 = pbVar19 + -1;\n      if (pbVar19 != (byte *)0x0) {\n        uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);\n        if (pbVar3 == (byte *)0x0) {\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }\n        else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }\n      }\n    }\n    pbVar3 = param_2;\n    if ((int)local_44 < 0) {\n      if ((int)local_4c < (int)pbVar19) {\n        if ((uint)((int)(pbVar19 + 1) * 4) < 0x7f01) {\n          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);\n          puVar15 = puVar26 + iVar17 + 0x18;\n          puVar26 = puVar26 + iVar17;\n        }\n        else {\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }\n        iVar17 = ((int)pbVar19 - (int)local_4c) * 4;\n        pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17);\n        if (local_4c != (byte *)0x0) {\n          pbVar16 = local_4c + -1;\n          pbVar8 = pbVar14 + iVar17;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar6 = pbVar8;\n          if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }\n          *(undefined4 *)pbVar8 = uVar12;\n        }\n        local_54 = local_54 - ((int)pbVar19 - (int)local_4c);\n        local_4c = pbVar19;\n        local_3c = pbVar14;\n      }\n      uVar22 = *(uint *)(local_50 + (int)pbVar19 * 4 + -4);\n      if (-1 < (int)uVar22) {\n        if (uVar22 < 0x10000) {\n          iVar17 = 0x20;\n          if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }\n          iVar13 = 9;\n          if (0xff >= uVar22) {\n            iVar13 = 1;\n          }\n        }\n        else {\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }\n        bVar11 = puVar21[uVar22 >> iVar13];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11);\n        iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11);\n        if (iVar17 != 0) {\n          iVar13 = (int)local_4c * 4;\n          local_4c = local_4c + 1;\n          *(int *)(local_3c + iVar13) = iVar17;\n        }\n      }\n      if ((uint)(iVar4 * 4) < 0x7f01) {\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      }\n      iVar17 = (int)local_4c - (int)pbVar19;\n      *(byte **)(puVar26 + 0x14) = pbVar19;\n      *(byte **)(puVar26 + 0x10) = local_50;\n      iVar4 = (*(code *)PTR___gmpn_divrem_0009d0e4)(puVar20,(int)param_2 - iVar17);\n      pbVar14 = (byte *)((local_54 - iVar10) + iVar17 + iVar4);\n      if (iVar4 != 0) {\n        piVar5 = puVar20 + (int)param_2;\n        puVar20 = puVar20 + 1;\n        *piVar5 = iVar4;\n      }\n    }\n    else {\n      pbVar3 = pbVar19 + (int)local_4c;\n      uVar22 = (int)pbVar3 * 4;\n      if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      }\n      if ((int)local_4c < (int)pbVar19) {\n        *(byte **)(puVar26 + 0x10) = local_4c;\n        local_4c = local_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);\n        local_3c = pbVar19;\n      }\n      else {\n        *(byte **)(puVar26 + 0x10) = pbVar19;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);\n        local_3c = local_4c;\n        local_4c = local_50;\n      }\n      pbVar3 = pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0);\n      pbVar14 = pbVar3 + iVar10 + local_54;\n      if ((int)param_2 < (int)pbVar3) {\n        puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);\n        pbVar3 = param_2;\n      }\n    }\n    if (pbVar3 != (byte *)0x0) {\n      pbVar6 = pbVar3 + -1;\n      uVar12 = *puVar20;\n      local_3c = (byte *)param_1[3];\n      pbVar19 = local_3c;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          puVar20 = puVar20 + 1;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *puVar20;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        local_3c = local_3c + (int)pbVar3 * 4 + -4;\n      }\n      *(undefined4 *)local_3c = uVar12;\n    }\n    if (bVar1) {\n      pbVar3 = (byte *)-(int)pbVar3;\n    }\n    param_1[1] = (int)pbVar3;\n    param_1[2] = (int)pbVar14;\n    pbVar14 = local_3c;\n    param_4 = local_4c;\n    param_2 = pbVar3;\n    if (local_30 == 0) {\n      uVar22 = 0;\n      goto LAB_00018714;\n    }\n  }\n  else {\n    local_54 = 0;\n    local_4c = pbVar3;\n    if (pbVar16 != (byte *)0x0) goto LAB_000185a0;\nLAB_000187d0:\n    if (pbVar23 != (byte *)0x0) {\n      local_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }\nLAB_000187e0:\n    if (local_4c != (byte *)0x0) {\n      pbVar6 = local_4c + -1;\n      pbVar14 = (byte *)param_1[3];\n      uVar12 = *(undefined4 *)local_3c;\n      pbVar19 = pbVar14;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;\n      }\n      *(undefined4 *)pbVar14 = uVar12;\n    }\n    if (bVar1) {\n      local_4c = (byte *)-(int)local_4c;\n    }\n    param_1[1] = (int)local_4c;\n    param_1[2] = (int)pbVar3;\n    if (local_30 == 0) goto LAB_000187ac;\n  }" if (parenthesized_expression "((int)param_2 < (int)pbVar3)" ( (binary_expression "(int)param_2 < (int)pbVar3" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    local_3c = local_3c + local_54 * 4;\n    local_4c = param_2;\n    if (pbVar16 == (byte *)0x0) goto LAB_000187d0;\nLAB_000185a0:\n    bVar11 = *pbVar16;\n    param_4 = (byte *)(uint)(bVar11 == 0x2d);\n    pbVar16 = pbVar16 + (bVar11 == 0x2b || bVar11 == 0x2d);\n    pbVar6 = (byte *)(uint)(byte)puVar21[*pbVar16];\n    if ((int)pbVar19 <= (int)pbVar6) {\nLAB_000186f8:\n      uVar22 = 0xffffffff;\n      if (local_30 == 0) goto LAB_00018714;\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      puVar15 = puVar26;\n      goto LAB_00018710;\n    }\n    pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[1]];\n    if ((int)pbVar14 < (int)pbVar19) {\n      pbVar16 = pbVar16 + 3;\n      do {\n        pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19;\n        pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]];\n        pbVar16 = pbVar16 + 1;\n      } while ((int)pbVar14 < (int)pbVar19);\n    }\n    local_44 = param_4 + (-(int)param_4 ^ (uint)pbVar6);\n    if (pbVar23 != (byte *)0x0) {\nLAB_00018628:\n      local_44 = local_44 + -((int)pbVar8 - (int)pbVar23);\n    }\n    if (local_44 == (byte *)0x0) goto LAB_000187e0;\n    iVar4 = iVar4 + 2;\n    uVar22 = iVar4 * 8;\n    if (uVar22 < 0x7f01) {\n      local_50 = puVar26 + iVar4 * -8 + 0x18;\n      pbVar14 = puVar26 + iVar4 * -0x10 + 0x18;\n      puVar26 = puVar26 + iVar4 * -0x10;\n    }\n    else {\n      local_50 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      pbVar14 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n    }\n    puVar21 = PTR___gmpn_clz_tab_0009d18c;\n    pbVar3 = local_44;\n    if ((int)local_44 < 0) {\n      pbVar3 = (byte *)-(int)local_44;\n    }\n    *(byte **)local_50 = param_3;\n    if ((int)pbVar3 < 0x10000) {\n      iVar10 = 0x18;\n      if (0xff < (int)pbVar3) {\n        iVar17 = 9;\n        goto LAB_00018870;\n      }\n      uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;\n      if (-1 < (int)uVar22) goto LAB_00018890;\n      if ((int)param_2 < 1) {\n        iVar10 = 0;\n        pbVar19 = (byte *)0x1;\n        iVar17 = 0;\n        pbVar14 = local_50;\n        goto LAB_00018988;\n      }\n      pbVar19 = (byte *)0x1;\n      iVar10 = 0;\n      *(byte **)local_50 = param_3;\n    }\n    else {\n      iVar17 = 0x19;\n      if ((int)pbVar3 < 0x1000000) {\n        iVar17 = 0x11;\n      }\n      iVar10 = 0x10;\n      if ((int)pbVar3 >= 0x1000000) {\n        iVar10 = 8;\n      }\nLAB_00018870:\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e;\nLAB_00018890:\n      iVar10 = 0;\n      pbVar19 = (byte *)0x1;\n      iVar17 = 0;\n      pbVar6 = local_50;\n      while( true ) {\n        pbVar8 = pbVar6;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);\n        iVar10 = iVar10 * 2;\n        pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));\n        if ((int)param_2 < (int)pbVar19) {\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }\n        else {\n          iVar17 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pbVar6 = pbVar14;\n        pbVar14 = pbVar8;\n      }\n      if ((int)param_2 < (int)pbVar19) {\nLAB_00018988:\n        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);\n        pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;\n        pbVar19 = param_2;\n      }\n      pbVar3 = pbVar19 + -1;\n      if (pbVar19 != (byte *)0x0) {\n        uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);\n        if (pbVar3 == (byte *)0x0) {\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }\n        else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }\n      }\n    }\n    pbVar3 = param_2;\n    if ((int)local_44 < 0) {\n      if ((int)local_4c < (int)pbVar19) {\n        if ((uint)((int)(pbVar19 + 1) * 4) < 0x7f01) {\n          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);\n          puVar15 = puVar26 + iVar17 + 0x18;\n          puVar26 = puVar26 + iVar17;\n        }\n        else {\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }\n        iVar17 = ((int)pbVar19 - (int)local_4c) * 4;\n        pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17);\n        if (local_4c != (byte *)0x0) {\n          pbVar16 = local_4c + -1;\n          pbVar8 = pbVar14 + iVar17;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar6 = pbVar8;\n          if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }\n          *(undefined4 *)pbVar8 = uVar12;\n        }\n        local_54 = local_54 - ((int)pbVar19 - (int)local_4c);\n        local_4c = pbVar19;\n        local_3c = pbVar14;\n      }\n      uVar22 = *(uint *)(local_50 + (int)pbVar19 * 4 + -4);\n      if (-1 < (int)uVar22) {\n        if (uVar22 < 0x10000) {\n          iVar17 = 0x20;\n          if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }\n          iVar13 = 9;\n          if (0xff >= uVar22) {\n            iVar13 = 1;\n          }\n        }\n        else {\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }\n        bVar11 = puVar21[uVar22 >> iVar13];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11);\n        iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11);\n        if (iVar17 != 0) {\n          iVar13 = (int)local_4c * 4;\n          local_4c = local_4c + 1;\n          *(int *)(local_3c + iVar13) = iVar17;\n        }\n      }\n      if ((uint)(iVar4 * 4) < 0x7f01) {\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      }\n      iVar17 = (int)local_4c - (int)pbVar19;\n      *(byte **)(puVar26 + 0x14) = pbVar19;\n      *(byte **)(puVar26 + 0x10) = local_50;\n      iVar4 = (*(code *)PTR___gmpn_divrem_0009d0e4)(puVar20,(int)param_2 - iVar17);\n      pbVar14 = (byte *)((local_54 - iVar10) + iVar17 + iVar4);\n      if (iVar4 != 0) {\n        piVar5 = puVar20 + (int)param_2;\n        puVar20 = puVar20 + 1;\n        *piVar5 = iVar4;\n      }\n    }\n    else {\n      pbVar3 = pbVar19 + (int)local_4c;\n      uVar22 = (int)pbVar3 * 4;\n      if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      }\n      if ((int)local_4c < (int)pbVar19) {\n        *(byte **)(puVar26 + 0x10) = local_4c;\n        local_4c = local_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);\n        local_3c = pbVar19;\n      }\n      else {\n        *(byte **)(puVar26 + 0x10) = pbVar19;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);\n        local_3c = local_4c;\n        local_4c = local_50;\n      }\n      pbVar3 = pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0);\n      pbVar14 = pbVar3 + iVar10 + local_54;\n      if ((int)param_2 < (int)pbVar3) {\n        puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);\n        pbVar3 = param_2;\n      }\n    }\n    if (pbVar3 != (byte *)0x0) {\n      pbVar6 = pbVar3 + -1;\n      uVar12 = *puVar20;\n      local_3c = (byte *)param_1[3];\n      pbVar19 = local_3c;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          puVar20 = puVar20 + 1;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *puVar20;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        local_3c = local_3c + (int)pbVar3 * 4 + -4;\n      }\n      *(undefined4 *)local_3c = uVar12;\n    }\n    if (bVar1) {\n      pbVar3 = (byte *)-(int)pbVar3;\n    }\n    param_1[1] = (int)pbVar3;\n    param_1[2] = (int)pbVar14;\n    pbVar14 = local_3c;\n    param_4 = local_4c;\n    param_2 = pbVar3;\n    if (local_30 == 0) {\n      uVar22 = 0;\n      goto LAB_00018714;\n    }\n  }" { (expression_statement "local_3c = local_3c + local_54 * 4;" (assignment_expression "local_3c = local_3c + local_54 * 4" identifier = (binary_expression "local_3c + local_54 * 4" identifier + (binary_expression "local_54 * 4" identifier * number_literal))) ;) (expression_statement "local_4c = param_2;" (assignment_expression "local_4c = param_2" identifier = identifier) ;) (if_statement "if (pbVar16 == (byte *)0x0) goto LAB_000187d0;" if (parenthesized_expression "(pbVar16 == (byte *)0x0)" ( (binary_expression "pbVar16 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000187d0;" goto statement_identifier ;)) (labeled_statement "LAB_000185a0:\n    bVar11 = *pbVar16;" statement_identifier : (expression_statement "bVar11 = *pbVar16;" (assignment_expression "bVar11 = *pbVar16" identifier = (pointer_expression "*pbVar16" * identifier)) ;)) (expression_statement "param_4 = (byte *)(uint)(bVar11 == 0x2d);" (assignment_expression "param_4 = (byte *)(uint)(bVar11 == 0x2d)" identifier = (cast_expression "(byte *)(uint)(bVar11 == 0x2d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(bVar11 == 0x2d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar11 == 0x2d)" ( (binary_expression "bVar11 == 0x2d" identifier == number_literal) ))))) ;) (expression_statement "pbVar16 = pbVar16 + (bVar11 == 0x2b || bVar11 == 0x2d);" (assignment_expression "pbVar16 = pbVar16 + (bVar11 == 0x2b || bVar11 == 0x2d)" identifier = (binary_expression "pbVar16 + (bVar11 == 0x2b || bVar11 == 0x2d)" identifier + (parenthesized_expression "(bVar11 == 0x2b || bVar11 == 0x2d)" ( (binary_expression "bVar11 == 0x2b || bVar11 == 0x2d" (binary_expression "bVar11 == 0x2b" identifier == number_literal) || (binary_expression "bVar11 == 0x2d" identifier == number_literal)) )))) ;) (expression_statement "pbVar6 = (byte *)(uint)(byte)puVar21[*pbVar16];" (assignment_expression "pbVar6 = (byte *)(uint)(byte)puVar21[*pbVar16]" identifier = (cast_expression "(byte *)(uint)(byte)puVar21[*pbVar16]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)(byte)puVar21[*pbVar16]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar21[*pbVar16]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar21[*pbVar16]" identifier [ (pointer_expression "*pbVar16" * identifier) ]))))) ;) (if_statement "if ((int)pbVar19 <= (int)pbVar6) {\nLAB_000186f8:\n      uVar22 = 0xffffffff;\n      if (local_30 == 0) goto LAB_00018714;\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      puVar15 = puVar26;\n      goto LAB_00018710;\n    }" if (parenthesized_expression "((int)pbVar19 <= (int)pbVar6)" ( (binary_expression "(int)pbVar19 <= (int)pbVar6" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pbVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\nLAB_000186f8:\n      uVar22 = 0xffffffff;\n      if (local_30 == 0) goto LAB_00018714;\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      puVar15 = puVar26;\n      goto LAB_00018710;\n    }" { (labeled_statement "LAB_000186f8:\n      uVar22 = 0xffffffff;" statement_identifier : (expression_statement "uVar22 = 0xffffffff;" (assignment_expression "uVar22 = 0xffffffff" identifier = number_literal) ;)) (if_statement "if (local_30 == 0) goto LAB_00018714;" if (parenthesized_expression "(local_30 == 0)" ( (binary_expression "local_30 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00018714;" goto statement_identifier ;)) (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_0009d618" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_0009d618" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar15 = puVar26;" (assignment_expression "puVar15 = puVar26" identifier = identifier) ;) (goto_statement "goto LAB_00018710;" goto statement_identifier ;) })) (expression_statement "pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[1]];" (assignment_expression "pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[1]]" identifier = (cast_expression "(byte *)(uint)(byte)puVar21[pbVar16[1]]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)(byte)puVar21[pbVar16[1]]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar21[pbVar16[1]]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar21[pbVar16[1]]" identifier [ (subscript_expression "pbVar16[1]" identifier [ number_literal ]) ]))))) ;) (if_statement "if ((int)pbVar14 < (int)pbVar19) {\n      pbVar16 = pbVar16 + 3;\n      do {\n        pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19;\n        pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]];\n        pbVar16 = pbVar16 + 1;\n      } while ((int)pbVar14 < (int)pbVar19);\n    }" if (parenthesized_expression "((int)pbVar14 < (int)pbVar19)" ( (binary_expression "(int)pbVar14 < (int)pbVar19" (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      pbVar16 = pbVar16 + 3;\n      do {\n        pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19;\n        pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]];\n        pbVar16 = pbVar16 + 1;\n      } while ((int)pbVar14 < (int)pbVar19);\n    }" { (expression_statement "pbVar16 = pbVar16 + 3;" (assignment_expression "pbVar16 = pbVar16 + 3" identifier = (binary_expression "pbVar16 + 3" identifier + number_literal)) ;) (do_statement "do {\n        pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19;\n        pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]];\n        pbVar16 = pbVar16 + 1;\n      } while ((int)pbVar14 < (int)pbVar19);" do (compound_statement "{\n        pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19;\n        pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]];\n        pbVar16 = pbVar16 + 1;\n      }" { (expression_statement "pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19;" (assignment_expression "pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19" identifier = (binary_expression "pbVar14 + (int)pbVar6 * (int)pbVar19" identifier + (binary_expression "(int)pbVar6 * (int)pbVar19" (cast_expression "(int)pbVar6" ( (type_descriptor "int" primitive_type) ) identifier) * (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]];" (assignment_expression "pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]]" identifier = (cast_expression "(byte *)(uint)(byte)puVar21[pbVar16[-1]]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)(byte)puVar21[pbVar16[-1]]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar21[pbVar16[-1]]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar21[pbVar16[-1]]" identifier [ (subscript_expression "pbVar16[-1]" identifier [ number_literal ]) ]))))) ;) (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((int)pbVar14 < (int)pbVar19)" ( (binary_expression "(int)pbVar14 < (int)pbVar19" (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "local_44 = param_4 + (-(int)param_4 ^ (uint)pbVar6);" (assignment_expression "local_44 = param_4 + (-(int)param_4 ^ (uint)pbVar6)" identifier = (binary_expression "param_4 + (-(int)param_4 ^ (uint)pbVar6)" identifier + (parenthesized_expression "(-(int)param_4 ^ (uint)pbVar6)" ( (binary_expression "-(int)param_4 ^ (uint)pbVar6" (unary_expression "-(int)param_4" - (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) ^ (cast_expression "(uint)pbVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (if_statement "if (pbVar23 != (byte *)0x0) {\nLAB_00018628:\n      local_44 = local_44 + -((int)pbVar8 - (int)pbVar23);\n    }" if (parenthesized_expression "(pbVar23 != (byte *)0x0)" ( (binary_expression "pbVar23 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00018628:\n      local_44 = local_44 + -((int)pbVar8 - (int)pbVar23);\n    }" { (labeled_statement "LAB_00018628:\n      local_44 = local_44 + -((int)pbVar8 - (int)pbVar23);" statement_identifier : (expression_statement "local_44 = local_44 + -((int)pbVar8 - (int)pbVar23);" (assignment_expression "local_44 = local_44 + -((int)pbVar8 - (int)pbVar23)" identifier = (binary_expression "local_44 + -((int)pbVar8 - (int)pbVar23)" identifier + (unary_expression "-((int)pbVar8 - (int)pbVar23)" - (parenthesized_expression "((int)pbVar8 - (int)pbVar23)" ( (binary_expression "(int)pbVar8 - (int)pbVar23" (cast_expression "(int)pbVar8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar23" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;)) })) (if_statement "if (local_44 == (byte *)0x0) goto LAB_000187e0;" if (parenthesized_expression "(local_44 == (byte *)0x0)" ( (binary_expression "local_44 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000187e0;" goto statement_identifier ;)) (expression_statement "iVar4 = iVar4 + 2;" (assignment_expression "iVar4 = iVar4 + 2" identifier = (binary_expression "iVar4 + 2" identifier + number_literal)) ;) (expression_statement "uVar22 = iVar4 * 8;" (assignment_expression "uVar22 = iVar4 * 8" identifier = (binary_expression "iVar4 * 8" identifier * number_literal)) ;) (if_statement "if (uVar22 < 0x7f01) {\n      local_50 = puVar26 + iVar4 * -8 + 0x18;\n      pbVar14 = puVar26 + iVar4 * -0x10 + 0x18;\n      puVar26 = puVar26 + iVar4 * -0x10;\n    }\n    else {\n      local_50 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      pbVar14 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n    }" if (parenthesized_expression "(uVar22 < 0x7f01)" ( (binary_expression "uVar22 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n      local_50 = puVar26 + iVar4 * -8 + 0x18;\n      pbVar14 = puVar26 + iVar4 * -0x10 + 0x18;\n      puVar26 = puVar26 + iVar4 * -0x10;\n    }" { (expression_statement "local_50 = puVar26 + iVar4 * -8 + 0x18;" (assignment_expression "local_50 = puVar26 + iVar4 * -8 + 0x18" identifier = (binary_expression "puVar26 + iVar4 * -8 + 0x18" (binary_expression "puVar26 + iVar4 * -8" identifier + (binary_expression "iVar4 * -8" identifier * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = puVar26 + iVar4 * -0x10 + 0x18;" (assignment_expression "pbVar14 = puVar26 + iVar4 * -0x10 + 0x18" identifier = (binary_expression "puVar26 + iVar4 * -0x10 + 0x18" (binary_expression "puVar26 + iVar4 * -0x10" identifier + (binary_expression "iVar4 * -0x10" identifier * number_literal)) + number_literal)) ;) (expression_statement "puVar26 = puVar26 + iVar4 * -0x10;" (assignment_expression "puVar26 = puVar26 + iVar4 * -0x10" identifier = (binary_expression "puVar26 + iVar4 * -0x10" identifier + (binary_expression "iVar4 * -0x10" identifier * number_literal))) ;) }) (else_clause "else {\n      local_50 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      pbVar14 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n    }" else (compound_statement "{\n      local_50 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      pbVar14 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n    }" { (expression_statement "local_50 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);" (assignment_expression "local_50 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22)" identifier = (cast_expression "(byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30,uVar22)" ( (pointer_expression "&local_30" & identifier) , identifier ))))) ;) (expression_statement "pbVar14 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);" (assignment_expression "pbVar14 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22)" identifier = (cast_expression "(byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30,uVar22)" ( (pointer_expression "&local_30" & identifier) , identifier ))))) ;) }))) (expression_statement "puVar21 = PTR___gmpn_clz_tab_0009d18c;" (assignment_expression "puVar21 = PTR___gmpn_clz_tab_0009d18c" identifier = identifier) ;) (expression_statement "pbVar3 = local_44;" (assignment_expression "pbVar3 = local_44" identifier = identifier) ;) (if_statement "if ((int)local_44 < 0) {\n      pbVar3 = (byte *)-(int)local_44;\n    }" if (parenthesized_expression "((int)local_44 < 0)" ( (binary_expression "(int)local_44 < 0" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      pbVar3 = (byte *)-(int)local_44;\n    }" { (expression_statement "pbVar3 = (byte *)-(int)local_44;" (assignment_expression "pbVar3 = (byte *)-(int)local_44" identifier = (cast_expression "(byte *)-(int)local_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)local_44" - (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "*(byte **)local_50 = param_3;" (assignment_expression "*(byte **)local_50 = param_3" (pointer_expression "*(byte **)local_50" * (cast_expression "(byte **)local_50" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (if_statement "if ((int)pbVar3 < 0x10000) {\n      iVar10 = 0x18;\n      if (0xff < (int)pbVar3) {\n        iVar17 = 9;\n        goto LAB_00018870;\n      }\n      uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;\n      if (-1 < (int)uVar22) goto LAB_00018890;\n      if ((int)param_2 < 1) {\n        iVar10 = 0;\n        pbVar19 = (byte *)0x1;\n        iVar17 = 0;\n        pbVar14 = local_50;\n        goto LAB_00018988;\n      }\n      pbVar19 = (byte *)0x1;\n      iVar10 = 0;\n      *(byte **)local_50 = param_3;\n    }\n    else {\n      iVar17 = 0x19;\n      if ((int)pbVar3 < 0x1000000) {\n        iVar17 = 0x11;\n      }\n      iVar10 = 0x10;\n      if ((int)pbVar3 >= 0x1000000) {\n        iVar10 = 8;\n      }\nLAB_00018870:\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e;\nLAB_00018890:\n      iVar10 = 0;\n      pbVar19 = (byte *)0x1;\n      iVar17 = 0;\n      pbVar6 = local_50;\n      while( true ) {\n        pbVar8 = pbVar6;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);\n        iVar10 = iVar10 * 2;\n        pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));\n        if ((int)param_2 < (int)pbVar19) {\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }\n        else {\n          iVar17 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pbVar6 = pbVar14;\n        pbVar14 = pbVar8;\n      }\n      if ((int)param_2 < (int)pbVar19) {\nLAB_00018988:\n        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);\n        pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;\n        pbVar19 = param_2;\n      }\n      pbVar3 = pbVar19 + -1;\n      if (pbVar19 != (byte *)0x0) {\n        uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);\n        if (pbVar3 == (byte *)0x0) {\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }\n        else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }\n      }\n    }" if (parenthesized_expression "((int)pbVar3 < 0x10000)" ( (binary_expression "(int)pbVar3 < 0x10000" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      iVar10 = 0x18;\n      if (0xff < (int)pbVar3) {\n        iVar17 = 9;\n        goto LAB_00018870;\n      }\n      uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;\n      if (-1 < (int)uVar22) goto LAB_00018890;\n      if ((int)param_2 < 1) {\n        iVar10 = 0;\n        pbVar19 = (byte *)0x1;\n        iVar17 = 0;\n        pbVar14 = local_50;\n        goto LAB_00018988;\n      }\n      pbVar19 = (byte *)0x1;\n      iVar10 = 0;\n      *(byte **)local_50 = param_3;\n    }" { (expression_statement "iVar10 = 0x18;" (assignment_expression "iVar10 = 0x18" identifier = number_literal) ;) (if_statement "if (0xff < (int)pbVar3) {\n        iVar17 = 9;\n        goto LAB_00018870;\n      }" if (parenthesized_expression "(0xff < (int)pbVar3)" ( (binary_expression "0xff < (int)pbVar3" number_literal < (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        iVar17 = 9;\n        goto LAB_00018870;\n      }" { (expression_statement "iVar17 = 9;" (assignment_expression "iVar17 = 9" identifier = number_literal) ;) (goto_statement "goto LAB_00018870;" goto statement_identifier ;) })) (expression_statement "uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;" (assignment_expression "uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2" identifier = (binary_expression "(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2" (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1]" identifier [ (binary_expression "(uint)pbVar3 >> 1" (cast_expression "(uint)pbVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ])) - number_literal)) ;) (if_statement "if (-1 < (int)uVar22) goto LAB_00018890;" if (parenthesized_expression "(-1 < (int)uVar22)" ( (binary_expression "-1 < (int)uVar22" number_literal < (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00018890;" goto statement_identifier ;)) (if_statement "if ((int)param_2 < 1) {\n        iVar10 = 0;\n        pbVar19 = (byte *)0x1;\n        iVar17 = 0;\n        pbVar14 = local_50;\n        goto LAB_00018988;\n      }" if (parenthesized_expression "((int)param_2 < 1)" ( (binary_expression "(int)param_2 < 1" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        iVar10 = 0;\n        pbVar19 = (byte *)0x1;\n        iVar17 = 0;\n        pbVar14 = local_50;\n        goto LAB_00018988;\n      }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "pbVar19 = (byte *)0x1;" (assignment_expression "pbVar19 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "pbVar14 = local_50;" (assignment_expression "pbVar14 = local_50" identifier = identifier) ;) (goto_statement "goto LAB_00018988;" goto statement_identifier ;) })) (expression_statement "pbVar19 = (byte *)0x1;" (assignment_expression "pbVar19 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "*(byte **)local_50 = param_3;" (assignment_expression "*(byte **)local_50 = param_3" (pointer_expression "*(byte **)local_50" * (cast_expression "(byte **)local_50" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) }) (else_clause "else {\n      iVar17 = 0x19;\n      if ((int)pbVar3 < 0x1000000) {\n        iVar17 = 0x11;\n      }\n      iVar10 = 0x10;\n      if ((int)pbVar3 >= 0x1000000) {\n        iVar10 = 8;\n      }\nLAB_00018870:\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e;\nLAB_00018890:\n      iVar10 = 0;\n      pbVar19 = (byte *)0x1;\n      iVar17 = 0;\n      pbVar6 = local_50;\n      while( true ) {\n        pbVar8 = pbVar6;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);\n        iVar10 = iVar10 * 2;\n        pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));\n        if ((int)param_2 < (int)pbVar19) {\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }\n        else {\n          iVar17 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pbVar6 = pbVar14;\n        pbVar14 = pbVar8;\n      }\n      if ((int)param_2 < (int)pbVar19) {\nLAB_00018988:\n        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);\n        pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;\n        pbVar19 = param_2;\n      }\n      pbVar3 = pbVar19 + -1;\n      if (pbVar19 != (byte *)0x0) {\n        uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);\n        if (pbVar3 == (byte *)0x0) {\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }\n        else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }\n      }\n    }" else (compound_statement "{\n      iVar17 = 0x19;\n      if ((int)pbVar3 < 0x1000000) {\n        iVar17 = 0x11;\n      }\n      iVar10 = 0x10;\n      if ((int)pbVar3 >= 0x1000000) {\n        iVar10 = 8;\n      }\nLAB_00018870:\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e;\nLAB_00018890:\n      iVar10 = 0;\n      pbVar19 = (byte *)0x1;\n      iVar17 = 0;\n      pbVar6 = local_50;\n      while( true ) {\n        pbVar8 = pbVar6;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);\n        iVar10 = iVar10 * 2;\n        pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));\n        if ((int)param_2 < (int)pbVar19) {\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }\n        else {\n          iVar17 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pbVar6 = pbVar14;\n        pbVar14 = pbVar8;\n      }\n      if ((int)param_2 < (int)pbVar19) {\nLAB_00018988:\n        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);\n        pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;\n        pbVar19 = param_2;\n      }\n      pbVar3 = pbVar19 + -1;\n      if (pbVar19 != (byte *)0x0) {\n        uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);\n        if (pbVar3 == (byte *)0x0) {\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }\n        else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }\n      }\n    }" { (expression_statement "iVar17 = 0x19;" (assignment_expression "iVar17 = 0x19" identifier = number_literal) ;) (if_statement "if ((int)pbVar3 < 0x1000000) {\n        iVar17 = 0x11;\n      }" if (parenthesized_expression "((int)pbVar3 < 0x1000000)" ( (binary_expression "(int)pbVar3 < 0x1000000" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        iVar17 = 0x11;\n      }" { (expression_statement "iVar17 = 0x11;" (assignment_expression "iVar17 = 0x11" identifier = number_literal) ;) })) (expression_statement "iVar10 = 0x10;" (assignment_expression "iVar10 = 0x10" identifier = number_literal) ;) (if_statement "if ((int)pbVar3 >= 0x1000000) {\n        iVar10 = 8;\n      }" if (parenthesized_expression "((int)pbVar3 >= 0x1000000)" ( (binary_expression "(int)pbVar3 >= 0x1000000" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) >= number_literal) )) (compound_statement "{\n        iVar10 = 8;\n      }" { (expression_statement "iVar10 = 8;" (assignment_expression "iVar10 = 8" identifier = number_literal) ;) })) (labeled_statement "LAB_00018870:\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e;" statement_identifier : (expression_statement "uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e;" (assignment_expression "uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e" identifier = (binary_expression "((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e" (parenthesized_expression "((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10)" ( (binary_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10" (cast_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17]" identifier [ (binary_expression "(uint)pbVar3 >> iVar17" (cast_expression "(uint)pbVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) ]))) - identifier) )) + number_literal)) ;)) (labeled_statement "LAB_00018890:\n      iVar10 = 0;" statement_identifier : (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;)) (expression_statement "pbVar19 = (byte *)0x1;" (assignment_expression "pbVar19 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "pbVar6 = local_50;" (assignment_expression "pbVar6 = local_50" identifier = identifier) ;) (while_statement "while( true ) {\n        pbVar8 = pbVar6;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);\n        iVar10 = iVar10 * 2;\n        pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));\n        if ((int)param_2 < (int)pbVar19) {\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }\n        else {\n          iVar17 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pbVar6 = pbVar14;\n        pbVar14 = pbVar8;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        pbVar8 = pbVar6;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);\n        iVar10 = iVar10 * 2;\n        pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));\n        if ((int)param_2 < (int)pbVar19) {\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }\n        else {\n          iVar17 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pbVar6 = pbVar14;\n        pbVar14 = pbVar8;\n      }" { (expression_statement "pbVar8 = pbVar6;" (assignment_expression "pbVar8 = pbVar6" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);" (call_expression "(*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19)" (parenthesized_expression "(*(code *)PTR___gmpn_sqr_0009d394)" ( (pointer_expression "*(code *)PTR___gmpn_sqr_0009d394" * (cast_expression "(code *)PTR___gmpn_sqr_0009d394" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar14,pbVar8 + iVar17 * 4,pbVar19)" ( identifier , (binary_expression "pbVar8 + iVar17 * 4" identifier + (binary_expression "iVar17 * 4" identifier * number_literal)) , identifier ))) ;) (expression_statement "iVar10 = iVar10 * 2;" (assignment_expression "iVar10 = iVar10 * 2" identifier = (binary_expression "iVar10 * 2" identifier * number_literal)) ;) (expression_statement "pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));" (assignment_expression "pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0))" identifier = (cast_expression "(byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0))" ( (binary_expression "(int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0)" (binary_expression "(int)pbVar19 * 2" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) - (call_expression "(uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0)" ( (binary_expression "*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0" (pointer_expression "*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4)" * (cast_expression "(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4)" ( (binary_expression "pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4" identifier + (binary_expression "((int)pbVar19 * 2 + 0x3fffffff) * 4" (parenthesized_expression "((int)pbVar19 * 2 + 0x3fffffff)" ( (binary_expression "(int)pbVar19 * 2 + 0x3fffffff" (binary_expression "(int)pbVar19 * 2" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) )) * number_literal)) )))) == number_literal) )))) )))) ;) (if_statement "if ((int)param_2 < (int)pbVar19) {\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }\n        else {\n          iVar17 = 0;\n        }" if (parenthesized_expression "((int)param_2 < (int)pbVar19)" ( (binary_expression "(int)param_2 < (int)pbVar19" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }" { (expression_statement "iVar17 = (int)pbVar19 - (int)param_2;" (assignment_expression "iVar17 = (int)pbVar19 - (int)param_2" identifier = (binary_expression "(int)pbVar19 - (int)param_2" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar10 = iVar10 + iVar17;" (assignment_expression "iVar10 = iVar10 + iVar17" identifier = (binary_expression "iVar10 + iVar17" identifier + identifier)) ;) (expression_statement "pbVar19 = param_2;" (assignment_expression "pbVar19 = param_2" identifier = identifier) ;) }) (else_clause "else {\n          iVar17 = 0;\n        }" else (compound_statement "{\n          iVar17 = 0;\n        }" { (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) }))) (if_statement "if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }" if (parenthesized_expression "(((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0)" ( (binary_expression "((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0" (parenthesized_expression "((int)pbVar3 >> (uVar22 & 0x1f) & 1U)" ( (binary_expression "(int)pbVar3 >> (uVar22 & 0x1f) & 1U" (binary_expression "(int)pbVar3 >> (uVar22 & 0x1f)" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) >> (parenthesized_expression "(uVar22 & 0x1f)" ( (binary_expression "uVar22 & 0x1f" identifier & number_literal) ))) & number_literal) )) != number_literal) )) (compound_statement "{\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }" { (expression_statement "iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);" (assignment_expression "iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3)" identifier = (call_expression "(*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_1_0009d0a4)" ( (pointer_expression "*(code *)PTR___gmpn_mul_1_0009d0a4" * (cast_expression "(code *)PTR___gmpn_mul_1_0009d0a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3)" ( identifier , (binary_expression "pbVar14 + iVar17 * 4" identifier + (binary_expression "iVar17 * 4" identifier * number_literal)) , identifier , identifier )))) ;) (expression_statement "iVar13 = (int)pbVar19 * 4;" (assignment_expression "iVar13 = (int)pbVar19 * 4" identifier = (binary_expression "(int)pbVar19 * 4" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (iVar17 != 0);" (assignment_expression "pbVar19 = pbVar19 + (iVar17 != 0)" identifier = (binary_expression "pbVar19 + (iVar17 != 0)" identifier + (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )))) ;) (expression_statement "*(int *)(pbVar14 + iVar13) = iVar17;" (assignment_expression "*(int *)(pbVar14 + iVar13) = iVar17" (pointer_expression "*(int *)(pbVar14 + iVar13)" * (cast_expression "(int *)(pbVar14 + iVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar14 + iVar13)" ( (binary_expression "pbVar14 + iVar13" identifier + identifier) )))) = identifier) ;) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) })) (if_statement "if (uVar22 == 0) break;" if (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar22 = uVar22 - 1;" (assignment_expression "uVar22 = uVar22 - 1" identifier = (binary_expression "uVar22 - 1" identifier - number_literal)) ;) (expression_statement "pbVar6 = pbVar14;" (assignment_expression "pbVar6 = pbVar14" identifier = identifier) ;) (expression_statement "pbVar14 = pbVar8;" (assignment_expression "pbVar14 = pbVar8" identifier = identifier) ;) })) (if_statement "if ((int)param_2 < (int)pbVar19) {\nLAB_00018988:\n        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);\n        pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;\n        pbVar19 = param_2;\n      }" if (parenthesized_expression "((int)param_2 < (int)pbVar19)" ( (binary_expression "(int)param_2 < (int)pbVar19" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\nLAB_00018988:\n        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);\n        pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;\n        pbVar19 = param_2;\n      }" { (labeled_statement "LAB_00018988:\n        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);" statement_identifier : (expression_statement "iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);" (assignment_expression "iVar10 = iVar10 + ((int)pbVar19 - (int)param_2)" identifier = (binary_expression "iVar10 + ((int)pbVar19 - (int)param_2)" identifier + (parenthesized_expression "((int)pbVar19 - (int)param_2)" ( (binary_expression "(int)pbVar19 - (int)param_2" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;" (assignment_expression "pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4" identifier = (binary_expression "pbVar14 + ((int)pbVar19 - (int)param_2) * 4" identifier + (binary_expression "((int)pbVar19 - (int)param_2) * 4" (parenthesized_expression "((int)pbVar19 - (int)param_2)" ( (binary_expression "(int)pbVar19 - (int)param_2" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal))) ;) (expression_statement "pbVar19 = param_2;" (assignment_expression "pbVar19 = param_2" identifier = identifier) ;) })) (expression_statement "pbVar3 = pbVar19 + -1;" (assignment_expression "pbVar3 = pbVar19 + -1" identifier = (binary_expression "pbVar19 + -1" identifier + number_literal)) ;) (if_statement "if (pbVar19 != (byte *)0x0) {\n        uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);\n        if (pbVar3 == (byte *)0x0) {\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }\n        else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }\n      }" if (parenthesized_expression "(pbVar19 != (byte *)0x0)" ( (binary_expression "pbVar19 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);\n        if (pbVar3 == (byte *)0x0) {\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }\n        else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }\n      }" { (expression_statement "uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);" (assignment_expression "uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4)" identifier = (pointer_expression "*(undefined4 *)(pbVar14 + iVar17 * 4)" * (cast_expression "(undefined4 *)(pbVar14 + iVar17 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar14 + iVar17 * 4)" ( (binary_expression "pbVar14 + iVar17 * 4" identifier + (binary_expression "iVar17 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (pbVar3 == (byte *)0x0) {\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }\n        else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }" if (parenthesized_expression "(pbVar3 == (byte *)0x0)" ( (binary_expression "pbVar3 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }" { (expression_statement "pbVar19 = (byte *)0x1;" (assignment_expression "pbVar19 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)local_50 = uVar12;" (assignment_expression "*(undefined4 *)local_50 = uVar12" (pointer_expression "*(undefined4 *)local_50" * (cast_expression "(undefined4 *)local_50" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) }) (else_clause "else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }" else (compound_statement "{\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }" { (expression_statement "pbVar14 = pbVar14 + iVar17 * 4 + 4;" (assignment_expression "pbVar14 = pbVar14 + iVar17 * 4 + 4" identifier = (binary_expression "pbVar14 + iVar17 * 4 + 4" (binary_expression "pbVar14 + iVar17 * 4" identifier + (binary_expression "iVar17 * 4" identifier * number_literal)) + number_literal)) ;) (expression_statement "pbVar6 = local_50;" (assignment_expression "pbVar6 = local_50" identifier = identifier) ;) (do_statement "do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);" do (compound_statement "{\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          }" { (expression_statement "*(undefined4 *)pbVar6 = uVar12;" (assignment_expression "*(undefined4 *)pbVar6 = uVar12" (pointer_expression "*(undefined4 *)pbVar6" * (cast_expression "(undefined4 *)pbVar6" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "pbVar3 = pbVar3 + -1;" (assignment_expression "pbVar3 = pbVar3 + -1" identifier = (binary_expression "pbVar3 + -1" identifier + number_literal)) ;) (expression_statement "uVar12 = *(undefined4 *)pbVar14;" (assignment_expression "uVar12 = *(undefined4 *)pbVar14" identifier = (pointer_expression "*(undefined4 *)pbVar14" * (cast_expression "(undefined4 *)pbVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar14 = pbVar14 + 4;" (assignment_expression "pbVar14 = pbVar14 + 4" identifier = (binary_expression "pbVar14 + 4" identifier + number_literal)) ;) (expression_statement "pbVar6 = pbVar6 + 4;" (assignment_expression "pbVar6 = pbVar6 + 4" identifier = (binary_expression "pbVar6 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar3 != (byte *)0x0)" ( (binary_expression "pbVar3 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "*(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;" (assignment_expression "*(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12" (pointer_expression "*(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4)" * (cast_expression "(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + (int)pbVar19 * 4 + -4)" ( (binary_expression "local_50 + (int)pbVar19 * 4 + -4" (binary_expression "local_50 + (int)pbVar19 * 4" identifier + (binary_expression "(int)pbVar19 * 4" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) = identifier) ;) }))) })) }))) (expression_statement "pbVar3 = param_2;" (assignment_expression "pbVar3 = param_2" identifier = identifier) ;) (if_statement "if ((int)local_44 < 0) {\n      if ((int)local_4c < (int)pbVar19) {\n        if ((uint)((int)(pbVar19 + 1) * 4) < 0x7f01) {\n          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);\n          puVar15 = puVar26 + iVar17 + 0x18;\n          puVar26 = puVar26 + iVar17;\n        }\n        else {\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }\n        iVar17 = ((int)pbVar19 - (int)local_4c) * 4;\n        pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17);\n        if (local_4c != (byte *)0x0) {\n          pbVar16 = local_4c + -1;\n          pbVar8 = pbVar14 + iVar17;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar6 = pbVar8;\n          if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }\n          *(undefined4 *)pbVar8 = uVar12;\n        }\n        local_54 = local_54 - ((int)pbVar19 - (int)local_4c);\n        local_4c = pbVar19;\n        local_3c = pbVar14;\n      }\n      uVar22 = *(uint *)(local_50 + (int)pbVar19 * 4 + -4);\n      if (-1 < (int)uVar22) {\n        if (uVar22 < 0x10000) {\n          iVar17 = 0x20;\n          if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }\n          iVar13 = 9;\n          if (0xff >= uVar22) {\n            iVar13 = 1;\n          }\n        }\n        else {\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }\n        bVar11 = puVar21[uVar22 >> iVar13];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11);\n        iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11);\n        if (iVar17 != 0) {\n          iVar13 = (int)local_4c * 4;\n          local_4c = local_4c + 1;\n          *(int *)(local_3c + iVar13) = iVar17;\n        }\n      }\n      if ((uint)(iVar4 * 4) < 0x7f01) {\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      }\n      iVar17 = (int)local_4c - (int)pbVar19;\n      *(byte **)(puVar26 + 0x14) = pbVar19;\n      *(byte **)(puVar26 + 0x10) = local_50;\n      iVar4 = (*(code *)PTR___gmpn_divrem_0009d0e4)(puVar20,(int)param_2 - iVar17);\n      pbVar14 = (byte *)((local_54 - iVar10) + iVar17 + iVar4);\n      if (iVar4 != 0) {\n        piVar5 = puVar20 + (int)param_2;\n        puVar20 = puVar20 + 1;\n        *piVar5 = iVar4;\n      }\n    }\n    else {\n      pbVar3 = pbVar19 + (int)local_4c;\n      uVar22 = (int)pbVar3 * 4;\n      if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      }\n      if ((int)local_4c < (int)pbVar19) {\n        *(byte **)(puVar26 + 0x10) = local_4c;\n        local_4c = local_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);\n        local_3c = pbVar19;\n      }\n      else {\n        *(byte **)(puVar26 + 0x10) = pbVar19;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);\n        local_3c = local_4c;\n        local_4c = local_50;\n      }\n      pbVar3 = pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0);\n      pbVar14 = pbVar3 + iVar10 + local_54;\n      if ((int)param_2 < (int)pbVar3) {\n        puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);\n        pbVar3 = param_2;\n      }\n    }" if (parenthesized_expression "((int)local_44 < 0)" ( (binary_expression "(int)local_44 < 0" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      if ((int)local_4c < (int)pbVar19) {\n        if ((uint)((int)(pbVar19 + 1) * 4) < 0x7f01) {\n          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);\n          puVar15 = puVar26 + iVar17 + 0x18;\n          puVar26 = puVar26 + iVar17;\n        }\n        else {\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }\n        iVar17 = ((int)pbVar19 - (int)local_4c) * 4;\n        pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17);\n        if (local_4c != (byte *)0x0) {\n          pbVar16 = local_4c + -1;\n          pbVar8 = pbVar14 + iVar17;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar6 = pbVar8;\n          if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }\n          *(undefined4 *)pbVar8 = uVar12;\n        }\n        local_54 = local_54 - ((int)pbVar19 - (int)local_4c);\n        local_4c = pbVar19;\n        local_3c = pbVar14;\n      }\n      uVar22 = *(uint *)(local_50 + (int)pbVar19 * 4 + -4);\n      if (-1 < (int)uVar22) {\n        if (uVar22 < 0x10000) {\n          iVar17 = 0x20;\n          if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }\n          iVar13 = 9;\n          if (0xff >= uVar22) {\n            iVar13 = 1;\n          }\n        }\n        else {\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }\n        bVar11 = puVar21[uVar22 >> iVar13];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11);\n        iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11);\n        if (iVar17 != 0) {\n          iVar13 = (int)local_4c * 4;\n          local_4c = local_4c + 1;\n          *(int *)(local_3c + iVar13) = iVar17;\n        }\n      }\n      if ((uint)(iVar4 * 4) < 0x7f01) {\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      }\n      iVar17 = (int)local_4c - (int)pbVar19;\n      *(byte **)(puVar26 + 0x14) = pbVar19;\n      *(byte **)(puVar26 + 0x10) = local_50;\n      iVar4 = (*(code *)PTR___gmpn_divrem_0009d0e4)(puVar20,(int)param_2 - iVar17);\n      pbVar14 = (byte *)((local_54 - iVar10) + iVar17 + iVar4);\n      if (iVar4 != 0) {\n        piVar5 = puVar20 + (int)param_2;\n        puVar20 = puVar20 + 1;\n        *piVar5 = iVar4;\n      }\n    }" { (if_statement "if ((int)local_4c < (int)pbVar19) {\n        if ((uint)((int)(pbVar19 + 1) * 4) < 0x7f01) {\n          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);\n          puVar15 = puVar26 + iVar17 + 0x18;\n          puVar26 = puVar26 + iVar17;\n        }\n        else {\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }\n        iVar17 = ((int)pbVar19 - (int)local_4c) * 4;\n        pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17);\n        if (local_4c != (byte *)0x0) {\n          pbVar16 = local_4c + -1;\n          pbVar8 = pbVar14 + iVar17;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar6 = pbVar8;\n          if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }\n          *(undefined4 *)pbVar8 = uVar12;\n        }\n        local_54 = local_54 - ((int)pbVar19 - (int)local_4c);\n        local_4c = pbVar19;\n        local_3c = pbVar14;\n      }" if (parenthesized_expression "((int)local_4c < (int)pbVar19)" ( (binary_expression "(int)local_4c < (int)pbVar19" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        if ((uint)((int)(pbVar19 + 1) * 4) < 0x7f01) {\n          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);\n          puVar15 = puVar26 + iVar17 + 0x18;\n          puVar26 = puVar26 + iVar17;\n        }\n        else {\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }\n        iVar17 = ((int)pbVar19 - (int)local_4c) * 4;\n        pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17);\n        if (local_4c != (byte *)0x0) {\n          pbVar16 = local_4c + -1;\n          pbVar8 = pbVar14 + iVar17;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar6 = pbVar8;\n          if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }\n          *(undefined4 *)pbVar8 = uVar12;\n        }\n        local_54 = local_54 - ((int)pbVar19 - (int)local_4c);\n        local_4c = pbVar19;\n        local_3c = pbVar14;\n      }" { (if_statement "if ((uint)((int)(pbVar19 + 1) * 4) < 0x7f01) {\n          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);\n          puVar15 = puVar26 + iVar17 + 0x18;\n          puVar26 = puVar26 + iVar17;\n        }\n        else {\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }" if (parenthesized_expression "((uint)((int)(pbVar19 + 1) * 4) < 0x7f01)" ( (binary_expression "(uint)((int)(pbVar19 + 1) * 4) < 0x7f01" (call_expression "(uint)((int)(pbVar19 + 1) * 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(pbVar19 + 1) * 4)" ( (binary_expression "(int)(pbVar19 + 1) * 4" (cast_expression "(int)(pbVar19 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar19 + 1)" ( (binary_expression "pbVar19 + 1" identifier + number_literal) ))) * number_literal) ))) < number_literal) )) (compound_statement "{\n          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);\n          puVar15 = puVar26 + iVar17 + 0x18;\n          puVar26 = puVar26 + iVar17;\n        }" { (expression_statement "iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);" (assignment_expression "iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8)" identifier = (unary_expression "-((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8)" - (parenthesized_expression "((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8)" ( (binary_expression "(int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8" (binary_expression "(int)(pbVar19 + 1) * 4 + 7U" (binary_expression "(int)(pbVar19 + 1) * 4" (cast_expression "(int)(pbVar19 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar19 + 1)" ( (binary_expression "pbVar19 + 1" identifier + number_literal) ))) * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "puVar15 = puVar26 + iVar17 + 0x18;" (assignment_expression "puVar15 = puVar26 + iVar17 + 0x18" identifier = (binary_expression "puVar26 + iVar17 + 0x18" (binary_expression "puVar26 + iVar17" identifier + identifier) + number_literal)) ;) (expression_statement "puVar26 = puVar26 + iVar17;" (assignment_expression "puVar26 = puVar26 + iVar17" identifier = (binary_expression "puVar26 + iVar17" identifier + identifier)) ;) }) (else_clause "else {\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }" else (compound_statement "{\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }" { (expression_statement "puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);" (assignment_expression "puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30)" ( (pointer_expression "&local_30" & identifier) ))))) ;) }))) (expression_statement "iVar17 = ((int)pbVar19 - (int)local_4c) * 4;" (assignment_expression "iVar17 = ((int)pbVar19 - (int)local_4c) * 4" identifier = (binary_expression "((int)pbVar19 - (int)local_4c) * 4" (parenthesized_expression "((int)pbVar19 - (int)local_4c)" ( (binary_expression "(int)pbVar19 - (int)local_4c" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal)) ;) (expression_statement "pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17);" (assignment_expression "pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17)" identifier = (cast_expression "(byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17)" (parenthesized_expression "(*(code *)PTR_memset_0009d2e8)" ( (pointer_expression "*(code *)PTR_memset_0009d2e8" * (cast_expression "(code *)PTR_memset_0009d2e8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar15,0,iVar17)" ( identifier , number_literal , identifier ))))) ;) (if_statement "if (local_4c != (byte *)0x0) {\n          pbVar16 = local_4c + -1;\n          pbVar8 = pbVar14 + iVar17;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar6 = pbVar8;\n          if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }\n          *(undefined4 *)pbVar8 = uVar12;\n        }" if (parenthesized_expression "(local_4c != (byte *)0x0)" ( (binary_expression "local_4c != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pbVar16 = local_4c + -1;\n          pbVar8 = pbVar14 + iVar17;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar6 = pbVar8;\n          if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }\n          *(undefined4 *)pbVar8 = uVar12;\n        }" { (expression_statement "pbVar16 = local_4c + -1;" (assignment_expression "pbVar16 = local_4c + -1" identifier = (binary_expression "local_4c + -1" identifier + number_literal)) ;) (expression_statement "pbVar8 = pbVar14 + iVar17;" (assignment_expression "pbVar8 = pbVar14 + iVar17" identifier = (binary_expression "pbVar14 + iVar17" identifier + identifier)) ;) (expression_statement "uVar12 = *(undefined4 *)local_3c;" (assignment_expression "uVar12 = *(undefined4 *)local_3c" identifier = (pointer_expression "*(undefined4 *)local_3c" * (cast_expression "(undefined4 *)local_3c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar6 = pbVar8;" (assignment_expression "pbVar6 = pbVar8" identifier = identifier) ;) (if_statement "if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }" if (parenthesized_expression "(pbVar16 != (byte *)0x0)" ( (binary_expression "pbVar16 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }" { (do_statement "do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);" do (compound_statement "{\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            }" { (expression_statement "local_3c = local_3c + 4;" (assignment_expression "local_3c = local_3c + 4" identifier = (binary_expression "local_3c + 4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)pbVar6 = uVar12;" (assignment_expression "*(undefined4 *)pbVar6 = uVar12" (pointer_expression "*(undefined4 *)pbVar6" * (cast_expression "(undefined4 *)pbVar6" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "pbVar16 = pbVar16 + -1;" (assignment_expression "pbVar16 = pbVar16 + -1" identifier = (binary_expression "pbVar16 + -1" identifier + number_literal)) ;) (expression_statement "uVar12 = *(undefined4 *)local_3c;" (assignment_expression "uVar12 = *(undefined4 *)local_3c" identifier = (pointer_expression "*(undefined4 *)local_3c" * (cast_expression "(undefined4 *)local_3c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar6 = pbVar6 + 4;" (assignment_expression "pbVar6 = pbVar6 + 4" identifier = (binary_expression "pbVar6 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar16 != (byte *)0x0)" ( (binary_expression "pbVar16 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pbVar8 = pbVar8 + (int)local_4c * 4 + -4;" (assignment_expression "pbVar8 = pbVar8 + (int)local_4c * 4 + -4" identifier = (binary_expression "pbVar8 + (int)local_4c * 4 + -4" (binary_expression "pbVar8 + (int)local_4c * 4" identifier + (binary_expression "(int)local_4c * 4" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "*(undefined4 *)pbVar8 = uVar12;" (assignment_expression "*(undefined4 *)pbVar8 = uVar12" (pointer_expression "*(undefined4 *)pbVar8" * (cast_expression "(undefined4 *)pbVar8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) })) (expression_statement "local_54 = local_54 - ((int)pbVar19 - (int)local_4c);" (assignment_expression "local_54 = local_54 - ((int)pbVar19 - (int)local_4c)" identifier = (binary_expression "local_54 - ((int)pbVar19 - (int)local_4c)" identifier - (parenthesized_expression "((int)pbVar19 - (int)local_4c)" ( (binary_expression "(int)pbVar19 - (int)local_4c" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_4c = pbVar19;" (assignment_expression "local_4c = pbVar19" identifier = identifier) ;) (expression_statement "local_3c = pbVar14;" (assignment_expression "local_3c = pbVar14" identifier = identifier) ;) })) (expression_statement "uVar22 = *(uint *)(local_50 + (int)pbVar19 * 4 + -4);" (assignment_expression "uVar22 = *(uint *)(local_50 + (int)pbVar19 * 4 + -4)" identifier = (pointer_expression "*(uint *)(local_50 + (int)pbVar19 * 4 + -4)" * (cast_expression "(uint *)(local_50 + (int)pbVar19 * 4 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + (int)pbVar19 * 4 + -4)" ( (binary_expression "local_50 + (int)pbVar19 * 4 + -4" (binary_expression "local_50 + (int)pbVar19 * 4" identifier + (binary_expression "(int)pbVar19 * 4" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) ))))) ;) (if_statement "if (-1 < (int)uVar22) {\n        if (uVar22 < 0x10000) {\n          iVar17 = 0x20;\n          if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }\n          iVar13 = 9;\n          if (0xff >= uVar22) {\n            iVar13 = 1;\n          }\n        }\n        else {\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }\n        bVar11 = puVar21[uVar22 >> iVar13];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11);\n        iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11);\n        if (iVar17 != 0) {\n          iVar13 = (int)local_4c * 4;\n          local_4c = local_4c + 1;\n          *(int *)(local_3c + iVar13) = iVar17;\n        }\n      }" if (parenthesized_expression "(-1 < (int)uVar22)" ( (binary_expression "-1 < (int)uVar22" number_literal < (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        if (uVar22 < 0x10000) {\n          iVar17 = 0x20;\n          if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }\n          iVar13 = 9;\n          if (0xff >= uVar22) {\n            iVar13 = 1;\n          }\n        }\n        else {\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }\n        bVar11 = puVar21[uVar22 >> iVar13];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11);\n        iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11);\n        if (iVar17 != 0) {\n          iVar13 = (int)local_4c * 4;\n          local_4c = local_4c + 1;\n          *(int *)(local_3c + iVar13) = iVar17;\n        }\n      }" { (if_statement "if (uVar22 < 0x10000) {\n          iVar17 = 0x20;\n          if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }\n          iVar13 = 9;\n          if (0xff >= uVar22) {\n            iVar13 = 1;\n          }\n        }\n        else {\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }" if (parenthesized_expression "(uVar22 < 0x10000)" ( (binary_expression "uVar22 < 0x10000" identifier < number_literal) )) (compound_statement "{\n          iVar17 = 0x20;\n          if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }\n          iVar13 = 9;\n          if (0xff >= uVar22) {\n            iVar13 = 1;\n          }\n        }" { (expression_statement "iVar17 = 0x20;" (assignment_expression "iVar17 = 0x20" identifier = number_literal) ;) (if_statement "if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }" if (parenthesized_expression "(0xff < uVar22)" ( (binary_expression "0xff < uVar22" number_literal < identifier) )) (compound_statement "{\n            iVar17 = 0x18;\n          }" { (expression_statement "iVar17 = 0x18;" (assignment_expression "iVar17 = 0x18" identifier = number_literal) ;) })) (expression_statement "iVar13 = 9;" (assignment_expression "iVar13 = 9" identifier = number_literal) ;) (if_statement "if (0xff >= uVar22) {\n            iVar13 = 1;\n          }" if (parenthesized_expression "(0xff >= uVar22)" ( (binary_expression "0xff >= uVar22" number_literal >= identifier) )) (compound_statement "{\n            iVar13 = 1;\n          }" { (expression_statement "iVar13 = 1;" (assignment_expression "iVar13 = 1" identifier = number_literal) ;) })) }) (else_clause "else {\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }" else (compound_statement "{\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }" { (expression_statement "iVar17 = 0x10;" (assignment_expression "iVar17 = 0x10" identifier = number_literal) ;) (if_statement "if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }" if (parenthesized_expression "(0xffffff < uVar22)" ( (binary_expression "0xffffff < uVar22" number_literal < identifier) )) (compound_statement "{\n            iVar17 = 8;\n          }" { (expression_statement "iVar17 = 8;" (assignment_expression "iVar17 = 8" identifier = number_literal) ;) })) (expression_statement "iVar13 = 0x19;" (assignment_expression "iVar13 = 0x19" identifier = number_literal) ;) (if_statement "if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }" if (parenthesized_expression "(0xffffff >= uVar22)" ( (binary_expression "0xffffff >= uVar22" number_literal >= identifier) )) (compound_statement "{\n            iVar13 = 0x11;\n          }" { (expression_statement "iVar13 = 0x11;" (assignment_expression "iVar13 = 0x11" identifier = number_literal) ;) })) }))) (expression_statement "bVar11 = puVar21[uVar22 >> iVar13];" (assignment_expression "bVar11 = puVar21[uVar22 >> iVar13]" identifier = (subscript_expression "puVar21[uVar22 >> iVar13]" identifier [ (binary_expression "uVar22 >> iVar13" identifier >> identifier) ])) ;) (expression_statement "(*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11);" (call_expression "(*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009d56c)" ( (pointer_expression "*(code *)PTR___gmpn_lshift_0009d56c" * (cast_expression "(code *)PTR___gmpn_lshift_0009d56c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_50,local_50,pbVar19,iVar17 - (uint)bVar11)" ( identifier , identifier , identifier , (binary_expression "iVar17 - (uint)bVar11" identifier - (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) ;) (expression_statement "iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11);" (assignment_expression "iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11)" identifier = (call_expression "(*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009d56c)" ( (pointer_expression "*(code *)PTR___gmpn_lshift_0009d56c" * (cast_expression "(code *)PTR___gmpn_lshift_0009d56c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_3c,local_3c,local_4c,iVar17 - (uint)bVar11)" ( identifier , identifier , identifier , (binary_expression "iVar17 - (uint)bVar11" identifier - (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (if_statement "if (iVar17 != 0) {\n          iVar13 = (int)local_4c * 4;\n          local_4c = local_4c + 1;\n          *(int *)(local_3c + iVar13) = iVar17;\n        }" if (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar13 = (int)local_4c * 4;\n          local_4c = local_4c + 1;\n          *(int *)(local_3c + iVar13) = iVar17;\n        }" { (expression_statement "iVar13 = (int)local_4c * 4;" (assignment_expression "iVar13 = (int)local_4c * 4" identifier = (binary_expression "(int)local_4c * 4" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "local_4c = local_4c + 1;" (assignment_expression "local_4c = local_4c + 1" identifier = (binary_expression "local_4c + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(local_3c + iVar13) = iVar17;" (assignment_expression "*(int *)(local_3c + iVar13) = iVar17" (pointer_expression "*(int *)(local_3c + iVar13)" * (cast_expression "(int *)(local_3c + iVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_3c + iVar13)" ( (binary_expression "local_3c + iVar13" identifier + identifier) )))) = identifier) ;) })) })) (if_statement "if ((uint)(iVar4 * 4) < 0x7f01) {\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      }" if (parenthesized_expression "((uint)(iVar4 * 4) < 0x7f01)" ( (binary_expression "(uint)(iVar4 * 4) < 0x7f01" (call_expression "(uint)(iVar4 * 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar4 * 4)" ( (binary_expression "iVar4 * 4" identifier * number_literal) ))) < number_literal) )) (compound_statement "{\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }" { (expression_statement "iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);" (assignment_expression "iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8)" identifier = (unary_expression "-(iVar4 * 4 + 7U & 0xfffffff8)" - (parenthesized_expression "(iVar4 * 4 + 7U & 0xfffffff8)" ( (binary_expression "iVar4 * 4 + 7U & 0xfffffff8" (binary_expression "iVar4 * 4 + 7U" (binary_expression "iVar4 * 4" identifier * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);" (assignment_expression "puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18)" identifier = (cast_expression "(undefined4 *)(puVar26 + iVar4 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + iVar4 + 0x18)" ( (binary_expression "puVar26 + iVar4 + 0x18" (binary_expression "puVar26 + iVar4" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar26 = puVar26 + iVar4;" (assignment_expression "puVar26 = puVar26 + iVar4" identifier = (binary_expression "puVar26 + iVar4" identifier + identifier)) ;) }) (else_clause "else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      }" else (compound_statement "{\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      }" { (expression_statement "puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);" (assignment_expression "puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30)" ( (pointer_expression "&local_30" & identifier) ))))) ;) }))) (expression_statement "iVar17 = (int)local_4c - (int)pbVar19;" (assignment_expression "iVar17 = (int)local_4c - (int)pbVar19" identifier = (binary_expression "(int)local_4c - (int)pbVar19" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(byte **)(puVar26 + 0x14) = pbVar19;" (assignment_expression "*(byte **)(puVar26 + 0x14) = pbVar19" (pointer_expression "*(byte **)(puVar26 + 0x14)" * (cast_expression "(byte **)(puVar26 + 0x14)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x14)" ( (binary_expression "puVar26 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar26 + 0x10) = local_50;" (assignment_expression "*(byte **)(puVar26 + 0x10) = local_50" (pointer_expression "*(byte **)(puVar26 + 0x10)" * (cast_expression "(byte **)(puVar26 + 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x10)" ( (binary_expression "puVar26 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar4 = (*(code *)PTR___gmpn_divrem_0009d0e4)(puVar20,(int)param_2 - iVar17);" (assignment_expression "iVar4 = (*(code *)PTR___gmpn_divrem_0009d0e4)(puVar20,(int)param_2 - iVar17)" identifier = (call_expression "(*(code *)PTR___gmpn_divrem_0009d0e4)(puVar20,(int)param_2 - iVar17)" (parenthesized_expression "(*(code *)PTR___gmpn_divrem_0009d0e4)" ( (pointer_expression "*(code *)PTR___gmpn_divrem_0009d0e4" * (cast_expression "(code *)PTR___gmpn_divrem_0009d0e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar20,(int)param_2 - iVar17)" ( identifier , (binary_expression "(int)param_2 - iVar17" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "pbVar14 = (byte *)((local_54 - iVar10) + iVar17 + iVar4);" (assignment_expression "pbVar14 = (byte *)((local_54 - iVar10) + iVar17 + iVar4)" identifier = (cast_expression "(byte *)((local_54 - iVar10) + iVar17 + iVar4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((local_54 - iVar10) + iVar17 + iVar4)" ( (binary_expression "(local_54 - iVar10) + iVar17 + iVar4" (binary_expression "(local_54 - iVar10) + iVar17" (parenthesized_expression "(local_54 - iVar10)" ( (binary_expression "local_54 - iVar10" identifier - identifier) )) + identifier) + identifier) )))) ;) (if_statement "if (iVar4 != 0) {\n        piVar5 = puVar20 + (int)param_2;\n        puVar20 = puVar20 + 1;\n        *piVar5 = iVar4;\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        piVar5 = puVar20 + (int)param_2;\n        puVar20 = puVar20 + 1;\n        *piVar5 = iVar4;\n      }" { (expression_statement "piVar5 = puVar20 + (int)param_2;" (assignment_expression "piVar5 = puVar20 + (int)param_2" identifier = (binary_expression "puVar20 + (int)param_2" identifier + (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar20 = puVar20 + 1;" (assignment_expression "puVar20 = puVar20 + 1" identifier = (binary_expression "puVar20 + 1" identifier + number_literal)) ;) (expression_statement "*piVar5 = iVar4;" (assignment_expression "*piVar5 = iVar4" (pointer_expression "*piVar5" * identifier) = identifier) ;) })) }) (else_clause "else {\n      pbVar3 = pbVar19 + (int)local_4c;\n      uVar22 = (int)pbVar3 * 4;\n      if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      }\n      if ((int)local_4c < (int)pbVar19) {\n        *(byte **)(puVar26 + 0x10) = local_4c;\n        local_4c = local_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);\n        local_3c = pbVar19;\n      }\n      else {\n        *(byte **)(puVar26 + 0x10) = pbVar19;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);\n        local_3c = local_4c;\n        local_4c = local_50;\n      }\n      pbVar3 = pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0);\n      pbVar14 = pbVar3 + iVar10 + local_54;\n      if ((int)param_2 < (int)pbVar3) {\n        puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);\n        pbVar3 = param_2;\n      }\n    }" else (compound_statement "{\n      pbVar3 = pbVar19 + (int)local_4c;\n      uVar22 = (int)pbVar3 * 4;\n      if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      }\n      if ((int)local_4c < (int)pbVar19) {\n        *(byte **)(puVar26 + 0x10) = local_4c;\n        local_4c = local_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);\n        local_3c = pbVar19;\n      }\n      else {\n        *(byte **)(puVar26 + 0x10) = pbVar19;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);\n        local_3c = local_4c;\n        local_4c = local_50;\n      }\n      pbVar3 = pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0);\n      pbVar14 = pbVar3 + iVar10 + local_54;\n      if ((int)param_2 < (int)pbVar3) {\n        puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);\n        pbVar3 = param_2;\n      }\n    }" { (expression_statement "pbVar3 = pbVar19 + (int)local_4c;" (assignment_expression "pbVar3 = pbVar19 + (int)local_4c" identifier = (binary_expression "pbVar19 + (int)local_4c" identifier + (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar22 = (int)pbVar3 * 4;" (assignment_expression "uVar22 = (int)pbVar3 * 4" identifier = (binary_expression "(int)pbVar3 * 4" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (if_statement "if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      }" if (parenthesized_expression "(uVar22 < 0x7f01)" ( (binary_expression "uVar22 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }" { (expression_statement "iVar4 = -(uVar22 + 7 & 0xfffffff8);" (assignment_expression "iVar4 = -(uVar22 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar22 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar22 + 7 & 0xfffffff8)" ( (binary_expression "uVar22 + 7 & 0xfffffff8" (binary_expression "uVar22 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);" (assignment_expression "puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18)" identifier = (cast_expression "(undefined4 *)(puVar26 + iVar4 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + iVar4 + 0x18)" ( (binary_expression "puVar26 + iVar4 + 0x18" (binary_expression "puVar26 + iVar4" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar26 = puVar26 + iVar4;" (assignment_expression "puVar26 = puVar26 + iVar4" identifier = (binary_expression "puVar26 + iVar4" identifier + identifier)) ;) }) (else_clause "else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      }" else (compound_statement "{\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      }" { (expression_statement "puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);" (assignment_expression "puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30,uVar22)" ( (pointer_expression "&local_30" & identifier) , identifier ))))) ;) }))) (if_statement "if ((int)local_4c < (int)pbVar19) {\n        *(byte **)(puVar26 + 0x10) = local_4c;\n        local_4c = local_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);\n        local_3c = pbVar19;\n      }\n      else {\n        *(byte **)(puVar26 + 0x10) = pbVar19;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);\n        local_3c = local_4c;\n        local_4c = local_50;\n      }" if (parenthesized_expression "((int)local_4c < (int)pbVar19)" ( (binary_expression "(int)local_4c < (int)pbVar19" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        *(byte **)(puVar26 + 0x10) = local_4c;\n        local_4c = local_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);\n        local_3c = pbVar19;\n      }" { (expression_statement "*(byte **)(puVar26 + 0x10) = local_4c;" (assignment_expression "*(byte **)(puVar26 + 0x10) = local_4c" (pointer_expression "*(byte **)(puVar26 + 0x10)" * (cast_expression "(byte **)(puVar26 + 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x10)" ( (binary_expression "puVar26 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_4c = local_3c;" (assignment_expression "local_4c = local_3c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);" (call_expression "(*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_0009d2b4)" ( (pointer_expression "*(code *)PTR___gmpn_mul_0009d2b4" * (cast_expression "(code *)PTR___gmpn_mul_0009d2b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar20,local_50)" ( identifier , identifier ))) ;) (expression_statement "local_3c = pbVar19;" (assignment_expression "local_3c = pbVar19" identifier = identifier) ;) }) (else_clause "else {\n        *(byte **)(puVar26 + 0x10) = pbVar19;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);\n        local_3c = local_4c;\n        local_4c = local_50;\n      }" else (compound_statement "{\n        *(byte **)(puVar26 + 0x10) = pbVar19;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);\n        local_3c = local_4c;\n        local_4c = local_50;\n      }" { (expression_statement "*(byte **)(puVar26 + 0x10) = pbVar19;" (assignment_expression "*(byte **)(puVar26 + 0x10) = pbVar19" (pointer_expression "*(byte **)(puVar26 + 0x10)" * (cast_expression "(byte **)(puVar26 + 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x10)" ( (binary_expression "puVar26 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);" (call_expression "(*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_0009d2b4)" ( (pointer_expression "*(code *)PTR___gmpn_mul_0009d2b4" * (cast_expression "(code *)PTR___gmpn_mul_0009d2b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar20,local_3c)" ( identifier , identifier ))) ;) (expression_statement "local_3c = local_4c;" (assignment_expression "local_3c = local_4c" identifier = identifier) ;) (expression_statement "local_4c = local_50;" (assignment_expression "local_4c = local_50" identifier = identifier) ;) }))) (expression_statement "pbVar3 = pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0);" (assignment_expression "pbVar3 = pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0)" identifier = (binary_expression "pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0)" identifier + (unary_expression "-(uint)(puVar20[(int)(pbVar3 + -1)] == 0)" - (call_expression "(uint)(puVar20[(int)(pbVar3 + -1)] == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar20[(int)(pbVar3 + -1)] == 0)" ( (binary_expression "puVar20[(int)(pbVar3 + -1)] == 0" (subscript_expression "puVar20[(int)(pbVar3 + -1)]" identifier [ (cast_expression "(int)(pbVar3 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar3 + -1)" ( (binary_expression "pbVar3 + -1" identifier + number_literal) ))) ]) == number_literal) )))))) ;) (expression_statement "pbVar14 = pbVar3 + iVar10 + local_54;" (assignment_expression "pbVar14 = pbVar3 + iVar10 + local_54" identifier = (binary_expression "pbVar3 + iVar10 + local_54" (binary_expression "pbVar3 + iVar10" identifier + identifier) + identifier)) ;) (if_statement "if ((int)param_2 < (int)pbVar3) {\n        puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);\n        pbVar3 = param_2;\n      }" if (parenthesized_expression "((int)param_2 < (int)pbVar3)" ( (binary_expression "(int)param_2 < (int)pbVar3" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);\n        pbVar3 = param_2;\n      }" { (expression_statement "puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);" (assignment_expression "puVar20 = puVar20 + ((int)pbVar3 - (int)param_2)" identifier = (binary_expression "puVar20 + ((int)pbVar3 - (int)param_2)" identifier + (parenthesized_expression "((int)pbVar3 - (int)param_2)" ( (binary_expression "(int)pbVar3 - (int)param_2" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pbVar3 = param_2;" (assignment_expression "pbVar3 = param_2" identifier = identifier) ;) })) }))) (if_statement "if (pbVar3 != (byte *)0x0) {\n      pbVar6 = pbVar3 + -1;\n      uVar12 = *puVar20;\n      local_3c = (byte *)param_1[3];\n      pbVar19 = local_3c;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          puVar20 = puVar20 + 1;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *puVar20;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        local_3c = local_3c + (int)pbVar3 * 4 + -4;\n      }\n      *(undefined4 *)local_3c = uVar12;\n    }" if (parenthesized_expression "(pbVar3 != (byte *)0x0)" ( (binary_expression "pbVar3 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbVar6 = pbVar3 + -1;\n      uVar12 = *puVar20;\n      local_3c = (byte *)param_1[3];\n      pbVar19 = local_3c;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          puVar20 = puVar20 + 1;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *puVar20;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        local_3c = local_3c + (int)pbVar3 * 4 + -4;\n      }\n      *(undefined4 *)local_3c = uVar12;\n    }" { (expression_statement "pbVar6 = pbVar3 + -1;" (assignment_expression "pbVar6 = pbVar3 + -1" identifier = (binary_expression "pbVar3 + -1" identifier + number_literal)) ;) (expression_statement "uVar12 = *puVar20;" (assignment_expression "uVar12 = *puVar20" identifier = (pointer_expression "*puVar20" * identifier)) ;) (expression_statement "local_3c = (byte *)param_1[3];" (assignment_expression "local_3c = (byte *)param_1[3]" identifier = (cast_expression "(byte *)param_1[3]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[3]" identifier [ number_literal ]))) ;) (expression_statement "pbVar19 = local_3c;" (assignment_expression "pbVar19 = local_3c" identifier = identifier) ;) (if_statement "if (pbVar6 != (byte *)0x0) {\n        do {\n          puVar20 = puVar20 + 1;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *puVar20;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        local_3c = local_3c + (int)pbVar3 * 4 + -4;\n      }" if (parenthesized_expression "(pbVar6 != (byte *)0x0)" ( (binary_expression "pbVar6 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        do {\n          puVar20 = puVar20 + 1;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *puVar20;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        local_3c = local_3c + (int)pbVar3 * 4 + -4;\n      }" { (do_statement "do {\n          puVar20 = puVar20 + 1;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *puVar20;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);" do (compound_statement "{\n          puVar20 = puVar20 + 1;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *puVar20;\n          pbVar19 = pbVar19 + 4;\n        }" { (expression_statement "puVar20 = puVar20 + 1;" (assignment_expression "puVar20 = puVar20 + 1" identifier = (binary_expression "puVar20 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)pbVar19 = uVar12;" (assignment_expression "*(undefined4 *)pbVar19 = uVar12" (pointer_expression "*(undefined4 *)pbVar19" * (cast_expression "(undefined4 *)pbVar19" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "pbVar6 = pbVar6 + -1;" (assignment_expression "pbVar6 = pbVar6 + -1" identifier = (binary_expression "pbVar6 + -1" identifier + number_literal)) ;) (expression_statement "uVar12 = *puVar20;" (assignment_expression "uVar12 = *puVar20" identifier = (pointer_expression "*puVar20" * identifier)) ;) (expression_statement "pbVar19 = pbVar19 + 4;" (assignment_expression "pbVar19 = pbVar19 + 4" identifier = (binary_expression "pbVar19 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar6 != (byte *)0x0)" ( (binary_expression "pbVar6 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "local_3c = local_3c + (int)pbVar3 * 4 + -4;" (assignment_expression "local_3c = local_3c + (int)pbVar3 * 4 + -4" identifier = (binary_expression "local_3c + (int)pbVar3 * 4 + -4" (binary_expression "local_3c + (int)pbVar3 * 4" identifier + (binary_expression "(int)pbVar3 * 4" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "*(undefined4 *)local_3c = uVar12;" (assignment_expression "*(undefined4 *)local_3c = uVar12" (pointer_expression "*(undefined4 *)local_3c" * (cast_expression "(undefined4 *)local_3c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) })) (if_statement "if (bVar1) {\n      pbVar3 = (byte *)-(int)pbVar3;\n    }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n      pbVar3 = (byte *)-(int)pbVar3;\n    }" { (expression_statement "pbVar3 = (byte *)-(int)pbVar3;" (assignment_expression "pbVar3 = (byte *)-(int)pbVar3" identifier = (cast_expression "(byte *)-(int)pbVar3" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pbVar3" - (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "param_1[1] = (int)pbVar3;" (assignment_expression "param_1[1] = (int)pbVar3" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[2] = (int)pbVar14;" (assignment_expression "param_1[2] = (int)pbVar14" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pbVar14 = local_3c;" (assignment_expression "pbVar14 = local_3c" identifier = identifier) ;) (expression_statement "param_4 = local_4c;" (assignment_expression "param_4 = local_4c" identifier = identifier) ;) (expression_statement "param_2 = pbVar3;" (assignment_expression "param_2 = pbVar3" identifier = identifier) ;) (if_statement "if (local_30 == 0) {\n      uVar22 = 0;\n      goto LAB_00018714;\n    }" if (parenthesized_expression "(local_30 == 0)" ( (binary_expression "local_30 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar22 = 0;\n      goto LAB_00018714;\n    }" { (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00018714;" goto statement_identifier ;) })) }) (else_clause "else {\n    local_54 = 0;\n    local_4c = pbVar3;\n    if (pbVar16 != (byte *)0x0) goto LAB_000185a0;\nLAB_000187d0:\n    if (pbVar23 != (byte *)0x0) {\n      local_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }\nLAB_000187e0:\n    if (local_4c != (byte *)0x0) {\n      pbVar6 = local_4c + -1;\n      pbVar14 = (byte *)param_1[3];\n      uVar12 = *(undefined4 *)local_3c;\n      pbVar19 = pbVar14;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;\n      }\n      *(undefined4 *)pbVar14 = uVar12;\n    }\n    if (bVar1) {\n      local_4c = (byte *)-(int)local_4c;\n    }\n    param_1[1] = (int)local_4c;\n    param_1[2] = (int)pbVar3;\n    if (local_30 == 0) goto LAB_000187ac;\n  }" else (compound_statement "{\n    local_54 = 0;\n    local_4c = pbVar3;\n    if (pbVar16 != (byte *)0x0) goto LAB_000185a0;\nLAB_000187d0:\n    if (pbVar23 != (byte *)0x0) {\n      local_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }\nLAB_000187e0:\n    if (local_4c != (byte *)0x0) {\n      pbVar6 = local_4c + -1;\n      pbVar14 = (byte *)param_1[3];\n      uVar12 = *(undefined4 *)local_3c;\n      pbVar19 = pbVar14;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;\n      }\n      *(undefined4 *)pbVar14 = uVar12;\n    }\n    if (bVar1) {\n      local_4c = (byte *)-(int)local_4c;\n    }\n    param_1[1] = (int)local_4c;\n    param_1[2] = (int)pbVar3;\n    if (local_30 == 0) goto LAB_000187ac;\n  }" { (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_4c = pbVar3;" (assignment_expression "local_4c = pbVar3" identifier = identifier) ;) (if_statement "if (pbVar16 != (byte *)0x0) goto LAB_000185a0;" if (parenthesized_expression "(pbVar16 != (byte *)0x0)" ( (binary_expression "pbVar16 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000185a0;" goto statement_identifier ;)) (labeled_statement "LAB_000187d0:\n    if (pbVar23 != (byte *)0x0) {\n      local_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }" statement_identifier : (if_statement "if (pbVar23 != (byte *)0x0) {\n      local_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }" if (parenthesized_expression "(pbVar23 != (byte *)0x0)" ( (binary_expression "pbVar23 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }" { (expression_statement "local_44 = (byte *)0x0;" (assignment_expression "local_44 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00018628;" goto statement_identifier ;) }))) (labeled_statement "LAB_000187e0:\n    if (local_4c != (byte *)0x0) {\n      pbVar6 = local_4c + -1;\n      pbVar14 = (byte *)param_1[3];\n      uVar12 = *(undefined4 *)local_3c;\n      pbVar19 = pbVar14;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;\n      }\n      *(undefined4 *)pbVar14 = uVar12;\n    }" statement_identifier : (if_statement "if (local_4c != (byte *)0x0) {\n      pbVar6 = local_4c + -1;\n      pbVar14 = (byte *)param_1[3];\n      uVar12 = *(undefined4 *)local_3c;\n      pbVar19 = pbVar14;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;\n      }\n      *(undefined4 *)pbVar14 = uVar12;\n    }" if (parenthesized_expression "(local_4c != (byte *)0x0)" ( (binary_expression "local_4c != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbVar6 = local_4c + -1;\n      pbVar14 = (byte *)param_1[3];\n      uVar12 = *(undefined4 *)local_3c;\n      pbVar19 = pbVar14;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;\n      }\n      *(undefined4 *)pbVar14 = uVar12;\n    }" { (expression_statement "pbVar6 = local_4c + -1;" (assignment_expression "pbVar6 = local_4c + -1" identifier = (binary_expression "local_4c + -1" identifier + number_literal)) ;) (expression_statement "pbVar14 = (byte *)param_1[3];" (assignment_expression "pbVar14 = (byte *)param_1[3]" identifier = (cast_expression "(byte *)param_1[3]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[3]" identifier [ number_literal ]))) ;) (expression_statement "uVar12 = *(undefined4 *)local_3c;" (assignment_expression "uVar12 = *(undefined4 *)local_3c" identifier = (pointer_expression "*(undefined4 *)local_3c" * (cast_expression "(undefined4 *)local_3c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar19 = pbVar14;" (assignment_expression "pbVar19 = pbVar14" identifier = identifier) ;) (if_statement "if (pbVar6 != (byte *)0x0) {\n        do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;\n      }" if (parenthesized_expression "(pbVar6 != (byte *)0x0)" ( (binary_expression "pbVar6 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;\n      }" { (do_statement "do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);" do (compound_statement "{\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        }" { (expression_statement "local_3c = local_3c + 4;" (assignment_expression "local_3c = local_3c + 4" identifier = (binary_expression "local_3c + 4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)pbVar19 = uVar12;" (assignment_expression "*(undefined4 *)pbVar19 = uVar12" (pointer_expression "*(undefined4 *)pbVar19" * (cast_expression "(undefined4 *)pbVar19" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "pbVar6 = pbVar6 + -1;" (assignment_expression "pbVar6 = pbVar6 + -1" identifier = (binary_expression "pbVar6 + -1" identifier + number_literal)) ;) (expression_statement "uVar12 = *(undefined4 *)local_3c;" (assignment_expression "uVar12 = *(undefined4 *)local_3c" identifier = (pointer_expression "*(undefined4 *)local_3c" * (cast_expression "(undefined4 *)local_3c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar19 = pbVar19 + 4;" (assignment_expression "pbVar19 = pbVar19 + 4" identifier = (binary_expression "pbVar19 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar6 != (byte *)0x0)" ( (binary_expression "pbVar6 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pbVar14 = pbVar14 + (int)local_4c * 4 + -4;" (assignment_expression "pbVar14 = pbVar14 + (int)local_4c * 4 + -4" identifier = (binary_expression "pbVar14 + (int)local_4c * 4 + -4" (binary_expression "pbVar14 + (int)local_4c * 4" identifier + (binary_expression "(int)local_4c * 4" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "*(undefined4 *)pbVar14 = uVar12;" (assignment_expression "*(undefined4 *)pbVar14 = uVar12" (pointer_expression "*(undefined4 *)pbVar14" * (cast_expression "(undefined4 *)pbVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) }))) (if_statement "if (bVar1) {\n      local_4c = (byte *)-(int)local_4c;\n    }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n      local_4c = (byte *)-(int)local_4c;\n    }" { (expression_statement "local_4c = (byte *)-(int)local_4c;" (assignment_expression "local_4c = (byte *)-(int)local_4c" identifier = (cast_expression "(byte *)-(int)local_4c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)local_4c" - (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "param_1[1] = (int)local_4c;" (assignment_expression "param_1[1] = (int)local_4c" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[2] = (int)pbVar3;" (assignment_expression "param_1[2] = (int)pbVar3" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (local_30 == 0) goto LAB_000187ac;" if (parenthesized_expression "(local_30 == 0)" ( (binary_expression "local_30 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000187ac;" goto statement_identifier ;)) }))) (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_0009d618" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_0009d618" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00018714:\n  if (local_2c == *(int *)puVar24) {\n    return uVar22;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar24) {\n    return uVar22;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar24)" ( (binary_expression "local_2c == *(int *)puVar24" identifier == (pointer_expression "*(int *)puVar24" * (cast_expression "(int *)puVar24" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return uVar22;\n  }" { (return_statement "return uVar22;" return identifier ;) }))) (expression_statement "pcVar27 = __gmpf_set_d;" (assignment_expression "pcVar27 = __gmpf_set_d" identifier = identifier) ;) (expression_statement "iVar4 = local_2c;" (assignment_expression "iVar4 = local_2c" identifier = identifier) ;) (expression_statement "puVar24 = PTR___stack_chk_fail_0009d4d0;" (assignment_expression "puVar24 = PTR___stack_chk_fail_0009d4d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0009d4d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0009d4d0" * (cast_expression "(code *)PTR___stack_chk_fail_0009d4d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "*(byte **)(puVar26 + 8) = pbVar14;" (assignment_expression "*(byte **)(puVar26 + 8) = pbVar14" (pointer_expression "*(byte **)(puVar26 + 8)" * (cast_expression "(byte **)(puVar26 + 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 8)" ( (binary_expression "puVar26 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar26 + -0x18) = puVar24 + 0x8c170;" (assignment_expression "*(undefined **)(puVar26 + -0x18) = puVar24 + 0x8c170" (pointer_expression "*(undefined **)(puVar26 + -0x18)" * (cast_expression "(undefined **)(puVar26 + -0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x18)" ( (binary_expression "puVar26 + -0x18" identifier + number_literal) )))) = (binary_expression "puVar24 + 0x8c170" identifier + number_literal)) ;) (expression_statement "*(code **)(puVar26 + -4) = pcVar27;" (assignment_expression "*(code **)(puVar26 + -4) = pcVar27" (pointer_expression "*(code **)(puVar26 + -4)" * (cast_expression "(code **)(puVar26 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -4)" ( (binary_expression "puVar26 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar26 + -8) = param_2;" (assignment_expression "*(byte **)(puVar26 + -8) = param_2" (pointer_expression "*(byte **)(puVar26 + -8)" * (cast_expression "(byte **)(puVar26 + -8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -8)" ( (binary_expression "puVar26 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar26 + 0xc) = param_4;" (assignment_expression "*(byte **)(puVar26 + 0xc) = param_4" (pointer_expression "*(byte **)(puVar26 + 0xc)" * (cast_expression "(byte **)(puVar26 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0xc)" ( (binary_expression "puVar26 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar22 = *(uint *)(puVar26 + 8) & 0x7ff00000;" (assignment_expression "uVar22 = *(uint *)(puVar26 + 8) & 0x7ff00000" identifier = (binary_expression "*(uint *)(puVar26 + 8) & 0x7ff00000" (pointer_expression "*(uint *)(puVar26 + 8)" * (cast_expression "(uint *)(puVar26 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 8)" ( (binary_expression "puVar26 + 8" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (uVar22 == 0x7ff00000) {\n    uVar22 = (**(code **)(puVar24 + 0x8468c))();\n  }\n  else if ((double)CONCAT44(pbVar14,param_4) != 0.0) {\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      *(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4);\n    }\n    else {\n      *(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);\n    }\n    pcVar27 = *(code **)(puVar24 + 0x84254);\n    uVar12 = 0xfffffffd;\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      uVar12 = 3;\n    }\n    *(undefined4 *)(iVar4 + 4) = uVar12;\n    uVar22 = (*pcVar27)(*(undefined4 *)(iVar4 + 0xc));\n    *(uint *)(iVar4 + 8) = uVar22;\n    return uVar22;\n  }" if (parenthesized_expression "(uVar22 == 0x7ff00000)" ( (binary_expression "uVar22 == 0x7ff00000" identifier == number_literal) )) (compound_statement "{\n    uVar22 = (**(code **)(puVar24 + 0x8468c))();\n  }" { (expression_statement "uVar22 = (**(code **)(puVar24 + 0x8468c))();" (assignment_expression "uVar22 = (**(code **)(puVar24 + 0x8468c))()" identifier = (call_expression "(**(code **)(puVar24 + 0x8468c))()" (parenthesized_expression "(**(code **)(puVar24 + 0x8468c))" ( (pointer_expression "**(code **)(puVar24 + 0x8468c)" * (pointer_expression "*(code **)(puVar24 + 0x8468c)" * (cast_expression "(code **)(puVar24 + 0x8468c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x8468c)" ( (binary_expression "puVar24 + 0x8468c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else if ((double)CONCAT44(pbVar14,param_4) != 0.0) {\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      *(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4);\n    }\n    else {\n      *(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);\n    }\n    pcVar27 = *(code **)(puVar24 + 0x84254);\n    uVar12 = 0xfffffffd;\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      uVar12 = 3;\n    }\n    *(undefined4 *)(iVar4 + 4) = uVar12;\n    uVar22 = (*pcVar27)(*(undefined4 *)(iVar4 + 0xc));\n    *(uint *)(iVar4 + 8) = uVar22;\n    return uVar22;\n  }" else (if_statement "if ((double)CONCAT44(pbVar14,param_4) != 0.0) {\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      *(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4);\n    }\n    else {\n      *(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);\n    }\n    pcVar27 = *(code **)(puVar24 + 0x84254);\n    uVar12 = 0xfffffffd;\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      uVar12 = 3;\n    }\n    *(undefined4 *)(iVar4 + 4) = uVar12;\n    uVar22 = (*pcVar27)(*(undefined4 *)(iVar4 + 0xc));\n    *(uint *)(iVar4 + 8) = uVar22;\n    return uVar22;\n  }" if (parenthesized_expression "((double)CONCAT44(pbVar14,param_4) != 0.0)" ( (binary_expression "(double)CONCAT44(pbVar14,param_4) != 0.0" (cast_expression "(double)CONCAT44(pbVar14,param_4)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(pbVar14,param_4)" identifier (argument_list "(pbVar14,param_4)" ( identifier , identifier )))) != number_literal) )) (compound_statement "{\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      *(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4);\n    }\n    else {\n      *(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);\n    }\n    pcVar27 = *(code **)(puVar24 + 0x84254);\n    uVar12 = 0xfffffffd;\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      uVar12 = 3;\n    }\n    *(undefined4 *)(iVar4 + 4) = uVar12;\n    uVar22 = (*pcVar27)(*(undefined4 *)(iVar4 + 0xc));\n    *(uint *)(iVar4 + 8) = uVar22;\n    return uVar22;\n  }" { (if_statement "if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      *(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4);\n    }\n    else {\n      *(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);\n    }" if (parenthesized_expression "(0.0 <= (double)CONCAT44(pbVar14,param_4))" ( (binary_expression "0.0 <= (double)CONCAT44(pbVar14,param_4)" number_literal <= (cast_expression "(double)CONCAT44(pbVar14,param_4)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(pbVar14,param_4)" identifier (argument_list "(pbVar14,param_4)" ( identifier , identifier ))))) )) (compound_statement "{\n      *(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4);\n    }" { (expression_statement "*(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4);" (assignment_expression "*(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4)" (pointer_expression "*(ulonglong *)(puVar26 + -0x10)" * (cast_expression "(ulonglong *)(puVar26 + -0x10)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = (call_expression "CONCAT44(pbVar14,param_4)" identifier (argument_list "(pbVar14,param_4)" ( identifier , identifier )))) ;) }) (else_clause "else {\n      *(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);\n    }" else (compound_statement "{\n      *(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);\n    }" { (expression_statement "*(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;" (assignment_expression "*(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000" (pointer_expression "*(uint *)(puVar26 + -0x10)" * (cast_expression "(uint *)(puVar26 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = (binary_expression "*(uint *)(puVar26 + 8) ^ 0x80000000" (pointer_expression "*(uint *)(puVar26 + 8)" * (cast_expression "(uint *)(puVar26 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 8)" ( (binary_expression "puVar26 + 8" identifier + number_literal) )))) ^ number_literal)) ;) (expression_statement "*(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);" (assignment_expression "*(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc)" (pointer_expression "*(undefined4 *)(puVar26 + -0xc)" * (cast_expression "(undefined4 *)(puVar26 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar26 + 0xc)" * (cast_expression "(undefined4 *)(puVar26 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0xc)" ( (binary_expression "puVar26 + 0xc" identifier + number_literal) ))))) ;) }))) (expression_statement "pcVar27 = *(code **)(puVar24 + 0x84254);" (assignment_expression "pcVar27 = *(code **)(puVar24 + 0x84254)" identifier = (pointer_expression "*(code **)(puVar24 + 0x84254)" * (cast_expression "(code **)(puVar24 + 0x84254)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x84254)" ( (binary_expression "puVar24 + 0x84254" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = 0xfffffffd;" (assignment_expression "uVar12 = 0xfffffffd" identifier = number_literal) ;) (if_statement "if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      uVar12 = 3;\n    }" if (parenthesized_expression "(0.0 <= (double)CONCAT44(pbVar14,param_4))" ( (binary_expression "0.0 <= (double)CONCAT44(pbVar14,param_4)" number_literal <= (cast_expression "(double)CONCAT44(pbVar14,param_4)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(pbVar14,param_4)" identifier (argument_list "(pbVar14,param_4)" ( identifier , identifier ))))) )) (compound_statement "{\n      uVar12 = 3;\n    }" { (expression_statement "uVar12 = 3;" (assignment_expression "uVar12 = 3" identifier = number_literal) ;) })) (expression_statement "*(undefined4 *)(iVar4 + 4) = uVar12;" (assignment_expression "*(undefined4 *)(iVar4 + 4) = uVar12" (pointer_expression "*(undefined4 *)(iVar4 + 4)" * (cast_expression "(undefined4 *)(iVar4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar22 = (*pcVar27)(*(undefined4 *)(iVar4 + 0xc));" (assignment_expression "uVar22 = (*pcVar27)(*(undefined4 *)(iVar4 + 0xc))" identifier = (call_expression "(*pcVar27)(*(undefined4 *)(iVar4 + 0xc))" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "(*(undefined4 *)(iVar4 + 0xc))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" * (cast_expression "(undefined4 *)(iVar4 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) )))) ;) (expression_statement "*(uint *)(iVar4 + 8) = uVar22;" (assignment_expression "*(uint *)(iVar4 + 8) = uVar22" (pointer_expression "*(uint *)(iVar4 + 8)" * (cast_expression "(uint *)(iVar4 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) = identifier) ;) (return_statement "return uVar22;" return identifier ;) })))) (expression_statement "*(undefined4 *)(iVar4 + 4) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 4) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 4)" * (cast_expression "(undefined4 *)(iVar4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar4 + 8) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 8) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) = number_literal) ;) (return_statement "return uVar22;" return identifier ;) })))
(translation_unit "int __gmpf_set_str(mpf_ptr x,char *str,int base)\n\n{\n  bool bVar1;\n  ushort uVar2;\n  byte *pbVar3;\n  int iVar4;\n  int *piVar5;\n  mp_limb_t *pmVar6;\n  int iVar7;\n  mp_limb_t *pmVar8;\n  mp_limb_t *pmVar9;\n  byte *pbVar10;\n  undefined4 uVar11;\n  byte *pbVar12;\n  byte bVar14;\n  byte *pbVar13;\n  mp_limb_t mVar15;\n  mp_limb_t *pmVar16;\n  mp_limb_t *pmVar17;\n  mp_limb_t *in_a3;\n  undefined1 *puVar18;\n  int iVar19;\n  byte *pbVar20;\n  undefined *puVar21;\n  uint uVar22;\n  int iVar23;\n  byte *pbVar24;\n  undefined *puVar25;\n  undefined1 *puVar26;\n  undefined1 *puVar27;\n  code *pcVar28;\n  undefined1 auStack_88 [8];\n  undefined1 auStack_80 [16];\n  byte abStack_70 [8];\n  int iStack_54;\n  mp_limb_t *pmStack_50;\n  mp_limb_t *pmStack_4c;\n  byte *pbStack_44;\n  mp_limb_t *pmStack_3c;\n  tmp_reentrant_t *__tmp_marker;\n  int iStack_2c;\n  \n  puVar25 = PTR___stack_chk_guard_0009d540;\n  puVar27 = auStack_80;\n  puVar26 = auStack_80;\n  iStack_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  pmVar17 = (mp_limb_t *)base;\n  pbVar3 = (byte *)(*(code *)PTR_nl_langinfo_0009d21c)(0x10000);\n  iVar4 = (*(code *)PTR_strlen_0009d360)(pbVar3);\n  uVar22 = (uint)(byte)*str;\n  piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0009d0ac)();\n  iVar19 = *piVar5;\n  uVar2 = *(ushort *)(iVar19 + uVar22 * 2);\n  while ((uVar2 & 0x20) != 0) {\n    str = (char *)((int)str + 1);\n    uVar22 = (uint)(byte)*str;\n    uVar2 = *(ushort *)(iVar19 + uVar22 * 2);\n  }\n  bVar1 = uVar22 == 0x2d;\n  if (bVar1) {\n    uVar22 = (uint)*(byte *)((int)str + 1);\n    str = (char *)((int)str + 1);\n  }\n  if (base != 0) {\n    if (base < 0) {\n      base = -base;\n      iVar23 = 10;\n      if (base < 0x25) goto LAB_000183f8;\n    }\n    else {\n      iVar23 = base;\n      if (base < 0x25) goto LAB_000183f8;\n    }\n    puVar18 = auStack_80;\n    if (base < 0x3f) {\n      puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;\n      if (base <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;\n      goto LAB_00018368;\n    }\nLAB_00018710:\n    puVar27 = puVar18;\n    iVar7 = -1;\n    goto LAB_00018714;\n  }\n  base = (int)&DAT_0000000a;\n  iVar23 = 10;\nLAB_000183f8:\n  puVar21 = PTR___gmp_digit_value_tab_0009d388;\n  if (base <= (int)(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]) {\nLAB_00018310:\n    pmVar17 = (mp_limb_t *)str;\n    if (iVar4 != 0) {\n      puVar18 = auStack_80;\n      if (*str == *pbVar3) {\n        pmVar17 = (mp_limb_t *)((int)str + iVar4);\n        pmVar6 = (mp_limb_t *)str;\n        pbVar12 = pbVar3;\n        do {\n          pbVar12 = pbVar12 + 1;\n          pmVar6 = (mp_limb_t *)((int)pmVar6 + 1);\n          if (pmVar17 == pmVar6) goto LAB_0001834c;\n          puVar18 = auStack_80;\n        } while (*(byte *)pmVar6 == *pbVar12);\n      }\n      goto LAB_00018710;\n    }\nLAB_0001834c:\n    iVar7 = -1;\n    if (base <= (int)(uint)(byte)puVar21[*(byte *)pmVar17]) goto LAB_00018714;\n  }\nLAB_00018368:\n  pmVar6 = (mp_limb_t *)(*(code *)PTR_strlen_0009d360)(str);\n  pmVar17 = (mp_limb_t *)((int)pmVar6 + -1);\n  if (pmVar17 == (mp_limb_t *)0x0) {\n    puVar26 = auStack_88;\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    pbVar12 = (byte *)0x0;\n    pbVar10 = abStack_70;\n    pmVar17 = (mp_limb_t *)&DAT_00000001;\nLAB_00018460:\n    pmVar6 = (mp_limb_t *)0x0;\n    pbVar20 = pbVar10;\n    pbVar24 = (byte *)0x0;\n    do {\n      while( true ) {\n        bVar14 = *str;\n        puVar27 = puVar26;\n        if ((*(ushort *)(iVar19 + (uint)bVar14 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pmVar6 = (mp_limb_t *)((int)pmVar6 + 1);\n        str = (char *)((int)str + 1);\n        if (pmVar17 <= pmVar6) goto LAB_00018500;\n      }\n      if (iVar4 != 0) {\n        if (*pbVar3 == bVar14) {\n          pmVar8 = (mp_limb_t *)str;\n          pbVar13 = pbVar3;\n          do {\n            pbVar13 = pbVar13 + 1;\n            pmVar8 = (mp_limb_t *)((int)pmVar8 + 1);\n            if (pmVar8 == (mp_limb_t *)((int)str + iVar4)) goto LAB_000184e0;\n          } while (*(byte *)pmVar8 == *pbVar13);\n        }\n        if ((int)(uint)(byte)puVar21[bVar14] < base) {\n          *pbVar20 = puVar21[bVar14];\n          pbVar20 = pbVar20 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }\nLAB_000184e0:\n      if (pbVar24 != (byte *)0x0) goto LAB_000186f8;\n      pmVar6 = (mp_limb_t *)((int)pmVar6 + iVar4);\n      str = (char *)((int)str + iVar4);\n      pbVar24 = pbVar20;\n    } while (pmVar6 < pmVar17);\nLAB_00018500:\n    pmVar17 = (mp_limb_t *)(pbVar20 + -(int)pbVar10);\n    iVar4 = x->_mp_prec;\n    uVar22 = (((uint)((int)(ZEXT48(pmVar17) *\n                            (ulonglong)*(uint *)(PTR___gmpn_bases_0009d338 + base * 0x14 + 8) >>\n                           0x20) << 3) >> 5) + 2) * 4;\n    str = (char *)(iVar4 + 1);\n    if (uVar22 < 0x7f01) goto LAB_00018544;\n    pmStack_3c = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n  }\n  else {\n    bVar14 = *(byte *)((int)str + (int)pmVar17);\n    if (bVar14 == 0x40) {\n      pbVar12 = (byte *)((int)str + (int)pmVar6);\n      pmVar8 = pmVar6;\n    }\n    else {\n      pmVar8 = (mp_limb_t *)((int)pmVar6 + -2);\n      pmVar16 = pmVar17;\n      if (base < 0xb) {\n        do {\n          pmVar16 = pmVar17;\n          pmVar17 = (mp_limb_t *)((int)pmVar16 + -1);\n          if ((bVar14 & 0xdf) == 0x45) {\n            pbVar12 = (byte *)((int)str + (int)pmVar16 + 1);\n            pmVar8 = (mp_limb_t *)((int)pmVar16 + 1);\n            pmVar17 = pmVar16;\n            goto LAB_0001843c;\n          }\n          if (pmVar17 == (mp_limb_t *)0x0) goto LAB_00018434;\n          bVar14 = *(byte *)((int)str + (int)pmVar17);\n        } while (bVar14 != 0x40);\nLAB_0001878c:\n        pbVar12 = (byte *)((int)str + (int)pmVar16);\n        pmVar8 = pmVar16;\n      }\n      else {\n        while (pmVar17 = pmVar8, pmVar17 != (mp_limb_t *)0x0) {\n          if (*(byte *)((int)str + (int)pmVar17) == 0x40) goto LAB_0001878c;\n          pmVar16 = pmVar17;\n          pmVar8 = (mp_limb_t *)((int)pmVar17 + -1);\n        }\nLAB_00018434:\n        pbVar12 = (byte *)0x0;\n        pmVar8 = (mp_limb_t *)((int)pmVar6 + 1);\n        pmVar17 = pmVar6;\n      }\n    }\nLAB_0001843c:\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    if ((mp_limb_t *)0x7f00 < pmVar8) {\n      pbVar10 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n      iVar19 = *piVar5;\n      goto LAB_00018460;\n    }\n    iVar7 = -((uint)((int)pmVar8 + 7) & 0xfffffff8);\n    puVar26 = auStack_80 + iVar7;\n    puVar27 = auStack_80 + iVar7;\n    pbVar10 = &stack0xffffff98 + iVar7;\n    if (pmVar17 != (mp_limb_t *)0x0) goto LAB_00018460;\n    pbVar24 = (byte *)0x0;\n    uVar22 = 8;\n    iVar4 = x->_mp_prec;\n    str = (char *)(iVar4 + 1);\n    pbVar20 = pbVar10;\nLAB_00018544:\n    iVar19 = -(uVar22 + 7 & 0xfffffff8);\n    pmStack_3c = (mp_limb_t *)(puVar27 + iVar19 + 0x18);\n    puVar27 = puVar27 + iVar19;\n  }\n  in_a3 = (mp_limb_t *)base;\n  pmVar6 = (mp_limb_t *)(*(code *)PTR___gmpn_set_str_0009d5b4)(pmStack_3c,pbVar10);\n  if (pmVar6 == (mp_limb_t *)0x0) {\n    x->_mp_size = 0;\n    x->_mp_exp = 0;\n    if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      iVar7 = 0;\n      goto LAB_00018714;\n    }\nLAB_000187ac:\n    iVar7 = 0;\n    goto LAB_00018714;\n  }\n  iStack_54 = (int)pmVar6 - (int)str;\n  if ((int)str < (int)pmVar6) {\n    pmStack_3c = pmStack_3c + iStack_54;\n    pmStack_4c = (mp_limb_t *)str;\n    if (pbVar12 == (byte *)0x0) goto LAB_000187d0;\nLAB_000185a0:\n    bVar14 = *pbVar12;\n    in_a3 = (mp_limb_t *)(uint)(bVar14 == 0x2d);\n    pbVar12 = pbVar12 + (bVar14 == 0x2b || bVar14 == 0x2d);\n    pmVar8 = (mp_limb_t *)(uint)(byte)puVar21[*pbVar12];\n    if (iVar23 <= (int)pmVar8) {\nLAB_000186f8:\n      iVar7 = -1;\n      if (__tmp_marker == (tmp_reentrant_t *)0x0) goto LAB_00018714;\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      puVar18 = puVar27;\n      goto LAB_00018710;\n    }\n    pmVar17 = (mp_limb_t *)(uint)(byte)puVar21[pbVar12[1]];\n    if ((int)pmVar17 < iVar23) {\n      pbVar12 = pbVar12 + 3;\n      do {\n        pmVar8 = (mp_limb_t *)((int)pmVar8 * iVar23 + (int)pmVar17);\n        pmVar17 = (mp_limb_t *)(uint)(byte)puVar21[pbVar12[-1]];\n        pbVar12 = pbVar12 + 1;\n      } while ((int)pmVar17 < iVar23);\n    }\n    pbStack_44 = (byte *)((int)in_a3 + (-(int)in_a3 ^ (uint)pmVar8));\n    if (pbVar24 != (byte *)0x0) {\nLAB_00018628:\n      pbStack_44 = pbStack_44 + -((int)pbVar20 - (int)pbVar24);\n    }\n    if (pbStack_44 == (byte *)0x0) goto LAB_000187e0;\n    iVar4 = iVar4 + 2;\n    uVar22 = iVar4 * 8;\n    if (uVar22 < 0x7f01) {\n      pmStack_50 = (mp_limb_t *)(puVar27 + iVar4 * -8 + 0x18);\n      pmVar17 = (mp_limb_t *)(puVar27 + iVar4 * -0x10 + 0x18);\n      puVar27 = puVar27 + iVar4 * -0x10;\n    }\n    else {\n      pmStack_50 = (mp_limb_t *)\n                   (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22);\n      pmVar17 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22)\n      ;\n    }\n    puVar21 = PTR___gmpn_clz_tab_0009d18c;\n    pbVar3 = pbStack_44;\n    if ((int)pbStack_44 < 0) {\n      pbVar3 = (byte *)-(int)pbStack_44;\n    }\n    *pmStack_50 = base;\n    if ((int)pbVar3 < 0x10000) {\n      if (0xff < (int)pbVar3) {\n        iVar4 = FUN_00018870();\n        return iVar4;\n      }\n      uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;\n      if (-1 < (int)uVar22) goto LAB_00018890;\n      if ((int)str < 1) {\n        iVar23 = 0;\n        pmVar6 = (mp_limb_t *)&DAT_00000001;\n        iVar19 = 0;\n        pmVar17 = pmStack_50;\n        goto LAB_00018988;\n      }\n      pmVar6 = (mp_limb_t *)&DAT_00000001;\n      iVar23 = 0;\n      *pmStack_50 = base;\n    }\n    else {\n      iVar19 = 0x19;\n      if ((int)pbVar3 < 0x1000000) {\n        iVar19 = 0x11;\n      }\n      iVar23 = 0x10;\n      if ((int)pbVar3 >= 0x1000000) {\n        iVar23 = 8;\n      }\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar19] - iVar23) + 0x1e;\nLAB_00018890:\n      iVar23 = 0;\n      pmVar6 = (mp_limb_t *)&DAT_00000001;\n      iVar19 = 0;\n      pmVar8 = pmStack_50;\n      while( true ) {\n        pmVar16 = pmVar8;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pmVar17,pmVar16 + iVar19,pmVar6);\n        iVar23 = iVar23 * 2;\n        pmVar6 = (mp_limb_t *)((int)pmVar6 * 2 - (uint)(pmVar17[(int)pmVar6 * 2 + 0x3fffffff] == 0))\n        ;\n        if ((int)str < (int)pmVar6) {\n          iVar19 = (int)pmVar6 - (int)str;\n          iVar23 = iVar23 + iVar19;\n          pmVar6 = (mp_limb_t *)str;\n        }\n        else {\n          iVar19 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          mVar15 = (*(code *)PTR___gmpn_mul_1_0009d0a4)(pmVar17,pmVar17 + iVar19,pmVar6,base);\n          pmVar8 = pmVar17 + (int)pmVar6;\n          pmVar6 = (mp_limb_t *)((int)pmVar6 + (uint)(mVar15 != 0));\n          *pmVar8 = mVar15;\n          iVar19 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pmVar8 = pmVar17;\n        pmVar17 = pmVar16;\n      }\n      if ((int)str < (int)pmVar6) {\nLAB_00018988:\n        iVar23 = iVar23 + ((int)pmVar6 - (int)str);\n        pmVar17 = pmVar17 + ((int)pmVar6 - (int)str);\n        pmVar6 = (mp_limb_t *)str;\n      }\n      pbVar3 = (byte *)((int)pmVar6 + -1);\n      if (pmVar6 != (mp_limb_t *)0x0) {\n        mVar15 = pmVar17[iVar19];\n        if (pbVar3 == (byte *)0x0) {\n          pmVar6 = (mp_limb_t *)&DAT_00000001;\n          *pmStack_50 = mVar15;\n        }\n        else {\n          pmVar17 = pmVar17 + iVar19 + 1;\n          pmVar8 = pmStack_50;\n          do {\n            *pmVar8 = mVar15;\n            pbVar3 = pbVar3 + -1;\n            mVar15 = *pmVar17;\n            pmVar17 = pmVar17 + 1;\n            pmVar8 = pmVar8 + 1;\n          } while (pbVar3 != (byte *)0x0);\n          pmStack_50[(int)((int)pmVar6 + -1)] = mVar15;\n        }\n      }\n    }\n    pmVar8 = (mp_limb_t *)str;\n    if ((int)pbStack_44 < 0) {\n      if ((int)pmStack_4c < (int)pmVar6) {\n        uVar22 = (int)((int)pmVar6 + 1) * 4;\n        if (uVar22 < 0x7f01) {\n          iVar19 = -(uVar22 + 7 & 0xfffffff8);\n          puVar18 = puVar27 + iVar19 + 0x18;\n          puVar27 = puVar27 + iVar19;\n        }\n        else {\n          puVar18 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n        }\n        iVar19 = (int)pmVar6 - (int)pmStack_4c;\n        pmVar17 = (mp_limb_t *)(*(code *)PTR_memset_0009d2e8)(puVar18,0,iVar19 * 4);\n        if (pmStack_4c != (mp_limb_t *)0x0) {\n          pbVar3 = (byte *)((int)pmStack_4c + -1);\n          pmVar9 = pmVar17 + iVar19;\n          mVar15 = *pmStack_3c;\n          pmVar16 = pmVar9;\n          if (pbVar3 != (byte *)0x0) {\n            do {\n              pmStack_3c = pmStack_3c + 1;\n              *pmVar16 = mVar15;\n              pbVar3 = pbVar3 + -1;\n              mVar15 = *pmStack_3c;\n              pmVar16 = pmVar16 + 1;\n            } while (pbVar3 != (byte *)0x0);\n            pmVar9 = pmVar9 + (int)((int)pmStack_4c + -1);\n          }\n          *pmVar9 = mVar15;\n        }\n        iStack_54 = iStack_54 - iVar19;\n        pmStack_4c = pmVar6;\n        pmStack_3c = pmVar17;\n      }\n      uVar22 = pmStack_50[(int)((int)pmVar6 + -1)];\n      if (-1 < (int)uVar22) {\n        if (uVar22 < 0x10000) {\n          iVar19 = 0x20;\n          if (0xff < uVar22) {\n            iVar19 = 0x18;\n          }\n          iVar7 = 9;\n          if (0xff >= uVar22) {\n            iVar7 = 1;\n          }\n        }\n        else {\n          iVar19 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar19 = 8;\n          }\n          iVar7 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar7 = 0x11;\n          }\n        }\n        bVar14 = puVar21[uVar22 >> iVar7];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(pmStack_50,pmStack_50,pmVar6,iVar19 - (uint)bVar14);\n        mVar15 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (pmStack_3c,pmStack_3c,pmStack_4c,iVar19 - (uint)bVar14);\n        if (mVar15 != 0) {\n          pmStack_3c[(int)pmStack_4c] = mVar15;\n          pmStack_4c = (mp_limb_t *)((int)pmStack_4c + 1);\n        }\n      }\n      if ((uint)(iVar4 * 4) < 0x7f01) {\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        pmVar17 = (mp_limb_t *)(puVar27 + iVar4 + 0x18);\n        puVar27 = puVar27 + iVar4;\n      }\n      else {\n        pmVar17 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n      }\n      iVar4 = (int)pmStack_4c - (int)pmVar6;\n      *(mp_limb_t **)(puVar27 + 0x14) = pmVar6;\n      *(mp_limb_t **)(puVar27 + 0x10) = pmStack_50;\n      mVar15 = (*(code *)PTR___gmpn_divrem_0009d0e4)(pmVar17,(int)str - iVar4);\n      pbVar3 = (byte *)((iStack_54 - iVar23) + iVar4 + mVar15);\n      if (mVar15 != 0) {\n        pmVar6 = pmVar17 + (int)str;\n        pmVar17 = pmVar17 + 1;\n        *pmVar6 = mVar15;\n      }\n    }\n    else {\n      pbVar3 = (byte *)((int)pmVar6 + (int)pmStack_4c);\n      uVar22 = (int)pbVar3 * 4;\n      if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        pmVar17 = (mp_limb_t *)(puVar27 + iVar4 + 0x18);\n        puVar27 = puVar27 + iVar4;\n      }\n      else {\n        pmVar17 = (mp_limb_t *)\n                  (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22);\n      }\n      if ((int)pmStack_4c < (int)pmVar6) {\n        *(mp_limb_t **)(puVar27 + 0x10) = pmStack_4c;\n        pmStack_4c = pmStack_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar17,pmStack_50);\n        pmStack_3c = pmVar6;\n      }\n      else {\n        *(mp_limb_t **)(puVar27 + 0x10) = pmVar6;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar17,pmStack_3c);\n        pmStack_3c = pmStack_4c;\n        pmStack_4c = pmStack_50;\n      }\n      pmVar8 = (mp_limb_t *)(pbVar3 + -(uint)(pmVar17[(int)(pbVar3 + -1)] == 0));\n      pbVar3 = (byte *)((int)pmVar8 + iVar23 + iStack_54);\n      if ((int)str < (int)pmVar8) {\n        pmVar17 = pmVar17 + ((int)pmVar8 - (int)str);\n        pmVar8 = (mp_limb_t *)str;\n      }\n    }\n    if (pmVar8 != (mp_limb_t *)0x0) {\n      pbVar12 = (byte *)((int)pmVar8 + -1);\n      mVar15 = *pmVar17;\n      pmStack_3c = x->_mp_d;\n      pmVar6 = pmStack_3c;\n      if (pbVar12 != (byte *)0x0) {\n        do {\n          pmVar17 = pmVar17 + 1;\n          *pmVar6 = mVar15;\n          pbVar12 = pbVar12 + -1;\n          mVar15 = *pmVar17;\n          pmVar6 = pmVar6 + 1;\n        } while (pbVar12 != (byte *)0x0);\n        pmStack_3c = pmStack_3c + (int)((int)pmVar8 + -1);\n      }\n      *pmStack_3c = mVar15;\n    }\n    if (bVar1) {\n      pmVar8 = (mp_limb_t *)-(int)pmVar8;\n    }\n    x->_mp_size = (int)pmVar8;\n    x->_mp_exp = (mp_exp_t)pbVar3;\n    pmVar17 = pmStack_3c;\n    in_a3 = pmStack_4c;\n    str = (char *)pmVar8;\n    if (__tmp_marker == (tmp_reentrant_t *)0x0) {\n      iVar7 = 0;\n      goto LAB_00018714;\n    }\n  }\n  else {\n    iStack_54 = 0;\n    pmStack_4c = pmVar6;\n    if (pbVar12 != (byte *)0x0) goto LAB_000185a0;\nLAB_000187d0:\n    if (pbVar24 != (byte *)0x0) {\n      pbStack_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }\nLAB_000187e0:\n    if (pmStack_4c != (mp_limb_t *)0x0) {\n      pbVar3 = (byte *)((int)pmStack_4c + -1);\n      pmVar17 = x->_mp_d;\n      mVar15 = *pmStack_3c;\n      pmVar8 = pmVar17;\n      if (pbVar3 != (byte *)0x0) {\n        do {\n          pmStack_3c = pmStack_3c + 1;\n          *pmVar8 = mVar15;\n          pbVar3 = pbVar3 + -1;\n          mVar15 = *pmStack_3c;\n          pmVar8 = pmVar8 + 1;\n        } while (pbVar3 != (byte *)0x0);\n        pmVar17 = pmVar17 + (int)((int)pmStack_4c + -1);\n      }\n      *pmVar17 = mVar15;\n    }\n    if (bVar1) {\n      pmStack_4c = (mp_limb_t *)-(int)pmStack_4c;\n    }\n    x->_mp_size = (int)pmStack_4c;\n    x->_mp_exp = (mp_exp_t)pmVar6;\n    if (__tmp_marker == (tmp_reentrant_t *)0x0) goto LAB_000187ac;\n  }\n  (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  iVar7 = 0;\nLAB_00018714:\n  if (iStack_2c == *(int *)puVar25) {\n    return iVar7;\n  }\n  pcVar28 = __gmpf_set_d;\n  iVar4 = iStack_2c;\n  puVar25 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  *(mp_limb_t **)(puVar27 + 8) = pmVar17;\n  *(undefined **)(puVar27 + -0x18) = puVar25 + 0x8c170;\n  *(code **)(puVar27 + -4) = pcVar28;\n  *(char **)(puVar27 + -8) = str;\n  *(mp_limb_t **)(puVar27 + 0xc) = in_a3;\n  uVar22 = *(uint *)(puVar27 + 8) & 0x7ff00000;\n  if (uVar22 == 0x7ff00000) {\n    uVar22 = (**(code **)(puVar25 + 0x8468c))();\n  }\n  else if ((double)CONCAT44(pmVar17,in_a3) != 0.0) {\n    if (0.0 <= (double)CONCAT44(pmVar17,in_a3)) {\n      *(ulonglong *)(puVar27 + -0x10) = CONCAT44(pmVar17,in_a3);\n    }\n    else {\n      *(uint *)(puVar27 + -0x10) = *(uint *)(puVar27 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar27 + -0xc) = *(undefined4 *)(puVar27 + 0xc);\n    }\n    pcVar28 = *(code **)(puVar25 + 0x84254);\n    uVar11 = 0xfffffffd;\n    if (0.0 <= (double)CONCAT44(pmVar17,in_a3)) {\n      uVar11 = 3;\n    }\n    *(undefined4 *)(iVar4 + 4) = uVar11;\n    iVar19 = (*pcVar28)(*(undefined4 *)(iVar4 + 0xc));\n    *(int *)(iVar4 + 8) = iVar19;\n    return iVar19;\n  }\n  *(undefined4 *)(iVar4 + 4) = 0;\n  *(undefined4 *)(iVar4 + 8) = 0;\n  return uVar22;\n}\n\n" (function_definition "int __gmpf_set_str(mpf_ptr x,char *str,int base)\n\n{\n  bool bVar1;\n  ushort uVar2;\n  byte *pbVar3;\n  int iVar4;\n  int *piVar5;\n  mp_limb_t *pmVar6;\n  int iVar7;\n  mp_limb_t *pmVar8;\n  mp_limb_t *pmVar9;\n  byte *pbVar10;\n  undefined4 uVar11;\n  byte *pbVar12;\n  byte bVar14;\n  byte *pbVar13;\n  mp_limb_t mVar15;\n  mp_limb_t *pmVar16;\n  mp_limb_t *pmVar17;\n  mp_limb_t *in_a3;\n  undefined1 *puVar18;\n  int iVar19;\n  byte *pbVar20;\n  undefined *puVar21;\n  uint uVar22;\n  int iVar23;\n  byte *pbVar24;\n  undefined *puVar25;\n  undefined1 *puVar26;\n  undefined1 *puVar27;\n  code *pcVar28;\n  undefined1 auStack_88 [8];\n  undefined1 auStack_80 [16];\n  byte abStack_70 [8];\n  int iStack_54;\n  mp_limb_t *pmStack_50;\n  mp_limb_t *pmStack_4c;\n  byte *pbStack_44;\n  mp_limb_t *pmStack_3c;\n  tmp_reentrant_t *__tmp_marker;\n  int iStack_2c;\n  \n  puVar25 = PTR___stack_chk_guard_0009d540;\n  puVar27 = auStack_80;\n  puVar26 = auStack_80;\n  iStack_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  pmVar17 = (mp_limb_t *)base;\n  pbVar3 = (byte *)(*(code *)PTR_nl_langinfo_0009d21c)(0x10000);\n  iVar4 = (*(code *)PTR_strlen_0009d360)(pbVar3);\n  uVar22 = (uint)(byte)*str;\n  piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0009d0ac)();\n  iVar19 = *piVar5;\n  uVar2 = *(ushort *)(iVar19 + uVar22 * 2);\n  while ((uVar2 & 0x20) != 0) {\n    str = (char *)((int)str + 1);\n    uVar22 = (uint)(byte)*str;\n    uVar2 = *(ushort *)(iVar19 + uVar22 * 2);\n  }\n  bVar1 = uVar22 == 0x2d;\n  if (bVar1) {\n    uVar22 = (uint)*(byte *)((int)str + 1);\n    str = (char *)((int)str + 1);\n  }\n  if (base != 0) {\n    if (base < 0) {\n      base = -base;\n      iVar23 = 10;\n      if (base < 0x25) goto LAB_000183f8;\n    }\n    else {\n      iVar23 = base;\n      if (base < 0x25) goto LAB_000183f8;\n    }\n    puVar18 = auStack_80;\n    if (base < 0x3f) {\n      puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;\n      if (base <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;\n      goto LAB_00018368;\n    }\nLAB_00018710:\n    puVar27 = puVar18;\n    iVar7 = -1;\n    goto LAB_00018714;\n  }\n  base = (int)&DAT_0000000a;\n  iVar23 = 10;\nLAB_000183f8:\n  puVar21 = PTR___gmp_digit_value_tab_0009d388;\n  if (base <= (int)(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]) {\nLAB_00018310:\n    pmVar17 = (mp_limb_t *)str;\n    if (iVar4 != 0) {\n      puVar18 = auStack_80;\n      if (*str == *pbVar3) {\n        pmVar17 = (mp_limb_t *)((int)str + iVar4);\n        pmVar6 = (mp_limb_t *)str;\n        pbVar12 = pbVar3;\n        do {\n          pbVar12 = pbVar12 + 1;\n          pmVar6 = (mp_limb_t *)((int)pmVar6 + 1);\n          if (pmVar17 == pmVar6) goto LAB_0001834c;\n          puVar18 = auStack_80;\n        } while (*(byte *)pmVar6 == *pbVar12);\n      }\n      goto LAB_00018710;\n    }\nLAB_0001834c:\n    iVar7 = -1;\n    if (base <= (int)(uint)(byte)puVar21[*(byte *)pmVar17]) goto LAB_00018714;\n  }\nLAB_00018368:\n  pmVar6 = (mp_limb_t *)(*(code *)PTR_strlen_0009d360)(str);\n  pmVar17 = (mp_limb_t *)((int)pmVar6 + -1);\n  if (pmVar17 == (mp_limb_t *)0x0) {\n    puVar26 = auStack_88;\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    pbVar12 = (byte *)0x0;\n    pbVar10 = abStack_70;\n    pmVar17 = (mp_limb_t *)&DAT_00000001;\nLAB_00018460:\n    pmVar6 = (mp_limb_t *)0x0;\n    pbVar20 = pbVar10;\n    pbVar24 = (byte *)0x0;\n    do {\n      while( true ) {\n        bVar14 = *str;\n        puVar27 = puVar26;\n        if ((*(ushort *)(iVar19 + (uint)bVar14 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pmVar6 = (mp_limb_t *)((int)pmVar6 + 1);\n        str = (char *)((int)str + 1);\n        if (pmVar17 <= pmVar6) goto LAB_00018500;\n      }\n      if (iVar4 != 0) {\n        if (*pbVar3 == bVar14) {\n          pmVar8 = (mp_limb_t *)str;\n          pbVar13 = pbVar3;\n          do {\n            pbVar13 = pbVar13 + 1;\n            pmVar8 = (mp_limb_t *)((int)pmVar8 + 1);\n            if (pmVar8 == (mp_limb_t *)((int)str + iVar4)) goto LAB_000184e0;\n          } while (*(byte *)pmVar8 == *pbVar13);\n        }\n        if ((int)(uint)(byte)puVar21[bVar14] < base) {\n          *pbVar20 = puVar21[bVar14];\n          pbVar20 = pbVar20 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }\nLAB_000184e0:\n      if (pbVar24 != (byte *)0x0) goto LAB_000186f8;\n      pmVar6 = (mp_limb_t *)((int)pmVar6 + iVar4);\n      str = (char *)((int)str + iVar4);\n      pbVar24 = pbVar20;\n    } while (pmVar6 < pmVar17);\nLAB_00018500:\n    pmVar17 = (mp_limb_t *)(pbVar20 + -(int)pbVar10);\n    iVar4 = x->_mp_prec;\n    uVar22 = (((uint)((int)(ZEXT48(pmVar17) *\n                            (ulonglong)*(uint *)(PTR___gmpn_bases_0009d338 + base * 0x14 + 8) >>\n                           0x20) << 3) >> 5) + 2) * 4;\n    str = (char *)(iVar4 + 1);\n    if (uVar22 < 0x7f01) goto LAB_00018544;\n    pmStack_3c = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n  }\n  else {\n    bVar14 = *(byte *)((int)str + (int)pmVar17);\n    if (bVar14 == 0x40) {\n      pbVar12 = (byte *)((int)str + (int)pmVar6);\n      pmVar8 = pmVar6;\n    }\n    else {\n      pmVar8 = (mp_limb_t *)((int)pmVar6 + -2);\n      pmVar16 = pmVar17;\n      if (base < 0xb) {\n        do {\n          pmVar16 = pmVar17;\n          pmVar17 = (mp_limb_t *)((int)pmVar16 + -1);\n          if ((bVar14 & 0xdf) == 0x45) {\n            pbVar12 = (byte *)((int)str + (int)pmVar16 + 1);\n            pmVar8 = (mp_limb_t *)((int)pmVar16 + 1);\n            pmVar17 = pmVar16;\n            goto LAB_0001843c;\n          }\n          if (pmVar17 == (mp_limb_t *)0x0) goto LAB_00018434;\n          bVar14 = *(byte *)((int)str + (int)pmVar17);\n        } while (bVar14 != 0x40);\nLAB_0001878c:\n        pbVar12 = (byte *)((int)str + (int)pmVar16);\n        pmVar8 = pmVar16;\n      }\n      else {\n        while (pmVar17 = pmVar8, pmVar17 != (mp_limb_t *)0x0) {\n          if (*(byte *)((int)str + (int)pmVar17) == 0x40) goto LAB_0001878c;\n          pmVar16 = pmVar17;\n          pmVar8 = (mp_limb_t *)((int)pmVar17 + -1);\n        }\nLAB_00018434:\n        pbVar12 = (byte *)0x0;\n        pmVar8 = (mp_limb_t *)((int)pmVar6 + 1);\n        pmVar17 = pmVar6;\n      }\n    }\nLAB_0001843c:\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    if ((mp_limb_t *)0x7f00 < pmVar8) {\n      pbVar10 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n      iVar19 = *piVar5;\n      goto LAB_00018460;\n    }\n    iVar7 = -((uint)((int)pmVar8 + 7) & 0xfffffff8);\n    puVar26 = auStack_80 + iVar7;\n    puVar27 = auStack_80 + iVar7;\n    pbVar10 = &stack0xffffff98 + iVar7;\n    if (pmVar17 != (mp_limb_t *)0x0) goto LAB_00018460;\n    pbVar24 = (byte *)0x0;\n    uVar22 = 8;\n    iVar4 = x->_mp_prec;\n    str = (char *)(iVar4 + 1);\n    pbVar20 = pbVar10;\nLAB_00018544:\n    iVar19 = -(uVar22 + 7 & 0xfffffff8);\n    pmStack_3c = (mp_limb_t *)(puVar27 + iVar19 + 0x18);\n    puVar27 = puVar27 + iVar19;\n  }\n  in_a3 = (mp_limb_t *)base;\n  pmVar6 = (mp_limb_t *)(*(code *)PTR___gmpn_set_str_0009d5b4)(pmStack_3c,pbVar10);\n  if (pmVar6 == (mp_limb_t *)0x0) {\n    x->_mp_size = 0;\n    x->_mp_exp = 0;\n    if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      iVar7 = 0;\n      goto LAB_00018714;\n    }\nLAB_000187ac:\n    iVar7 = 0;\n    goto LAB_00018714;\n  }\n  iStack_54 = (int)pmVar6 - (int)str;\n  if ((int)str < (int)pmVar6) {\n    pmStack_3c = pmStack_3c + iStack_54;\n    pmStack_4c = (mp_limb_t *)str;\n    if (pbVar12 == (byte *)0x0) goto LAB_000187d0;\nLAB_000185a0:\n    bVar14 = *pbVar12;\n    in_a3 = (mp_limb_t *)(uint)(bVar14 == 0x2d);\n    pbVar12 = pbVar12 + (bVar14 == 0x2b || bVar14 == 0x2d);\n    pmVar8 = (mp_limb_t *)(uint)(byte)puVar21[*pbVar12];\n    if (iVar23 <= (int)pmVar8) {\nLAB_000186f8:\n      iVar7 = -1;\n      if (__tmp_marker == (tmp_reentrant_t *)0x0) goto LAB_00018714;\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      puVar18 = puVar27;\n      goto LAB_00018710;\n    }\n    pmVar17 = (mp_limb_t *)(uint)(byte)puVar21[pbVar12[1]];\n    if ((int)pmVar17 < iVar23) {\n      pbVar12 = pbVar12 + 3;\n      do {\n        pmVar8 = (mp_limb_t *)((int)pmVar8 * iVar23 + (int)pmVar17);\n        pmVar17 = (mp_limb_t *)(uint)(byte)puVar21[pbVar12[-1]];\n        pbVar12 = pbVar12 + 1;\n      } while ((int)pmVar17 < iVar23);\n    }\n    pbStack_44 = (byte *)((int)in_a3 + (-(int)in_a3 ^ (uint)pmVar8));\n    if (pbVar24 != (byte *)0x0) {\nLAB_00018628:\n      pbStack_44 = pbStack_44 + -((int)pbVar20 - (int)pbVar24);\n    }\n    if (pbStack_44 == (byte *)0x0) goto LAB_000187e0;\n    iVar4 = iVar4 + 2;\n    uVar22 = iVar4 * 8;\n    if (uVar22 < 0x7f01) {\n      pmStack_50 = (mp_limb_t *)(puVar27 + iVar4 * -8 + 0x18);\n      pmVar17 = (mp_limb_t *)(puVar27 + iVar4 * -0x10 + 0x18);\n      puVar27 = puVar27 + iVar4 * -0x10;\n    }\n    else {\n      pmStack_50 = (mp_limb_t *)\n                   (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22);\n      pmVar17 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22)\n      ;\n    }\n    puVar21 = PTR___gmpn_clz_tab_0009d18c;\n    pbVar3 = pbStack_44;\n    if ((int)pbStack_44 < 0) {\n      pbVar3 = (byte *)-(int)pbStack_44;\n    }\n    *pmStack_50 = base;\n    if ((int)pbVar3 < 0x10000) {\n      if (0xff < (int)pbVar3) {\n        iVar4 = FUN_00018870();\n        return iVar4;\n      }\n      uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;\n      if (-1 < (int)uVar22) goto LAB_00018890;\n      if ((int)str < 1) {\n        iVar23 = 0;\n        pmVar6 = (mp_limb_t *)&DAT_00000001;\n        iVar19 = 0;\n        pmVar17 = pmStack_50;\n        goto LAB_00018988;\n      }\n      pmVar6 = (mp_limb_t *)&DAT_00000001;\n      iVar23 = 0;\n      *pmStack_50 = base;\n    }\n    else {\n      iVar19 = 0x19;\n      if ((int)pbVar3 < 0x1000000) {\n        iVar19 = 0x11;\n      }\n      iVar23 = 0x10;\n      if ((int)pbVar3 >= 0x1000000) {\n        iVar23 = 8;\n      }\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar19] - iVar23) + 0x1e;\nLAB_00018890:\n      iVar23 = 0;\n      pmVar6 = (mp_limb_t *)&DAT_00000001;\n      iVar19 = 0;\n      pmVar8 = pmStack_50;\n      while( true ) {\n        pmVar16 = pmVar8;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pmVar17,pmVar16 + iVar19,pmVar6);\n        iVar23 = iVar23 * 2;\n        pmVar6 = (mp_limb_t *)((int)pmVar6 * 2 - (uint)(pmVar17[(int)pmVar6 * 2 + 0x3fffffff] == 0))\n        ;\n        if ((int)str < (int)pmVar6) {\n          iVar19 = (int)pmVar6 - (int)str;\n          iVar23 = iVar23 + iVar19;\n          pmVar6 = (mp_limb_t *)str;\n        }\n        else {\n          iVar19 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          mVar15 = (*(code *)PTR___gmpn_mul_1_0009d0a4)(pmVar17,pmVar17 + iVar19,pmVar6,base);\n          pmVar8 = pmVar17 + (int)pmVar6;\n          pmVar6 = (mp_limb_t *)((int)pmVar6 + (uint)(mVar15 != 0));\n          *pmVar8 = mVar15;\n          iVar19 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pmVar8 = pmVar17;\n        pmVar17 = pmVar16;\n      }\n      if ((int)str < (int)pmVar6) {\nLAB_00018988:\n        iVar23 = iVar23 + ((int)pmVar6 - (int)str);\n        pmVar17 = pmVar17 + ((int)pmVar6 - (int)str);\n        pmVar6 = (mp_limb_t *)str;\n      }\n      pbVar3 = (byte *)((int)pmVar6 + -1);\n      if (pmVar6 != (mp_limb_t *)0x0) {\n        mVar15 = pmVar17[iVar19];\n        if (pbVar3 == (byte *)0x0) {\n          pmVar6 = (mp_limb_t *)&DAT_00000001;\n          *pmStack_50 = mVar15;\n        }\n        else {\n          pmVar17 = pmVar17 + iVar19 + 1;\n          pmVar8 = pmStack_50;\n          do {\n            *pmVar8 = mVar15;\n            pbVar3 = pbVar3 + -1;\n            mVar15 = *pmVar17;\n            pmVar17 = pmVar17 + 1;\n            pmVar8 = pmVar8 + 1;\n          } while (pbVar3 != (byte *)0x0);\n          pmStack_50[(int)((int)pmVar6 + -1)] = mVar15;\n        }\n      }\n    }\n    pmVar8 = (mp_limb_t *)str;\n    if ((int)pbStack_44 < 0) {\n      if ((int)pmStack_4c < (int)pmVar6) {\n        uVar22 = (int)((int)pmVar6 + 1) * 4;\n        if (uVar22 < 0x7f01) {\n          iVar19 = -(uVar22 + 7 & 0xfffffff8);\n          puVar18 = puVar27 + iVar19 + 0x18;\n          puVar27 = puVar27 + iVar19;\n        }\n        else {\n          puVar18 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n        }\n        iVar19 = (int)pmVar6 - (int)pmStack_4c;\n        pmVar17 = (mp_limb_t *)(*(code *)PTR_memset_0009d2e8)(puVar18,0,iVar19 * 4);\n        if (pmStack_4c != (mp_limb_t *)0x0) {\n          pbVar3 = (byte *)((int)pmStack_4c + -1);\n          pmVar9 = pmVar17 + iVar19;\n          mVar15 = *pmStack_3c;\n          pmVar16 = pmVar9;\n          if (pbVar3 != (byte *)0x0) {\n            do {\n              pmStack_3c = pmStack_3c + 1;\n              *pmVar16 = mVar15;\n              pbVar3 = pbVar3 + -1;\n              mVar15 = *pmStack_3c;\n              pmVar16 = pmVar16 + 1;\n            } while (pbVar3 != (byte *)0x0);\n            pmVar9 = pmVar9 + (int)((int)pmStack_4c + -1);\n          }\n          *pmVar9 = mVar15;\n        }\n        iStack_54 = iStack_54 - iVar19;\n        pmStack_4c = pmVar6;\n        pmStack_3c = pmVar17;\n      }\n      uVar22 = pmStack_50[(int)((int)pmVar6 + -1)];\n      if (-1 < (int)uVar22) {\n        if (uVar22 < 0x10000) {\n          iVar19 = 0x20;\n          if (0xff < uVar22) {\n            iVar19 = 0x18;\n          }\n          iVar7 = 9;\n          if (0xff >= uVar22) {\n            iVar7 = 1;\n          }\n        }\n        else {\n          iVar19 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar19 = 8;\n          }\n          iVar7 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar7 = 0x11;\n          }\n        }\n        bVar14 = puVar21[uVar22 >> iVar7];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(pmStack_50,pmStack_50,pmVar6,iVar19 - (uint)bVar14);\n        mVar15 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (pmStack_3c,pmStack_3c,pmStack_4c,iVar19 - (uint)bVar14);\n        if (mVar15 != 0) {\n          pmStack_3c[(int)pmStack_4c] = mVar15;\n          pmStack_4c = (mp_limb_t *)((int)pmStack_4c + 1);\n        }\n      }\n      if ((uint)(iVar4 * 4) < 0x7f01) {\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        pmVar17 = (mp_limb_t *)(puVar27 + iVar4 + 0x18);\n        puVar27 = puVar27 + iVar4;\n      }\n      else {\n        pmVar17 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n      }\n      iVar4 = (int)pmStack_4c - (int)pmVar6;\n      *(mp_limb_t **)(puVar27 + 0x14) = pmVar6;\n      *(mp_limb_t **)(puVar27 + 0x10) = pmStack_50;\n      mVar15 = (*(code *)PTR___gmpn_divrem_0009d0e4)(pmVar17,(int)str - iVar4);\n      pbVar3 = (byte *)((iStack_54 - iVar23) + iVar4 + mVar15);\n      if (mVar15 != 0) {\n        pmVar6 = pmVar17 + (int)str;\n        pmVar17 = pmVar17 + 1;\n        *pmVar6 = mVar15;\n      }\n    }\n    else {\n      pbVar3 = (byte *)((int)pmVar6 + (int)pmStack_4c);\n      uVar22 = (int)pbVar3 * 4;\n      if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        pmVar17 = (mp_limb_t *)(puVar27 + iVar4 + 0x18);\n        puVar27 = puVar27 + iVar4;\n      }\n      else {\n        pmVar17 = (mp_limb_t *)\n                  (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22);\n      }\n      if ((int)pmStack_4c < (int)pmVar6) {\n        *(mp_limb_t **)(puVar27 + 0x10) = pmStack_4c;\n        pmStack_4c = pmStack_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar17,pmStack_50);\n        pmStack_3c = pmVar6;\n      }\n      else {\n        *(mp_limb_t **)(puVar27 + 0x10) = pmVar6;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar17,pmStack_3c);\n        pmStack_3c = pmStack_4c;\n        pmStack_4c = pmStack_50;\n      }\n      pmVar8 = (mp_limb_t *)(pbVar3 + -(uint)(pmVar17[(int)(pbVar3 + -1)] == 0));\n      pbVar3 = (byte *)((int)pmVar8 + iVar23 + iStack_54);\n      if ((int)str < (int)pmVar8) {\n        pmVar17 = pmVar17 + ((int)pmVar8 - (int)str);\n        pmVar8 = (mp_limb_t *)str;\n      }\n    }\n    if (pmVar8 != (mp_limb_t *)0x0) {\n      pbVar12 = (byte *)((int)pmVar8 + -1);\n      mVar15 = *pmVar17;\n      pmStack_3c = x->_mp_d;\n      pmVar6 = pmStack_3c;\n      if (pbVar12 != (byte *)0x0) {\n        do {\n          pmVar17 = pmVar17 + 1;\n          *pmVar6 = mVar15;\n          pbVar12 = pbVar12 + -1;\n          mVar15 = *pmVar17;\n          pmVar6 = pmVar6 + 1;\n        } while (pbVar12 != (byte *)0x0);\n        pmStack_3c = pmStack_3c + (int)((int)pmVar8 + -1);\n      }\n      *pmStack_3c = mVar15;\n    }\n    if (bVar1) {\n      pmVar8 = (mp_limb_t *)-(int)pmVar8;\n    }\n    x->_mp_size = (int)pmVar8;\n    x->_mp_exp = (mp_exp_t)pbVar3;\n    pmVar17 = pmStack_3c;\n    in_a3 = pmStack_4c;\n    str = (char *)pmVar8;\n    if (__tmp_marker == (tmp_reentrant_t *)0x0) {\n      iVar7 = 0;\n      goto LAB_00018714;\n    }\n  }\n  else {\n    iStack_54 = 0;\n    pmStack_4c = pmVar6;\n    if (pbVar12 != (byte *)0x0) goto LAB_000185a0;\nLAB_000187d0:\n    if (pbVar24 != (byte *)0x0) {\n      pbStack_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }\nLAB_000187e0:\n    if (pmStack_4c != (mp_limb_t *)0x0) {\n      pbVar3 = (byte *)((int)pmStack_4c + -1);\n      pmVar17 = x->_mp_d;\n      mVar15 = *pmStack_3c;\n      pmVar8 = pmVar17;\n      if (pbVar3 != (byte *)0x0) {\n        do {\n          pmStack_3c = pmStack_3c + 1;\n          *pmVar8 = mVar15;\n          pbVar3 = pbVar3 + -1;\n          mVar15 = *pmStack_3c;\n          pmVar8 = pmVar8 + 1;\n        } while (pbVar3 != (byte *)0x0);\n        pmVar17 = pmVar17 + (int)((int)pmStack_4c + -1);\n      }\n      *pmVar17 = mVar15;\n    }\n    if (bVar1) {\n      pmStack_4c = (mp_limb_t *)-(int)pmStack_4c;\n    }\n    x->_mp_size = (int)pmStack_4c;\n    x->_mp_exp = (mp_exp_t)pmVar6;\n    if (__tmp_marker == (tmp_reentrant_t *)0x0) goto LAB_000187ac;\n  }\n  (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  iVar7 = 0;\nLAB_00018714:\n  if (iStack_2c == *(int *)puVar25) {\n    return iVar7;\n  }\n  pcVar28 = __gmpf_set_d;\n  iVar4 = iStack_2c;\n  puVar25 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  *(mp_limb_t **)(puVar27 + 8) = pmVar17;\n  *(undefined **)(puVar27 + -0x18) = puVar25 + 0x8c170;\n  *(code **)(puVar27 + -4) = pcVar28;\n  *(char **)(puVar27 + -8) = str;\n  *(mp_limb_t **)(puVar27 + 0xc) = in_a3;\n  uVar22 = *(uint *)(puVar27 + 8) & 0x7ff00000;\n  if (uVar22 == 0x7ff00000) {\n    uVar22 = (**(code **)(puVar25 + 0x8468c))();\n  }\n  else if ((double)CONCAT44(pmVar17,in_a3) != 0.0) {\n    if (0.0 <= (double)CONCAT44(pmVar17,in_a3)) {\n      *(ulonglong *)(puVar27 + -0x10) = CONCAT44(pmVar17,in_a3);\n    }\n    else {\n      *(uint *)(puVar27 + -0x10) = *(uint *)(puVar27 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar27 + -0xc) = *(undefined4 *)(puVar27 + 0xc);\n    }\n    pcVar28 = *(code **)(puVar25 + 0x84254);\n    uVar11 = 0xfffffffd;\n    if (0.0 <= (double)CONCAT44(pmVar17,in_a3)) {\n      uVar11 = 3;\n    }\n    *(undefined4 *)(iVar4 + 4) = uVar11;\n    iVar19 = (*pcVar28)(*(undefined4 *)(iVar4 + 0xc));\n    *(int *)(iVar4 + 8) = iVar19;\n    return iVar19;\n  }\n  *(undefined4 *)(iVar4 + 4) = 0;\n  *(undefined4 *)(iVar4 + 8) = 0;\n  return uVar22;\n}" primitive_type (function_declarator "__gmpf_set_str(mpf_ptr x,char *str,int base)" identifier (parameter_list "(mpf_ptr x,char *str,int base)" ( (parameter_declaration "mpf_ptr x" type_identifier identifier) , (parameter_declaration "char *str" primitive_type (pointer_declarator "*str" * identifier)) , (parameter_declaration "int base" primitive_type identifier) ))) (compound_statement "{\n  bool bVar1;\n  ushort uVar2;\n  byte *pbVar3;\n  int iVar4;\n  int *piVar5;\n  mp_limb_t *pmVar6;\n  int iVar7;\n  mp_limb_t *pmVar8;\n  mp_limb_t *pmVar9;\n  byte *pbVar10;\n  undefined4 uVar11;\n  byte *pbVar12;\n  byte bVar14;\n  byte *pbVar13;\n  mp_limb_t mVar15;\n  mp_limb_t *pmVar16;\n  mp_limb_t *pmVar17;\n  mp_limb_t *in_a3;\n  undefined1 *puVar18;\n  int iVar19;\n  byte *pbVar20;\n  undefined *puVar21;\n  uint uVar22;\n  int iVar23;\n  byte *pbVar24;\n  undefined *puVar25;\n  undefined1 *puVar26;\n  undefined1 *puVar27;\n  code *pcVar28;\n  undefined1 auStack_88 [8];\n  undefined1 auStack_80 [16];\n  byte abStack_70 [8];\n  int iStack_54;\n  mp_limb_t *pmStack_50;\n  mp_limb_t *pmStack_4c;\n  byte *pbStack_44;\n  mp_limb_t *pmStack_3c;\n  tmp_reentrant_t *__tmp_marker;\n  int iStack_2c;\n  \n  puVar25 = PTR___stack_chk_guard_0009d540;\n  puVar27 = auStack_80;\n  puVar26 = auStack_80;\n  iStack_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  pmVar17 = (mp_limb_t *)base;\n  pbVar3 = (byte *)(*(code *)PTR_nl_langinfo_0009d21c)(0x10000);\n  iVar4 = (*(code *)PTR_strlen_0009d360)(pbVar3);\n  uVar22 = (uint)(byte)*str;\n  piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0009d0ac)();\n  iVar19 = *piVar5;\n  uVar2 = *(ushort *)(iVar19 + uVar22 * 2);\n  while ((uVar2 & 0x20) != 0) {\n    str = (char *)((int)str + 1);\n    uVar22 = (uint)(byte)*str;\n    uVar2 = *(ushort *)(iVar19 + uVar22 * 2);\n  }\n  bVar1 = uVar22 == 0x2d;\n  if (bVar1) {\n    uVar22 = (uint)*(byte *)((int)str + 1);\n    str = (char *)((int)str + 1);\n  }\n  if (base != 0) {\n    if (base < 0) {\n      base = -base;\n      iVar23 = 10;\n      if (base < 0x25) goto LAB_000183f8;\n    }\n    else {\n      iVar23 = base;\n      if (base < 0x25) goto LAB_000183f8;\n    }\n    puVar18 = auStack_80;\n    if (base < 0x3f) {\n      puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;\n      if (base <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;\n      goto LAB_00018368;\n    }\nLAB_00018710:\n    puVar27 = puVar18;\n    iVar7 = -1;\n    goto LAB_00018714;\n  }\n  base = (int)&DAT_0000000a;\n  iVar23 = 10;\nLAB_000183f8:\n  puVar21 = PTR___gmp_digit_value_tab_0009d388;\n  if (base <= (int)(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]) {\nLAB_00018310:\n    pmVar17 = (mp_limb_t *)str;\n    if (iVar4 != 0) {\n      puVar18 = auStack_80;\n      if (*str == *pbVar3) {\n        pmVar17 = (mp_limb_t *)((int)str + iVar4);\n        pmVar6 = (mp_limb_t *)str;\n        pbVar12 = pbVar3;\n        do {\n          pbVar12 = pbVar12 + 1;\n          pmVar6 = (mp_limb_t *)((int)pmVar6 + 1);\n          if (pmVar17 == pmVar6) goto LAB_0001834c;\n          puVar18 = auStack_80;\n        } while (*(byte *)pmVar6 == *pbVar12);\n      }\n      goto LAB_00018710;\n    }\nLAB_0001834c:\n    iVar7 = -1;\n    if (base <= (int)(uint)(byte)puVar21[*(byte *)pmVar17]) goto LAB_00018714;\n  }\nLAB_00018368:\n  pmVar6 = (mp_limb_t *)(*(code *)PTR_strlen_0009d360)(str);\n  pmVar17 = (mp_limb_t *)((int)pmVar6 + -1);\n  if (pmVar17 == (mp_limb_t *)0x0) {\n    puVar26 = auStack_88;\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    pbVar12 = (byte *)0x0;\n    pbVar10 = abStack_70;\n    pmVar17 = (mp_limb_t *)&DAT_00000001;\nLAB_00018460:\n    pmVar6 = (mp_limb_t *)0x0;\n    pbVar20 = pbVar10;\n    pbVar24 = (byte *)0x0;\n    do {\n      while( true ) {\n        bVar14 = *str;\n        puVar27 = puVar26;\n        if ((*(ushort *)(iVar19 + (uint)bVar14 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pmVar6 = (mp_limb_t *)((int)pmVar6 + 1);\n        str = (char *)((int)str + 1);\n        if (pmVar17 <= pmVar6) goto LAB_00018500;\n      }\n      if (iVar4 != 0) {\n        if (*pbVar3 == bVar14) {\n          pmVar8 = (mp_limb_t *)str;\n          pbVar13 = pbVar3;\n          do {\n            pbVar13 = pbVar13 + 1;\n            pmVar8 = (mp_limb_t *)((int)pmVar8 + 1);\n            if (pmVar8 == (mp_limb_t *)((int)str + iVar4)) goto LAB_000184e0;\n          } while (*(byte *)pmVar8 == *pbVar13);\n        }\n        if ((int)(uint)(byte)puVar21[bVar14] < base) {\n          *pbVar20 = puVar21[bVar14];\n          pbVar20 = pbVar20 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }\nLAB_000184e0:\n      if (pbVar24 != (byte *)0x0) goto LAB_000186f8;\n      pmVar6 = (mp_limb_t *)((int)pmVar6 + iVar4);\n      str = (char *)((int)str + iVar4);\n      pbVar24 = pbVar20;\n    } while (pmVar6 < pmVar17);\nLAB_00018500:\n    pmVar17 = (mp_limb_t *)(pbVar20 + -(int)pbVar10);\n    iVar4 = x->_mp_prec;\n    uVar22 = (((uint)((int)(ZEXT48(pmVar17) *\n                            (ulonglong)*(uint *)(PTR___gmpn_bases_0009d338 + base * 0x14 + 8) >>\n                           0x20) << 3) >> 5) + 2) * 4;\n    str = (char *)(iVar4 + 1);\n    if (uVar22 < 0x7f01) goto LAB_00018544;\n    pmStack_3c = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n  }\n  else {\n    bVar14 = *(byte *)((int)str + (int)pmVar17);\n    if (bVar14 == 0x40) {\n      pbVar12 = (byte *)((int)str + (int)pmVar6);\n      pmVar8 = pmVar6;\n    }\n    else {\n      pmVar8 = (mp_limb_t *)((int)pmVar6 + -2);\n      pmVar16 = pmVar17;\n      if (base < 0xb) {\n        do {\n          pmVar16 = pmVar17;\n          pmVar17 = (mp_limb_t *)((int)pmVar16 + -1);\n          if ((bVar14 & 0xdf) == 0x45) {\n            pbVar12 = (byte *)((int)str + (int)pmVar16 + 1);\n            pmVar8 = (mp_limb_t *)((int)pmVar16 + 1);\n            pmVar17 = pmVar16;\n            goto LAB_0001843c;\n          }\n          if (pmVar17 == (mp_limb_t *)0x0) goto LAB_00018434;\n          bVar14 = *(byte *)((int)str + (int)pmVar17);\n        } while (bVar14 != 0x40);\nLAB_0001878c:\n        pbVar12 = (byte *)((int)str + (int)pmVar16);\n        pmVar8 = pmVar16;\n      }\n      else {\n        while (pmVar17 = pmVar8, pmVar17 != (mp_limb_t *)0x0) {\n          if (*(byte *)((int)str + (int)pmVar17) == 0x40) goto LAB_0001878c;\n          pmVar16 = pmVar17;\n          pmVar8 = (mp_limb_t *)((int)pmVar17 + -1);\n        }\nLAB_00018434:\n        pbVar12 = (byte *)0x0;\n        pmVar8 = (mp_limb_t *)((int)pmVar6 + 1);\n        pmVar17 = pmVar6;\n      }\n    }\nLAB_0001843c:\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    if ((mp_limb_t *)0x7f00 < pmVar8) {\n      pbVar10 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n      iVar19 = *piVar5;\n      goto LAB_00018460;\n    }\n    iVar7 = -((uint)((int)pmVar8 + 7) & 0xfffffff8);\n    puVar26 = auStack_80 + iVar7;\n    puVar27 = auStack_80 + iVar7;\n    pbVar10 = &stack0xffffff98 + iVar7;\n    if (pmVar17 != (mp_limb_t *)0x0) goto LAB_00018460;\n    pbVar24 = (byte *)0x0;\n    uVar22 = 8;\n    iVar4 = x->_mp_prec;\n    str = (char *)(iVar4 + 1);\n    pbVar20 = pbVar10;\nLAB_00018544:\n    iVar19 = -(uVar22 + 7 & 0xfffffff8);\n    pmStack_3c = (mp_limb_t *)(puVar27 + iVar19 + 0x18);\n    puVar27 = puVar27 + iVar19;\n  }\n  in_a3 = (mp_limb_t *)base;\n  pmVar6 = (mp_limb_t *)(*(code *)PTR___gmpn_set_str_0009d5b4)(pmStack_3c,pbVar10);\n  if (pmVar6 == (mp_limb_t *)0x0) {\n    x->_mp_size = 0;\n    x->_mp_exp = 0;\n    if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      iVar7 = 0;\n      goto LAB_00018714;\n    }\nLAB_000187ac:\n    iVar7 = 0;\n    goto LAB_00018714;\n  }\n  iStack_54 = (int)pmVar6 - (int)str;\n  if ((int)str < (int)pmVar6) {\n    pmStack_3c = pmStack_3c + iStack_54;\n    pmStack_4c = (mp_limb_t *)str;\n    if (pbVar12 == (byte *)0x0) goto LAB_000187d0;\nLAB_000185a0:\n    bVar14 = *pbVar12;\n    in_a3 = (mp_limb_t *)(uint)(bVar14 == 0x2d);\n    pbVar12 = pbVar12 + (bVar14 == 0x2b || bVar14 == 0x2d);\n    pmVar8 = (mp_limb_t *)(uint)(byte)puVar21[*pbVar12];\n    if (iVar23 <= (int)pmVar8) {\nLAB_000186f8:\n      iVar7 = -1;\n      if (__tmp_marker == (tmp_reentrant_t *)0x0) goto LAB_00018714;\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      puVar18 = puVar27;\n      goto LAB_00018710;\n    }\n    pmVar17 = (mp_limb_t *)(uint)(byte)puVar21[pbVar12[1]];\n    if ((int)pmVar17 < iVar23) {\n      pbVar12 = pbVar12 + 3;\n      do {\n        pmVar8 = (mp_limb_t *)((int)pmVar8 * iVar23 + (int)pmVar17);\n        pmVar17 = (mp_limb_t *)(uint)(byte)puVar21[pbVar12[-1]];\n        pbVar12 = pbVar12 + 1;\n      } while ((int)pmVar17 < iVar23);\n    }\n    pbStack_44 = (byte *)((int)in_a3 + (-(int)in_a3 ^ (uint)pmVar8));\n    if (pbVar24 != (byte *)0x0) {\nLAB_00018628:\n      pbStack_44 = pbStack_44 + -((int)pbVar20 - (int)pbVar24);\n    }\n    if (pbStack_44 == (byte *)0x0) goto LAB_000187e0;\n    iVar4 = iVar4 + 2;\n    uVar22 = iVar4 * 8;\n    if (uVar22 < 0x7f01) {\n      pmStack_50 = (mp_limb_t *)(puVar27 + iVar4 * -8 + 0x18);\n      pmVar17 = (mp_limb_t *)(puVar27 + iVar4 * -0x10 + 0x18);\n      puVar27 = puVar27 + iVar4 * -0x10;\n    }\n    else {\n      pmStack_50 = (mp_limb_t *)\n                   (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22);\n      pmVar17 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22)\n      ;\n    }\n    puVar21 = PTR___gmpn_clz_tab_0009d18c;\n    pbVar3 = pbStack_44;\n    if ((int)pbStack_44 < 0) {\n      pbVar3 = (byte *)-(int)pbStack_44;\n    }\n    *pmStack_50 = base;\n    if ((int)pbVar3 < 0x10000) {\n      if (0xff < (int)pbVar3) {\n        iVar4 = FUN_00018870();\n        return iVar4;\n      }\n      uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;\n      if (-1 < (int)uVar22) goto LAB_00018890;\n      if ((int)str < 1) {\n        iVar23 = 0;\n        pmVar6 = (mp_limb_t *)&DAT_00000001;\n        iVar19 = 0;\n        pmVar17 = pmStack_50;\n        goto LAB_00018988;\n      }\n      pmVar6 = (mp_limb_t *)&DAT_00000001;\n      iVar23 = 0;\n      *pmStack_50 = base;\n    }\n    else {\n      iVar19 = 0x19;\n      if ((int)pbVar3 < 0x1000000) {\n        iVar19 = 0x11;\n      }\n      iVar23 = 0x10;\n      if ((int)pbVar3 >= 0x1000000) {\n        iVar23 = 8;\n      }\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar19] - iVar23) + 0x1e;\nLAB_00018890:\n      iVar23 = 0;\n      pmVar6 = (mp_limb_t *)&DAT_00000001;\n      iVar19 = 0;\n      pmVar8 = pmStack_50;\n      while( true ) {\n        pmVar16 = pmVar8;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pmVar17,pmVar16 + iVar19,pmVar6);\n        iVar23 = iVar23 * 2;\n        pmVar6 = (mp_limb_t *)((int)pmVar6 * 2 - (uint)(pmVar17[(int)pmVar6 * 2 + 0x3fffffff] == 0))\n        ;\n        if ((int)str < (int)pmVar6) {\n          iVar19 = (int)pmVar6 - (int)str;\n          iVar23 = iVar23 + iVar19;\n          pmVar6 = (mp_limb_t *)str;\n        }\n        else {\n          iVar19 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          mVar15 = (*(code *)PTR___gmpn_mul_1_0009d0a4)(pmVar17,pmVar17 + iVar19,pmVar6,base);\n          pmVar8 = pmVar17 + (int)pmVar6;\n          pmVar6 = (mp_limb_t *)((int)pmVar6 + (uint)(mVar15 != 0));\n          *pmVar8 = mVar15;\n          iVar19 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pmVar8 = pmVar17;\n        pmVar17 = pmVar16;\n      }\n      if ((int)str < (int)pmVar6) {\nLAB_00018988:\n        iVar23 = iVar23 + ((int)pmVar6 - (int)str);\n        pmVar17 = pmVar17 + ((int)pmVar6 - (int)str);\n        pmVar6 = (mp_limb_t *)str;\n      }\n      pbVar3 = (byte *)((int)pmVar6 + -1);\n      if (pmVar6 != (mp_limb_t *)0x0) {\n        mVar15 = pmVar17[iVar19];\n        if (pbVar3 == (byte *)0x0) {\n          pmVar6 = (mp_limb_t *)&DAT_00000001;\n          *pmStack_50 = mVar15;\n        }\n        else {\n          pmVar17 = pmVar17 + iVar19 + 1;\n          pmVar8 = pmStack_50;\n          do {\n            *pmVar8 = mVar15;\n            pbVar3 = pbVar3 + -1;\n            mVar15 = *pmVar17;\n            pmVar17 = pmVar17 + 1;\n            pmVar8 = pmVar8 + 1;\n          } while (pbVar3 != (byte *)0x0);\n          pmStack_50[(int)((int)pmVar6 + -1)] = mVar15;\n        }\n      }\n    }\n    pmVar8 = (mp_limb_t *)str;\n    if ((int)pbStack_44 < 0) {\n      if ((int)pmStack_4c < (int)pmVar6) {\n        uVar22 = (int)((int)pmVar6 + 1) * 4;\n        if (uVar22 < 0x7f01) {\n          iVar19 = -(uVar22 + 7 & 0xfffffff8);\n          puVar18 = puVar27 + iVar19 + 0x18;\n          puVar27 = puVar27 + iVar19;\n        }\n        else {\n          puVar18 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n        }\n        iVar19 = (int)pmVar6 - (int)pmStack_4c;\n        pmVar17 = (mp_limb_t *)(*(code *)PTR_memset_0009d2e8)(puVar18,0,iVar19 * 4);\n        if (pmStack_4c != (mp_limb_t *)0x0) {\n          pbVar3 = (byte *)((int)pmStack_4c + -1);\n          pmVar9 = pmVar17 + iVar19;\n          mVar15 = *pmStack_3c;\n          pmVar16 = pmVar9;\n          if (pbVar3 != (byte *)0x0) {\n            do {\n              pmStack_3c = pmStack_3c + 1;\n              *pmVar16 = mVar15;\n              pbVar3 = pbVar3 + -1;\n              mVar15 = *pmStack_3c;\n              pmVar16 = pmVar16 + 1;\n            } while (pbVar3 != (byte *)0x0);\n            pmVar9 = pmVar9 + (int)((int)pmStack_4c + -1);\n          }\n          *pmVar9 = mVar15;\n        }\n        iStack_54 = iStack_54 - iVar19;\n        pmStack_4c = pmVar6;\n        pmStack_3c = pmVar17;\n      }\n      uVar22 = pmStack_50[(int)((int)pmVar6 + -1)];\n      if (-1 < (int)uVar22) {\n        if (uVar22 < 0x10000) {\n          iVar19 = 0x20;\n          if (0xff < uVar22) {\n            iVar19 = 0x18;\n          }\n          iVar7 = 9;\n          if (0xff >= uVar22) {\n            iVar7 = 1;\n          }\n        }\n        else {\n          iVar19 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar19 = 8;\n          }\n          iVar7 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar7 = 0x11;\n          }\n        }\n        bVar14 = puVar21[uVar22 >> iVar7];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(pmStack_50,pmStack_50,pmVar6,iVar19 - (uint)bVar14);\n        mVar15 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (pmStack_3c,pmStack_3c,pmStack_4c,iVar19 - (uint)bVar14);\n        if (mVar15 != 0) {\n          pmStack_3c[(int)pmStack_4c] = mVar15;\n          pmStack_4c = (mp_limb_t *)((int)pmStack_4c + 1);\n        }\n      }\n      if ((uint)(iVar4 * 4) < 0x7f01) {\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        pmVar17 = (mp_limb_t *)(puVar27 + iVar4 + 0x18);\n        puVar27 = puVar27 + iVar4;\n      }\n      else {\n        pmVar17 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n      }\n      iVar4 = (int)pmStack_4c - (int)pmVar6;\n      *(mp_limb_t **)(puVar27 + 0x14) = pmVar6;\n      *(mp_limb_t **)(puVar27 + 0x10) = pmStack_50;\n      mVar15 = (*(code *)PTR___gmpn_divrem_0009d0e4)(pmVar17,(int)str - iVar4);\n      pbVar3 = (byte *)((iStack_54 - iVar23) + iVar4 + mVar15);\n      if (mVar15 != 0) {\n        pmVar6 = pmVar17 + (int)str;\n        pmVar17 = pmVar17 + 1;\n        *pmVar6 = mVar15;\n      }\n    }\n    else {\n      pbVar3 = (byte *)((int)pmVar6 + (int)pmStack_4c);\n      uVar22 = (int)pbVar3 * 4;\n      if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        pmVar17 = (mp_limb_t *)(puVar27 + iVar4 + 0x18);\n        puVar27 = puVar27 + iVar4;\n      }\n      else {\n        pmVar17 = (mp_limb_t *)\n                  (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22);\n      }\n      if ((int)pmStack_4c < (int)pmVar6) {\n        *(mp_limb_t **)(puVar27 + 0x10) = pmStack_4c;\n        pmStack_4c = pmStack_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar17,pmStack_50);\n        pmStack_3c = pmVar6;\n      }\n      else {\n        *(mp_limb_t **)(puVar27 + 0x10) = pmVar6;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar17,pmStack_3c);\n        pmStack_3c = pmStack_4c;\n        pmStack_4c = pmStack_50;\n      }\n      pmVar8 = (mp_limb_t *)(pbVar3 + -(uint)(pmVar17[(int)(pbVar3 + -1)] == 0));\n      pbVar3 = (byte *)((int)pmVar8 + iVar23 + iStack_54);\n      if ((int)str < (int)pmVar8) {\n        pmVar17 = pmVar17 + ((int)pmVar8 - (int)str);\n        pmVar8 = (mp_limb_t *)str;\n      }\n    }\n    if (pmVar8 != (mp_limb_t *)0x0) {\n      pbVar12 = (byte *)((int)pmVar8 + -1);\n      mVar15 = *pmVar17;\n      pmStack_3c = x->_mp_d;\n      pmVar6 = pmStack_3c;\n      if (pbVar12 != (byte *)0x0) {\n        do {\n          pmVar17 = pmVar17 + 1;\n          *pmVar6 = mVar15;\n          pbVar12 = pbVar12 + -1;\n          mVar15 = *pmVar17;\n          pmVar6 = pmVar6 + 1;\n        } while (pbVar12 != (byte *)0x0);\n        pmStack_3c = pmStack_3c + (int)((int)pmVar8 + -1);\n      }\n      *pmStack_3c = mVar15;\n    }\n    if (bVar1) {\n      pmVar8 = (mp_limb_t *)-(int)pmVar8;\n    }\n    x->_mp_size = (int)pmVar8;\n    x->_mp_exp = (mp_exp_t)pbVar3;\n    pmVar17 = pmStack_3c;\n    in_a3 = pmStack_4c;\n    str = (char *)pmVar8;\n    if (__tmp_marker == (tmp_reentrant_t *)0x0) {\n      iVar7 = 0;\n      goto LAB_00018714;\n    }\n  }\n  else {\n    iStack_54 = 0;\n    pmStack_4c = pmVar6;\n    if (pbVar12 != (byte *)0x0) goto LAB_000185a0;\nLAB_000187d0:\n    if (pbVar24 != (byte *)0x0) {\n      pbStack_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }\nLAB_000187e0:\n    if (pmStack_4c != (mp_limb_t *)0x0) {\n      pbVar3 = (byte *)((int)pmStack_4c + -1);\n      pmVar17 = x->_mp_d;\n      mVar15 = *pmStack_3c;\n      pmVar8 = pmVar17;\n      if (pbVar3 != (byte *)0x0) {\n        do {\n          pmStack_3c = pmStack_3c + 1;\n          *pmVar8 = mVar15;\n          pbVar3 = pbVar3 + -1;\n          mVar15 = *pmStack_3c;\n          pmVar8 = pmVar8 + 1;\n        } while (pbVar3 != (byte *)0x0);\n        pmVar17 = pmVar17 + (int)((int)pmStack_4c + -1);\n      }\n      *pmVar17 = mVar15;\n    }\n    if (bVar1) {\n      pmStack_4c = (mp_limb_t *)-(int)pmStack_4c;\n    }\n    x->_mp_size = (int)pmStack_4c;\n    x->_mp_exp = (mp_exp_t)pmVar6;\n    if (__tmp_marker == (tmp_reentrant_t *)0x0) goto LAB_000187ac;\n  }\n  (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  iVar7 = 0;\nLAB_00018714:\n  if (iStack_2c == *(int *)puVar25) {\n    return iVar7;\n  }\n  pcVar28 = __gmpf_set_d;\n  iVar4 = iStack_2c;\n  puVar25 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  *(mp_limb_t **)(puVar27 + 8) = pmVar17;\n  *(undefined **)(puVar27 + -0x18) = puVar25 + 0x8c170;\n  *(code **)(puVar27 + -4) = pcVar28;\n  *(char **)(puVar27 + -8) = str;\n  *(mp_limb_t **)(puVar27 + 0xc) = in_a3;\n  uVar22 = *(uint *)(puVar27 + 8) & 0x7ff00000;\n  if (uVar22 == 0x7ff00000) {\n    uVar22 = (**(code **)(puVar25 + 0x8468c))();\n  }\n  else if ((double)CONCAT44(pmVar17,in_a3) != 0.0) {\n    if (0.0 <= (double)CONCAT44(pmVar17,in_a3)) {\n      *(ulonglong *)(puVar27 + -0x10) = CONCAT44(pmVar17,in_a3);\n    }\n    else {\n      *(uint *)(puVar27 + -0x10) = *(uint *)(puVar27 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar27 + -0xc) = *(undefined4 *)(puVar27 + 0xc);\n    }\n    pcVar28 = *(code **)(puVar25 + 0x84254);\n    uVar11 = 0xfffffffd;\n    if (0.0 <= (double)CONCAT44(pmVar17,in_a3)) {\n      uVar11 = 3;\n    }\n    *(undefined4 *)(iVar4 + 4) = uVar11;\n    iVar19 = (*pcVar28)(*(undefined4 *)(iVar4 + 0xc));\n    *(int *)(iVar4 + 8) = iVar19;\n    return iVar19;\n  }\n  *(undefined4 *)(iVar4 + 4) = 0;\n  *(undefined4 *)(iVar4 + 8) = 0;\n  return uVar22;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "mp_limb_t *pmVar6;" type_identifier (pointer_declarator "*pmVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "mp_limb_t *pmVar8;" type_identifier (pointer_declarator "*pmVar8" * identifier) ;) (declaration "mp_limb_t *pmVar9;" type_identifier (pointer_declarator "*pmVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "mp_limb_t mVar15;" type_identifier identifier ;) (declaration "mp_limb_t *pmVar16;" type_identifier (pointer_declarator "*pmVar16" * identifier) ;) (declaration "mp_limb_t *pmVar17;" type_identifier (pointer_declarator "*pmVar17" * identifier) ;) (declaration "mp_limb_t *in_a3;" type_identifier (pointer_declarator "*in_a3" * identifier) ;) (declaration "undefined1 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "undefined *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "byte *pbVar24;" type_identifier (pointer_declarator "*pbVar24" * identifier) ;) (declaration "undefined *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "undefined1 *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "undefined1 *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "code *pcVar28;" type_identifier (pointer_declarator "*pcVar28" * identifier) ;) (declaration "undefined1 auStack_88 [8];" type_identifier (array_declarator "auStack_88 [8]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_80 [16];" type_identifier (array_declarator "auStack_80 [16]" identifier [ number_literal ]) ;) (declaration "byte abStack_70 [8];" type_identifier (array_declarator "abStack_70 [8]" identifier [ number_literal ]) ;) (declaration "int iStack_54;" primitive_type identifier ;) (declaration "mp_limb_t *pmStack_50;" type_identifier (pointer_declarator "*pmStack_50" * identifier) ;) (declaration "mp_limb_t *pmStack_4c;" type_identifier (pointer_declarator "*pmStack_4c" * identifier) ;) (declaration "byte *pbStack_44;" type_identifier (pointer_declarator "*pbStack_44" * identifier) ;) (declaration "mp_limb_t *pmStack_3c;" type_identifier (pointer_declarator "*pmStack_3c" * identifier) ;) (declaration "tmp_reentrant_t *__tmp_marker;" type_identifier (pointer_declarator "*__tmp_marker" * identifier) ;) (declaration "int iStack_2c;" primitive_type identifier ;) (expression_statement "puVar25 = PTR___stack_chk_guard_0009d540;" (assignment_expression "puVar25 = PTR___stack_chk_guard_0009d540" identifier = identifier) ;) (expression_statement "puVar27 = auStack_80;" (assignment_expression "puVar27 = auStack_80" identifier = identifier) ;) (expression_statement "puVar26 = auStack_80;" (assignment_expression "puVar26 = auStack_80" identifier = identifier) ;) (expression_statement "iStack_2c = *(int *)PTR___stack_chk_guard_0009d540;" (assignment_expression "iStack_2c = *(int *)PTR___stack_chk_guard_0009d540" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0009d540" * (cast_expression "(int *)PTR___stack_chk_guard_0009d540" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pmVar17 = (mp_limb_t *)base;" (assignment_expression "pmVar17 = (mp_limb_t *)base" identifier = (cast_expression "(mp_limb_t *)base" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar3 = (byte *)(*(code *)PTR_nl_langinfo_0009d21c)(0x10000);" (assignment_expression "pbVar3 = (byte *)(*(code *)PTR_nl_langinfo_0009d21c)(0x10000)" identifier = (cast_expression "(byte *)(*(code *)PTR_nl_langinfo_0009d21c)(0x10000)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_nl_langinfo_0009d21c)(0x10000)" (parenthesized_expression "(*(code *)PTR_nl_langinfo_0009d21c)" ( (pointer_expression "*(code *)PTR_nl_langinfo_0009d21c" * (cast_expression "(code *)PTR_nl_langinfo_0009d21c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x10000)" ( number_literal ))))) ;) (expression_statement "iVar4 = (*(code *)PTR_strlen_0009d360)(pbVar3);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_0009d360)(pbVar3)" identifier = (call_expression "(*(code *)PTR_strlen_0009d360)(pbVar3)" (parenthesized_expression "(*(code *)PTR_strlen_0009d360)" ( (pointer_expression "*(code *)PTR_strlen_0009d360" * (cast_expression "(code *)PTR_strlen_0009d360" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar3)" ( identifier )))) ;) (expression_statement "uVar22 = (uint)(byte)*str;" (assignment_expression "uVar22 = (uint)(byte)*str" identifier = (binary_expression "(uint)(byte)*str" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * identifier)) ;) (expression_statement "piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0009d0ac)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0009d0ac)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_0009d0ac)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0009d0ac)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0009d0ac)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0009d0ac" * (cast_expression "(code *)PTR___ctype_b_loc_0009d0ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar19 = *piVar5;" (assignment_expression "iVar19 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "uVar2 = *(ushort *)(iVar19 + uVar22 * 2);" (assignment_expression "uVar2 = *(ushort *)(iVar19 + uVar22 * 2)" identifier = (pointer_expression "*(ushort *)(iVar19 + uVar22 * 2)" * (cast_expression "(ushort *)(iVar19 + uVar22 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + uVar22 * 2)" ( (binary_expression "iVar19 + uVar22 * 2" identifier + (binary_expression "uVar22 * 2" identifier * number_literal)) ))))) ;) (while_statement "while ((uVar2 & 0x20) != 0) {\n    str = (char *)((int)str + 1);\n    uVar22 = (uint)(byte)*str;\n    uVar2 = *(ushort *)(iVar19 + uVar22 * 2);\n  }" while (parenthesized_expression "((uVar2 & 0x20) != 0)" ( (binary_expression "(uVar2 & 0x20) != 0" (parenthesized_expression "(uVar2 & 0x20)" ( (binary_expression "uVar2 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    str = (char *)((int)str + 1);\n    uVar22 = (uint)(byte)*str;\n    uVar2 = *(ushort *)(iVar19 + uVar22 * 2);\n  }" { (expression_statement "str = (char *)((int)str + 1);" (assignment_expression "str = (char *)((int)str + 1)" identifier = (cast_expression "(char *)((int)str + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)str + 1)" ( (binary_expression "(int)str + 1" (cast_expression "(int)str" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar22 = (uint)(byte)*str;" (assignment_expression "uVar22 = (uint)(byte)*str" identifier = (binary_expression "(uint)(byte)*str" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * identifier)) ;) (expression_statement "uVar2 = *(ushort *)(iVar19 + uVar22 * 2);" (assignment_expression "uVar2 = *(ushort *)(iVar19 + uVar22 * 2)" identifier = (pointer_expression "*(ushort *)(iVar19 + uVar22 * 2)" * (cast_expression "(ushort *)(iVar19 + uVar22 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + uVar22 * 2)" ( (binary_expression "iVar19 + uVar22 * 2" identifier + (binary_expression "uVar22 * 2" identifier * number_literal)) ))))) ;) })) (expression_statement "bVar1 = uVar22 == 0x2d;" (assignment_expression "bVar1 = uVar22 == 0x2d" identifier = (binary_expression "uVar22 == 0x2d" identifier == number_literal)) ;) (if_statement "if (bVar1) {\n    uVar22 = (uint)*(byte *)((int)str + 1);\n    str = (char *)((int)str + 1);\n  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n    uVar22 = (uint)*(byte *)((int)str + 1);\n    str = (char *)((int)str + 1);\n  }" { (expression_statement "uVar22 = (uint)*(byte *)((int)str + 1);" (assignment_expression "uVar22 = (uint)*(byte *)((int)str + 1)" identifier = (binary_expression "(uint)*(byte *)((int)str + 1)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)str + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)str + 1)" ( (binary_expression "(int)str + 1" (cast_expression "(int)str" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "str = (char *)((int)str + 1);" (assignment_expression "str = (char *)((int)str + 1)" identifier = (cast_expression "(char *)((int)str + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)str + 1)" ( (binary_expression "(int)str + 1" (cast_expression "(int)str" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (if_statement "if (base != 0) {\n    if (base < 0) {\n      base = -base;\n      iVar23 = 10;\n      if (base < 0x25) goto LAB_000183f8;\n    }\n    else {\n      iVar23 = base;\n      if (base < 0x25) goto LAB_000183f8;\n    }\n    puVar18 = auStack_80;\n    if (base < 0x3f) {\n      puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;\n      if (base <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;\n      goto LAB_00018368;\n    }\nLAB_00018710:\n    puVar27 = puVar18;\n    iVar7 = -1;\n    goto LAB_00018714;\n  }" if (parenthesized_expression "(base != 0)" ( (binary_expression "base != 0" identifier != number_literal) )) (compound_statement "{\n    if (base < 0) {\n      base = -base;\n      iVar23 = 10;\n      if (base < 0x25) goto LAB_000183f8;\n    }\n    else {\n      iVar23 = base;\n      if (base < 0x25) goto LAB_000183f8;\n    }\n    puVar18 = auStack_80;\n    if (base < 0x3f) {\n      puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;\n      if (base <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;\n      goto LAB_00018368;\n    }\nLAB_00018710:\n    puVar27 = puVar18;\n    iVar7 = -1;\n    goto LAB_00018714;\n  }" { (if_statement "if (base < 0) {\n      base = -base;\n      iVar23 = 10;\n      if (base < 0x25) goto LAB_000183f8;\n    }\n    else {\n      iVar23 = base;\n      if (base < 0x25) goto LAB_000183f8;\n    }" if (parenthesized_expression "(base < 0)" ( (binary_expression "base < 0" identifier < number_literal) )) (compound_statement "{\n      base = -base;\n      iVar23 = 10;\n      if (base < 0x25) goto LAB_000183f8;\n    }" { (expression_statement "base = -base;" (assignment_expression "base = -base" identifier = (unary_expression "-base" - identifier)) ;) (expression_statement "iVar23 = 10;" (assignment_expression "iVar23 = 10" identifier = number_literal) ;) (if_statement "if (base < 0x25) goto LAB_000183f8;" if (parenthesized_expression "(base < 0x25)" ( (binary_expression "base < 0x25" identifier < number_literal) )) (goto_statement "goto LAB_000183f8;" goto statement_identifier ;)) }) (else_clause "else {\n      iVar23 = base;\n      if (base < 0x25) goto LAB_000183f8;\n    }" else (compound_statement "{\n      iVar23 = base;\n      if (base < 0x25) goto LAB_000183f8;\n    }" { (expression_statement "iVar23 = base;" (assignment_expression "iVar23 = base" identifier = identifier) ;) (if_statement "if (base < 0x25) goto LAB_000183f8;" if (parenthesized_expression "(base < 0x25)" ( (binary_expression "base < 0x25" identifier < number_literal) )) (goto_statement "goto LAB_000183f8;" goto statement_identifier ;)) }))) (expression_statement "puVar18 = auStack_80;" (assignment_expression "puVar18 = auStack_80" identifier = identifier) ;) (if_statement "if (base < 0x3f) {\n      puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;\n      if (base <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;\n      goto LAB_00018368;\n    }" if (parenthesized_expression "(base < 0x3f)" ( (binary_expression "base < 0x3f" identifier < number_literal) )) (compound_statement "{\n      puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;\n      if (base <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;\n      goto LAB_00018368;\n    }" { (expression_statement "puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;" (assignment_expression "puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0" identifier = (binary_expression "PTR___gmp_digit_value_tab_0009d388 + 0xd0" identifier + number_literal)) ;) (if_statement "if (base <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;" if (parenthesized_expression "(base <= (int)(uint)(byte)puVar21[uVar22])" ( (binary_expression "base <= (int)(uint)(byte)puVar21[uVar22]" identifier <= (cast_expression "(int)(uint)(byte)puVar21[uVar22]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)(byte)puVar21[uVar22]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar21[uVar22]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar21[uVar22]" identifier [ identifier ]))))) )) (goto_statement "goto LAB_00018310;" goto statement_identifier ;)) (goto_statement "goto LAB_00018368;" goto statement_identifier ;) })) (labeled_statement "LAB_00018710:\n    puVar27 = puVar18;" statement_identifier : (expression_statement "puVar27 = puVar18;" (assignment_expression "puVar27 = puVar18" identifier = identifier) ;)) (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_00018714;" goto statement_identifier ;) })) (expression_statement "base = (int)&DAT_0000000a;" (assignment_expression "base = (int)&DAT_0000000a" identifier = (cast_expression "(int)&DAT_0000000a" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&DAT_0000000a" & identifier))) ;) (expression_statement "iVar23 = 10;" (assignment_expression "iVar23 = 10" identifier = number_literal) ;) (labeled_statement "LAB_000183f8:\n  puVar21 = PTR___gmp_digit_value_tab_0009d388;" statement_identifier : (expression_statement "puVar21 = PTR___gmp_digit_value_tab_0009d388;" (assignment_expression "puVar21 = PTR___gmp_digit_value_tab_0009d388" identifier = identifier) ;)) (if_statement "if (base <= (int)(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]) {\nLAB_00018310:\n    pmVar17 = (mp_limb_t *)str;\n    if (iVar4 != 0) {\n      puVar18 = auStack_80;\n      if (*str == *pbVar3) {\n        pmVar17 = (mp_limb_t *)((int)str + iVar4);\n        pmVar6 = (mp_limb_t *)str;\n        pbVar12 = pbVar3;\n        do {\n          pbVar12 = pbVar12 + 1;\n          pmVar6 = (mp_limb_t *)((int)pmVar6 + 1);\n          if (pmVar17 == pmVar6) goto LAB_0001834c;\n          puVar18 = auStack_80;\n        } while (*(byte *)pmVar6 == *pbVar12);\n      }\n      goto LAB_00018710;\n    }\nLAB_0001834c:\n    iVar7 = -1;\n    if (base <= (int)(uint)(byte)puVar21[*(byte *)pmVar17]) goto LAB_00018714;\n  }" if (parenthesized_expression "(base <= (int)(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22])" ( (binary_expression "base <= (int)(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]" identifier <= (cast_expression "(int)(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR___gmp_digit_value_tab_0009d388[uVar22]" identifier [ identifier ]))))) )) (compound_statement "{\nLAB_00018310:\n    pmVar17 = (mp_limb_t *)str;\n    if (iVar4 != 0) {\n      puVar18 = auStack_80;\n      if (*str == *pbVar3) {\n        pmVar17 = (mp_limb_t *)((int)str + iVar4);\n        pmVar6 = (mp_limb_t *)str;\n        pbVar12 = pbVar3;\n        do {\n          pbVar12 = pbVar12 + 1;\n          pmVar6 = (mp_limb_t *)((int)pmVar6 + 1);\n          if (pmVar17 == pmVar6) goto LAB_0001834c;\n          puVar18 = auStack_80;\n        } while (*(byte *)pmVar6 == *pbVar12);\n      }\n      goto LAB_00018710;\n    }\nLAB_0001834c:\n    iVar7 = -1;\n    if (base <= (int)(uint)(byte)puVar21[*(byte *)pmVar17]) goto LAB_00018714;\n  }" { (labeled_statement "LAB_00018310:\n    pmVar17 = (mp_limb_t *)str;" statement_identifier : (expression_statement "pmVar17 = (mp_limb_t *)str;" (assignment_expression "pmVar17 = (mp_limb_t *)str" identifier = (cast_expression "(mp_limb_t *)str" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (if_statement "if (iVar4 != 0) {\n      puVar18 = auStack_80;\n      if (*str == *pbVar3) {\n        pmVar17 = (mp_limb_t *)((int)str + iVar4);\n        pmVar6 = (mp_limb_t *)str;\n        pbVar12 = pbVar3;\n        do {\n          pbVar12 = pbVar12 + 1;\n          pmVar6 = (mp_limb_t *)((int)pmVar6 + 1);\n          if (pmVar17 == pmVar6) goto LAB_0001834c;\n          puVar18 = auStack_80;\n        } while (*(byte *)pmVar6 == *pbVar12);\n      }\n      goto LAB_00018710;\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      puVar18 = auStack_80;\n      if (*str == *pbVar3) {\n        pmVar17 = (mp_limb_t *)((int)str + iVar4);\n        pmVar6 = (mp_limb_t *)str;\n        pbVar12 = pbVar3;\n        do {\n          pbVar12 = pbVar12 + 1;\n          pmVar6 = (mp_limb_t *)((int)pmVar6 + 1);\n          if (pmVar17 == pmVar6) goto LAB_0001834c;\n          puVar18 = auStack_80;\n        } while (*(byte *)pmVar6 == *pbVar12);\n      }\n      goto LAB_00018710;\n    }" { (expression_statement "puVar18 = auStack_80;" (assignment_expression "puVar18 = auStack_80" identifier = identifier) ;) (if_statement "if (*str == *pbVar3) {\n        pmVar17 = (mp_limb_t *)((int)str + iVar4);\n        pmVar6 = (mp_limb_t *)str;\n        pbVar12 = pbVar3;\n        do {\n          pbVar12 = pbVar12 + 1;\n          pmVar6 = (mp_limb_t *)((int)pmVar6 + 1);\n          if (pmVar17 == pmVar6) goto LAB_0001834c;\n          puVar18 = auStack_80;\n        } while (*(byte *)pmVar6 == *pbVar12);\n      }" if (parenthesized_expression "(*str == *pbVar3)" ( (binary_expression "*str == *pbVar3" (pointer_expression "*str" * identifier) == (pointer_expression "*pbVar3" * identifier)) )) (compound_statement "{\n        pmVar17 = (mp_limb_t *)((int)str + iVar4);\n        pmVar6 = (mp_limb_t *)str;\n        pbVar12 = pbVar3;\n        do {\n          pbVar12 = pbVar12 + 1;\n          pmVar6 = (mp_limb_t *)((int)pmVar6 + 1);\n          if (pmVar17 == pmVar6) goto LAB_0001834c;\n          puVar18 = auStack_80;\n        } while (*(byte *)pmVar6 == *pbVar12);\n      }" { (expression_statement "pmVar17 = (mp_limb_t *)((int)str + iVar4);" (assignment_expression "pmVar17 = (mp_limb_t *)((int)str + iVar4)" identifier = (cast_expression "(mp_limb_t *)((int)str + iVar4)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)str + iVar4)" ( (binary_expression "(int)str + iVar4" (cast_expression "(int)str" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "pmVar6 = (mp_limb_t *)str;" (assignment_expression "pmVar6 = (mp_limb_t *)str" identifier = (cast_expression "(mp_limb_t *)str" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar12 = pbVar3;" (assignment_expression "pbVar12 = pbVar3" identifier = identifier) ;) (do_statement "do {\n          pbVar12 = pbVar12 + 1;\n          pmVar6 = (mp_limb_t *)((int)pmVar6 + 1);\n          if (pmVar17 == pmVar6) goto LAB_0001834c;\n          puVar18 = auStack_80;\n        } while (*(byte *)pmVar6 == *pbVar12);" do (compound_statement "{\n          pbVar12 = pbVar12 + 1;\n          pmVar6 = (mp_limb_t *)((int)pmVar6 + 1);\n          if (pmVar17 == pmVar6) goto LAB_0001834c;\n          puVar18 = auStack_80;\n        }" { (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "pmVar6 = (mp_limb_t *)((int)pmVar6 + 1);" (assignment_expression "pmVar6 = (mp_limb_t *)((int)pmVar6 + 1)" identifier = (cast_expression "(mp_limb_t *)((int)pmVar6 + 1)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar6 + 1)" ( (binary_expression "(int)pmVar6 + 1" (cast_expression "(int)pmVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (pmVar17 == pmVar6) goto LAB_0001834c;" if (parenthesized_expression "(pmVar17 == pmVar6)" ( (binary_expression "pmVar17 == pmVar6" identifier == identifier) )) (goto_statement "goto LAB_0001834c;" goto statement_identifier ;)) (expression_statement "puVar18 = auStack_80;" (assignment_expression "puVar18 = auStack_80" identifier = identifier) ;) }) while (parenthesized_expression "(*(byte *)pmVar6 == *pbVar12)" ( (binary_expression "*(byte *)pmVar6 == *pbVar12" (pointer_expression "*(byte *)pmVar6" * (cast_expression "(byte *)pmVar6" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*pbVar12" * identifier)) )) ;) })) (goto_statement "goto LAB_00018710;" goto statement_identifier ;) })) (labeled_statement "LAB_0001834c:\n    iVar7 = -1;" statement_identifier : (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" identifier = number_literal) ;)) (if_statement "if (base <= (int)(uint)(byte)puVar21[*(byte *)pmVar17]) goto LAB_00018714;" if (parenthesized_expression "(base <= (int)(uint)(byte)puVar21[*(byte *)pmVar17])" ( (binary_expression "base <= (int)(uint)(byte)puVar21[*(byte *)pmVar17]" identifier <= (cast_expression "(int)(uint)(byte)puVar21[*(byte *)pmVar17]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)(byte)puVar21[*(byte *)pmVar17]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar21[*(byte *)pmVar17]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar21[*(byte *)pmVar17]" identifier [ (pointer_expression "*(byte *)pmVar17" * (cast_expression "(byte *)pmVar17" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ]))))) )) (goto_statement "goto LAB_00018714;" goto statement_identifier ;)) })) (labeled_statement "LAB_00018368:\n  pmVar6 = (mp_limb_t *)(*(code *)PTR_strlen_0009d360)(str);" statement_identifier : (expression_statement "pmVar6 = (mp_limb_t *)(*(code *)PTR_strlen_0009d360)(str);" (assignment_expression "pmVar6 = (mp_limb_t *)(*(code *)PTR_strlen_0009d360)(str)" identifier = (cast_expression "(mp_limb_t *)(*(code *)PTR_strlen_0009d360)(str)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strlen_0009d360)(str)" (parenthesized_expression "(*(code *)PTR_strlen_0009d360)" ( (pointer_expression "*(code *)PTR_strlen_0009d360" * (cast_expression "(code *)PTR_strlen_0009d360" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(str)" ( identifier ))))) ;)) (expression_statement "pmVar17 = (mp_limb_t *)((int)pmVar6 + -1);" (assignment_expression "pmVar17 = (mp_limb_t *)((int)pmVar6 + -1)" identifier = (cast_expression "(mp_limb_t *)((int)pmVar6 + -1)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar6 + -1)" ( (binary_expression "(int)pmVar6 + -1" (cast_expression "(int)pmVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (pmVar17 == (mp_limb_t *)0x0) {\n    puVar26 = auStack_88;\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    pbVar12 = (byte *)0x0;\n    pbVar10 = abStack_70;\n    pmVar17 = (mp_limb_t *)&DAT_00000001;\nLAB_00018460:\n    pmVar6 = (mp_limb_t *)0x0;\n    pbVar20 = pbVar10;\n    pbVar24 = (byte *)0x0;\n    do {\n      while( true ) {\n        bVar14 = *str;\n        puVar27 = puVar26;\n        if ((*(ushort *)(iVar19 + (uint)bVar14 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pmVar6 = (mp_limb_t *)((int)pmVar6 + 1);\n        str = (char *)((int)str + 1);\n        if (pmVar17 <= pmVar6) goto LAB_00018500;\n      }\n      if (iVar4 != 0) {\n        if (*pbVar3 == bVar14) {\n          pmVar8 = (mp_limb_t *)str;\n          pbVar13 = pbVar3;\n          do {\n            pbVar13 = pbVar13 + 1;\n            pmVar8 = (mp_limb_t *)((int)pmVar8 + 1);\n            if (pmVar8 == (mp_limb_t *)((int)str + iVar4)) goto LAB_000184e0;\n          } while (*(byte *)pmVar8 == *pbVar13);\n        }\n        if ((int)(uint)(byte)puVar21[bVar14] < base) {\n          *pbVar20 = puVar21[bVar14];\n          pbVar20 = pbVar20 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }\nLAB_000184e0:\n      if (pbVar24 != (byte *)0x0) goto LAB_000186f8;\n      pmVar6 = (mp_limb_t *)((int)pmVar6 + iVar4);\n      str = (char *)((int)str + iVar4);\n      pbVar24 = pbVar20;\n    } while (pmVar6 < pmVar17);\nLAB_00018500:\n    pmVar17 = (mp_limb_t *)(pbVar20 + -(int)pbVar10);\n    iVar4 = x->_mp_prec;\n    uVar22 = (((uint)((int)(ZEXT48(pmVar17) *\n                            (ulonglong)*(uint *)(PTR___gmpn_bases_0009d338 + base * 0x14 + 8) >>\n                           0x20) << 3) >> 5) + 2) * 4;\n    str = (char *)(iVar4 + 1);\n    if (uVar22 < 0x7f01) goto LAB_00018544;\n    pmStack_3c = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n  }\n  else {\n    bVar14 = *(byte *)((int)str + (int)pmVar17);\n    if (bVar14 == 0x40) {\n      pbVar12 = (byte *)((int)str + (int)pmVar6);\n      pmVar8 = pmVar6;\n    }\n    else {\n      pmVar8 = (mp_limb_t *)((int)pmVar6 + -2);\n      pmVar16 = pmVar17;\n      if (base < 0xb) {\n        do {\n          pmVar16 = pmVar17;\n          pmVar17 = (mp_limb_t *)((int)pmVar16 + -1);\n          if ((bVar14 & 0xdf) == 0x45) {\n            pbVar12 = (byte *)((int)str + (int)pmVar16 + 1);\n            pmVar8 = (mp_limb_t *)((int)pmVar16 + 1);\n            pmVar17 = pmVar16;\n            goto LAB_0001843c;\n          }\n          if (pmVar17 == (mp_limb_t *)0x0) goto LAB_00018434;\n          bVar14 = *(byte *)((int)str + (int)pmVar17);\n        } while (bVar14 != 0x40);\nLAB_0001878c:\n        pbVar12 = (byte *)((int)str + (int)pmVar16);\n        pmVar8 = pmVar16;\n      }\n      else {\n        while (pmVar17 = pmVar8, pmVar17 != (mp_limb_t *)0x0) {\n          if (*(byte *)((int)str + (int)pmVar17) == 0x40) goto LAB_0001878c;\n          pmVar16 = pmVar17;\n          pmVar8 = (mp_limb_t *)((int)pmVar17 + -1);\n        }\nLAB_00018434:\n        pbVar12 = (byte *)0x0;\n        pmVar8 = (mp_limb_t *)((int)pmVar6 + 1);\n        pmVar17 = pmVar6;\n      }\n    }\nLAB_0001843c:\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    if ((mp_limb_t *)0x7f00 < pmVar8) {\n      pbVar10 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n      iVar19 = *piVar5;\n      goto LAB_00018460;\n    }\n    iVar7 = -((uint)((int)pmVar8 + 7) & 0xfffffff8);\n    puVar26 = auStack_80 + iVar7;\n    puVar27 = auStack_80 + iVar7;\n    pbVar10 = &stack0xffffff98 + iVar7;\n    if (pmVar17 != (mp_limb_t *)0x0) goto LAB_00018460;\n    pbVar24 = (byte *)0x0;\n    uVar22 = 8;\n    iVar4 = x->_mp_prec;\n    str = (char *)(iVar4 + 1);\n    pbVar20 = pbVar10;\nLAB_00018544:\n    iVar19 = -(uVar22 + 7 & 0xfffffff8);\n    pmStack_3c = (mp_limb_t *)(puVar27 + iVar19 + 0x18);\n    puVar27 = puVar27 + iVar19;\n  }" if (parenthesized_expression "(pmVar17 == (mp_limb_t *)0x0)" ( (binary_expression "pmVar17 == (mp_limb_t *)0x0" identifier == (cast_expression "(mp_limb_t *)0x0" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar26 = auStack_88;\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    pbVar12 = (byte *)0x0;\n    pbVar10 = abStack_70;\n    pmVar17 = (mp_limb_t *)&DAT_00000001;\nLAB_00018460:\n    pmVar6 = (mp_limb_t *)0x0;\n    pbVar20 = pbVar10;\n    pbVar24 = (byte *)0x0;\n    do {\n      while( true ) {\n        bVar14 = *str;\n        puVar27 = puVar26;\n        if ((*(ushort *)(iVar19 + (uint)bVar14 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pmVar6 = (mp_limb_t *)((int)pmVar6 + 1);\n        str = (char *)((int)str + 1);\n        if (pmVar17 <= pmVar6) goto LAB_00018500;\n      }\n      if (iVar4 != 0) {\n        if (*pbVar3 == bVar14) {\n          pmVar8 = (mp_limb_t *)str;\n          pbVar13 = pbVar3;\n          do {\n            pbVar13 = pbVar13 + 1;\n            pmVar8 = (mp_limb_t *)((int)pmVar8 + 1);\n            if (pmVar8 == (mp_limb_t *)((int)str + iVar4)) goto LAB_000184e0;\n          } while (*(byte *)pmVar8 == *pbVar13);\n        }\n        if ((int)(uint)(byte)puVar21[bVar14] < base) {\n          *pbVar20 = puVar21[bVar14];\n          pbVar20 = pbVar20 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }\nLAB_000184e0:\n      if (pbVar24 != (byte *)0x0) goto LAB_000186f8;\n      pmVar6 = (mp_limb_t *)((int)pmVar6 + iVar4);\n      str = (char *)((int)str + iVar4);\n      pbVar24 = pbVar20;\n    } while (pmVar6 < pmVar17);\nLAB_00018500:\n    pmVar17 = (mp_limb_t *)(pbVar20 + -(int)pbVar10);\n    iVar4 = x->_mp_prec;\n    uVar22 = (((uint)((int)(ZEXT48(pmVar17) *\n                            (ulonglong)*(uint *)(PTR___gmpn_bases_0009d338 + base * 0x14 + 8) >>\n                           0x20) << 3) >> 5) + 2) * 4;\n    str = (char *)(iVar4 + 1);\n    if (uVar22 < 0x7f01) goto LAB_00018544;\n    pmStack_3c = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n  }" { (expression_statement "puVar26 = auStack_88;" (assignment_expression "puVar26 = auStack_88" identifier = identifier) ;) (expression_statement "__tmp_marker = (tmp_reentrant_t *)0x0;" (assignment_expression "__tmp_marker = (tmp_reentrant_t *)0x0" identifier = (cast_expression "(tmp_reentrant_t *)0x0" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar12 = (byte *)0x0;" (assignment_expression "pbVar12 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar10 = abStack_70;" (assignment_expression "pbVar10 = abStack_70" identifier = identifier) ;) (expression_statement "pmVar17 = (mp_limb_t *)&DAT_00000001;" (assignment_expression "pmVar17 = (mp_limb_t *)&DAT_00000001" identifier = (cast_expression "(mp_limb_t *)&DAT_00000001" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) ;) (labeled_statement "LAB_00018460:\n    pmVar6 = (mp_limb_t *)0x0;" statement_identifier : (expression_statement "pmVar6 = (mp_limb_t *)0x0;" (assignment_expression "pmVar6 = (mp_limb_t *)0x0" identifier = (cast_expression "(mp_limb_t *)0x0" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pbVar20 = pbVar10;" (assignment_expression "pbVar20 = pbVar10" identifier = identifier) ;) (expression_statement "pbVar24 = (byte *)0x0;" (assignment_expression "pbVar24 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      while( true ) {\n        bVar14 = *str;\n        puVar27 = puVar26;\n        if ((*(ushort *)(iVar19 + (uint)bVar14 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pmVar6 = (mp_limb_t *)((int)pmVar6 + 1);\n        str = (char *)((int)str + 1);\n        if (pmVar17 <= pmVar6) goto LAB_00018500;\n      }\n      if (iVar4 != 0) {\n        if (*pbVar3 == bVar14) {\n          pmVar8 = (mp_limb_t *)str;\n          pbVar13 = pbVar3;\n          do {\n            pbVar13 = pbVar13 + 1;\n            pmVar8 = (mp_limb_t *)((int)pmVar8 + 1);\n            if (pmVar8 == (mp_limb_t *)((int)str + iVar4)) goto LAB_000184e0;\n          } while (*(byte *)pmVar8 == *pbVar13);\n        }\n        if ((int)(uint)(byte)puVar21[bVar14] < base) {\n          *pbVar20 = puVar21[bVar14];\n          pbVar20 = pbVar20 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }\nLAB_000184e0:\n      if (pbVar24 != (byte *)0x0) goto LAB_000186f8;\n      pmVar6 = (mp_limb_t *)((int)pmVar6 + iVar4);\n      str = (char *)((int)str + iVar4);\n      pbVar24 = pbVar20;\n    } while (pmVar6 < pmVar17);" do (compound_statement "{\n      while( true ) {\n        bVar14 = *str;\n        puVar27 = puVar26;\n        if ((*(ushort *)(iVar19 + (uint)bVar14 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pmVar6 = (mp_limb_t *)((int)pmVar6 + 1);\n        str = (char *)((int)str + 1);\n        if (pmVar17 <= pmVar6) goto LAB_00018500;\n      }\n      if (iVar4 != 0) {\n        if (*pbVar3 == bVar14) {\n          pmVar8 = (mp_limb_t *)str;\n          pbVar13 = pbVar3;\n          do {\n            pbVar13 = pbVar13 + 1;\n            pmVar8 = (mp_limb_t *)((int)pmVar8 + 1);\n            if (pmVar8 == (mp_limb_t *)((int)str + iVar4)) goto LAB_000184e0;\n          } while (*(byte *)pmVar8 == *pbVar13);\n        }\n        if ((int)(uint)(byte)puVar21[bVar14] < base) {\n          *pbVar20 = puVar21[bVar14];\n          pbVar20 = pbVar20 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }\nLAB_000184e0:\n      if (pbVar24 != (byte *)0x0) goto LAB_000186f8;\n      pmVar6 = (mp_limb_t *)((int)pmVar6 + iVar4);\n      str = (char *)((int)str + iVar4);\n      pbVar24 = pbVar20;\n    }" { (while_statement "while( true ) {\n        bVar14 = *str;\n        puVar27 = puVar26;\n        if ((*(ushort *)(iVar19 + (uint)bVar14 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pmVar6 = (mp_limb_t *)((int)pmVar6 + 1);\n        str = (char *)((int)str + 1);\n        if (pmVar17 <= pmVar6) goto LAB_00018500;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        bVar14 = *str;\n        puVar27 = puVar26;\n        if ((*(ushort *)(iVar19 + (uint)bVar14 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pmVar6 = (mp_limb_t *)((int)pmVar6 + 1);\n        str = (char *)((int)str + 1);\n        if (pmVar17 <= pmVar6) goto LAB_00018500;\n      }" { (expression_statement "bVar14 = *str;" (assignment_expression "bVar14 = *str" identifier = (pointer_expression "*str" * identifier)) ;) (expression_statement "puVar27 = puVar26;" (assignment_expression "puVar27 = puVar26" identifier = identifier) ;) (if_statement "if ((*(ushort *)(iVar19 + (uint)bVar14 * 2) & 0x20) == 0) break;" if (parenthesized_expression "((*(ushort *)(iVar19 + (uint)bVar14 * 2) & 0x20) == 0)" ( (binary_expression "(*(ushort *)(iVar19 + (uint)bVar14 * 2) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(iVar19 + (uint)bVar14 * 2) & 0x20)" ( (binary_expression "*(ushort *)(iVar19 + (uint)bVar14 * 2) & 0x20" (pointer_expression "*(ushort *)(iVar19 + (uint)bVar14 * 2)" * (cast_expression "(ushort *)(iVar19 + (uint)bVar14 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + (uint)bVar14 * 2)" ( (binary_expression "iVar19 + (uint)bVar14 * 2" identifier + (binary_expression "(uint)bVar14 * 2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00018474:\n        pmVar6 = (mp_limb_t *)((int)pmVar6 + 1);" statement_identifier : (expression_statement "pmVar6 = (mp_limb_t *)((int)pmVar6 + 1);" (assignment_expression "pmVar6 = (mp_limb_t *)((int)pmVar6 + 1)" identifier = (cast_expression "(mp_limb_t *)((int)pmVar6 + 1)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar6 + 1)" ( (binary_expression "(int)pmVar6 + 1" (cast_expression "(int)pmVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (expression_statement "str = (char *)((int)str + 1);" (assignment_expression "str = (char *)((int)str + 1)" identifier = (cast_expression "(char *)((int)str + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)str + 1)" ( (binary_expression "(int)str + 1" (cast_expression "(int)str" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (pmVar17 <= pmVar6) goto LAB_00018500;" if (parenthesized_expression "(pmVar17 <= pmVar6)" ( (binary_expression "pmVar17 <= pmVar6" identifier <= identifier) )) (goto_statement "goto LAB_00018500;" goto statement_identifier ;)) })) (if_statement "if (iVar4 != 0) {\n        if (*pbVar3 == bVar14) {\n          pmVar8 = (mp_limb_t *)str;\n          pbVar13 = pbVar3;\n          do {\n            pbVar13 = pbVar13 + 1;\n            pmVar8 = (mp_limb_t *)((int)pmVar8 + 1);\n            if (pmVar8 == (mp_limb_t *)((int)str + iVar4)) goto LAB_000184e0;\n          } while (*(byte *)pmVar8 == *pbVar13);\n        }\n        if ((int)(uint)(byte)puVar21[bVar14] < base) {\n          *pbVar20 = puVar21[bVar14];\n          pbVar20 = pbVar20 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        if (*pbVar3 == bVar14) {\n          pmVar8 = (mp_limb_t *)str;\n          pbVar13 = pbVar3;\n          do {\n            pbVar13 = pbVar13 + 1;\n            pmVar8 = (mp_limb_t *)((int)pmVar8 + 1);\n            if (pmVar8 == (mp_limb_t *)((int)str + iVar4)) goto LAB_000184e0;\n          } while (*(byte *)pmVar8 == *pbVar13);\n        }\n        if ((int)(uint)(byte)puVar21[bVar14] < base) {\n          *pbVar20 = puVar21[bVar14];\n          pbVar20 = pbVar20 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }" { (if_statement "if (*pbVar3 == bVar14) {\n          pmVar8 = (mp_limb_t *)str;\n          pbVar13 = pbVar3;\n          do {\n            pbVar13 = pbVar13 + 1;\n            pmVar8 = (mp_limb_t *)((int)pmVar8 + 1);\n            if (pmVar8 == (mp_limb_t *)((int)str + iVar4)) goto LAB_000184e0;\n          } while (*(byte *)pmVar8 == *pbVar13);\n        }" if (parenthesized_expression "(*pbVar3 == bVar14)" ( (binary_expression "*pbVar3 == bVar14" (pointer_expression "*pbVar3" * identifier) == identifier) )) (compound_statement "{\n          pmVar8 = (mp_limb_t *)str;\n          pbVar13 = pbVar3;\n          do {\n            pbVar13 = pbVar13 + 1;\n            pmVar8 = (mp_limb_t *)((int)pmVar8 + 1);\n            if (pmVar8 == (mp_limb_t *)((int)str + iVar4)) goto LAB_000184e0;\n          } while (*(byte *)pmVar8 == *pbVar13);\n        }" { (expression_statement "pmVar8 = (mp_limb_t *)str;" (assignment_expression "pmVar8 = (mp_limb_t *)str" identifier = (cast_expression "(mp_limb_t *)str" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar13 = pbVar3;" (assignment_expression "pbVar13 = pbVar3" identifier = identifier) ;) (do_statement "do {\n            pbVar13 = pbVar13 + 1;\n            pmVar8 = (mp_limb_t *)((int)pmVar8 + 1);\n            if (pmVar8 == (mp_limb_t *)((int)str + iVar4)) goto LAB_000184e0;\n          } while (*(byte *)pmVar8 == *pbVar13);" do (compound_statement "{\n            pbVar13 = pbVar13 + 1;\n            pmVar8 = (mp_limb_t *)((int)pmVar8 + 1);\n            if (pmVar8 == (mp_limb_t *)((int)str + iVar4)) goto LAB_000184e0;\n          }" { (expression_statement "pbVar13 = pbVar13 + 1;" (assignment_expression "pbVar13 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (expression_statement "pmVar8 = (mp_limb_t *)((int)pmVar8 + 1);" (assignment_expression "pmVar8 = (mp_limb_t *)((int)pmVar8 + 1)" identifier = (cast_expression "(mp_limb_t *)((int)pmVar8 + 1)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar8 + 1)" ( (binary_expression "(int)pmVar8 + 1" (cast_expression "(int)pmVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (pmVar8 == (mp_limb_t *)((int)str + iVar4)) goto LAB_000184e0;" if (parenthesized_expression "(pmVar8 == (mp_limb_t *)((int)str + iVar4))" ( (binary_expression "pmVar8 == (mp_limb_t *)((int)str + iVar4)" identifier == (cast_expression "(mp_limb_t *)((int)str + iVar4)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)str + iVar4)" ( (binary_expression "(int)str + iVar4" (cast_expression "(int)str" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) )) (goto_statement "goto LAB_000184e0;" goto statement_identifier ;)) }) while (parenthesized_expression "(*(byte *)pmVar8 == *pbVar13)" ( (binary_expression "*(byte *)pmVar8 == *pbVar13" (pointer_expression "*(byte *)pmVar8" * (cast_expression "(byte *)pmVar8" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*pbVar13" * identifier)) )) ;) })) (if_statement "if ((int)(uint)(byte)puVar21[bVar14] < base) {\n          *pbVar20 = puVar21[bVar14];\n          pbVar20 = pbVar20 + 1;\n          goto LAB_00018474;\n        }" if (parenthesized_expression "((int)(uint)(byte)puVar21[bVar14] < base)" ( (binary_expression "(int)(uint)(byte)puVar21[bVar14] < base" (cast_expression "(int)(uint)(byte)puVar21[bVar14]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)(byte)puVar21[bVar14]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar21[bVar14]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar21[bVar14]" identifier [ identifier ])))) < identifier) )) (compound_statement "{\n          *pbVar20 = puVar21[bVar14];\n          pbVar20 = pbVar20 + 1;\n          goto LAB_00018474;\n        }" { (expression_statement "*pbVar20 = puVar21[bVar14];" (assignment_expression "*pbVar20 = puVar21[bVar14]" (pointer_expression "*pbVar20" * identifier) = (subscript_expression "puVar21[bVar14]" identifier [ identifier ])) ;) (expression_statement "pbVar20 = pbVar20 + 1;" (assignment_expression "pbVar20 = pbVar20 + 1" identifier = (binary_expression "pbVar20 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_00018474;" goto statement_identifier ;) })) (goto_statement "goto LAB_000186f8;" goto statement_identifier ;) })) (labeled_statement "LAB_000184e0:\n      if (pbVar24 != (byte *)0x0) goto LAB_000186f8;" statement_identifier : (if_statement "if (pbVar24 != (byte *)0x0) goto LAB_000186f8;" if (parenthesized_expression "(pbVar24 != (byte *)0x0)" ( (binary_expression "pbVar24 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000186f8;" goto statement_identifier ;))) (expression_statement "pmVar6 = (mp_limb_t *)((int)pmVar6 + iVar4);" (assignment_expression "pmVar6 = (mp_limb_t *)((int)pmVar6 + iVar4)" identifier = (cast_expression "(mp_limb_t *)((int)pmVar6 + iVar4)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar6 + iVar4)" ( (binary_expression "(int)pmVar6 + iVar4" (cast_expression "(int)pmVar6" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "str = (char *)((int)str + iVar4);" (assignment_expression "str = (char *)((int)str + iVar4)" identifier = (cast_expression "(char *)((int)str + iVar4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)str + iVar4)" ( (binary_expression "(int)str + iVar4" (cast_expression "(int)str" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "pbVar24 = pbVar20;" (assignment_expression "pbVar24 = pbVar20" identifier = identifier) ;) }) while (parenthesized_expression "(pmVar6 < pmVar17)" ( (binary_expression "pmVar6 < pmVar17" identifier < identifier) )) ;) (labeled_statement "LAB_00018500:\n    pmVar17 = (mp_limb_t *)(pbVar20 + -(int)pbVar10);" statement_identifier : (expression_statement "pmVar17 = (mp_limb_t *)(pbVar20 + -(int)pbVar10);" (assignment_expression "pmVar17 = (mp_limb_t *)(pbVar20 + -(int)pbVar10)" identifier = (cast_expression "(mp_limb_t *)(pbVar20 + -(int)pbVar10)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar20 + -(int)pbVar10)" ( (binary_expression "pbVar20 + -(int)pbVar10" identifier + (unary_expression "-(int)pbVar10" - (cast_expression "(int)pbVar10" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;)) (expression_statement "iVar4 = x->_mp_prec;" (assignment_expression "iVar4 = x->_mp_prec" identifier = (field_expression "x->_mp_prec" identifier -> field_identifier)) ;) (expression_statement "uVar22 = (((uint)((int)(ZEXT48(pmVar17) *\n                            (ulonglong)*(uint *)(PTR___gmpn_bases_0009d338 + base * 0x14 + 8) >>\n                           0x20) << 3) >> 5) + 2) * 4;" (assignment_expression "uVar22 = (((uint)((int)(ZEXT48(pmVar17) *\n                            (ulonglong)*(uint *)(PTR___gmpn_bases_0009d338 + base * 0x14 + 8) >>\n                           0x20) << 3) >> 5) + 2) * 4" identifier = (binary_expression "(((uint)((int)(ZEXT48(pmVar17) *\n                            (ulonglong)*(uint *)(PTR___gmpn_bases_0009d338 + base * 0x14 + 8) >>\n                           0x20) << 3) >> 5) + 2) * 4" (parenthesized_expression "(((uint)((int)(ZEXT48(pmVar17) *\n                            (ulonglong)*(uint *)(PTR___gmpn_bases_0009d338 + base * 0x14 + 8) >>\n                           0x20) << 3) >> 5) + 2)" ( (binary_expression "((uint)((int)(ZEXT48(pmVar17) *\n                            (ulonglong)*(uint *)(PTR___gmpn_bases_0009d338 + base * 0x14 + 8) >>\n                           0x20) << 3) >> 5) + 2" (parenthesized_expression "((uint)((int)(ZEXT48(pmVar17) *\n                            (ulonglong)*(uint *)(PTR___gmpn_bases_0009d338 + base * 0x14 + 8) >>\n                           0x20) << 3) >> 5)" ( (binary_expression "(uint)((int)(ZEXT48(pmVar17) *\n                            (ulonglong)*(uint *)(PTR___gmpn_bases_0009d338 + base * 0x14 + 8) >>\n                           0x20) << 3) >> 5" (call_expression "(uint)((int)(ZEXT48(pmVar17) *\n                            (ulonglong)*(uint *)(PTR___gmpn_bases_0009d338 + base * 0x14 + 8) >>\n                           0x20) << 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(ZEXT48(pmVar17) *\n                            (ulonglong)*(uint *)(PTR___gmpn_bases_0009d338 + base * 0x14 + 8) >>\n                           0x20) << 3)" ( (binary_expression "(int)(ZEXT48(pmVar17) *\n                            (ulonglong)*(uint *)(PTR___gmpn_bases_0009d338 + base * 0x14 + 8) >>\n                           0x20) << 3" (cast_expression "(int)(ZEXT48(pmVar17) *\n                            (ulonglong)*(uint *)(PTR___gmpn_bases_0009d338 + base * 0x14 + 8) >>\n                           0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ZEXT48(pmVar17) *\n                            (ulonglong)*(uint *)(PTR___gmpn_bases_0009d338 + base * 0x14 + 8) >>\n                           0x20)" ( (binary_expression "ZEXT48(pmVar17) *\n                            (ulonglong)*(uint *)(PTR___gmpn_bases_0009d338 + base * 0x14 + 8) >>\n                           0x20" (binary_expression "ZEXT48(pmVar17) *\n                            (ulonglong)*(uint *)(PTR___gmpn_bases_0009d338 + base * 0x14 + 8)" (binary_expression "ZEXT48(pmVar17) *\n                            (ulonglong)" (call_expression "ZEXT48(pmVar17)" identifier (argument_list "(pmVar17)" ( identifier ))) * (parenthesized_expression "(ulonglong)" ( identifier ))) * (cast_expression "(uint *)(PTR___gmpn_bases_0009d338 + base * 0x14 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR___gmpn_bases_0009d338 + base * 0x14 + 8)" ( (binary_expression "PTR___gmpn_bases_0009d338 + base * 0x14 + 8" (binary_expression "PTR___gmpn_bases_0009d338 + base * 0x14" identifier + (binary_expression "base * 0x14" identifier * number_literal)) + number_literal) )))) >> number_literal) ))) << number_literal) ))) >> number_literal) )) + number_literal) )) * number_literal)) ;) (expression_statement "str = (char *)(iVar4 + 1);" (assignment_expression "str = (char *)(iVar4 + 1)" identifier = (cast_expression "(char *)(iVar4 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 1)" ( (binary_expression "iVar4 + 1" identifier + number_literal) )))) ;) (if_statement "if (uVar22 < 0x7f01) goto LAB_00018544;" if (parenthesized_expression "(uVar22 < 0x7f01)" ( (binary_expression "uVar22 < 0x7f01" identifier < number_literal) )) (goto_statement "goto LAB_00018544;" goto statement_identifier ;)) (expression_statement "pmStack_3c = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);" (assignment_expression "pmStack_3c = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker)" identifier = (cast_expression "(mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&__tmp_marker)" ( (pointer_expression "&__tmp_marker" & identifier) ))))) ;) }) (else_clause "else {\n    bVar14 = *(byte *)((int)str + (int)pmVar17);\n    if (bVar14 == 0x40) {\n      pbVar12 = (byte *)((int)str + (int)pmVar6);\n      pmVar8 = pmVar6;\n    }\n    else {\n      pmVar8 = (mp_limb_t *)((int)pmVar6 + -2);\n      pmVar16 = pmVar17;\n      if (base < 0xb) {\n        do {\n          pmVar16 = pmVar17;\n          pmVar17 = (mp_limb_t *)((int)pmVar16 + -1);\n          if ((bVar14 & 0xdf) == 0x45) {\n            pbVar12 = (byte *)((int)str + (int)pmVar16 + 1);\n            pmVar8 = (mp_limb_t *)((int)pmVar16 + 1);\n            pmVar17 = pmVar16;\n            goto LAB_0001843c;\n          }\n          if (pmVar17 == (mp_limb_t *)0x0) goto LAB_00018434;\n          bVar14 = *(byte *)((int)str + (int)pmVar17);\n        } while (bVar14 != 0x40);\nLAB_0001878c:\n        pbVar12 = (byte *)((int)str + (int)pmVar16);\n        pmVar8 = pmVar16;\n      }\n      else {\n        while (pmVar17 = pmVar8, pmVar17 != (mp_limb_t *)0x0) {\n          if (*(byte *)((int)str + (int)pmVar17) == 0x40) goto LAB_0001878c;\n          pmVar16 = pmVar17;\n          pmVar8 = (mp_limb_t *)((int)pmVar17 + -1);\n        }\nLAB_00018434:\n        pbVar12 = (byte *)0x0;\n        pmVar8 = (mp_limb_t *)((int)pmVar6 + 1);\n        pmVar17 = pmVar6;\n      }\n    }\nLAB_0001843c:\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    if ((mp_limb_t *)0x7f00 < pmVar8) {\n      pbVar10 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n      iVar19 = *piVar5;\n      goto LAB_00018460;\n    }\n    iVar7 = -((uint)((int)pmVar8 + 7) & 0xfffffff8);\n    puVar26 = auStack_80 + iVar7;\n    puVar27 = auStack_80 + iVar7;\n    pbVar10 = &stack0xffffff98 + iVar7;\n    if (pmVar17 != (mp_limb_t *)0x0) goto LAB_00018460;\n    pbVar24 = (byte *)0x0;\n    uVar22 = 8;\n    iVar4 = x->_mp_prec;\n    str = (char *)(iVar4 + 1);\n    pbVar20 = pbVar10;\nLAB_00018544:\n    iVar19 = -(uVar22 + 7 & 0xfffffff8);\n    pmStack_3c = (mp_limb_t *)(puVar27 + iVar19 + 0x18);\n    puVar27 = puVar27 + iVar19;\n  }" else (compound_statement "{\n    bVar14 = *(byte *)((int)str + (int)pmVar17);\n    if (bVar14 == 0x40) {\n      pbVar12 = (byte *)((int)str + (int)pmVar6);\n      pmVar8 = pmVar6;\n    }\n    else {\n      pmVar8 = (mp_limb_t *)((int)pmVar6 + -2);\n      pmVar16 = pmVar17;\n      if (base < 0xb) {\n        do {\n          pmVar16 = pmVar17;\n          pmVar17 = (mp_limb_t *)((int)pmVar16 + -1);\n          if ((bVar14 & 0xdf) == 0x45) {\n            pbVar12 = (byte *)((int)str + (int)pmVar16 + 1);\n            pmVar8 = (mp_limb_t *)((int)pmVar16 + 1);\n            pmVar17 = pmVar16;\n            goto LAB_0001843c;\n          }\n          if (pmVar17 == (mp_limb_t *)0x0) goto LAB_00018434;\n          bVar14 = *(byte *)((int)str + (int)pmVar17);\n        } while (bVar14 != 0x40);\nLAB_0001878c:\n        pbVar12 = (byte *)((int)str + (int)pmVar16);\n        pmVar8 = pmVar16;\n      }\n      else {\n        while (pmVar17 = pmVar8, pmVar17 != (mp_limb_t *)0x0) {\n          if (*(byte *)((int)str + (int)pmVar17) == 0x40) goto LAB_0001878c;\n          pmVar16 = pmVar17;\n          pmVar8 = (mp_limb_t *)((int)pmVar17 + -1);\n        }\nLAB_00018434:\n        pbVar12 = (byte *)0x0;\n        pmVar8 = (mp_limb_t *)((int)pmVar6 + 1);\n        pmVar17 = pmVar6;\n      }\n    }\nLAB_0001843c:\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    if ((mp_limb_t *)0x7f00 < pmVar8) {\n      pbVar10 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n      iVar19 = *piVar5;\n      goto LAB_00018460;\n    }\n    iVar7 = -((uint)((int)pmVar8 + 7) & 0xfffffff8);\n    puVar26 = auStack_80 + iVar7;\n    puVar27 = auStack_80 + iVar7;\n    pbVar10 = &stack0xffffff98 + iVar7;\n    if (pmVar17 != (mp_limb_t *)0x0) goto LAB_00018460;\n    pbVar24 = (byte *)0x0;\n    uVar22 = 8;\n    iVar4 = x->_mp_prec;\n    str = (char *)(iVar4 + 1);\n    pbVar20 = pbVar10;\nLAB_00018544:\n    iVar19 = -(uVar22 + 7 & 0xfffffff8);\n    pmStack_3c = (mp_limb_t *)(puVar27 + iVar19 + 0x18);\n    puVar27 = puVar27 + iVar19;\n  }" { (expression_statement "bVar14 = *(byte *)((int)str + (int)pmVar17);" (assignment_expression "bVar14 = *(byte *)((int)str + (int)pmVar17)" identifier = (pointer_expression "*(byte *)((int)str + (int)pmVar17)" * (cast_expression "(byte *)((int)str + (int)pmVar17)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)str + (int)pmVar17)" ( (binary_expression "(int)str + (int)pmVar17" (cast_expression "(int)str" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pmVar17" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if (bVar14 == 0x40) {\n      pbVar12 = (byte *)((int)str + (int)pmVar6);\n      pmVar8 = pmVar6;\n    }\n    else {\n      pmVar8 = (mp_limb_t *)((int)pmVar6 + -2);\n      pmVar16 = pmVar17;\n      if (base < 0xb) {\n        do {\n          pmVar16 = pmVar17;\n          pmVar17 = (mp_limb_t *)((int)pmVar16 + -1);\n          if ((bVar14 & 0xdf) == 0x45) {\n            pbVar12 = (byte *)((int)str + (int)pmVar16 + 1);\n            pmVar8 = (mp_limb_t *)((int)pmVar16 + 1);\n            pmVar17 = pmVar16;\n            goto LAB_0001843c;\n          }\n          if (pmVar17 == (mp_limb_t *)0x0) goto LAB_00018434;\n          bVar14 = *(byte *)((int)str + (int)pmVar17);\n        } while (bVar14 != 0x40);\nLAB_0001878c:\n        pbVar12 = (byte *)((int)str + (int)pmVar16);\n        pmVar8 = pmVar16;\n      }\n      else {\n        while (pmVar17 = pmVar8, pmVar17 != (mp_limb_t *)0x0) {\n          if (*(byte *)((int)str + (int)pmVar17) == 0x40) goto LAB_0001878c;\n          pmVar16 = pmVar17;\n          pmVar8 = (mp_limb_t *)((int)pmVar17 + -1);\n        }\nLAB_00018434:\n        pbVar12 = (byte *)0x0;\n        pmVar8 = (mp_limb_t *)((int)pmVar6 + 1);\n        pmVar17 = pmVar6;\n      }\n    }" if (parenthesized_expression "(bVar14 == 0x40)" ( (binary_expression "bVar14 == 0x40" identifier == number_literal) )) (compound_statement "{\n      pbVar12 = (byte *)((int)str + (int)pmVar6);\n      pmVar8 = pmVar6;\n    }" { (expression_statement "pbVar12 = (byte *)((int)str + (int)pmVar6);" (assignment_expression "pbVar12 = (byte *)((int)str + (int)pmVar6)" identifier = (cast_expression "(byte *)((int)str + (int)pmVar6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)str + (int)pmVar6)" ( (binary_expression "(int)str + (int)pmVar6" (cast_expression "(int)str" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pmVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pmVar8 = pmVar6;" (assignment_expression "pmVar8 = pmVar6" identifier = identifier) ;) }) (else_clause "else {\n      pmVar8 = (mp_limb_t *)((int)pmVar6 + -2);\n      pmVar16 = pmVar17;\n      if (base < 0xb) {\n        do {\n          pmVar16 = pmVar17;\n          pmVar17 = (mp_limb_t *)((int)pmVar16 + -1);\n          if ((bVar14 & 0xdf) == 0x45) {\n            pbVar12 = (byte *)((int)str + (int)pmVar16 + 1);\n            pmVar8 = (mp_limb_t *)((int)pmVar16 + 1);\n            pmVar17 = pmVar16;\n            goto LAB_0001843c;\n          }\n          if (pmVar17 == (mp_limb_t *)0x0) goto LAB_00018434;\n          bVar14 = *(byte *)((int)str + (int)pmVar17);\n        } while (bVar14 != 0x40);\nLAB_0001878c:\n        pbVar12 = (byte *)((int)str + (int)pmVar16);\n        pmVar8 = pmVar16;\n      }\n      else {\n        while (pmVar17 = pmVar8, pmVar17 != (mp_limb_t *)0x0) {\n          if (*(byte *)((int)str + (int)pmVar17) == 0x40) goto LAB_0001878c;\n          pmVar16 = pmVar17;\n          pmVar8 = (mp_limb_t *)((int)pmVar17 + -1);\n        }\nLAB_00018434:\n        pbVar12 = (byte *)0x0;\n        pmVar8 = (mp_limb_t *)((int)pmVar6 + 1);\n        pmVar17 = pmVar6;\n      }\n    }" else (compound_statement "{\n      pmVar8 = (mp_limb_t *)((int)pmVar6 + -2);\n      pmVar16 = pmVar17;\n      if (base < 0xb) {\n        do {\n          pmVar16 = pmVar17;\n          pmVar17 = (mp_limb_t *)((int)pmVar16 + -1);\n          if ((bVar14 & 0xdf) == 0x45) {\n            pbVar12 = (byte *)((int)str + (int)pmVar16 + 1);\n            pmVar8 = (mp_limb_t *)((int)pmVar16 + 1);\n            pmVar17 = pmVar16;\n            goto LAB_0001843c;\n          }\n          if (pmVar17 == (mp_limb_t *)0x0) goto LAB_00018434;\n          bVar14 = *(byte *)((int)str + (int)pmVar17);\n        } while (bVar14 != 0x40);\nLAB_0001878c:\n        pbVar12 = (byte *)((int)str + (int)pmVar16);\n        pmVar8 = pmVar16;\n      }\n      else {\n        while (pmVar17 = pmVar8, pmVar17 != (mp_limb_t *)0x0) {\n          if (*(byte *)((int)str + (int)pmVar17) == 0x40) goto LAB_0001878c;\n          pmVar16 = pmVar17;\n          pmVar8 = (mp_limb_t *)((int)pmVar17 + -1);\n        }\nLAB_00018434:\n        pbVar12 = (byte *)0x0;\n        pmVar8 = (mp_limb_t *)((int)pmVar6 + 1);\n        pmVar17 = pmVar6;\n      }\n    }" { (expression_statement "pmVar8 = (mp_limb_t *)((int)pmVar6 + -2);" (assignment_expression "pmVar8 = (mp_limb_t *)((int)pmVar6 + -2)" identifier = (cast_expression "(mp_limb_t *)((int)pmVar6 + -2)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar6 + -2)" ( (binary_expression "(int)pmVar6 + -2" (cast_expression "(int)pmVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pmVar16 = pmVar17;" (assignment_expression "pmVar16 = pmVar17" identifier = identifier) ;) (if_statement "if (base < 0xb) {\n        do {\n          pmVar16 = pmVar17;\n          pmVar17 = (mp_limb_t *)((int)pmVar16 + -1);\n          if ((bVar14 & 0xdf) == 0x45) {\n            pbVar12 = (byte *)((int)str + (int)pmVar16 + 1);\n            pmVar8 = (mp_limb_t *)((int)pmVar16 + 1);\n            pmVar17 = pmVar16;\n            goto LAB_0001843c;\n          }\n          if (pmVar17 == (mp_limb_t *)0x0) goto LAB_00018434;\n          bVar14 = *(byte *)((int)str + (int)pmVar17);\n        } while (bVar14 != 0x40);\nLAB_0001878c:\n        pbVar12 = (byte *)((int)str + (int)pmVar16);\n        pmVar8 = pmVar16;\n      }\n      else {\n        while (pmVar17 = pmVar8, pmVar17 != (mp_limb_t *)0x0) {\n          if (*(byte *)((int)str + (int)pmVar17) == 0x40) goto LAB_0001878c;\n          pmVar16 = pmVar17;\n          pmVar8 = (mp_limb_t *)((int)pmVar17 + -1);\n        }\nLAB_00018434:\n        pbVar12 = (byte *)0x0;\n        pmVar8 = (mp_limb_t *)((int)pmVar6 + 1);\n        pmVar17 = pmVar6;\n      }" if (parenthesized_expression "(base < 0xb)" ( (binary_expression "base < 0xb" identifier < number_literal) )) (compound_statement "{\n        do {\n          pmVar16 = pmVar17;\n          pmVar17 = (mp_limb_t *)((int)pmVar16 + -1);\n          if ((bVar14 & 0xdf) == 0x45) {\n            pbVar12 = (byte *)((int)str + (int)pmVar16 + 1);\n            pmVar8 = (mp_limb_t *)((int)pmVar16 + 1);\n            pmVar17 = pmVar16;\n            goto LAB_0001843c;\n          }\n          if (pmVar17 == (mp_limb_t *)0x0) goto LAB_00018434;\n          bVar14 = *(byte *)((int)str + (int)pmVar17);\n        } while (bVar14 != 0x40);\nLAB_0001878c:\n        pbVar12 = (byte *)((int)str + (int)pmVar16);\n        pmVar8 = pmVar16;\n      }" { (do_statement "do {\n          pmVar16 = pmVar17;\n          pmVar17 = (mp_limb_t *)((int)pmVar16 + -1);\n          if ((bVar14 & 0xdf) == 0x45) {\n            pbVar12 = (byte *)((int)str + (int)pmVar16 + 1);\n            pmVar8 = (mp_limb_t *)((int)pmVar16 + 1);\n            pmVar17 = pmVar16;\n            goto LAB_0001843c;\n          }\n          if (pmVar17 == (mp_limb_t *)0x0) goto LAB_00018434;\n          bVar14 = *(byte *)((int)str + (int)pmVar17);\n        } while (bVar14 != 0x40);" do (compound_statement "{\n          pmVar16 = pmVar17;\n          pmVar17 = (mp_limb_t *)((int)pmVar16 + -1);\n          if ((bVar14 & 0xdf) == 0x45) {\n            pbVar12 = (byte *)((int)str + (int)pmVar16 + 1);\n            pmVar8 = (mp_limb_t *)((int)pmVar16 + 1);\n            pmVar17 = pmVar16;\n            goto LAB_0001843c;\n          }\n          if (pmVar17 == (mp_limb_t *)0x0) goto LAB_00018434;\n          bVar14 = *(byte *)((int)str + (int)pmVar17);\n        }" { (expression_statement "pmVar16 = pmVar17;" (assignment_expression "pmVar16 = pmVar17" identifier = identifier) ;) (expression_statement "pmVar17 = (mp_limb_t *)((int)pmVar16 + -1);" (assignment_expression "pmVar17 = (mp_limb_t *)((int)pmVar16 + -1)" identifier = (cast_expression "(mp_limb_t *)((int)pmVar16 + -1)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar16 + -1)" ( (binary_expression "(int)pmVar16 + -1" (cast_expression "(int)pmVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((bVar14 & 0xdf) == 0x45) {\n            pbVar12 = (byte *)((int)str + (int)pmVar16 + 1);\n            pmVar8 = (mp_limb_t *)((int)pmVar16 + 1);\n            pmVar17 = pmVar16;\n            goto LAB_0001843c;\n          }" if (parenthesized_expression "((bVar14 & 0xdf) == 0x45)" ( (binary_expression "(bVar14 & 0xdf) == 0x45" (parenthesized_expression "(bVar14 & 0xdf)" ( (binary_expression "bVar14 & 0xdf" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            pbVar12 = (byte *)((int)str + (int)pmVar16 + 1);\n            pmVar8 = (mp_limb_t *)((int)pmVar16 + 1);\n            pmVar17 = pmVar16;\n            goto LAB_0001843c;\n          }" { (expression_statement "pbVar12 = (byte *)((int)str + (int)pmVar16 + 1);" (assignment_expression "pbVar12 = (byte *)((int)str + (int)pmVar16 + 1)" identifier = (cast_expression "(byte *)((int)str + (int)pmVar16 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)str + (int)pmVar16 + 1)" ( (binary_expression "(int)str + (int)pmVar16 + 1" (binary_expression "(int)str + (int)pmVar16" (cast_expression "(int)str" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pmVar16" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) )))) ;) (expression_statement "pmVar8 = (mp_limb_t *)((int)pmVar16 + 1);" (assignment_expression "pmVar8 = (mp_limb_t *)((int)pmVar16 + 1)" identifier = (cast_expression "(mp_limb_t *)((int)pmVar16 + 1)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar16 + 1)" ( (binary_expression "(int)pmVar16 + 1" (cast_expression "(int)pmVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pmVar17 = pmVar16;" (assignment_expression "pmVar17 = pmVar16" identifier = identifier) ;) (goto_statement "goto LAB_0001843c;" goto statement_identifier ;) })) (if_statement "if (pmVar17 == (mp_limb_t *)0x0) goto LAB_00018434;" if (parenthesized_expression "(pmVar17 == (mp_limb_t *)0x0)" ( (binary_expression "pmVar17 == (mp_limb_t *)0x0" identifier == (cast_expression "(mp_limb_t *)0x0" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00018434;" goto statement_identifier ;)) (expression_statement "bVar14 = *(byte *)((int)str + (int)pmVar17);" (assignment_expression "bVar14 = *(byte *)((int)str + (int)pmVar17)" identifier = (pointer_expression "*(byte *)((int)str + (int)pmVar17)" * (cast_expression "(byte *)((int)str + (int)pmVar17)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)str + (int)pmVar17)" ( (binary_expression "(int)str + (int)pmVar17" (cast_expression "(int)str" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pmVar17" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) }) while (parenthesized_expression "(bVar14 != 0x40)" ( (binary_expression "bVar14 != 0x40" identifier != number_literal) )) ;) (labeled_statement "LAB_0001878c:\n        pbVar12 = (byte *)((int)str + (int)pmVar16);" statement_identifier : (expression_statement "pbVar12 = (byte *)((int)str + (int)pmVar16);" (assignment_expression "pbVar12 = (byte *)((int)str + (int)pmVar16)" identifier = (cast_expression "(byte *)((int)str + (int)pmVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)str + (int)pmVar16)" ( (binary_expression "(int)str + (int)pmVar16" (cast_expression "(int)str" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pmVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "pmVar8 = pmVar16;" (assignment_expression "pmVar8 = pmVar16" identifier = identifier) ;) }) (else_clause "else {\n        while (pmVar17 = pmVar8, pmVar17 != (mp_limb_t *)0x0) {\n          if (*(byte *)((int)str + (int)pmVar17) == 0x40) goto LAB_0001878c;\n          pmVar16 = pmVar17;\n          pmVar8 = (mp_limb_t *)((int)pmVar17 + -1);\n        }\nLAB_00018434:\n        pbVar12 = (byte *)0x0;\n        pmVar8 = (mp_limb_t *)((int)pmVar6 + 1);\n        pmVar17 = pmVar6;\n      }" else (compound_statement "{\n        while (pmVar17 = pmVar8, pmVar17 != (mp_limb_t *)0x0) {\n          if (*(byte *)((int)str + (int)pmVar17) == 0x40) goto LAB_0001878c;\n          pmVar16 = pmVar17;\n          pmVar8 = (mp_limb_t *)((int)pmVar17 + -1);\n        }\nLAB_00018434:\n        pbVar12 = (byte *)0x0;\n        pmVar8 = (mp_limb_t *)((int)pmVar6 + 1);\n        pmVar17 = pmVar6;\n      }" { (while_statement "while (pmVar17 = pmVar8, pmVar17 != (mp_limb_t *)0x0) {\n          if (*(byte *)((int)str + (int)pmVar17) == 0x40) goto LAB_0001878c;\n          pmVar16 = pmVar17;\n          pmVar8 = (mp_limb_t *)((int)pmVar17 + -1);\n        }" while (parenthesized_expression "(pmVar17 = pmVar8, pmVar17 != (mp_limb_t *)0x0)" ( (comma_expression "pmVar17 = pmVar8, pmVar17 != (mp_limb_t *)0x0" (assignment_expression "pmVar17 = pmVar8" identifier = identifier) , (binary_expression "pmVar17 != (mp_limb_t *)0x0" identifier != (cast_expression "(mp_limb_t *)0x0" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n          if (*(byte *)((int)str + (int)pmVar17) == 0x40) goto LAB_0001878c;\n          pmVar16 = pmVar17;\n          pmVar8 = (mp_limb_t *)((int)pmVar17 + -1);\n        }" { (if_statement "if (*(byte *)((int)str + (int)pmVar17) == 0x40) goto LAB_0001878c;" if (parenthesized_expression "(*(byte *)((int)str + (int)pmVar17) == 0x40)" ( (binary_expression "*(byte *)((int)str + (int)pmVar17) == 0x40" (pointer_expression "*(byte *)((int)str + (int)pmVar17)" * (cast_expression "(byte *)((int)str + (int)pmVar17)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)str + (int)pmVar17)" ( (binary_expression "(int)str + (int)pmVar17" (cast_expression "(int)str" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pmVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) == number_literal) )) (goto_statement "goto LAB_0001878c;" goto statement_identifier ;)) (expression_statement "pmVar16 = pmVar17;" (assignment_expression "pmVar16 = pmVar17" identifier = identifier) ;) (expression_statement "pmVar8 = (mp_limb_t *)((int)pmVar17 + -1);" (assignment_expression "pmVar8 = (mp_limb_t *)((int)pmVar17 + -1)" identifier = (cast_expression "(mp_limb_t *)((int)pmVar17 + -1)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar17 + -1)" ( (binary_expression "(int)pmVar17 + -1" (cast_expression "(int)pmVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (labeled_statement "LAB_00018434:\n        pbVar12 = (byte *)0x0;" statement_identifier : (expression_statement "pbVar12 = (byte *)0x0;" (assignment_expression "pbVar12 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pmVar8 = (mp_limb_t *)((int)pmVar6 + 1);" (assignment_expression "pmVar8 = (mp_limb_t *)((int)pmVar6 + 1)" identifier = (cast_expression "(mp_limb_t *)((int)pmVar6 + 1)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar6 + 1)" ( (binary_expression "(int)pmVar6 + 1" (cast_expression "(int)pmVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pmVar17 = pmVar6;" (assignment_expression "pmVar17 = pmVar6" identifier = identifier) ;) }))) }))) (labeled_statement "LAB_0001843c:\n    __tmp_marker = (tmp_reentrant_t *)0x0;" statement_identifier : (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 ((mp_limb_t *)0x7f00 < pmVar8) {\n      pbVar10 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n      iVar19 = *piVar5;\n      goto LAB_00018460;\n    }" if (parenthesized_expression "((mp_limb_t *)0x7f00 < pmVar8)" ( (binary_expression "(mp_limb_t *)0x7f00 < pmVar8" (cast_expression "(mp_limb_t *)0x7f00" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n      pbVar10 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n      iVar19 = *piVar5;\n      goto LAB_00018460;\n    }" { (expression_statement "pbVar10 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);" (assignment_expression "pbVar10 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker)" identifier = (cast_expression "(byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&__tmp_marker)" ( (pointer_expression "&__tmp_marker" & identifier) ))))) ;) (expression_statement "iVar19 = *piVar5;" (assignment_expression "iVar19 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (goto_statement "goto LAB_00018460;" goto statement_identifier ;) })) (expression_statement "iVar7 = -((uint)((int)pmVar8 + 7) & 0xfffffff8);" (assignment_expression "iVar7 = -((uint)((int)pmVar8 + 7) & 0xfffffff8)" identifier = (unary_expression "-((uint)((int)pmVar8 + 7) & 0xfffffff8)" - (parenthesized_expression "((uint)((int)pmVar8 + 7) & 0xfffffff8)" ( (binary_expression "(uint)((int)pmVar8 + 7) & 0xfffffff8" (call_expression "(uint)((int)pmVar8 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pmVar8 + 7)" ( (binary_expression "(int)pmVar8 + 7" (cast_expression "(int)pmVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) & number_literal) )))) ;) (expression_statement "puVar26 = auStack_80 + iVar7;" (assignment_expression "puVar26 = auStack_80 + iVar7" identifier = (binary_expression "auStack_80 + iVar7" identifier + identifier)) ;) (expression_statement "puVar27 = auStack_80 + iVar7;" (assignment_expression "puVar27 = auStack_80 + iVar7" identifier = (binary_expression "auStack_80 + iVar7" identifier + identifier)) ;) (expression_statement "pbVar10 = &stack0xffffff98 + iVar7;" (assignment_expression "pbVar10 = &stack0xffffff98 + iVar7" identifier = (binary_expression "&stack0xffffff98 + iVar7" (pointer_expression "&stack0xffffff98" & identifier) + identifier)) ;) (if_statement "if (pmVar17 != (mp_limb_t *)0x0) goto LAB_00018460;" if (parenthesized_expression "(pmVar17 != (mp_limb_t *)0x0)" ( (binary_expression "pmVar17 != (mp_limb_t *)0x0" identifier != (cast_expression "(mp_limb_t *)0x0" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00018460;" goto statement_identifier ;)) (expression_statement "pbVar24 = (byte *)0x0;" (assignment_expression "pbVar24 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar22 = 8;" (assignment_expression "uVar22 = 8" identifier = number_literal) ;) (expression_statement "iVar4 = x->_mp_prec;" (assignment_expression "iVar4 = x->_mp_prec" identifier = (field_expression "x->_mp_prec" identifier -> field_identifier)) ;) (expression_statement "str = (char *)(iVar4 + 1);" (assignment_expression "str = (char *)(iVar4 + 1)" identifier = (cast_expression "(char *)(iVar4 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 1)" ( (binary_expression "iVar4 + 1" identifier + number_literal) )))) ;) (expression_statement "pbVar20 = pbVar10;" (assignment_expression "pbVar20 = pbVar10" identifier = identifier) ;) (labeled_statement "LAB_00018544:\n    iVar19 = -(uVar22 + 7 & 0xfffffff8);" statement_identifier : (expression_statement "iVar19 = -(uVar22 + 7 & 0xfffffff8);" (assignment_expression "iVar19 = -(uVar22 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar22 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar22 + 7 & 0xfffffff8)" ( (binary_expression "uVar22 + 7 & 0xfffffff8" (binary_expression "uVar22 + 7" identifier + number_literal) & number_literal) )))) ;)) (expression_statement "pmStack_3c = (mp_limb_t *)(puVar27 + iVar19 + 0x18);" (assignment_expression "pmStack_3c = (mp_limb_t *)(puVar27 + iVar19 + 0x18)" identifier = (cast_expression "(mp_limb_t *)(puVar27 + iVar19 + 0x18)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + iVar19 + 0x18)" ( (binary_expression "puVar27 + iVar19 + 0x18" (binary_expression "puVar27 + iVar19" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar27 = puVar27 + iVar19;" (assignment_expression "puVar27 = puVar27 + iVar19" identifier = (binary_expression "puVar27 + iVar19" identifier + identifier)) ;) }))) (expression_statement "in_a3 = (mp_limb_t *)base;" (assignment_expression "in_a3 = (mp_limb_t *)base" identifier = (cast_expression "(mp_limb_t *)base" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pmVar6 = (mp_limb_t *)(*(code *)PTR___gmpn_set_str_0009d5b4)(pmStack_3c,pbVar10);" (assignment_expression "pmVar6 = (mp_limb_t *)(*(code *)PTR___gmpn_set_str_0009d5b4)(pmStack_3c,pbVar10)" identifier = (cast_expression "(mp_limb_t *)(*(code *)PTR___gmpn_set_str_0009d5b4)(pmStack_3c,pbVar10)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmpn_set_str_0009d5b4)(pmStack_3c,pbVar10)" (parenthesized_expression "(*(code *)PTR___gmpn_set_str_0009d5b4)" ( (pointer_expression "*(code *)PTR___gmpn_set_str_0009d5b4" * (cast_expression "(code *)PTR___gmpn_set_str_0009d5b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmStack_3c,pbVar10)" ( identifier , identifier ))))) ;) (if_statement "if (pmVar6 == (mp_limb_t *)0x0) {\n    x->_mp_size = 0;\n    x->_mp_exp = 0;\n    if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      iVar7 = 0;\n      goto LAB_00018714;\n    }\nLAB_000187ac:\n    iVar7 = 0;\n    goto LAB_00018714;\n  }" if (parenthesized_expression "(pmVar6 == (mp_limb_t *)0x0)" ( (binary_expression "pmVar6 == (mp_limb_t *)0x0" identifier == (cast_expression "(mp_limb_t *)0x0" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    x->_mp_size = 0;\n    x->_mp_exp = 0;\n    if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      iVar7 = 0;\n      goto LAB_00018714;\n    }\nLAB_000187ac:\n    iVar7 = 0;\n    goto LAB_00018714;\n  }" { (expression_statement "x->_mp_size = 0;" (assignment_expression "x->_mp_size = 0" (field_expression "x->_mp_size" identifier -> field_identifier) = number_literal) ;) (expression_statement "x->_mp_exp = 0;" (assignment_expression "x->_mp_exp = 0" (field_expression "x->_mp_exp" identifier -> field_identifier) = number_literal) ;) (if_statement "if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      iVar7 = 0;\n      goto LAB_00018714;\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 *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      iVar7 = 0;\n      goto LAB_00018714;\n    }" { (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_0009d618" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_0009d618" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00018714;" goto statement_identifier ;) })) (labeled_statement "LAB_000187ac:\n    iVar7 = 0;" statement_identifier : (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_00018714;" goto statement_identifier ;) })) (expression_statement "iStack_54 = (int)pmVar6 - (int)str;" (assignment_expression "iStack_54 = (int)pmVar6 - (int)str" identifier = (binary_expression "(int)pmVar6 - (int)str" (cast_expression "(int)pmVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)str" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)str < (int)pmVar6) {\n    pmStack_3c = pmStack_3c + iStack_54;\n    pmStack_4c = (mp_limb_t *)str;\n    if (pbVar12 == (byte *)0x0) goto LAB_000187d0;\nLAB_000185a0:\n    bVar14 = *pbVar12;\n    in_a3 = (mp_limb_t *)(uint)(bVar14 == 0x2d);\n    pbVar12 = pbVar12 + (bVar14 == 0x2b || bVar14 == 0x2d);\n    pmVar8 = (mp_limb_t *)(uint)(byte)puVar21[*pbVar12];\n    if (iVar23 <= (int)pmVar8) {\nLAB_000186f8:\n      iVar7 = -1;\n      if (__tmp_marker == (tmp_reentrant_t *)0x0) goto LAB_00018714;\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      puVar18 = puVar27;\n      goto LAB_00018710;\n    }\n    pmVar17 = (mp_limb_t *)(uint)(byte)puVar21[pbVar12[1]];\n    if ((int)pmVar17 < iVar23) {\n      pbVar12 = pbVar12 + 3;\n      do {\n        pmVar8 = (mp_limb_t *)((int)pmVar8 * iVar23 + (int)pmVar17);\n        pmVar17 = (mp_limb_t *)(uint)(byte)puVar21[pbVar12[-1]];\n        pbVar12 = pbVar12 + 1;\n      } while ((int)pmVar17 < iVar23);\n    }\n    pbStack_44 = (byte *)((int)in_a3 + (-(int)in_a3 ^ (uint)pmVar8));\n    if (pbVar24 != (byte *)0x0) {\nLAB_00018628:\n      pbStack_44 = pbStack_44 + -((int)pbVar20 - (int)pbVar24);\n    }\n    if (pbStack_44 == (byte *)0x0) goto LAB_000187e0;\n    iVar4 = iVar4 + 2;\n    uVar22 = iVar4 * 8;\n    if (uVar22 < 0x7f01) {\n      pmStack_50 = (mp_limb_t *)(puVar27 + iVar4 * -8 + 0x18);\n      pmVar17 = (mp_limb_t *)(puVar27 + iVar4 * -0x10 + 0x18);\n      puVar27 = puVar27 + iVar4 * -0x10;\n    }\n    else {\n      pmStack_50 = (mp_limb_t *)\n                   (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22);\n      pmVar17 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22)\n      ;\n    }\n    puVar21 = PTR___gmpn_clz_tab_0009d18c;\n    pbVar3 = pbStack_44;\n    if ((int)pbStack_44 < 0) {\n      pbVar3 = (byte *)-(int)pbStack_44;\n    }\n    *pmStack_50 = base;\n    if ((int)pbVar3 < 0x10000) {\n      if (0xff < (int)pbVar3) {\n        iVar4 = FUN_00018870();\n        return iVar4;\n      }\n      uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;\n      if (-1 < (int)uVar22) goto LAB_00018890;\n      if ((int)str < 1) {\n        iVar23 = 0;\n        pmVar6 = (mp_limb_t *)&DAT_00000001;\n        iVar19 = 0;\n        pmVar17 = pmStack_50;\n        goto LAB_00018988;\n      }\n      pmVar6 = (mp_limb_t *)&DAT_00000001;\n      iVar23 = 0;\n      *pmStack_50 = base;\n    }\n    else {\n      iVar19 = 0x19;\n      if ((int)pbVar3 < 0x1000000) {\n        iVar19 = 0x11;\n      }\n      iVar23 = 0x10;\n      if ((int)pbVar3 >= 0x1000000) {\n        iVar23 = 8;\n      }\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar19] - iVar23) + 0x1e;\nLAB_00018890:\n      iVar23 = 0;\n      pmVar6 = (mp_limb_t *)&DAT_00000001;\n      iVar19 = 0;\n      pmVar8 = pmStack_50;\n      while( true ) {\n        pmVar16 = pmVar8;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pmVar17,pmVar16 + iVar19,pmVar6);\n        iVar23 = iVar23 * 2;\n        pmVar6 = (mp_limb_t *)((int)pmVar6 * 2 - (uint)(pmVar17[(int)pmVar6 * 2 + 0x3fffffff] == 0))\n        ;\n        if ((int)str < (int)pmVar6) {\n          iVar19 = (int)pmVar6 - (int)str;\n          iVar23 = iVar23 + iVar19;\n          pmVar6 = (mp_limb_t *)str;\n        }\n        else {\n          iVar19 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          mVar15 = (*(code *)PTR___gmpn_mul_1_0009d0a4)(pmVar17,pmVar17 + iVar19,pmVar6,base);\n          pmVar8 = pmVar17 + (int)pmVar6;\n          pmVar6 = (mp_limb_t *)((int)pmVar6 + (uint)(mVar15 != 0));\n          *pmVar8 = mVar15;\n          iVar19 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pmVar8 = pmVar17;\n        pmVar17 = pmVar16;\n      }\n      if ((int)str < (int)pmVar6) {\nLAB_00018988:\n        iVar23 = iVar23 + ((int)pmVar6 - (int)str);\n        pmVar17 = pmVar17 + ((int)pmVar6 - (int)str);\n        pmVar6 = (mp_limb_t *)str;\n      }\n      pbVar3 = (byte *)((int)pmVar6 + -1);\n      if (pmVar6 != (mp_limb_t *)0x0) {\n        mVar15 = pmVar17[iVar19];\n        if (pbVar3 == (byte *)0x0) {\n          pmVar6 = (mp_limb_t *)&DAT_00000001;\n          *pmStack_50 = mVar15;\n        }\n        else {\n          pmVar17 = pmVar17 + iVar19 + 1;\n          pmVar8 = pmStack_50;\n          do {\n            *pmVar8 = mVar15;\n            pbVar3 = pbVar3 + -1;\n            mVar15 = *pmVar17;\n            pmVar17 = pmVar17 + 1;\n            pmVar8 = pmVar8 + 1;\n          } while (pbVar3 != (byte *)0x0);\n          pmStack_50[(int)((int)pmVar6 + -1)] = mVar15;\n        }\n      }\n    }\n    pmVar8 = (mp_limb_t *)str;\n    if ((int)pbStack_44 < 0) {\n      if ((int)pmStack_4c < (int)pmVar6) {\n        uVar22 = (int)((int)pmVar6 + 1) * 4;\n        if (uVar22 < 0x7f01) {\n          iVar19 = -(uVar22 + 7 & 0xfffffff8);\n          puVar18 = puVar27 + iVar19 + 0x18;\n          puVar27 = puVar27 + iVar19;\n        }\n        else {\n          puVar18 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n        }\n        iVar19 = (int)pmVar6 - (int)pmStack_4c;\n        pmVar17 = (mp_limb_t *)(*(code *)PTR_memset_0009d2e8)(puVar18,0,iVar19 * 4);\n        if (pmStack_4c != (mp_limb_t *)0x0) {\n          pbVar3 = (byte *)((int)pmStack_4c + -1);\n          pmVar9 = pmVar17 + iVar19;\n          mVar15 = *pmStack_3c;\n          pmVar16 = pmVar9;\n          if (pbVar3 != (byte *)0x0) {\n            do {\n              pmStack_3c = pmStack_3c + 1;\n              *pmVar16 = mVar15;\n              pbVar3 = pbVar3 + -1;\n              mVar15 = *pmStack_3c;\n              pmVar16 = pmVar16 + 1;\n            } while (pbVar3 != (byte *)0x0);\n            pmVar9 = pmVar9 + (int)((int)pmStack_4c + -1);\n          }\n          *pmVar9 = mVar15;\n        }\n        iStack_54 = iStack_54 - iVar19;\n        pmStack_4c = pmVar6;\n        pmStack_3c = pmVar17;\n      }\n      uVar22 = pmStack_50[(int)((int)pmVar6 + -1)];\n      if (-1 < (int)uVar22) {\n        if (uVar22 < 0x10000) {\n          iVar19 = 0x20;\n          if (0xff < uVar22) {\n            iVar19 = 0x18;\n          }\n          iVar7 = 9;\n          if (0xff >= uVar22) {\n            iVar7 = 1;\n          }\n        }\n        else {\n          iVar19 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar19 = 8;\n          }\n          iVar7 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar7 = 0x11;\n          }\n        }\n        bVar14 = puVar21[uVar22 >> iVar7];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(pmStack_50,pmStack_50,pmVar6,iVar19 - (uint)bVar14);\n        mVar15 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (pmStack_3c,pmStack_3c,pmStack_4c,iVar19 - (uint)bVar14);\n        if (mVar15 != 0) {\n          pmStack_3c[(int)pmStack_4c] = mVar15;\n          pmStack_4c = (mp_limb_t *)((int)pmStack_4c + 1);\n        }\n      }\n      if ((uint)(iVar4 * 4) < 0x7f01) {\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        pmVar17 = (mp_limb_t *)(puVar27 + iVar4 + 0x18);\n        puVar27 = puVar27 + iVar4;\n      }\n      else {\n        pmVar17 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n      }\n      iVar4 = (int)pmStack_4c - (int)pmVar6;\n      *(mp_limb_t **)(puVar27 + 0x14) = pmVar6;\n      *(mp_limb_t **)(puVar27 + 0x10) = pmStack_50;\n      mVar15 = (*(code *)PTR___gmpn_divrem_0009d0e4)(pmVar17,(int)str - iVar4);\n      pbVar3 = (byte *)((iStack_54 - iVar23) + iVar4 + mVar15);\n      if (mVar15 != 0) {\n        pmVar6 = pmVar17 + (int)str;\n        pmVar17 = pmVar17 + 1;\n        *pmVar6 = mVar15;\n      }\n    }\n    else {\n      pbVar3 = (byte *)((int)pmVar6 + (int)pmStack_4c);\n      uVar22 = (int)pbVar3 * 4;\n      if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        pmVar17 = (mp_limb_t *)(puVar27 + iVar4 + 0x18);\n        puVar27 = puVar27 + iVar4;\n      }\n      else {\n        pmVar17 = (mp_limb_t *)\n                  (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22);\n      }\n      if ((int)pmStack_4c < (int)pmVar6) {\n        *(mp_limb_t **)(puVar27 + 0x10) = pmStack_4c;\n        pmStack_4c = pmStack_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar17,pmStack_50);\n        pmStack_3c = pmVar6;\n      }\n      else {\n        *(mp_limb_t **)(puVar27 + 0x10) = pmVar6;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar17,pmStack_3c);\n        pmStack_3c = pmStack_4c;\n        pmStack_4c = pmStack_50;\n      }\n      pmVar8 = (mp_limb_t *)(pbVar3 + -(uint)(pmVar17[(int)(pbVar3 + -1)] == 0));\n      pbVar3 = (byte *)((int)pmVar8 + iVar23 + iStack_54);\n      if ((int)str < (int)pmVar8) {\n        pmVar17 = pmVar17 + ((int)pmVar8 - (int)str);\n        pmVar8 = (mp_limb_t *)str;\n      }\n    }\n    if (pmVar8 != (mp_limb_t *)0x0) {\n      pbVar12 = (byte *)((int)pmVar8 + -1);\n      mVar15 = *pmVar17;\n      pmStack_3c = x->_mp_d;\n      pmVar6 = pmStack_3c;\n      if (pbVar12 != (byte *)0x0) {\n        do {\n          pmVar17 = pmVar17 + 1;\n          *pmVar6 = mVar15;\n          pbVar12 = pbVar12 + -1;\n          mVar15 = *pmVar17;\n          pmVar6 = pmVar6 + 1;\n        } while (pbVar12 != (byte *)0x0);\n        pmStack_3c = pmStack_3c + (int)((int)pmVar8 + -1);\n      }\n      *pmStack_3c = mVar15;\n    }\n    if (bVar1) {\n      pmVar8 = (mp_limb_t *)-(int)pmVar8;\n    }\n    x->_mp_size = (int)pmVar8;\n    x->_mp_exp = (mp_exp_t)pbVar3;\n    pmVar17 = pmStack_3c;\n    in_a3 = pmStack_4c;\n    str = (char *)pmVar8;\n    if (__tmp_marker == (tmp_reentrant_t *)0x0) {\n      iVar7 = 0;\n      goto LAB_00018714;\n    }\n  }\n  else {\n    iStack_54 = 0;\n    pmStack_4c = pmVar6;\n    if (pbVar12 != (byte *)0x0) goto LAB_000185a0;\nLAB_000187d0:\n    if (pbVar24 != (byte *)0x0) {\n      pbStack_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }\nLAB_000187e0:\n    if (pmStack_4c != (mp_limb_t *)0x0) {\n      pbVar3 = (byte *)((int)pmStack_4c + -1);\n      pmVar17 = x->_mp_d;\n      mVar15 = *pmStack_3c;\n      pmVar8 = pmVar17;\n      if (pbVar3 != (byte *)0x0) {\n        do {\n          pmStack_3c = pmStack_3c + 1;\n          *pmVar8 = mVar15;\n          pbVar3 = pbVar3 + -1;\n          mVar15 = *pmStack_3c;\n          pmVar8 = pmVar8 + 1;\n        } while (pbVar3 != (byte *)0x0);\n        pmVar17 = pmVar17 + (int)((int)pmStack_4c + -1);\n      }\n      *pmVar17 = mVar15;\n    }\n    if (bVar1) {\n      pmStack_4c = (mp_limb_t *)-(int)pmStack_4c;\n    }\n    x->_mp_size = (int)pmStack_4c;\n    x->_mp_exp = (mp_exp_t)pmVar6;\n    if (__tmp_marker == (tmp_reentrant_t *)0x0) goto LAB_000187ac;\n  }" if (parenthesized_expression "((int)str < (int)pmVar6)" ( (binary_expression "(int)str < (int)pmVar6" (cast_expression "(int)str" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pmVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    pmStack_3c = pmStack_3c + iStack_54;\n    pmStack_4c = (mp_limb_t *)str;\n    if (pbVar12 == (byte *)0x0) goto LAB_000187d0;\nLAB_000185a0:\n    bVar14 = *pbVar12;\n    in_a3 = (mp_limb_t *)(uint)(bVar14 == 0x2d);\n    pbVar12 = pbVar12 + (bVar14 == 0x2b || bVar14 == 0x2d);\n    pmVar8 = (mp_limb_t *)(uint)(byte)puVar21[*pbVar12];\n    if (iVar23 <= (int)pmVar8) {\nLAB_000186f8:\n      iVar7 = -1;\n      if (__tmp_marker == (tmp_reentrant_t *)0x0) goto LAB_00018714;\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      puVar18 = puVar27;\n      goto LAB_00018710;\n    }\n    pmVar17 = (mp_limb_t *)(uint)(byte)puVar21[pbVar12[1]];\n    if ((int)pmVar17 < iVar23) {\n      pbVar12 = pbVar12 + 3;\n      do {\n        pmVar8 = (mp_limb_t *)((int)pmVar8 * iVar23 + (int)pmVar17);\n        pmVar17 = (mp_limb_t *)(uint)(byte)puVar21[pbVar12[-1]];\n        pbVar12 = pbVar12 + 1;\n      } while ((int)pmVar17 < iVar23);\n    }\n    pbStack_44 = (byte *)((int)in_a3 + (-(int)in_a3 ^ (uint)pmVar8));\n    if (pbVar24 != (byte *)0x0) {\nLAB_00018628:\n      pbStack_44 = pbStack_44 + -((int)pbVar20 - (int)pbVar24);\n    }\n    if (pbStack_44 == (byte *)0x0) goto LAB_000187e0;\n    iVar4 = iVar4 + 2;\n    uVar22 = iVar4 * 8;\n    if (uVar22 < 0x7f01) {\n      pmStack_50 = (mp_limb_t *)(puVar27 + iVar4 * -8 + 0x18);\n      pmVar17 = (mp_limb_t *)(puVar27 + iVar4 * -0x10 + 0x18);\n      puVar27 = puVar27 + iVar4 * -0x10;\n    }\n    else {\n      pmStack_50 = (mp_limb_t *)\n                   (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22);\n      pmVar17 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22)\n      ;\n    }\n    puVar21 = PTR___gmpn_clz_tab_0009d18c;\n    pbVar3 = pbStack_44;\n    if ((int)pbStack_44 < 0) {\n      pbVar3 = (byte *)-(int)pbStack_44;\n    }\n    *pmStack_50 = base;\n    if ((int)pbVar3 < 0x10000) {\n      if (0xff < (int)pbVar3) {\n        iVar4 = FUN_00018870();\n        return iVar4;\n      }\n      uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;\n      if (-1 < (int)uVar22) goto LAB_00018890;\n      if ((int)str < 1) {\n        iVar23 = 0;\n        pmVar6 = (mp_limb_t *)&DAT_00000001;\n        iVar19 = 0;\n        pmVar17 = pmStack_50;\n        goto LAB_00018988;\n      }\n      pmVar6 = (mp_limb_t *)&DAT_00000001;\n      iVar23 = 0;\n      *pmStack_50 = base;\n    }\n    else {\n      iVar19 = 0x19;\n      if ((int)pbVar3 < 0x1000000) {\n        iVar19 = 0x11;\n      }\n      iVar23 = 0x10;\n      if ((int)pbVar3 >= 0x1000000) {\n        iVar23 = 8;\n      }\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar19] - iVar23) + 0x1e;\nLAB_00018890:\n      iVar23 = 0;\n      pmVar6 = (mp_limb_t *)&DAT_00000001;\n      iVar19 = 0;\n      pmVar8 = pmStack_50;\n      while( true ) {\n        pmVar16 = pmVar8;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pmVar17,pmVar16 + iVar19,pmVar6);\n        iVar23 = iVar23 * 2;\n        pmVar6 = (mp_limb_t *)((int)pmVar6 * 2 - (uint)(pmVar17[(int)pmVar6 * 2 + 0x3fffffff] == 0))\n        ;\n        if ((int)str < (int)pmVar6) {\n          iVar19 = (int)pmVar6 - (int)str;\n          iVar23 = iVar23 + iVar19;\n          pmVar6 = (mp_limb_t *)str;\n        }\n        else {\n          iVar19 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          mVar15 = (*(code *)PTR___gmpn_mul_1_0009d0a4)(pmVar17,pmVar17 + iVar19,pmVar6,base);\n          pmVar8 = pmVar17 + (int)pmVar6;\n          pmVar6 = (mp_limb_t *)((int)pmVar6 + (uint)(mVar15 != 0));\n          *pmVar8 = mVar15;\n          iVar19 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pmVar8 = pmVar17;\n        pmVar17 = pmVar16;\n      }\n      if ((int)str < (int)pmVar6) {\nLAB_00018988:\n        iVar23 = iVar23 + ((int)pmVar6 - (int)str);\n        pmVar17 = pmVar17 + ((int)pmVar6 - (int)str);\n        pmVar6 = (mp_limb_t *)str;\n      }\n      pbVar3 = (byte *)((int)pmVar6 + -1);\n      if (pmVar6 != (mp_limb_t *)0x0) {\n        mVar15 = pmVar17[iVar19];\n        if (pbVar3 == (byte *)0x0) {\n          pmVar6 = (mp_limb_t *)&DAT_00000001;\n          *pmStack_50 = mVar15;\n        }\n        else {\n          pmVar17 = pmVar17 + iVar19 + 1;\n          pmVar8 = pmStack_50;\n          do {\n            *pmVar8 = mVar15;\n            pbVar3 = pbVar3 + -1;\n            mVar15 = *pmVar17;\n            pmVar17 = pmVar17 + 1;\n            pmVar8 = pmVar8 + 1;\n          } while (pbVar3 != (byte *)0x0);\n          pmStack_50[(int)((int)pmVar6 + -1)] = mVar15;\n        }\n      }\n    }\n    pmVar8 = (mp_limb_t *)str;\n    if ((int)pbStack_44 < 0) {\n      if ((int)pmStack_4c < (int)pmVar6) {\n        uVar22 = (int)((int)pmVar6 + 1) * 4;\n        if (uVar22 < 0x7f01) {\n          iVar19 = -(uVar22 + 7 & 0xfffffff8);\n          puVar18 = puVar27 + iVar19 + 0x18;\n          puVar27 = puVar27 + iVar19;\n        }\n        else {\n          puVar18 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n        }\n        iVar19 = (int)pmVar6 - (int)pmStack_4c;\n        pmVar17 = (mp_limb_t *)(*(code *)PTR_memset_0009d2e8)(puVar18,0,iVar19 * 4);\n        if (pmStack_4c != (mp_limb_t *)0x0) {\n          pbVar3 = (byte *)((int)pmStack_4c + -1);\n          pmVar9 = pmVar17 + iVar19;\n          mVar15 = *pmStack_3c;\n          pmVar16 = pmVar9;\n          if (pbVar3 != (byte *)0x0) {\n            do {\n              pmStack_3c = pmStack_3c + 1;\n              *pmVar16 = mVar15;\n              pbVar3 = pbVar3 + -1;\n              mVar15 = *pmStack_3c;\n              pmVar16 = pmVar16 + 1;\n            } while (pbVar3 != (byte *)0x0);\n            pmVar9 = pmVar9 + (int)((int)pmStack_4c + -1);\n          }\n          *pmVar9 = mVar15;\n        }\n        iStack_54 = iStack_54 - iVar19;\n        pmStack_4c = pmVar6;\n        pmStack_3c = pmVar17;\n      }\n      uVar22 = pmStack_50[(int)((int)pmVar6 + -1)];\n      if (-1 < (int)uVar22) {\n        if (uVar22 < 0x10000) {\n          iVar19 = 0x20;\n          if (0xff < uVar22) {\n            iVar19 = 0x18;\n          }\n          iVar7 = 9;\n          if (0xff >= uVar22) {\n            iVar7 = 1;\n          }\n        }\n        else {\n          iVar19 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar19 = 8;\n          }\n          iVar7 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar7 = 0x11;\n          }\n        }\n        bVar14 = puVar21[uVar22 >> iVar7];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(pmStack_50,pmStack_50,pmVar6,iVar19 - (uint)bVar14);\n        mVar15 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (pmStack_3c,pmStack_3c,pmStack_4c,iVar19 - (uint)bVar14);\n        if (mVar15 != 0) {\n          pmStack_3c[(int)pmStack_4c] = mVar15;\n          pmStack_4c = (mp_limb_t *)((int)pmStack_4c + 1);\n        }\n      }\n      if ((uint)(iVar4 * 4) < 0x7f01) {\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        pmVar17 = (mp_limb_t *)(puVar27 + iVar4 + 0x18);\n        puVar27 = puVar27 + iVar4;\n      }\n      else {\n        pmVar17 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n      }\n      iVar4 = (int)pmStack_4c - (int)pmVar6;\n      *(mp_limb_t **)(puVar27 + 0x14) = pmVar6;\n      *(mp_limb_t **)(puVar27 + 0x10) = pmStack_50;\n      mVar15 = (*(code *)PTR___gmpn_divrem_0009d0e4)(pmVar17,(int)str - iVar4);\n      pbVar3 = (byte *)((iStack_54 - iVar23) + iVar4 + mVar15);\n      if (mVar15 != 0) {\n        pmVar6 = pmVar17 + (int)str;\n        pmVar17 = pmVar17 + 1;\n        *pmVar6 = mVar15;\n      }\n    }\n    else {\n      pbVar3 = (byte *)((int)pmVar6 + (int)pmStack_4c);\n      uVar22 = (int)pbVar3 * 4;\n      if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        pmVar17 = (mp_limb_t *)(puVar27 + iVar4 + 0x18);\n        puVar27 = puVar27 + iVar4;\n      }\n      else {\n        pmVar17 = (mp_limb_t *)\n                  (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22);\n      }\n      if ((int)pmStack_4c < (int)pmVar6) {\n        *(mp_limb_t **)(puVar27 + 0x10) = pmStack_4c;\n        pmStack_4c = pmStack_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar17,pmStack_50);\n        pmStack_3c = pmVar6;\n      }\n      else {\n        *(mp_limb_t **)(puVar27 + 0x10) = pmVar6;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar17,pmStack_3c);\n        pmStack_3c = pmStack_4c;\n        pmStack_4c = pmStack_50;\n      }\n      pmVar8 = (mp_limb_t *)(pbVar3 + -(uint)(pmVar17[(int)(pbVar3 + -1)] == 0));\n      pbVar3 = (byte *)((int)pmVar8 + iVar23 + iStack_54);\n      if ((int)str < (int)pmVar8) {\n        pmVar17 = pmVar17 + ((int)pmVar8 - (int)str);\n        pmVar8 = (mp_limb_t *)str;\n      }\n    }\n    if (pmVar8 != (mp_limb_t *)0x0) {\n      pbVar12 = (byte *)((int)pmVar8 + -1);\n      mVar15 = *pmVar17;\n      pmStack_3c = x->_mp_d;\n      pmVar6 = pmStack_3c;\n      if (pbVar12 != (byte *)0x0) {\n        do {\n          pmVar17 = pmVar17 + 1;\n          *pmVar6 = mVar15;\n          pbVar12 = pbVar12 + -1;\n          mVar15 = *pmVar17;\n          pmVar6 = pmVar6 + 1;\n        } while (pbVar12 != (byte *)0x0);\n        pmStack_3c = pmStack_3c + (int)((int)pmVar8 + -1);\n      }\n      *pmStack_3c = mVar15;\n    }\n    if (bVar1) {\n      pmVar8 = (mp_limb_t *)-(int)pmVar8;\n    }\n    x->_mp_size = (int)pmVar8;\n    x->_mp_exp = (mp_exp_t)pbVar3;\n    pmVar17 = pmStack_3c;\n    in_a3 = pmStack_4c;\n    str = (char *)pmVar8;\n    if (__tmp_marker == (tmp_reentrant_t *)0x0) {\n      iVar7 = 0;\n      goto LAB_00018714;\n    }\n  }" { (expression_statement "pmStack_3c = pmStack_3c + iStack_54;" (assignment_expression "pmStack_3c = pmStack_3c + iStack_54" identifier = (binary_expression "pmStack_3c + iStack_54" identifier + identifier)) ;) (expression_statement "pmStack_4c = (mp_limb_t *)str;" (assignment_expression "pmStack_4c = (mp_limb_t *)str" identifier = (cast_expression "(mp_limb_t *)str" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pbVar12 == (byte *)0x0) goto LAB_000187d0;" if (parenthesized_expression "(pbVar12 == (byte *)0x0)" ( (binary_expression "pbVar12 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000187d0;" goto statement_identifier ;)) (labeled_statement "LAB_000185a0:\n    bVar14 = *pbVar12;" statement_identifier : (expression_statement "bVar14 = *pbVar12;" (assignment_expression "bVar14 = *pbVar12" identifier = (pointer_expression "*pbVar12" * identifier)) ;)) (expression_statement "in_a3 = (mp_limb_t *)(uint)(bVar14 == 0x2d);" (assignment_expression "in_a3 = (mp_limb_t *)(uint)(bVar14 == 0x2d)" identifier = (cast_expression "(mp_limb_t *)(uint)(bVar14 == 0x2d)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(bVar14 == 0x2d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar14 == 0x2d)" ( (binary_expression "bVar14 == 0x2d" identifier == number_literal) ))))) ;) (expression_statement "pbVar12 = pbVar12 + (bVar14 == 0x2b || bVar14 == 0x2d);" (assignment_expression "pbVar12 = pbVar12 + (bVar14 == 0x2b || bVar14 == 0x2d)" identifier = (binary_expression "pbVar12 + (bVar14 == 0x2b || bVar14 == 0x2d)" identifier + (parenthesized_expression "(bVar14 == 0x2b || bVar14 == 0x2d)" ( (binary_expression "bVar14 == 0x2b || bVar14 == 0x2d" (binary_expression "bVar14 == 0x2b" identifier == number_literal) || (binary_expression "bVar14 == 0x2d" identifier == number_literal)) )))) ;) (expression_statement "pmVar8 = (mp_limb_t *)(uint)(byte)puVar21[*pbVar12];" (assignment_expression "pmVar8 = (mp_limb_t *)(uint)(byte)puVar21[*pbVar12]" identifier = (cast_expression "(mp_limb_t *)(uint)(byte)puVar21[*pbVar12]" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)(byte)puVar21[*pbVar12]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar21[*pbVar12]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar21[*pbVar12]" identifier [ (pointer_expression "*pbVar12" * identifier) ]))))) ;) (if_statement "if (iVar23 <= (int)pmVar8) {\nLAB_000186f8:\n      iVar7 = -1;\n      if (__tmp_marker == (tmp_reentrant_t *)0x0) goto LAB_00018714;\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      puVar18 = puVar27;\n      goto LAB_00018710;\n    }" if (parenthesized_expression "(iVar23 <= (int)pmVar8)" ( (binary_expression "iVar23 <= (int)pmVar8" identifier <= (cast_expression "(int)pmVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\nLAB_000186f8:\n      iVar7 = -1;\n      if (__tmp_marker == (tmp_reentrant_t *)0x0) goto LAB_00018714;\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      puVar18 = puVar27;\n      goto LAB_00018710;\n    }" { (labeled_statement "LAB_000186f8:\n      iVar7 = -1;" statement_identifier : (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" identifier = number_literal) ;)) (if_statement "if (__tmp_marker == (tmp_reentrant_t *)0x0) goto LAB_00018714;" 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)) )) (goto_statement "goto LAB_00018714;" goto statement_identifier ;)) (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_0009d618" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_0009d618" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar18 = puVar27;" (assignment_expression "puVar18 = puVar27" identifier = identifier) ;) (goto_statement "goto LAB_00018710;" goto statement_identifier ;) })) (expression_statement "pmVar17 = (mp_limb_t *)(uint)(byte)puVar21[pbVar12[1]];" (assignment_expression "pmVar17 = (mp_limb_t *)(uint)(byte)puVar21[pbVar12[1]]" identifier = (cast_expression "(mp_limb_t *)(uint)(byte)puVar21[pbVar12[1]]" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)(byte)puVar21[pbVar12[1]]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar21[pbVar12[1]]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar21[pbVar12[1]]" identifier [ (subscript_expression "pbVar12[1]" identifier [ number_literal ]) ]))))) ;) (if_statement "if ((int)pmVar17 < iVar23) {\n      pbVar12 = pbVar12 + 3;\n      do {\n        pmVar8 = (mp_limb_t *)((int)pmVar8 * iVar23 + (int)pmVar17);\n        pmVar17 = (mp_limb_t *)(uint)(byte)puVar21[pbVar12[-1]];\n        pbVar12 = pbVar12 + 1;\n      } while ((int)pmVar17 < iVar23);\n    }" if (parenthesized_expression "((int)pmVar17 < iVar23)" ( (binary_expression "(int)pmVar17 < iVar23" (cast_expression "(int)pmVar17" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (compound_statement "{\n      pbVar12 = pbVar12 + 3;\n      do {\n        pmVar8 = (mp_limb_t *)((int)pmVar8 * iVar23 + (int)pmVar17);\n        pmVar17 = (mp_limb_t *)(uint)(byte)puVar21[pbVar12[-1]];\n        pbVar12 = pbVar12 + 1;\n      } while ((int)pmVar17 < iVar23);\n    }" { (expression_statement "pbVar12 = pbVar12 + 3;" (assignment_expression "pbVar12 = pbVar12 + 3" identifier = (binary_expression "pbVar12 + 3" identifier + number_literal)) ;) (do_statement "do {\n        pmVar8 = (mp_limb_t *)((int)pmVar8 * iVar23 + (int)pmVar17);\n        pmVar17 = (mp_limb_t *)(uint)(byte)puVar21[pbVar12[-1]];\n        pbVar12 = pbVar12 + 1;\n      } while ((int)pmVar17 < iVar23);" do (compound_statement "{\n        pmVar8 = (mp_limb_t *)((int)pmVar8 * iVar23 + (int)pmVar17);\n        pmVar17 = (mp_limb_t *)(uint)(byte)puVar21[pbVar12[-1]];\n        pbVar12 = pbVar12 + 1;\n      }" { (expression_statement "pmVar8 = (mp_limb_t *)((int)pmVar8 * iVar23 + (int)pmVar17);" (assignment_expression "pmVar8 = (mp_limb_t *)((int)pmVar8 * iVar23 + (int)pmVar17)" identifier = (cast_expression "(mp_limb_t *)((int)pmVar8 * iVar23 + (int)pmVar17)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar8 * iVar23 + (int)pmVar17)" ( (binary_expression "(int)pmVar8 * iVar23 + (int)pmVar17" (binary_expression "(int)pmVar8 * iVar23" (cast_expression "(int)pmVar8" ( (type_descriptor "int" primitive_type) ) identifier) * identifier) + (cast_expression "(int)pmVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pmVar17 = (mp_limb_t *)(uint)(byte)puVar21[pbVar12[-1]];" (assignment_expression "pmVar17 = (mp_limb_t *)(uint)(byte)puVar21[pbVar12[-1]]" identifier = (cast_expression "(mp_limb_t *)(uint)(byte)puVar21[pbVar12[-1]]" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)(byte)puVar21[pbVar12[-1]]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar21[pbVar12[-1]]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar21[pbVar12[-1]]" identifier [ (subscript_expression "pbVar12[-1]" identifier [ number_literal ]) ]))))) ;) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((int)pmVar17 < iVar23)" ( (binary_expression "(int)pmVar17 < iVar23" (cast_expression "(int)pmVar17" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) ;) })) (expression_statement "pbStack_44 = (byte *)((int)in_a3 + (-(int)in_a3 ^ (uint)pmVar8));" (assignment_expression "pbStack_44 = (byte *)((int)in_a3 + (-(int)in_a3 ^ (uint)pmVar8))" identifier = (cast_expression "(byte *)((int)in_a3 + (-(int)in_a3 ^ (uint)pmVar8))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in_a3 + (-(int)in_a3 ^ (uint)pmVar8))" ( (binary_expression "(int)in_a3 + (-(int)in_a3 ^ (uint)pmVar8)" (cast_expression "(int)in_a3" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(int)in_a3 ^ (uint)pmVar8)" ( (binary_expression "-(int)in_a3 ^ (uint)pmVar8" (unary_expression "-(int)in_a3" - (cast_expression "(int)in_a3" ( (type_descriptor "int" primitive_type) ) identifier)) ^ (cast_expression "(uint)pmVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) )))) ;) (if_statement "if (pbVar24 != (byte *)0x0) {\nLAB_00018628:\n      pbStack_44 = pbStack_44 + -((int)pbVar20 - (int)pbVar24);\n    }" if (parenthesized_expression "(pbVar24 != (byte *)0x0)" ( (binary_expression "pbVar24 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00018628:\n      pbStack_44 = pbStack_44 + -((int)pbVar20 - (int)pbVar24);\n    }" { (labeled_statement "LAB_00018628:\n      pbStack_44 = pbStack_44 + -((int)pbVar20 - (int)pbVar24);" statement_identifier : (expression_statement "pbStack_44 = pbStack_44 + -((int)pbVar20 - (int)pbVar24);" (assignment_expression "pbStack_44 = pbStack_44 + -((int)pbVar20 - (int)pbVar24)" identifier = (binary_expression "pbStack_44 + -((int)pbVar20 - (int)pbVar24)" identifier + (unary_expression "-((int)pbVar20 - (int)pbVar24)" - (parenthesized_expression "((int)pbVar20 - (int)pbVar24)" ( (binary_expression "(int)pbVar20 - (int)pbVar24" (cast_expression "(int)pbVar20" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;)) })) (if_statement "if (pbStack_44 == (byte *)0x0) goto LAB_000187e0;" if (parenthesized_expression "(pbStack_44 == (byte *)0x0)" ( (binary_expression "pbStack_44 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000187e0;" goto statement_identifier ;)) (expression_statement "iVar4 = iVar4 + 2;" (assignment_expression "iVar4 = iVar4 + 2" identifier = (binary_expression "iVar4 + 2" identifier + number_literal)) ;) (expression_statement "uVar22 = iVar4 * 8;" (assignment_expression "uVar22 = iVar4 * 8" identifier = (binary_expression "iVar4 * 8" identifier * number_literal)) ;) (if_statement "if (uVar22 < 0x7f01) {\n      pmStack_50 = (mp_limb_t *)(puVar27 + iVar4 * -8 + 0x18);\n      pmVar17 = (mp_limb_t *)(puVar27 + iVar4 * -0x10 + 0x18);\n      puVar27 = puVar27 + iVar4 * -0x10;\n    }\n    else {\n      pmStack_50 = (mp_limb_t *)\n                   (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22);\n      pmVar17 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22)\n      ;\n    }" if (parenthesized_expression "(uVar22 < 0x7f01)" ( (binary_expression "uVar22 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n      pmStack_50 = (mp_limb_t *)(puVar27 + iVar4 * -8 + 0x18);\n      pmVar17 = (mp_limb_t *)(puVar27 + iVar4 * -0x10 + 0x18);\n      puVar27 = puVar27 + iVar4 * -0x10;\n    }" { (expression_statement "pmStack_50 = (mp_limb_t *)(puVar27 + iVar4 * -8 + 0x18);" (assignment_expression "pmStack_50 = (mp_limb_t *)(puVar27 + iVar4 * -8 + 0x18)" identifier = (cast_expression "(mp_limb_t *)(puVar27 + iVar4 * -8 + 0x18)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + iVar4 * -8 + 0x18)" ( (binary_expression "puVar27 + iVar4 * -8 + 0x18" (binary_expression "puVar27 + iVar4 * -8" identifier + (binary_expression "iVar4 * -8" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "pmVar17 = (mp_limb_t *)(puVar27 + iVar4 * -0x10 + 0x18);" (assignment_expression "pmVar17 = (mp_limb_t *)(puVar27 + iVar4 * -0x10 + 0x18)" identifier = (cast_expression "(mp_limb_t *)(puVar27 + iVar4 * -0x10 + 0x18)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + iVar4 * -0x10 + 0x18)" ( (binary_expression "puVar27 + iVar4 * -0x10 + 0x18" (binary_expression "puVar27 + iVar4 * -0x10" identifier + (binary_expression "iVar4 * -0x10" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "puVar27 = puVar27 + iVar4 * -0x10;" (assignment_expression "puVar27 = puVar27 + iVar4 * -0x10" identifier = (binary_expression "puVar27 + iVar4 * -0x10" identifier + (binary_expression "iVar4 * -0x10" identifier * number_literal))) ;) }) (else_clause "else {\n      pmStack_50 = (mp_limb_t *)\n                   (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22);\n      pmVar17 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22)\n      ;\n    }" else (compound_statement "{\n      pmStack_50 = (mp_limb_t *)\n                   (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22);\n      pmVar17 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22)\n      ;\n    }" { (expression_statement "pmStack_50 = (mp_limb_t *)\n                   (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22);" (assignment_expression "pmStack_50 = (mp_limb_t *)\n                   (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22)" identifier = (cast_expression "(mp_limb_t *)\n                   (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&__tmp_marker,uVar22)" ( (pointer_expression "&__tmp_marker" & identifier) , identifier ))))) ;) (expression_statement "pmVar17 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22)\n      ;" (assignment_expression "pmVar17 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22)" identifier = (cast_expression "(mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&__tmp_marker,uVar22)" ( (pointer_expression "&__tmp_marker" & identifier) , identifier ))))) ;) }))) (expression_statement "puVar21 = PTR___gmpn_clz_tab_0009d18c;" (assignment_expression "puVar21 = PTR___gmpn_clz_tab_0009d18c" identifier = identifier) ;) (expression_statement "pbVar3 = pbStack_44;" (assignment_expression "pbVar3 = pbStack_44" identifier = identifier) ;) (if_statement "if ((int)pbStack_44 < 0) {\n      pbVar3 = (byte *)-(int)pbStack_44;\n    }" if (parenthesized_expression "((int)pbStack_44 < 0)" ( (binary_expression "(int)pbStack_44 < 0" (cast_expression "(int)pbStack_44" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      pbVar3 = (byte *)-(int)pbStack_44;\n    }" { (expression_statement "pbVar3 = (byte *)-(int)pbStack_44;" (assignment_expression "pbVar3 = (byte *)-(int)pbStack_44" identifier = (cast_expression "(byte *)-(int)pbStack_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pbStack_44" - (cast_expression "(int)pbStack_44" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "*pmStack_50 = base;" (assignment_expression "*pmStack_50 = base" (pointer_expression "*pmStack_50" * identifier) = identifier) ;) (if_statement "if ((int)pbVar3 < 0x10000) {\n      if (0xff < (int)pbVar3) {\n        iVar4 = FUN_00018870();\n        return iVar4;\n      }\n      uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;\n      if (-1 < (int)uVar22) goto LAB_00018890;\n      if ((int)str < 1) {\n        iVar23 = 0;\n        pmVar6 = (mp_limb_t *)&DAT_00000001;\n        iVar19 = 0;\n        pmVar17 = pmStack_50;\n        goto LAB_00018988;\n      }\n      pmVar6 = (mp_limb_t *)&DAT_00000001;\n      iVar23 = 0;\n      *pmStack_50 = base;\n    }\n    else {\n      iVar19 = 0x19;\n      if ((int)pbVar3 < 0x1000000) {\n        iVar19 = 0x11;\n      }\n      iVar23 = 0x10;\n      if ((int)pbVar3 >= 0x1000000) {\n        iVar23 = 8;\n      }\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar19] - iVar23) + 0x1e;\nLAB_00018890:\n      iVar23 = 0;\n      pmVar6 = (mp_limb_t *)&DAT_00000001;\n      iVar19 = 0;\n      pmVar8 = pmStack_50;\n      while( true ) {\n        pmVar16 = pmVar8;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pmVar17,pmVar16 + iVar19,pmVar6);\n        iVar23 = iVar23 * 2;\n        pmVar6 = (mp_limb_t *)((int)pmVar6 * 2 - (uint)(pmVar17[(int)pmVar6 * 2 + 0x3fffffff] == 0))\n        ;\n        if ((int)str < (int)pmVar6) {\n          iVar19 = (int)pmVar6 - (int)str;\n          iVar23 = iVar23 + iVar19;\n          pmVar6 = (mp_limb_t *)str;\n        }\n        else {\n          iVar19 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          mVar15 = (*(code *)PTR___gmpn_mul_1_0009d0a4)(pmVar17,pmVar17 + iVar19,pmVar6,base);\n          pmVar8 = pmVar17 + (int)pmVar6;\n          pmVar6 = (mp_limb_t *)((int)pmVar6 + (uint)(mVar15 != 0));\n          *pmVar8 = mVar15;\n          iVar19 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pmVar8 = pmVar17;\n        pmVar17 = pmVar16;\n      }\n      if ((int)str < (int)pmVar6) {\nLAB_00018988:\n        iVar23 = iVar23 + ((int)pmVar6 - (int)str);\n        pmVar17 = pmVar17 + ((int)pmVar6 - (int)str);\n        pmVar6 = (mp_limb_t *)str;\n      }\n      pbVar3 = (byte *)((int)pmVar6 + -1);\n      if (pmVar6 != (mp_limb_t *)0x0) {\n        mVar15 = pmVar17[iVar19];\n        if (pbVar3 == (byte *)0x0) {\n          pmVar6 = (mp_limb_t *)&DAT_00000001;\n          *pmStack_50 = mVar15;\n        }\n        else {\n          pmVar17 = pmVar17 + iVar19 + 1;\n          pmVar8 = pmStack_50;\n          do {\n            *pmVar8 = mVar15;\n            pbVar3 = pbVar3 + -1;\n            mVar15 = *pmVar17;\n            pmVar17 = pmVar17 + 1;\n            pmVar8 = pmVar8 + 1;\n          } while (pbVar3 != (byte *)0x0);\n          pmStack_50[(int)((int)pmVar6 + -1)] = mVar15;\n        }\n      }\n    }" if (parenthesized_expression "((int)pbVar3 < 0x10000)" ( (binary_expression "(int)pbVar3 < 0x10000" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      if (0xff < (int)pbVar3) {\n        iVar4 = FUN_00018870();\n        return iVar4;\n      }\n      uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;\n      if (-1 < (int)uVar22) goto LAB_00018890;\n      if ((int)str < 1) {\n        iVar23 = 0;\n        pmVar6 = (mp_limb_t *)&DAT_00000001;\n        iVar19 = 0;\n        pmVar17 = pmStack_50;\n        goto LAB_00018988;\n      }\n      pmVar6 = (mp_limb_t *)&DAT_00000001;\n      iVar23 = 0;\n      *pmStack_50 = base;\n    }" { (if_statement "if (0xff < (int)pbVar3) {\n        iVar4 = FUN_00018870();\n        return iVar4;\n      }" if (parenthesized_expression "(0xff < (int)pbVar3)" ( (binary_expression "0xff < (int)pbVar3" number_literal < (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        iVar4 = FUN_00018870();\n        return iVar4;\n      }" { (expression_statement "iVar4 = FUN_00018870();" (assignment_expression "iVar4 = FUN_00018870()" identifier = (call_expression "FUN_00018870()" identifier (argument_list "()" ( )))) ;) (return_statement "return iVar4;" return identifier ;) })) (expression_statement "uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;" (assignment_expression "uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2" identifier = (binary_expression "(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2" (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1]" identifier [ (binary_expression "(uint)pbVar3 >> 1" (cast_expression "(uint)pbVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ])) - number_literal)) ;) (if_statement "if (-1 < (int)uVar22) goto LAB_00018890;" if (parenthesized_expression "(-1 < (int)uVar22)" ( (binary_expression "-1 < (int)uVar22" number_literal < (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00018890;" goto statement_identifier ;)) (if_statement "if ((int)str < 1) {\n        iVar23 = 0;\n        pmVar6 = (mp_limb_t *)&DAT_00000001;\n        iVar19 = 0;\n        pmVar17 = pmStack_50;\n        goto LAB_00018988;\n      }" if (parenthesized_expression "((int)str < 1)" ( (binary_expression "(int)str < 1" (cast_expression "(int)str" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        iVar23 = 0;\n        pmVar6 = (mp_limb_t *)&DAT_00000001;\n        iVar19 = 0;\n        pmVar17 = pmStack_50;\n        goto LAB_00018988;\n      }" { (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) (expression_statement "pmVar6 = (mp_limb_t *)&DAT_00000001;" (assignment_expression "pmVar6 = (mp_limb_t *)&DAT_00000001" identifier = (cast_expression "(mp_limb_t *)&DAT_00000001" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) ;) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "pmVar17 = pmStack_50;" (assignment_expression "pmVar17 = pmStack_50" identifier = identifier) ;) (goto_statement "goto LAB_00018988;" goto statement_identifier ;) })) (expression_statement "pmVar6 = (mp_limb_t *)&DAT_00000001;" (assignment_expression "pmVar6 = (mp_limb_t *)&DAT_00000001" identifier = (cast_expression "(mp_limb_t *)&DAT_00000001" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) ;) (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) (expression_statement "*pmStack_50 = base;" (assignment_expression "*pmStack_50 = base" (pointer_expression "*pmStack_50" * identifier) = identifier) ;) }) (else_clause "else {\n      iVar19 = 0x19;\n      if ((int)pbVar3 < 0x1000000) {\n        iVar19 = 0x11;\n      }\n      iVar23 = 0x10;\n      if ((int)pbVar3 >= 0x1000000) {\n        iVar23 = 8;\n      }\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar19] - iVar23) + 0x1e;\nLAB_00018890:\n      iVar23 = 0;\n      pmVar6 = (mp_limb_t *)&DAT_00000001;\n      iVar19 = 0;\n      pmVar8 = pmStack_50;\n      while( true ) {\n        pmVar16 = pmVar8;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pmVar17,pmVar16 + iVar19,pmVar6);\n        iVar23 = iVar23 * 2;\n        pmVar6 = (mp_limb_t *)((int)pmVar6 * 2 - (uint)(pmVar17[(int)pmVar6 * 2 + 0x3fffffff] == 0))\n        ;\n        if ((int)str < (int)pmVar6) {\n          iVar19 = (int)pmVar6 - (int)str;\n          iVar23 = iVar23 + iVar19;\n          pmVar6 = (mp_limb_t *)str;\n        }\n        else {\n          iVar19 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          mVar15 = (*(code *)PTR___gmpn_mul_1_0009d0a4)(pmVar17,pmVar17 + iVar19,pmVar6,base);\n          pmVar8 = pmVar17 + (int)pmVar6;\n          pmVar6 = (mp_limb_t *)((int)pmVar6 + (uint)(mVar15 != 0));\n          *pmVar8 = mVar15;\n          iVar19 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pmVar8 = pmVar17;\n        pmVar17 = pmVar16;\n      }\n      if ((int)str < (int)pmVar6) {\nLAB_00018988:\n        iVar23 = iVar23 + ((int)pmVar6 - (int)str);\n        pmVar17 = pmVar17 + ((int)pmVar6 - (int)str);\n        pmVar6 = (mp_limb_t *)str;\n      }\n      pbVar3 = (byte *)((int)pmVar6 + -1);\n      if (pmVar6 != (mp_limb_t *)0x0) {\n        mVar15 = pmVar17[iVar19];\n        if (pbVar3 == (byte *)0x0) {\n          pmVar6 = (mp_limb_t *)&DAT_00000001;\n          *pmStack_50 = mVar15;\n        }\n        else {\n          pmVar17 = pmVar17 + iVar19 + 1;\n          pmVar8 = pmStack_50;\n          do {\n            *pmVar8 = mVar15;\n            pbVar3 = pbVar3 + -1;\n            mVar15 = *pmVar17;\n            pmVar17 = pmVar17 + 1;\n            pmVar8 = pmVar8 + 1;\n          } while (pbVar3 != (byte *)0x0);\n          pmStack_50[(int)((int)pmVar6 + -1)] = mVar15;\n        }\n      }\n    }" else (compound_statement "{\n      iVar19 = 0x19;\n      if ((int)pbVar3 < 0x1000000) {\n        iVar19 = 0x11;\n      }\n      iVar23 = 0x10;\n      if ((int)pbVar3 >= 0x1000000) {\n        iVar23 = 8;\n      }\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar19] - iVar23) + 0x1e;\nLAB_00018890:\n      iVar23 = 0;\n      pmVar6 = (mp_limb_t *)&DAT_00000001;\n      iVar19 = 0;\n      pmVar8 = pmStack_50;\n      while( true ) {\n        pmVar16 = pmVar8;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pmVar17,pmVar16 + iVar19,pmVar6);\n        iVar23 = iVar23 * 2;\n        pmVar6 = (mp_limb_t *)((int)pmVar6 * 2 - (uint)(pmVar17[(int)pmVar6 * 2 + 0x3fffffff] == 0))\n        ;\n        if ((int)str < (int)pmVar6) {\n          iVar19 = (int)pmVar6 - (int)str;\n          iVar23 = iVar23 + iVar19;\n          pmVar6 = (mp_limb_t *)str;\n        }\n        else {\n          iVar19 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          mVar15 = (*(code *)PTR___gmpn_mul_1_0009d0a4)(pmVar17,pmVar17 + iVar19,pmVar6,base);\n          pmVar8 = pmVar17 + (int)pmVar6;\n          pmVar6 = (mp_limb_t *)((int)pmVar6 + (uint)(mVar15 != 0));\n          *pmVar8 = mVar15;\n          iVar19 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pmVar8 = pmVar17;\n        pmVar17 = pmVar16;\n      }\n      if ((int)str < (int)pmVar6) {\nLAB_00018988:\n        iVar23 = iVar23 + ((int)pmVar6 - (int)str);\n        pmVar17 = pmVar17 + ((int)pmVar6 - (int)str);\n        pmVar6 = (mp_limb_t *)str;\n      }\n      pbVar3 = (byte *)((int)pmVar6 + -1);\n      if (pmVar6 != (mp_limb_t *)0x0) {\n        mVar15 = pmVar17[iVar19];\n        if (pbVar3 == (byte *)0x0) {\n          pmVar6 = (mp_limb_t *)&DAT_00000001;\n          *pmStack_50 = mVar15;\n        }\n        else {\n          pmVar17 = pmVar17 + iVar19 + 1;\n          pmVar8 = pmStack_50;\n          do {\n            *pmVar8 = mVar15;\n            pbVar3 = pbVar3 + -1;\n            mVar15 = *pmVar17;\n            pmVar17 = pmVar17 + 1;\n            pmVar8 = pmVar8 + 1;\n          } while (pbVar3 != (byte *)0x0);\n          pmStack_50[(int)((int)pmVar6 + -1)] = mVar15;\n        }\n      }\n    }" { (expression_statement "iVar19 = 0x19;" (assignment_expression "iVar19 = 0x19" identifier = number_literal) ;) (if_statement "if ((int)pbVar3 < 0x1000000) {\n        iVar19 = 0x11;\n      }" if (parenthesized_expression "((int)pbVar3 < 0x1000000)" ( (binary_expression "(int)pbVar3 < 0x1000000" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        iVar19 = 0x11;\n      }" { (expression_statement "iVar19 = 0x11;" (assignment_expression "iVar19 = 0x11" identifier = number_literal) ;) })) (expression_statement "iVar23 = 0x10;" (assignment_expression "iVar23 = 0x10" identifier = number_literal) ;) (if_statement "if ((int)pbVar3 >= 0x1000000) {\n        iVar23 = 8;\n      }" if (parenthesized_expression "((int)pbVar3 >= 0x1000000)" ( (binary_expression "(int)pbVar3 >= 0x1000000" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) >= number_literal) )) (compound_statement "{\n        iVar23 = 8;\n      }" { (expression_statement "iVar23 = 8;" (assignment_expression "iVar23 = 8" identifier = number_literal) ;) })) (expression_statement "uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar19] - iVar23) + 0x1e;" (assignment_expression "uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar19] - iVar23) + 0x1e" identifier = (binary_expression "((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar19] - iVar23) + 0x1e" (parenthesized_expression "((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar19] - iVar23)" ( (binary_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar19] - iVar23" (cast_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar19]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar19]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar19]" identifier [ (binary_expression "(uint)pbVar3 >> iVar19" (cast_expression "(uint)pbVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) ]))) - identifier) )) + number_literal)) ;) (labeled_statement "LAB_00018890:\n      iVar23 = 0;" statement_identifier : (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;)) (expression_statement "pmVar6 = (mp_limb_t *)&DAT_00000001;" (assignment_expression "pmVar6 = (mp_limb_t *)&DAT_00000001" identifier = (cast_expression "(mp_limb_t *)&DAT_00000001" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) ;) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "pmVar8 = pmStack_50;" (assignment_expression "pmVar8 = pmStack_50" identifier = identifier) ;) (while_statement "while( true ) {\n        pmVar16 = pmVar8;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pmVar17,pmVar16 + iVar19,pmVar6);\n        iVar23 = iVar23 * 2;\n        pmVar6 = (mp_limb_t *)((int)pmVar6 * 2 - (uint)(pmVar17[(int)pmVar6 * 2 + 0x3fffffff] == 0))\n        ;\n        if ((int)str < (int)pmVar6) {\n          iVar19 = (int)pmVar6 - (int)str;\n          iVar23 = iVar23 + iVar19;\n          pmVar6 = (mp_limb_t *)str;\n        }\n        else {\n          iVar19 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          mVar15 = (*(code *)PTR___gmpn_mul_1_0009d0a4)(pmVar17,pmVar17 + iVar19,pmVar6,base);\n          pmVar8 = pmVar17 + (int)pmVar6;\n          pmVar6 = (mp_limb_t *)((int)pmVar6 + (uint)(mVar15 != 0));\n          *pmVar8 = mVar15;\n          iVar19 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pmVar8 = pmVar17;\n        pmVar17 = pmVar16;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        pmVar16 = pmVar8;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pmVar17,pmVar16 + iVar19,pmVar6);\n        iVar23 = iVar23 * 2;\n        pmVar6 = (mp_limb_t *)((int)pmVar6 * 2 - (uint)(pmVar17[(int)pmVar6 * 2 + 0x3fffffff] == 0))\n        ;\n        if ((int)str < (int)pmVar6) {\n          iVar19 = (int)pmVar6 - (int)str;\n          iVar23 = iVar23 + iVar19;\n          pmVar6 = (mp_limb_t *)str;\n        }\n        else {\n          iVar19 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          mVar15 = (*(code *)PTR___gmpn_mul_1_0009d0a4)(pmVar17,pmVar17 + iVar19,pmVar6,base);\n          pmVar8 = pmVar17 + (int)pmVar6;\n          pmVar6 = (mp_limb_t *)((int)pmVar6 + (uint)(mVar15 != 0));\n          *pmVar8 = mVar15;\n          iVar19 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pmVar8 = pmVar17;\n        pmVar17 = pmVar16;\n      }" { (expression_statement "pmVar16 = pmVar8;" (assignment_expression "pmVar16 = pmVar8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_sqr_0009d394)(pmVar17,pmVar16 + iVar19,pmVar6);" (call_expression "(*(code *)PTR___gmpn_sqr_0009d394)(pmVar17,pmVar16 + iVar19,pmVar6)" (parenthesized_expression "(*(code *)PTR___gmpn_sqr_0009d394)" ( (pointer_expression "*(code *)PTR___gmpn_sqr_0009d394" * (cast_expression "(code *)PTR___gmpn_sqr_0009d394" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar17,pmVar16 + iVar19,pmVar6)" ( identifier , (binary_expression "pmVar16 + iVar19" identifier + identifier) , identifier ))) ;) (expression_statement "iVar23 = iVar23 * 2;" (assignment_expression "iVar23 = iVar23 * 2" identifier = (binary_expression "iVar23 * 2" identifier * number_literal)) ;) (expression_statement "pmVar6 = (mp_limb_t *)((int)pmVar6 * 2 - (uint)(pmVar17[(int)pmVar6 * 2 + 0x3fffffff] == 0))\n        ;" (assignment_expression "pmVar6 = (mp_limb_t *)((int)pmVar6 * 2 - (uint)(pmVar17[(int)pmVar6 * 2 + 0x3fffffff] == 0))" identifier = (cast_expression "(mp_limb_t *)((int)pmVar6 * 2 - (uint)(pmVar17[(int)pmVar6 * 2 + 0x3fffffff] == 0))" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar6 * 2 - (uint)(pmVar17[(int)pmVar6 * 2 + 0x3fffffff] == 0))" ( (binary_expression "(int)pmVar6 * 2 - (uint)(pmVar17[(int)pmVar6 * 2 + 0x3fffffff] == 0)" (binary_expression "(int)pmVar6 * 2" (cast_expression "(int)pmVar6" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) - (call_expression "(uint)(pmVar17[(int)pmVar6 * 2 + 0x3fffffff] == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pmVar17[(int)pmVar6 * 2 + 0x3fffffff] == 0)" ( (binary_expression "pmVar17[(int)pmVar6 * 2 + 0x3fffffff] == 0" (subscript_expression "pmVar17[(int)pmVar6 * 2 + 0x3fffffff]" identifier [ (binary_expression "(int)pmVar6 * 2 + 0x3fffffff" (binary_expression "(int)pmVar6 * 2" (cast_expression "(int)pmVar6" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) == number_literal) )))) )))) ;) (if_statement "if ((int)str < (int)pmVar6) {\n          iVar19 = (int)pmVar6 - (int)str;\n          iVar23 = iVar23 + iVar19;\n          pmVar6 = (mp_limb_t *)str;\n        }\n        else {\n          iVar19 = 0;\n        }" if (parenthesized_expression "((int)str < (int)pmVar6)" ( (binary_expression "(int)str < (int)pmVar6" (cast_expression "(int)str" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pmVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          iVar19 = (int)pmVar6 - (int)str;\n          iVar23 = iVar23 + iVar19;\n          pmVar6 = (mp_limb_t *)str;\n        }" { (expression_statement "iVar19 = (int)pmVar6 - (int)str;" (assignment_expression "iVar19 = (int)pmVar6 - (int)str" identifier = (binary_expression "(int)pmVar6 - (int)str" (cast_expression "(int)pmVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)str" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar23 = iVar23 + iVar19;" (assignment_expression "iVar23 = iVar23 + iVar19" identifier = (binary_expression "iVar23 + iVar19" identifier + identifier)) ;) (expression_statement "pmVar6 = (mp_limb_t *)str;" (assignment_expression "pmVar6 = (mp_limb_t *)str" identifier = (cast_expression "(mp_limb_t *)str" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) (else_clause "else {\n          iVar19 = 0;\n        }" else (compound_statement "{\n          iVar19 = 0;\n        }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) }))) (if_statement "if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          mVar15 = (*(code *)PTR___gmpn_mul_1_0009d0a4)(pmVar17,pmVar17 + iVar19,pmVar6,base);\n          pmVar8 = pmVar17 + (int)pmVar6;\n          pmVar6 = (mp_limb_t *)((int)pmVar6 + (uint)(mVar15 != 0));\n          *pmVar8 = mVar15;\n          iVar19 = 0;\n        }" if (parenthesized_expression "(((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0)" ( (binary_expression "((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0" (parenthesized_expression "((int)pbVar3 >> (uVar22 & 0x1f) & 1U)" ( (binary_expression "(int)pbVar3 >> (uVar22 & 0x1f) & 1U" (binary_expression "(int)pbVar3 >> (uVar22 & 0x1f)" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) >> (parenthesized_expression "(uVar22 & 0x1f)" ( (binary_expression "uVar22 & 0x1f" identifier & number_literal) ))) & number_literal) )) != number_literal) )) (compound_statement "{\n          mVar15 = (*(code *)PTR___gmpn_mul_1_0009d0a4)(pmVar17,pmVar17 + iVar19,pmVar6,base);\n          pmVar8 = pmVar17 + (int)pmVar6;\n          pmVar6 = (mp_limb_t *)((int)pmVar6 + (uint)(mVar15 != 0));\n          *pmVar8 = mVar15;\n          iVar19 = 0;\n        }" { (expression_statement "mVar15 = (*(code *)PTR___gmpn_mul_1_0009d0a4)(pmVar17,pmVar17 + iVar19,pmVar6,base);" (assignment_expression "mVar15 = (*(code *)PTR___gmpn_mul_1_0009d0a4)(pmVar17,pmVar17 + iVar19,pmVar6,base)" identifier = (call_expression "(*(code *)PTR___gmpn_mul_1_0009d0a4)(pmVar17,pmVar17 + iVar19,pmVar6,base)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_1_0009d0a4)" ( (pointer_expression "*(code *)PTR___gmpn_mul_1_0009d0a4" * (cast_expression "(code *)PTR___gmpn_mul_1_0009d0a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar17,pmVar17 + iVar19,pmVar6,base)" ( identifier , (binary_expression "pmVar17 + iVar19" identifier + identifier) , identifier , identifier )))) ;) (expression_statement "pmVar8 = pmVar17 + (int)pmVar6;" (assignment_expression "pmVar8 = pmVar17 + (int)pmVar6" identifier = (binary_expression "pmVar17 + (int)pmVar6" identifier + (cast_expression "(int)pmVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pmVar6 = (mp_limb_t *)((int)pmVar6 + (uint)(mVar15 != 0));" (assignment_expression "pmVar6 = (mp_limb_t *)((int)pmVar6 + (uint)(mVar15 != 0))" identifier = (cast_expression "(mp_limb_t *)((int)pmVar6 + (uint)(mVar15 != 0))" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar6 + (uint)(mVar15 != 0))" ( (binary_expression "(int)pmVar6 + (uint)(mVar15 != 0)" (cast_expression "(int)pmVar6" ( (type_descriptor "int" primitive_type) ) identifier) + (call_expression "(uint)(mVar15 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(mVar15 != 0)" ( (binary_expression "mVar15 != 0" identifier != number_literal) )))) )))) ;) (expression_statement "*pmVar8 = mVar15;" (assignment_expression "*pmVar8 = mVar15" (pointer_expression "*pmVar8" * identifier) = identifier) ;) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) })) (if_statement "if (uVar22 == 0) break;" if (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar22 = uVar22 - 1;" (assignment_expression "uVar22 = uVar22 - 1" identifier = (binary_expression "uVar22 - 1" identifier - number_literal)) ;) (expression_statement "pmVar8 = pmVar17;" (assignment_expression "pmVar8 = pmVar17" identifier = identifier) ;) (expression_statement "pmVar17 = pmVar16;" (assignment_expression "pmVar17 = pmVar16" identifier = identifier) ;) })) (if_statement "if ((int)str < (int)pmVar6) {\nLAB_00018988:\n        iVar23 = iVar23 + ((int)pmVar6 - (int)str);\n        pmVar17 = pmVar17 + ((int)pmVar6 - (int)str);\n        pmVar6 = (mp_limb_t *)str;\n      }" if (parenthesized_expression "((int)str < (int)pmVar6)" ( (binary_expression "(int)str < (int)pmVar6" (cast_expression "(int)str" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pmVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\nLAB_00018988:\n        iVar23 = iVar23 + ((int)pmVar6 - (int)str);\n        pmVar17 = pmVar17 + ((int)pmVar6 - (int)str);\n        pmVar6 = (mp_limb_t *)str;\n      }" { (labeled_statement "LAB_00018988:\n        iVar23 = iVar23 + ((int)pmVar6 - (int)str);" statement_identifier : (expression_statement "iVar23 = iVar23 + ((int)pmVar6 - (int)str);" (assignment_expression "iVar23 = iVar23 + ((int)pmVar6 - (int)str)" identifier = (binary_expression "iVar23 + ((int)pmVar6 - (int)str)" identifier + (parenthesized_expression "((int)pmVar6 - (int)str)" ( (binary_expression "(int)pmVar6 - (int)str" (cast_expression "(int)pmVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)str" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "pmVar17 = pmVar17 + ((int)pmVar6 - (int)str);" (assignment_expression "pmVar17 = pmVar17 + ((int)pmVar6 - (int)str)" identifier = (binary_expression "pmVar17 + ((int)pmVar6 - (int)str)" identifier + (parenthesized_expression "((int)pmVar6 - (int)str)" ( (binary_expression "(int)pmVar6 - (int)str" (cast_expression "(int)pmVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)str" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pmVar6 = (mp_limb_t *)str;" (assignment_expression "pmVar6 = (mp_limb_t *)str" identifier = (cast_expression "(mp_limb_t *)str" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "pbVar3 = (byte *)((int)pmVar6 + -1);" (assignment_expression "pbVar3 = (byte *)((int)pmVar6 + -1)" identifier = (cast_expression "(byte *)((int)pmVar6 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar6 + -1)" ( (binary_expression "(int)pmVar6 + -1" (cast_expression "(int)pmVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (pmVar6 != (mp_limb_t *)0x0) {\n        mVar15 = pmVar17[iVar19];\n        if (pbVar3 == (byte *)0x0) {\n          pmVar6 = (mp_limb_t *)&DAT_00000001;\n          *pmStack_50 = mVar15;\n        }\n        else {\n          pmVar17 = pmVar17 + iVar19 + 1;\n          pmVar8 = pmStack_50;\n          do {\n            *pmVar8 = mVar15;\n            pbVar3 = pbVar3 + -1;\n            mVar15 = *pmVar17;\n            pmVar17 = pmVar17 + 1;\n            pmVar8 = pmVar8 + 1;\n          } while (pbVar3 != (byte *)0x0);\n          pmStack_50[(int)((int)pmVar6 + -1)] = mVar15;\n        }\n      }" if (parenthesized_expression "(pmVar6 != (mp_limb_t *)0x0)" ( (binary_expression "pmVar6 != (mp_limb_t *)0x0" identifier != (cast_expression "(mp_limb_t *)0x0" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        mVar15 = pmVar17[iVar19];\n        if (pbVar3 == (byte *)0x0) {\n          pmVar6 = (mp_limb_t *)&DAT_00000001;\n          *pmStack_50 = mVar15;\n        }\n        else {\n          pmVar17 = pmVar17 + iVar19 + 1;\n          pmVar8 = pmStack_50;\n          do {\n            *pmVar8 = mVar15;\n            pbVar3 = pbVar3 + -1;\n            mVar15 = *pmVar17;\n            pmVar17 = pmVar17 + 1;\n            pmVar8 = pmVar8 + 1;\n          } while (pbVar3 != (byte *)0x0);\n          pmStack_50[(int)((int)pmVar6 + -1)] = mVar15;\n        }\n      }" { (expression_statement "mVar15 = pmVar17[iVar19];" (assignment_expression "mVar15 = pmVar17[iVar19]" identifier = (subscript_expression "pmVar17[iVar19]" identifier [ identifier ])) ;) (if_statement "if (pbVar3 == (byte *)0x0) {\n          pmVar6 = (mp_limb_t *)&DAT_00000001;\n          *pmStack_50 = mVar15;\n        }\n        else {\n          pmVar17 = pmVar17 + iVar19 + 1;\n          pmVar8 = pmStack_50;\n          do {\n            *pmVar8 = mVar15;\n            pbVar3 = pbVar3 + -1;\n            mVar15 = *pmVar17;\n            pmVar17 = pmVar17 + 1;\n            pmVar8 = pmVar8 + 1;\n          } while (pbVar3 != (byte *)0x0);\n          pmStack_50[(int)((int)pmVar6 + -1)] = mVar15;\n        }" if (parenthesized_expression "(pbVar3 == (byte *)0x0)" ( (binary_expression "pbVar3 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pmVar6 = (mp_limb_t *)&DAT_00000001;\n          *pmStack_50 = mVar15;\n        }" { (expression_statement "pmVar6 = (mp_limb_t *)&DAT_00000001;" (assignment_expression "pmVar6 = (mp_limb_t *)&DAT_00000001" identifier = (cast_expression "(mp_limb_t *)&DAT_00000001" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) ;) (expression_statement "*pmStack_50 = mVar15;" (assignment_expression "*pmStack_50 = mVar15" (pointer_expression "*pmStack_50" * identifier) = identifier) ;) }) (else_clause "else {\n          pmVar17 = pmVar17 + iVar19 + 1;\n          pmVar8 = pmStack_50;\n          do {\n            *pmVar8 = mVar15;\n            pbVar3 = pbVar3 + -1;\n            mVar15 = *pmVar17;\n            pmVar17 = pmVar17 + 1;\n            pmVar8 = pmVar8 + 1;\n          } while (pbVar3 != (byte *)0x0);\n          pmStack_50[(int)((int)pmVar6 + -1)] = mVar15;\n        }" else (compound_statement "{\n          pmVar17 = pmVar17 + iVar19 + 1;\n          pmVar8 = pmStack_50;\n          do {\n            *pmVar8 = mVar15;\n            pbVar3 = pbVar3 + -1;\n            mVar15 = *pmVar17;\n            pmVar17 = pmVar17 + 1;\n            pmVar8 = pmVar8 + 1;\n          } while (pbVar3 != (byte *)0x0);\n          pmStack_50[(int)((int)pmVar6 + -1)] = mVar15;\n        }" { (expression_statement "pmVar17 = pmVar17 + iVar19 + 1;" (assignment_expression "pmVar17 = pmVar17 + iVar19 + 1" identifier = (binary_expression "pmVar17 + iVar19 + 1" (binary_expression "pmVar17 + iVar19" identifier + identifier) + number_literal)) ;) (expression_statement "pmVar8 = pmStack_50;" (assignment_expression "pmVar8 = pmStack_50" identifier = identifier) ;) (do_statement "do {\n            *pmVar8 = mVar15;\n            pbVar3 = pbVar3 + -1;\n            mVar15 = *pmVar17;\n            pmVar17 = pmVar17 + 1;\n            pmVar8 = pmVar8 + 1;\n          } while (pbVar3 != (byte *)0x0);" do (compound_statement "{\n            *pmVar8 = mVar15;\n            pbVar3 = pbVar3 + -1;\n            mVar15 = *pmVar17;\n            pmVar17 = pmVar17 + 1;\n            pmVar8 = pmVar8 + 1;\n          }" { (expression_statement "*pmVar8 = mVar15;" (assignment_expression "*pmVar8 = mVar15" (pointer_expression "*pmVar8" * identifier) = identifier) ;) (expression_statement "pbVar3 = pbVar3 + -1;" (assignment_expression "pbVar3 = pbVar3 + -1" identifier = (binary_expression "pbVar3 + -1" identifier + number_literal)) ;) (expression_statement "mVar15 = *pmVar17;" (assignment_expression "mVar15 = *pmVar17" identifier = (pointer_expression "*pmVar17" * identifier)) ;) (expression_statement "pmVar17 = pmVar17 + 1;" (assignment_expression "pmVar17 = pmVar17 + 1" identifier = (binary_expression "pmVar17 + 1" identifier + number_literal)) ;) (expression_statement "pmVar8 = pmVar8 + 1;" (assignment_expression "pmVar8 = pmVar8 + 1" identifier = (binary_expression "pmVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar3 != (byte *)0x0)" ( (binary_expression "pbVar3 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pmStack_50[(int)((int)pmVar6 + -1)] = mVar15;" (assignment_expression "pmStack_50[(int)((int)pmVar6 + -1)] = mVar15" (subscript_expression "pmStack_50[(int)((int)pmVar6 + -1)]" identifier [ (cast_expression "(int)((int)pmVar6 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pmVar6 + -1)" ( (binary_expression "(int)pmVar6 + -1" (cast_expression "(int)pmVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ]) = identifier) ;) }))) })) }))) (expression_statement "pmVar8 = (mp_limb_t *)str;" (assignment_expression "pmVar8 = (mp_limb_t *)str" identifier = (cast_expression "(mp_limb_t *)str" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((int)pbStack_44 < 0) {\n      if ((int)pmStack_4c < (int)pmVar6) {\n        uVar22 = (int)((int)pmVar6 + 1) * 4;\n        if (uVar22 < 0x7f01) {\n          iVar19 = -(uVar22 + 7 & 0xfffffff8);\n          puVar18 = puVar27 + iVar19 + 0x18;\n          puVar27 = puVar27 + iVar19;\n        }\n        else {\n          puVar18 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n        }\n        iVar19 = (int)pmVar6 - (int)pmStack_4c;\n        pmVar17 = (mp_limb_t *)(*(code *)PTR_memset_0009d2e8)(puVar18,0,iVar19 * 4);\n        if (pmStack_4c != (mp_limb_t *)0x0) {\n          pbVar3 = (byte *)((int)pmStack_4c + -1);\n          pmVar9 = pmVar17 + iVar19;\n          mVar15 = *pmStack_3c;\n          pmVar16 = pmVar9;\n          if (pbVar3 != (byte *)0x0) {\n            do {\n              pmStack_3c = pmStack_3c + 1;\n              *pmVar16 = mVar15;\n              pbVar3 = pbVar3 + -1;\n              mVar15 = *pmStack_3c;\n              pmVar16 = pmVar16 + 1;\n            } while (pbVar3 != (byte *)0x0);\n            pmVar9 = pmVar9 + (int)((int)pmStack_4c + -1);\n          }\n          *pmVar9 = mVar15;\n        }\n        iStack_54 = iStack_54 - iVar19;\n        pmStack_4c = pmVar6;\n        pmStack_3c = pmVar17;\n      }\n      uVar22 = pmStack_50[(int)((int)pmVar6 + -1)];\n      if (-1 < (int)uVar22) {\n        if (uVar22 < 0x10000) {\n          iVar19 = 0x20;\n          if (0xff < uVar22) {\n            iVar19 = 0x18;\n          }\n          iVar7 = 9;\n          if (0xff >= uVar22) {\n            iVar7 = 1;\n          }\n        }\n        else {\n          iVar19 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar19 = 8;\n          }\n          iVar7 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar7 = 0x11;\n          }\n        }\n        bVar14 = puVar21[uVar22 >> iVar7];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(pmStack_50,pmStack_50,pmVar6,iVar19 - (uint)bVar14);\n        mVar15 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (pmStack_3c,pmStack_3c,pmStack_4c,iVar19 - (uint)bVar14);\n        if (mVar15 != 0) {\n          pmStack_3c[(int)pmStack_4c] = mVar15;\n          pmStack_4c = (mp_limb_t *)((int)pmStack_4c + 1);\n        }\n      }\n      if ((uint)(iVar4 * 4) < 0x7f01) {\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        pmVar17 = (mp_limb_t *)(puVar27 + iVar4 + 0x18);\n        puVar27 = puVar27 + iVar4;\n      }\n      else {\n        pmVar17 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n      }\n      iVar4 = (int)pmStack_4c - (int)pmVar6;\n      *(mp_limb_t **)(puVar27 + 0x14) = pmVar6;\n      *(mp_limb_t **)(puVar27 + 0x10) = pmStack_50;\n      mVar15 = (*(code *)PTR___gmpn_divrem_0009d0e4)(pmVar17,(int)str - iVar4);\n      pbVar3 = (byte *)((iStack_54 - iVar23) + iVar4 + mVar15);\n      if (mVar15 != 0) {\n        pmVar6 = pmVar17 + (int)str;\n        pmVar17 = pmVar17 + 1;\n        *pmVar6 = mVar15;\n      }\n    }\n    else {\n      pbVar3 = (byte *)((int)pmVar6 + (int)pmStack_4c);\n      uVar22 = (int)pbVar3 * 4;\n      if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        pmVar17 = (mp_limb_t *)(puVar27 + iVar4 + 0x18);\n        puVar27 = puVar27 + iVar4;\n      }\n      else {\n        pmVar17 = (mp_limb_t *)\n                  (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22);\n      }\n      if ((int)pmStack_4c < (int)pmVar6) {\n        *(mp_limb_t **)(puVar27 + 0x10) = pmStack_4c;\n        pmStack_4c = pmStack_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar17,pmStack_50);\n        pmStack_3c = pmVar6;\n      }\n      else {\n        *(mp_limb_t **)(puVar27 + 0x10) = pmVar6;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar17,pmStack_3c);\n        pmStack_3c = pmStack_4c;\n        pmStack_4c = pmStack_50;\n      }\n      pmVar8 = (mp_limb_t *)(pbVar3 + -(uint)(pmVar17[(int)(pbVar3 + -1)] == 0));\n      pbVar3 = (byte *)((int)pmVar8 + iVar23 + iStack_54);\n      if ((int)str < (int)pmVar8) {\n        pmVar17 = pmVar17 + ((int)pmVar8 - (int)str);\n        pmVar8 = (mp_limb_t *)str;\n      }\n    }" if (parenthesized_expression "((int)pbStack_44 < 0)" ( (binary_expression "(int)pbStack_44 < 0" (cast_expression "(int)pbStack_44" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      if ((int)pmStack_4c < (int)pmVar6) {\n        uVar22 = (int)((int)pmVar6 + 1) * 4;\n        if (uVar22 < 0x7f01) {\n          iVar19 = -(uVar22 + 7 & 0xfffffff8);\n          puVar18 = puVar27 + iVar19 + 0x18;\n          puVar27 = puVar27 + iVar19;\n        }\n        else {\n          puVar18 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n        }\n        iVar19 = (int)pmVar6 - (int)pmStack_4c;\n        pmVar17 = (mp_limb_t *)(*(code *)PTR_memset_0009d2e8)(puVar18,0,iVar19 * 4);\n        if (pmStack_4c != (mp_limb_t *)0x0) {\n          pbVar3 = (byte *)((int)pmStack_4c + -1);\n          pmVar9 = pmVar17 + iVar19;\n          mVar15 = *pmStack_3c;\n          pmVar16 = pmVar9;\n          if (pbVar3 != (byte *)0x0) {\n            do {\n              pmStack_3c = pmStack_3c + 1;\n              *pmVar16 = mVar15;\n              pbVar3 = pbVar3 + -1;\n              mVar15 = *pmStack_3c;\n              pmVar16 = pmVar16 + 1;\n            } while (pbVar3 != (byte *)0x0);\n            pmVar9 = pmVar9 + (int)((int)pmStack_4c + -1);\n          }\n          *pmVar9 = mVar15;\n        }\n        iStack_54 = iStack_54 - iVar19;\n        pmStack_4c = pmVar6;\n        pmStack_3c = pmVar17;\n      }\n      uVar22 = pmStack_50[(int)((int)pmVar6 + -1)];\n      if (-1 < (int)uVar22) {\n        if (uVar22 < 0x10000) {\n          iVar19 = 0x20;\n          if (0xff < uVar22) {\n            iVar19 = 0x18;\n          }\n          iVar7 = 9;\n          if (0xff >= uVar22) {\n            iVar7 = 1;\n          }\n        }\n        else {\n          iVar19 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar19 = 8;\n          }\n          iVar7 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar7 = 0x11;\n          }\n        }\n        bVar14 = puVar21[uVar22 >> iVar7];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(pmStack_50,pmStack_50,pmVar6,iVar19 - (uint)bVar14);\n        mVar15 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (pmStack_3c,pmStack_3c,pmStack_4c,iVar19 - (uint)bVar14);\n        if (mVar15 != 0) {\n          pmStack_3c[(int)pmStack_4c] = mVar15;\n          pmStack_4c = (mp_limb_t *)((int)pmStack_4c + 1);\n        }\n      }\n      if ((uint)(iVar4 * 4) < 0x7f01) {\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        pmVar17 = (mp_limb_t *)(puVar27 + iVar4 + 0x18);\n        puVar27 = puVar27 + iVar4;\n      }\n      else {\n        pmVar17 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n      }\n      iVar4 = (int)pmStack_4c - (int)pmVar6;\n      *(mp_limb_t **)(puVar27 + 0x14) = pmVar6;\n      *(mp_limb_t **)(puVar27 + 0x10) = pmStack_50;\n      mVar15 = (*(code *)PTR___gmpn_divrem_0009d0e4)(pmVar17,(int)str - iVar4);\n      pbVar3 = (byte *)((iStack_54 - iVar23) + iVar4 + mVar15);\n      if (mVar15 != 0) {\n        pmVar6 = pmVar17 + (int)str;\n        pmVar17 = pmVar17 + 1;\n        *pmVar6 = mVar15;\n      }\n    }" { (if_statement "if ((int)pmStack_4c < (int)pmVar6) {\n        uVar22 = (int)((int)pmVar6 + 1) * 4;\n        if (uVar22 < 0x7f01) {\n          iVar19 = -(uVar22 + 7 & 0xfffffff8);\n          puVar18 = puVar27 + iVar19 + 0x18;\n          puVar27 = puVar27 + iVar19;\n        }\n        else {\n          puVar18 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n        }\n        iVar19 = (int)pmVar6 - (int)pmStack_4c;\n        pmVar17 = (mp_limb_t *)(*(code *)PTR_memset_0009d2e8)(puVar18,0,iVar19 * 4);\n        if (pmStack_4c != (mp_limb_t *)0x0) {\n          pbVar3 = (byte *)((int)pmStack_4c + -1);\n          pmVar9 = pmVar17 + iVar19;\n          mVar15 = *pmStack_3c;\n          pmVar16 = pmVar9;\n          if (pbVar3 != (byte *)0x0) {\n            do {\n              pmStack_3c = pmStack_3c + 1;\n              *pmVar16 = mVar15;\n              pbVar3 = pbVar3 + -1;\n              mVar15 = *pmStack_3c;\n              pmVar16 = pmVar16 + 1;\n            } while (pbVar3 != (byte *)0x0);\n            pmVar9 = pmVar9 + (int)((int)pmStack_4c + -1);\n          }\n          *pmVar9 = mVar15;\n        }\n        iStack_54 = iStack_54 - iVar19;\n        pmStack_4c = pmVar6;\n        pmStack_3c = pmVar17;\n      }" if (parenthesized_expression "((int)pmStack_4c < (int)pmVar6)" ( (binary_expression "(int)pmStack_4c < (int)pmVar6" (cast_expression "(int)pmStack_4c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pmVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar22 = (int)((int)pmVar6 + 1) * 4;\n        if (uVar22 < 0x7f01) {\n          iVar19 = -(uVar22 + 7 & 0xfffffff8);\n          puVar18 = puVar27 + iVar19 + 0x18;\n          puVar27 = puVar27 + iVar19;\n        }\n        else {\n          puVar18 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n        }\n        iVar19 = (int)pmVar6 - (int)pmStack_4c;\n        pmVar17 = (mp_limb_t *)(*(code *)PTR_memset_0009d2e8)(puVar18,0,iVar19 * 4);\n        if (pmStack_4c != (mp_limb_t *)0x0) {\n          pbVar3 = (byte *)((int)pmStack_4c + -1);\n          pmVar9 = pmVar17 + iVar19;\n          mVar15 = *pmStack_3c;\n          pmVar16 = pmVar9;\n          if (pbVar3 != (byte *)0x0) {\n            do {\n              pmStack_3c = pmStack_3c + 1;\n              *pmVar16 = mVar15;\n              pbVar3 = pbVar3 + -1;\n              mVar15 = *pmStack_3c;\n              pmVar16 = pmVar16 + 1;\n            } while (pbVar3 != (byte *)0x0);\n            pmVar9 = pmVar9 + (int)((int)pmStack_4c + -1);\n          }\n          *pmVar9 = mVar15;\n        }\n        iStack_54 = iStack_54 - iVar19;\n        pmStack_4c = pmVar6;\n        pmStack_3c = pmVar17;\n      }" { (expression_statement "uVar22 = (int)((int)pmVar6 + 1) * 4;" (assignment_expression "uVar22 = (int)((int)pmVar6 + 1) * 4" identifier = (binary_expression "(int)((int)pmVar6 + 1) * 4" (cast_expression "(int)((int)pmVar6 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pmVar6 + 1)" ( (binary_expression "(int)pmVar6 + 1" (cast_expression "(int)pmVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) * number_literal)) ;) (if_statement "if (uVar22 < 0x7f01) {\n          iVar19 = -(uVar22 + 7 & 0xfffffff8);\n          puVar18 = puVar27 + iVar19 + 0x18;\n          puVar27 = puVar27 + iVar19;\n        }\n        else {\n          puVar18 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n        }" if (parenthesized_expression "(uVar22 < 0x7f01)" ( (binary_expression "uVar22 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n          iVar19 = -(uVar22 + 7 & 0xfffffff8);\n          puVar18 = puVar27 + iVar19 + 0x18;\n          puVar27 = puVar27 + iVar19;\n        }" { (expression_statement "iVar19 = -(uVar22 + 7 & 0xfffffff8);" (assignment_expression "iVar19 = -(uVar22 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar22 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar22 + 7 & 0xfffffff8)" ( (binary_expression "uVar22 + 7 & 0xfffffff8" (binary_expression "uVar22 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar18 = puVar27 + iVar19 + 0x18;" (assignment_expression "puVar18 = puVar27 + iVar19 + 0x18" identifier = (binary_expression "puVar27 + iVar19 + 0x18" (binary_expression "puVar27 + iVar19" identifier + identifier) + number_literal)) ;) (expression_statement "puVar27 = puVar27 + iVar19;" (assignment_expression "puVar27 = puVar27 + iVar19" identifier = (binary_expression "puVar27 + iVar19" identifier + identifier)) ;) }) (else_clause "else {\n          puVar18 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n        }" else (compound_statement "{\n          puVar18 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n        }" { (expression_statement "puVar18 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);" (assignment_expression "puVar18 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&__tmp_marker)" ( (pointer_expression "&__tmp_marker" & identifier) ))))) ;) }))) (expression_statement "iVar19 = (int)pmVar6 - (int)pmStack_4c;" (assignment_expression "iVar19 = (int)pmVar6 - (int)pmStack_4c" identifier = (binary_expression "(int)pmVar6 - (int)pmStack_4c" (cast_expression "(int)pmVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pmStack_4c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pmVar17 = (mp_limb_t *)(*(code *)PTR_memset_0009d2e8)(puVar18,0,iVar19 * 4);" (assignment_expression "pmVar17 = (mp_limb_t *)(*(code *)PTR_memset_0009d2e8)(puVar18,0,iVar19 * 4)" identifier = (cast_expression "(mp_limb_t *)(*(code *)PTR_memset_0009d2e8)(puVar18,0,iVar19 * 4)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_memset_0009d2e8)(puVar18,0,iVar19 * 4)" (parenthesized_expression "(*(code *)PTR_memset_0009d2e8)" ( (pointer_expression "*(code *)PTR_memset_0009d2e8" * (cast_expression "(code *)PTR_memset_0009d2e8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar18,0,iVar19 * 4)" ( identifier , number_literal , (binary_expression "iVar19 * 4" identifier * number_literal) ))))) ;) (if_statement "if (pmStack_4c != (mp_limb_t *)0x0) {\n          pbVar3 = (byte *)((int)pmStack_4c + -1);\n          pmVar9 = pmVar17 + iVar19;\n          mVar15 = *pmStack_3c;\n          pmVar16 = pmVar9;\n          if (pbVar3 != (byte *)0x0) {\n            do {\n              pmStack_3c = pmStack_3c + 1;\n              *pmVar16 = mVar15;\n              pbVar3 = pbVar3 + -1;\n              mVar15 = *pmStack_3c;\n              pmVar16 = pmVar16 + 1;\n            } while (pbVar3 != (byte *)0x0);\n            pmVar9 = pmVar9 + (int)((int)pmStack_4c + -1);\n          }\n          *pmVar9 = mVar15;\n        }" if (parenthesized_expression "(pmStack_4c != (mp_limb_t *)0x0)" ( (binary_expression "pmStack_4c != (mp_limb_t *)0x0" identifier != (cast_expression "(mp_limb_t *)0x0" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pbVar3 = (byte *)((int)pmStack_4c + -1);\n          pmVar9 = pmVar17 + iVar19;\n          mVar15 = *pmStack_3c;\n          pmVar16 = pmVar9;\n          if (pbVar3 != (byte *)0x0) {\n            do {\n              pmStack_3c = pmStack_3c + 1;\n              *pmVar16 = mVar15;\n              pbVar3 = pbVar3 + -1;\n              mVar15 = *pmStack_3c;\n              pmVar16 = pmVar16 + 1;\n            } while (pbVar3 != (byte *)0x0);\n            pmVar9 = pmVar9 + (int)((int)pmStack_4c + -1);\n          }\n          *pmVar9 = mVar15;\n        }" { (expression_statement "pbVar3 = (byte *)((int)pmStack_4c + -1);" (assignment_expression "pbVar3 = (byte *)((int)pmStack_4c + -1)" identifier = (cast_expression "(byte *)((int)pmStack_4c + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmStack_4c + -1)" ( (binary_expression "(int)pmStack_4c + -1" (cast_expression "(int)pmStack_4c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pmVar9 = pmVar17 + iVar19;" (assignment_expression "pmVar9 = pmVar17 + iVar19" identifier = (binary_expression "pmVar17 + iVar19" identifier + identifier)) ;) (expression_statement "mVar15 = *pmStack_3c;" (assignment_expression "mVar15 = *pmStack_3c" identifier = (pointer_expression "*pmStack_3c" * identifier)) ;) (expression_statement "pmVar16 = pmVar9;" (assignment_expression "pmVar16 = pmVar9" identifier = identifier) ;) (if_statement "if (pbVar3 != (byte *)0x0) {\n            do {\n              pmStack_3c = pmStack_3c + 1;\n              *pmVar16 = mVar15;\n              pbVar3 = pbVar3 + -1;\n              mVar15 = *pmStack_3c;\n              pmVar16 = pmVar16 + 1;\n            } while (pbVar3 != (byte *)0x0);\n            pmVar9 = pmVar9 + (int)((int)pmStack_4c + -1);\n          }" if (parenthesized_expression "(pbVar3 != (byte *)0x0)" ( (binary_expression "pbVar3 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            do {\n              pmStack_3c = pmStack_3c + 1;\n              *pmVar16 = mVar15;\n              pbVar3 = pbVar3 + -1;\n              mVar15 = *pmStack_3c;\n              pmVar16 = pmVar16 + 1;\n            } while (pbVar3 != (byte *)0x0);\n            pmVar9 = pmVar9 + (int)((int)pmStack_4c + -1);\n          }" { (do_statement "do {\n              pmStack_3c = pmStack_3c + 1;\n              *pmVar16 = mVar15;\n              pbVar3 = pbVar3 + -1;\n              mVar15 = *pmStack_3c;\n              pmVar16 = pmVar16 + 1;\n            } while (pbVar3 != (byte *)0x0);" do (compound_statement "{\n              pmStack_3c = pmStack_3c + 1;\n              *pmVar16 = mVar15;\n              pbVar3 = pbVar3 + -1;\n              mVar15 = *pmStack_3c;\n              pmVar16 = pmVar16 + 1;\n            }" { (expression_statement "pmStack_3c = pmStack_3c + 1;" (assignment_expression "pmStack_3c = pmStack_3c + 1" identifier = (binary_expression "pmStack_3c + 1" identifier + number_literal)) ;) (expression_statement "*pmVar16 = mVar15;" (assignment_expression "*pmVar16 = mVar15" (pointer_expression "*pmVar16" * identifier) = identifier) ;) (expression_statement "pbVar3 = pbVar3 + -1;" (assignment_expression "pbVar3 = pbVar3 + -1" identifier = (binary_expression "pbVar3 + -1" identifier + number_literal)) ;) (expression_statement "mVar15 = *pmStack_3c;" (assignment_expression "mVar15 = *pmStack_3c" identifier = (pointer_expression "*pmStack_3c" * identifier)) ;) (expression_statement "pmVar16 = pmVar16 + 1;" (assignment_expression "pmVar16 = pmVar16 + 1" identifier = (binary_expression "pmVar16 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar3 != (byte *)0x0)" ( (binary_expression "pbVar3 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pmVar9 = pmVar9 + (int)((int)pmStack_4c + -1);" (assignment_expression "pmVar9 = pmVar9 + (int)((int)pmStack_4c + -1)" identifier = (binary_expression "pmVar9 + (int)((int)pmStack_4c + -1)" identifier + (cast_expression "(int)((int)pmStack_4c + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pmStack_4c + -1)" ( (binary_expression "(int)pmStack_4c + -1" (cast_expression "(int)pmStack_4c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) })) (expression_statement "*pmVar9 = mVar15;" (assignment_expression "*pmVar9 = mVar15" (pointer_expression "*pmVar9" * identifier) = identifier) ;) })) (expression_statement "iStack_54 = iStack_54 - iVar19;" (assignment_expression "iStack_54 = iStack_54 - iVar19" identifier = (binary_expression "iStack_54 - iVar19" identifier - identifier)) ;) (expression_statement "pmStack_4c = pmVar6;" (assignment_expression "pmStack_4c = pmVar6" identifier = identifier) ;) (expression_statement "pmStack_3c = pmVar17;" (assignment_expression "pmStack_3c = pmVar17" identifier = identifier) ;) })) (expression_statement "uVar22 = pmStack_50[(int)((int)pmVar6 + -1)];" (assignment_expression "uVar22 = pmStack_50[(int)((int)pmVar6 + -1)]" identifier = (subscript_expression "pmStack_50[(int)((int)pmVar6 + -1)]" identifier [ (cast_expression "(int)((int)pmVar6 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pmVar6 + -1)" ( (binary_expression "(int)pmVar6 + -1" (cast_expression "(int)pmVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ])) ;) (if_statement "if (-1 < (int)uVar22) {\n        if (uVar22 < 0x10000) {\n          iVar19 = 0x20;\n          if (0xff < uVar22) {\n            iVar19 = 0x18;\n          }\n          iVar7 = 9;\n          if (0xff >= uVar22) {\n            iVar7 = 1;\n          }\n        }\n        else {\n          iVar19 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar19 = 8;\n          }\n          iVar7 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar7 = 0x11;\n          }\n        }\n        bVar14 = puVar21[uVar22 >> iVar7];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(pmStack_50,pmStack_50,pmVar6,iVar19 - (uint)bVar14);\n        mVar15 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (pmStack_3c,pmStack_3c,pmStack_4c,iVar19 - (uint)bVar14);\n        if (mVar15 != 0) {\n          pmStack_3c[(int)pmStack_4c] = mVar15;\n          pmStack_4c = (mp_limb_t *)((int)pmStack_4c + 1);\n        }\n      }" if (parenthesized_expression "(-1 < (int)uVar22)" ( (binary_expression "-1 < (int)uVar22" number_literal < (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        if (uVar22 < 0x10000) {\n          iVar19 = 0x20;\n          if (0xff < uVar22) {\n            iVar19 = 0x18;\n          }\n          iVar7 = 9;\n          if (0xff >= uVar22) {\n            iVar7 = 1;\n          }\n        }\n        else {\n          iVar19 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar19 = 8;\n          }\n          iVar7 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar7 = 0x11;\n          }\n        }\n        bVar14 = puVar21[uVar22 >> iVar7];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(pmStack_50,pmStack_50,pmVar6,iVar19 - (uint)bVar14);\n        mVar15 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (pmStack_3c,pmStack_3c,pmStack_4c,iVar19 - (uint)bVar14);\n        if (mVar15 != 0) {\n          pmStack_3c[(int)pmStack_4c] = mVar15;\n          pmStack_4c = (mp_limb_t *)((int)pmStack_4c + 1);\n        }\n      }" { (if_statement "if (uVar22 < 0x10000) {\n          iVar19 = 0x20;\n          if (0xff < uVar22) {\n            iVar19 = 0x18;\n          }\n          iVar7 = 9;\n          if (0xff >= uVar22) {\n            iVar7 = 1;\n          }\n        }\n        else {\n          iVar19 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar19 = 8;\n          }\n          iVar7 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar7 = 0x11;\n          }\n        }" if (parenthesized_expression "(uVar22 < 0x10000)" ( (binary_expression "uVar22 < 0x10000" identifier < number_literal) )) (compound_statement "{\n          iVar19 = 0x20;\n          if (0xff < uVar22) {\n            iVar19 = 0x18;\n          }\n          iVar7 = 9;\n          if (0xff >= uVar22) {\n            iVar7 = 1;\n          }\n        }" { (expression_statement "iVar19 = 0x20;" (assignment_expression "iVar19 = 0x20" identifier = number_literal) ;) (if_statement "if (0xff < uVar22) {\n            iVar19 = 0x18;\n          }" if (parenthesized_expression "(0xff < uVar22)" ( (binary_expression "0xff < uVar22" number_literal < identifier) )) (compound_statement "{\n            iVar19 = 0x18;\n          }" { (expression_statement "iVar19 = 0x18;" (assignment_expression "iVar19 = 0x18" identifier = number_literal) ;) })) (expression_statement "iVar7 = 9;" (assignment_expression "iVar7 = 9" identifier = number_literal) ;) (if_statement "if (0xff >= uVar22) {\n            iVar7 = 1;\n          }" if (parenthesized_expression "(0xff >= uVar22)" ( (binary_expression "0xff >= uVar22" number_literal >= identifier) )) (compound_statement "{\n            iVar7 = 1;\n          }" { (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) })) }) (else_clause "else {\n          iVar19 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar19 = 8;\n          }\n          iVar7 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar7 = 0x11;\n          }\n        }" else (compound_statement "{\n          iVar19 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar19 = 8;\n          }\n          iVar7 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar7 = 0x11;\n          }\n        }" { (expression_statement "iVar19 = 0x10;" (assignment_expression "iVar19 = 0x10" identifier = number_literal) ;) (if_statement "if (0xffffff < uVar22) {\n            iVar19 = 8;\n          }" if (parenthesized_expression "(0xffffff < uVar22)" ( (binary_expression "0xffffff < uVar22" number_literal < identifier) )) (compound_statement "{\n            iVar19 = 8;\n          }" { (expression_statement "iVar19 = 8;" (assignment_expression "iVar19 = 8" identifier = number_literal) ;) })) (expression_statement "iVar7 = 0x19;" (assignment_expression "iVar7 = 0x19" identifier = number_literal) ;) (if_statement "if (0xffffff >= uVar22) {\n            iVar7 = 0x11;\n          }" if (parenthesized_expression "(0xffffff >= uVar22)" ( (binary_expression "0xffffff >= uVar22" number_literal >= identifier) )) (compound_statement "{\n            iVar7 = 0x11;\n          }" { (expression_statement "iVar7 = 0x11;" (assignment_expression "iVar7 = 0x11" identifier = number_literal) ;) })) }))) (expression_statement "bVar14 = puVar21[uVar22 >> iVar7];" (assignment_expression "bVar14 = puVar21[uVar22 >> iVar7]" identifier = (subscript_expression "puVar21[uVar22 >> iVar7]" identifier [ (binary_expression "uVar22 >> iVar7" identifier >> identifier) ])) ;) (expression_statement "(*(code *)PTR___gmpn_lshift_0009d56c)(pmStack_50,pmStack_50,pmVar6,iVar19 - (uint)bVar14);" (call_expression "(*(code *)PTR___gmpn_lshift_0009d56c)(pmStack_50,pmStack_50,pmVar6,iVar19 - (uint)bVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009d56c)" ( (pointer_expression "*(code *)PTR___gmpn_lshift_0009d56c" * (cast_expression "(code *)PTR___gmpn_lshift_0009d56c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmStack_50,pmStack_50,pmVar6,iVar19 - (uint)bVar14)" ( identifier , identifier , identifier , (binary_expression "iVar19 - (uint)bVar14" identifier - (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) ;) (expression_statement "mVar15 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (pmStack_3c,pmStack_3c,pmStack_4c,iVar19 - (uint)bVar14);" (assignment_expression "mVar15 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (pmStack_3c,pmStack_3c,pmStack_4c,iVar19 - (uint)bVar14)" identifier = (call_expression "(*(code *)PTR___gmpn_lshift_0009d56c)\n                           (pmStack_3c,pmStack_3c,pmStack_4c,iVar19 - (uint)bVar14)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009d56c)" ( (pointer_expression "*(code *)PTR___gmpn_lshift_0009d56c" * (cast_expression "(code *)PTR___gmpn_lshift_0009d56c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmStack_3c,pmStack_3c,pmStack_4c,iVar19 - (uint)bVar14)" ( identifier , identifier , identifier , (binary_expression "iVar19 - (uint)bVar14" identifier - (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (if_statement "if (mVar15 != 0) {\n          pmStack_3c[(int)pmStack_4c] = mVar15;\n          pmStack_4c = (mp_limb_t *)((int)pmStack_4c + 1);\n        }" if (parenthesized_expression "(mVar15 != 0)" ( (binary_expression "mVar15 != 0" identifier != number_literal) )) (compound_statement "{\n          pmStack_3c[(int)pmStack_4c] = mVar15;\n          pmStack_4c = (mp_limb_t *)((int)pmStack_4c + 1);\n        }" { (expression_statement "pmStack_3c[(int)pmStack_4c] = mVar15;" (assignment_expression "pmStack_3c[(int)pmStack_4c] = mVar15" (subscript_expression "pmStack_3c[(int)pmStack_4c]" identifier [ (cast_expression "(int)pmStack_4c" ( (type_descriptor "int" primitive_type) ) identifier) ]) = identifier) ;) (expression_statement "pmStack_4c = (mp_limb_t *)((int)pmStack_4c + 1);" (assignment_expression "pmStack_4c = (mp_limb_t *)((int)pmStack_4c + 1)" identifier = (cast_expression "(mp_limb_t *)((int)pmStack_4c + 1)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmStack_4c + 1)" ( (binary_expression "(int)pmStack_4c + 1" (cast_expression "(int)pmStack_4c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) })) (if_statement "if ((uint)(iVar4 * 4) < 0x7f01) {\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        pmVar17 = (mp_limb_t *)(puVar27 + iVar4 + 0x18);\n        puVar27 = puVar27 + iVar4;\n      }\n      else {\n        pmVar17 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n      }" if (parenthesized_expression "((uint)(iVar4 * 4) < 0x7f01)" ( (binary_expression "(uint)(iVar4 * 4) < 0x7f01" (call_expression "(uint)(iVar4 * 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar4 * 4)" ( (binary_expression "iVar4 * 4" identifier * number_literal) ))) < number_literal) )) (compound_statement "{\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        pmVar17 = (mp_limb_t *)(puVar27 + iVar4 + 0x18);\n        puVar27 = puVar27 + iVar4;\n      }" { (expression_statement "iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);" (assignment_expression "iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8)" identifier = (unary_expression "-(iVar4 * 4 + 7U & 0xfffffff8)" - (parenthesized_expression "(iVar4 * 4 + 7U & 0xfffffff8)" ( (binary_expression "iVar4 * 4 + 7U & 0xfffffff8" (binary_expression "iVar4 * 4 + 7U" (binary_expression "iVar4 * 4" identifier * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "pmVar17 = (mp_limb_t *)(puVar27 + iVar4 + 0x18);" (assignment_expression "pmVar17 = (mp_limb_t *)(puVar27 + iVar4 + 0x18)" identifier = (cast_expression "(mp_limb_t *)(puVar27 + iVar4 + 0x18)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + iVar4 + 0x18)" ( (binary_expression "puVar27 + iVar4 + 0x18" (binary_expression "puVar27 + iVar4" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar27 = puVar27 + iVar4;" (assignment_expression "puVar27 = puVar27 + iVar4" identifier = (binary_expression "puVar27 + iVar4" identifier + identifier)) ;) }) (else_clause "else {\n        pmVar17 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n      }" else (compound_statement "{\n        pmVar17 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n      }" { (expression_statement "pmVar17 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);" (assignment_expression "pmVar17 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker)" identifier = (cast_expression "(mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&__tmp_marker)" ( (pointer_expression "&__tmp_marker" & identifier) ))))) ;) }))) (expression_statement "iVar4 = (int)pmStack_4c - (int)pmVar6;" (assignment_expression "iVar4 = (int)pmStack_4c - (int)pmVar6" identifier = (binary_expression "(int)pmStack_4c - (int)pmVar6" (cast_expression "(int)pmStack_4c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pmVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(mp_limb_t **)(puVar27 + 0x14) = pmVar6;" (assignment_expression "*(mp_limb_t **)(puVar27 + 0x14) = pmVar6" (pointer_expression "*(mp_limb_t **)(puVar27 + 0x14)" * (cast_expression "(mp_limb_t **)(puVar27 + 0x14)" ( (type_descriptor "mp_limb_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + 0x14)" ( (binary_expression "puVar27 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mp_limb_t **)(puVar27 + 0x10) = pmStack_50;" (assignment_expression "*(mp_limb_t **)(puVar27 + 0x10) = pmStack_50" (pointer_expression "*(mp_limb_t **)(puVar27 + 0x10)" * (cast_expression "(mp_limb_t **)(puVar27 + 0x10)" ( (type_descriptor "mp_limb_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + 0x10)" ( (binary_expression "puVar27 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "mVar15 = (*(code *)PTR___gmpn_divrem_0009d0e4)(pmVar17,(int)str - iVar4);" (assignment_expression "mVar15 = (*(code *)PTR___gmpn_divrem_0009d0e4)(pmVar17,(int)str - iVar4)" identifier = (call_expression "(*(code *)PTR___gmpn_divrem_0009d0e4)(pmVar17,(int)str - iVar4)" (parenthesized_expression "(*(code *)PTR___gmpn_divrem_0009d0e4)" ( (pointer_expression "*(code *)PTR___gmpn_divrem_0009d0e4" * (cast_expression "(code *)PTR___gmpn_divrem_0009d0e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar17,(int)str - iVar4)" ( identifier , (binary_expression "(int)str - iVar4" (cast_expression "(int)str" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "pbVar3 = (byte *)((iStack_54 - iVar23) + iVar4 + mVar15);" (assignment_expression "pbVar3 = (byte *)((iStack_54 - iVar23) + iVar4 + mVar15)" identifier = (cast_expression "(byte *)((iStack_54 - iVar23) + iVar4 + mVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iStack_54 - iVar23) + iVar4 + mVar15)" ( (binary_expression "(iStack_54 - iVar23) + iVar4 + mVar15" (binary_expression "(iStack_54 - iVar23) + iVar4" (parenthesized_expression "(iStack_54 - iVar23)" ( (binary_expression "iStack_54 - iVar23" identifier - identifier) )) + identifier) + identifier) )))) ;) (if_statement "if (mVar15 != 0) {\n        pmVar6 = pmVar17 + (int)str;\n        pmVar17 = pmVar17 + 1;\n        *pmVar6 = mVar15;\n      }" if (parenthesized_expression "(mVar15 != 0)" ( (binary_expression "mVar15 != 0" identifier != number_literal) )) (compound_statement "{\n        pmVar6 = pmVar17 + (int)str;\n        pmVar17 = pmVar17 + 1;\n        *pmVar6 = mVar15;\n      }" { (expression_statement "pmVar6 = pmVar17 + (int)str;" (assignment_expression "pmVar6 = pmVar17 + (int)str" identifier = (binary_expression "pmVar17 + (int)str" identifier + (cast_expression "(int)str" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pmVar17 = pmVar17 + 1;" (assignment_expression "pmVar17 = pmVar17 + 1" identifier = (binary_expression "pmVar17 + 1" identifier + number_literal)) ;) (expression_statement "*pmVar6 = mVar15;" (assignment_expression "*pmVar6 = mVar15" (pointer_expression "*pmVar6" * identifier) = identifier) ;) })) }) (else_clause "else {\n      pbVar3 = (byte *)((int)pmVar6 + (int)pmStack_4c);\n      uVar22 = (int)pbVar3 * 4;\n      if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        pmVar17 = (mp_limb_t *)(puVar27 + iVar4 + 0x18);\n        puVar27 = puVar27 + iVar4;\n      }\n      else {\n        pmVar17 = (mp_limb_t *)\n                  (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22);\n      }\n      if ((int)pmStack_4c < (int)pmVar6) {\n        *(mp_limb_t **)(puVar27 + 0x10) = pmStack_4c;\n        pmStack_4c = pmStack_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar17,pmStack_50);\n        pmStack_3c = pmVar6;\n      }\n      else {\n        *(mp_limb_t **)(puVar27 + 0x10) = pmVar6;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar17,pmStack_3c);\n        pmStack_3c = pmStack_4c;\n        pmStack_4c = pmStack_50;\n      }\n      pmVar8 = (mp_limb_t *)(pbVar3 + -(uint)(pmVar17[(int)(pbVar3 + -1)] == 0));\n      pbVar3 = (byte *)((int)pmVar8 + iVar23 + iStack_54);\n      if ((int)str < (int)pmVar8) {\n        pmVar17 = pmVar17 + ((int)pmVar8 - (int)str);\n        pmVar8 = (mp_limb_t *)str;\n      }\n    }" else (compound_statement "{\n      pbVar3 = (byte *)((int)pmVar6 + (int)pmStack_4c);\n      uVar22 = (int)pbVar3 * 4;\n      if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        pmVar17 = (mp_limb_t *)(puVar27 + iVar4 + 0x18);\n        puVar27 = puVar27 + iVar4;\n      }\n      else {\n        pmVar17 = (mp_limb_t *)\n                  (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22);\n      }\n      if ((int)pmStack_4c < (int)pmVar6) {\n        *(mp_limb_t **)(puVar27 + 0x10) = pmStack_4c;\n        pmStack_4c = pmStack_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar17,pmStack_50);\n        pmStack_3c = pmVar6;\n      }\n      else {\n        *(mp_limb_t **)(puVar27 + 0x10) = pmVar6;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar17,pmStack_3c);\n        pmStack_3c = pmStack_4c;\n        pmStack_4c = pmStack_50;\n      }\n      pmVar8 = (mp_limb_t *)(pbVar3 + -(uint)(pmVar17[(int)(pbVar3 + -1)] == 0));\n      pbVar3 = (byte *)((int)pmVar8 + iVar23 + iStack_54);\n      if ((int)str < (int)pmVar8) {\n        pmVar17 = pmVar17 + ((int)pmVar8 - (int)str);\n        pmVar8 = (mp_limb_t *)str;\n      }\n    }" { (expression_statement "pbVar3 = (byte *)((int)pmVar6 + (int)pmStack_4c);" (assignment_expression "pbVar3 = (byte *)((int)pmVar6 + (int)pmStack_4c)" identifier = (cast_expression "(byte *)((int)pmVar6 + (int)pmStack_4c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar6 + (int)pmStack_4c)" ( (binary_expression "(int)pmVar6 + (int)pmStack_4c" (cast_expression "(int)pmVar6" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pmStack_4c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "uVar22 = (int)pbVar3 * 4;" (assignment_expression "uVar22 = (int)pbVar3 * 4" identifier = (binary_expression "(int)pbVar3 * 4" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (if_statement "if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        pmVar17 = (mp_limb_t *)(puVar27 + iVar4 + 0x18);\n        puVar27 = puVar27 + iVar4;\n      }\n      else {\n        pmVar17 = (mp_limb_t *)\n                  (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22);\n      }" if (parenthesized_expression "(uVar22 < 0x7f01)" ( (binary_expression "uVar22 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        pmVar17 = (mp_limb_t *)(puVar27 + iVar4 + 0x18);\n        puVar27 = puVar27 + iVar4;\n      }" { (expression_statement "iVar4 = -(uVar22 + 7 & 0xfffffff8);" (assignment_expression "iVar4 = -(uVar22 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar22 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar22 + 7 & 0xfffffff8)" ( (binary_expression "uVar22 + 7 & 0xfffffff8" (binary_expression "uVar22 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "pmVar17 = (mp_limb_t *)(puVar27 + iVar4 + 0x18);" (assignment_expression "pmVar17 = (mp_limb_t *)(puVar27 + iVar4 + 0x18)" identifier = (cast_expression "(mp_limb_t *)(puVar27 + iVar4 + 0x18)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + iVar4 + 0x18)" ( (binary_expression "puVar27 + iVar4 + 0x18" (binary_expression "puVar27 + iVar4" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar27 = puVar27 + iVar4;" (assignment_expression "puVar27 = puVar27 + iVar4" identifier = (binary_expression "puVar27 + iVar4" identifier + identifier)) ;) }) (else_clause "else {\n        pmVar17 = (mp_limb_t *)\n                  (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22);\n      }" else (compound_statement "{\n        pmVar17 = (mp_limb_t *)\n                  (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22);\n      }" { (expression_statement "pmVar17 = (mp_limb_t *)\n                  (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22);" (assignment_expression "pmVar17 = (mp_limb_t *)\n                  (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22)" identifier = (cast_expression "(mp_limb_t *)\n                  (*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker,uVar22)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&__tmp_marker,uVar22)" ( (pointer_expression "&__tmp_marker" & identifier) , identifier ))))) ;) }))) (if_statement "if ((int)pmStack_4c < (int)pmVar6) {\n        *(mp_limb_t **)(puVar27 + 0x10) = pmStack_4c;\n        pmStack_4c = pmStack_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar17,pmStack_50);\n        pmStack_3c = pmVar6;\n      }\n      else {\n        *(mp_limb_t **)(puVar27 + 0x10) = pmVar6;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar17,pmStack_3c);\n        pmStack_3c = pmStack_4c;\n        pmStack_4c = pmStack_50;\n      }" if (parenthesized_expression "((int)pmStack_4c < (int)pmVar6)" ( (binary_expression "(int)pmStack_4c < (int)pmVar6" (cast_expression "(int)pmStack_4c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pmVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        *(mp_limb_t **)(puVar27 + 0x10) = pmStack_4c;\n        pmStack_4c = pmStack_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar17,pmStack_50);\n        pmStack_3c = pmVar6;\n      }" { (expression_statement "*(mp_limb_t **)(puVar27 + 0x10) = pmStack_4c;" (assignment_expression "*(mp_limb_t **)(puVar27 + 0x10) = pmStack_4c" (pointer_expression "*(mp_limb_t **)(puVar27 + 0x10)" * (cast_expression "(mp_limb_t **)(puVar27 + 0x10)" ( (type_descriptor "mp_limb_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + 0x10)" ( (binary_expression "puVar27 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pmStack_4c = pmStack_3c;" (assignment_expression "pmStack_4c = pmStack_3c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_mul_0009d2b4)(pmVar17,pmStack_50);" (call_expression "(*(code *)PTR___gmpn_mul_0009d2b4)(pmVar17,pmStack_50)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_0009d2b4)" ( (pointer_expression "*(code *)PTR___gmpn_mul_0009d2b4" * (cast_expression "(code *)PTR___gmpn_mul_0009d2b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar17,pmStack_50)" ( identifier , identifier ))) ;) (expression_statement "pmStack_3c = pmVar6;" (assignment_expression "pmStack_3c = pmVar6" identifier = identifier) ;) }) (else_clause "else {\n        *(mp_limb_t **)(puVar27 + 0x10) = pmVar6;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar17,pmStack_3c);\n        pmStack_3c = pmStack_4c;\n        pmStack_4c = pmStack_50;\n      }" else (compound_statement "{\n        *(mp_limb_t **)(puVar27 + 0x10) = pmVar6;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(pmVar17,pmStack_3c);\n        pmStack_3c = pmStack_4c;\n        pmStack_4c = pmStack_50;\n      }" { (expression_statement "*(mp_limb_t **)(puVar27 + 0x10) = pmVar6;" (assignment_expression "*(mp_limb_t **)(puVar27 + 0x10) = pmVar6" (pointer_expression "*(mp_limb_t **)(puVar27 + 0x10)" * (cast_expression "(mp_limb_t **)(puVar27 + 0x10)" ( (type_descriptor "mp_limb_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + 0x10)" ( (binary_expression "puVar27 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_mul_0009d2b4)(pmVar17,pmStack_3c);" (call_expression "(*(code *)PTR___gmpn_mul_0009d2b4)(pmVar17,pmStack_3c)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_0009d2b4)" ( (pointer_expression "*(code *)PTR___gmpn_mul_0009d2b4" * (cast_expression "(code *)PTR___gmpn_mul_0009d2b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar17,pmStack_3c)" ( identifier , identifier ))) ;) (expression_statement "pmStack_3c = pmStack_4c;" (assignment_expression "pmStack_3c = pmStack_4c" identifier = identifier) ;) (expression_statement "pmStack_4c = pmStack_50;" (assignment_expression "pmStack_4c = pmStack_50" identifier = identifier) ;) }))) (expression_statement "pmVar8 = (mp_limb_t *)(pbVar3 + -(uint)(pmVar17[(int)(pbVar3 + -1)] == 0));" (assignment_expression "pmVar8 = (mp_limb_t *)(pbVar3 + -(uint)(pmVar17[(int)(pbVar3 + -1)] == 0))" identifier = (cast_expression "(mp_limb_t *)(pbVar3 + -(uint)(pmVar17[(int)(pbVar3 + -1)] == 0))" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + -(uint)(pmVar17[(int)(pbVar3 + -1)] == 0))" ( (binary_expression "pbVar3 + -(uint)(pmVar17[(int)(pbVar3 + -1)] == 0)" identifier + (unary_expression "-(uint)(pmVar17[(int)(pbVar3 + -1)] == 0)" - (call_expression "(uint)(pmVar17[(int)(pbVar3 + -1)] == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pmVar17[(int)(pbVar3 + -1)] == 0)" ( (binary_expression "pmVar17[(int)(pbVar3 + -1)] == 0" (subscript_expression "pmVar17[(int)(pbVar3 + -1)]" identifier [ (cast_expression "(int)(pbVar3 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar3 + -1)" ( (binary_expression "pbVar3 + -1" identifier + number_literal) ))) ]) == number_literal) ))))) )))) ;) (expression_statement "pbVar3 = (byte *)((int)pmVar8 + iVar23 + iStack_54);" (assignment_expression "pbVar3 = (byte *)((int)pmVar8 + iVar23 + iStack_54)" identifier = (cast_expression "(byte *)((int)pmVar8 + iVar23 + iStack_54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar8 + iVar23 + iStack_54)" ( (binary_expression "(int)pmVar8 + iVar23 + iStack_54" (binary_expression "(int)pmVar8 + iVar23" (cast_expression "(int)pmVar8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) )))) ;) (if_statement "if ((int)str < (int)pmVar8) {\n        pmVar17 = pmVar17 + ((int)pmVar8 - (int)str);\n        pmVar8 = (mp_limb_t *)str;\n      }" if (parenthesized_expression "((int)str < (int)pmVar8)" ( (binary_expression "(int)str < (int)pmVar8" (cast_expression "(int)str" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pmVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        pmVar17 = pmVar17 + ((int)pmVar8 - (int)str);\n        pmVar8 = (mp_limb_t *)str;\n      }" { (expression_statement "pmVar17 = pmVar17 + ((int)pmVar8 - (int)str);" (assignment_expression "pmVar17 = pmVar17 + ((int)pmVar8 - (int)str)" identifier = (binary_expression "pmVar17 + ((int)pmVar8 - (int)str)" identifier + (parenthesized_expression "((int)pmVar8 - (int)str)" ( (binary_expression "(int)pmVar8 - (int)str" (cast_expression "(int)pmVar8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)str" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pmVar8 = (mp_limb_t *)str;" (assignment_expression "pmVar8 = (mp_limb_t *)str" identifier = (cast_expression "(mp_limb_t *)str" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) }))) (if_statement "if (pmVar8 != (mp_limb_t *)0x0) {\n      pbVar12 = (byte *)((int)pmVar8 + -1);\n      mVar15 = *pmVar17;\n      pmStack_3c = x->_mp_d;\n      pmVar6 = pmStack_3c;\n      if (pbVar12 != (byte *)0x0) {\n        do {\n          pmVar17 = pmVar17 + 1;\n          *pmVar6 = mVar15;\n          pbVar12 = pbVar12 + -1;\n          mVar15 = *pmVar17;\n          pmVar6 = pmVar6 + 1;\n        } while (pbVar12 != (byte *)0x0);\n        pmStack_3c = pmStack_3c + (int)((int)pmVar8 + -1);\n      }\n      *pmStack_3c = mVar15;\n    }" if (parenthesized_expression "(pmVar8 != (mp_limb_t *)0x0)" ( (binary_expression "pmVar8 != (mp_limb_t *)0x0" identifier != (cast_expression "(mp_limb_t *)0x0" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbVar12 = (byte *)((int)pmVar8 + -1);\n      mVar15 = *pmVar17;\n      pmStack_3c = x->_mp_d;\n      pmVar6 = pmStack_3c;\n      if (pbVar12 != (byte *)0x0) {\n        do {\n          pmVar17 = pmVar17 + 1;\n          *pmVar6 = mVar15;\n          pbVar12 = pbVar12 + -1;\n          mVar15 = *pmVar17;\n          pmVar6 = pmVar6 + 1;\n        } while (pbVar12 != (byte *)0x0);\n        pmStack_3c = pmStack_3c + (int)((int)pmVar8 + -1);\n      }\n      *pmStack_3c = mVar15;\n    }" { (expression_statement "pbVar12 = (byte *)((int)pmVar8 + -1);" (assignment_expression "pbVar12 = (byte *)((int)pmVar8 + -1)" identifier = (cast_expression "(byte *)((int)pmVar8 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar8 + -1)" ( (binary_expression "(int)pmVar8 + -1" (cast_expression "(int)pmVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "mVar15 = *pmVar17;" (assignment_expression "mVar15 = *pmVar17" identifier = (pointer_expression "*pmVar17" * identifier)) ;) (expression_statement "pmStack_3c = x->_mp_d;" (assignment_expression "pmStack_3c = x->_mp_d" identifier = (field_expression "x->_mp_d" identifier -> field_identifier)) ;) (expression_statement "pmVar6 = pmStack_3c;" (assignment_expression "pmVar6 = pmStack_3c" identifier = identifier) ;) (if_statement "if (pbVar12 != (byte *)0x0) {\n        do {\n          pmVar17 = pmVar17 + 1;\n          *pmVar6 = mVar15;\n          pbVar12 = pbVar12 + -1;\n          mVar15 = *pmVar17;\n          pmVar6 = pmVar6 + 1;\n        } while (pbVar12 != (byte *)0x0);\n        pmStack_3c = pmStack_3c + (int)((int)pmVar8 + -1);\n      }" if (parenthesized_expression "(pbVar12 != (byte *)0x0)" ( (binary_expression "pbVar12 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        do {\n          pmVar17 = pmVar17 + 1;\n          *pmVar6 = mVar15;\n          pbVar12 = pbVar12 + -1;\n          mVar15 = *pmVar17;\n          pmVar6 = pmVar6 + 1;\n        } while (pbVar12 != (byte *)0x0);\n        pmStack_3c = pmStack_3c + (int)((int)pmVar8 + -1);\n      }" { (do_statement "do {\n          pmVar17 = pmVar17 + 1;\n          *pmVar6 = mVar15;\n          pbVar12 = pbVar12 + -1;\n          mVar15 = *pmVar17;\n          pmVar6 = pmVar6 + 1;\n        } while (pbVar12 != (byte *)0x0);" do (compound_statement "{\n          pmVar17 = pmVar17 + 1;\n          *pmVar6 = mVar15;\n          pbVar12 = pbVar12 + -1;\n          mVar15 = *pmVar17;\n          pmVar6 = pmVar6 + 1;\n        }" { (expression_statement "pmVar17 = pmVar17 + 1;" (assignment_expression "pmVar17 = pmVar17 + 1" identifier = (binary_expression "pmVar17 + 1" identifier + number_literal)) ;) (expression_statement "*pmVar6 = mVar15;" (assignment_expression "*pmVar6 = mVar15" (pointer_expression "*pmVar6" * identifier) = identifier) ;) (expression_statement "pbVar12 = pbVar12 + -1;" (assignment_expression "pbVar12 = pbVar12 + -1" identifier = (binary_expression "pbVar12 + -1" identifier + number_literal)) ;) (expression_statement "mVar15 = *pmVar17;" (assignment_expression "mVar15 = *pmVar17" identifier = (pointer_expression "*pmVar17" * identifier)) ;) (expression_statement "pmVar6 = pmVar6 + 1;" (assignment_expression "pmVar6 = pmVar6 + 1" identifier = (binary_expression "pmVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar12 != (byte *)0x0)" ( (binary_expression "pbVar12 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pmStack_3c = pmStack_3c + (int)((int)pmVar8 + -1);" (assignment_expression "pmStack_3c = pmStack_3c + (int)((int)pmVar8 + -1)" identifier = (binary_expression "pmStack_3c + (int)((int)pmVar8 + -1)" identifier + (cast_expression "(int)((int)pmVar8 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pmVar8 + -1)" ( (binary_expression "(int)pmVar8 + -1" (cast_expression "(int)pmVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) })) (expression_statement "*pmStack_3c = mVar15;" (assignment_expression "*pmStack_3c = mVar15" (pointer_expression "*pmStack_3c" * identifier) = identifier) ;) })) (if_statement "if (bVar1) {\n      pmVar8 = (mp_limb_t *)-(int)pmVar8;\n    }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n      pmVar8 = (mp_limb_t *)-(int)pmVar8;\n    }" { (expression_statement "pmVar8 = (mp_limb_t *)-(int)pmVar8;" (assignment_expression "pmVar8 = (mp_limb_t *)-(int)pmVar8" identifier = (cast_expression "(mp_limb_t *)-(int)pmVar8" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pmVar8" - (cast_expression "(int)pmVar8" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "x->_mp_size = (int)pmVar8;" (assignment_expression "x->_mp_size = (int)pmVar8" (field_expression "x->_mp_size" identifier -> field_identifier) = (cast_expression "(int)pmVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "x->_mp_exp = (mp_exp_t)pbVar3;" (assignment_expression "x->_mp_exp = (mp_exp_t)pbVar3" (field_expression "x->_mp_exp" identifier -> field_identifier) = (cast_expression "(mp_exp_t)pbVar3" ( (type_descriptor "mp_exp_t" type_identifier) ) identifier)) ;) (expression_statement "pmVar17 = pmStack_3c;" (assignment_expression "pmVar17 = pmStack_3c" identifier = identifier) ;) (expression_statement "in_a3 = pmStack_4c;" (assignment_expression "in_a3 = pmStack_4c" identifier = identifier) ;) (expression_statement "str = (char *)pmVar8;" (assignment_expression "str = (char *)pmVar8" identifier = (cast_expression "(char *)pmVar8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (__tmp_marker == (tmp_reentrant_t *)0x0) {\n      iVar7 = 0;\n      goto LAB_00018714;\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      iVar7 = 0;\n      goto LAB_00018714;\n    }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00018714;" goto statement_identifier ;) })) }) (else_clause "else {\n    iStack_54 = 0;\n    pmStack_4c = pmVar6;\n    if (pbVar12 != (byte *)0x0) goto LAB_000185a0;\nLAB_000187d0:\n    if (pbVar24 != (byte *)0x0) {\n      pbStack_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }\nLAB_000187e0:\n    if (pmStack_4c != (mp_limb_t *)0x0) {\n      pbVar3 = (byte *)((int)pmStack_4c + -1);\n      pmVar17 = x->_mp_d;\n      mVar15 = *pmStack_3c;\n      pmVar8 = pmVar17;\n      if (pbVar3 != (byte *)0x0) {\n        do {\n          pmStack_3c = pmStack_3c + 1;\n          *pmVar8 = mVar15;\n          pbVar3 = pbVar3 + -1;\n          mVar15 = *pmStack_3c;\n          pmVar8 = pmVar8 + 1;\n        } while (pbVar3 != (byte *)0x0);\n        pmVar17 = pmVar17 + (int)((int)pmStack_4c + -1);\n      }\n      *pmVar17 = mVar15;\n    }\n    if (bVar1) {\n      pmStack_4c = (mp_limb_t *)-(int)pmStack_4c;\n    }\n    x->_mp_size = (int)pmStack_4c;\n    x->_mp_exp = (mp_exp_t)pmVar6;\n    if (__tmp_marker == (tmp_reentrant_t *)0x0) goto LAB_000187ac;\n  }" else (compound_statement "{\n    iStack_54 = 0;\n    pmStack_4c = pmVar6;\n    if (pbVar12 != (byte *)0x0) goto LAB_000185a0;\nLAB_000187d0:\n    if (pbVar24 != (byte *)0x0) {\n      pbStack_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }\nLAB_000187e0:\n    if (pmStack_4c != (mp_limb_t *)0x0) {\n      pbVar3 = (byte *)((int)pmStack_4c + -1);\n      pmVar17 = x->_mp_d;\n      mVar15 = *pmStack_3c;\n      pmVar8 = pmVar17;\n      if (pbVar3 != (byte *)0x0) {\n        do {\n          pmStack_3c = pmStack_3c + 1;\n          *pmVar8 = mVar15;\n          pbVar3 = pbVar3 + -1;\n          mVar15 = *pmStack_3c;\n          pmVar8 = pmVar8 + 1;\n        } while (pbVar3 != (byte *)0x0);\n        pmVar17 = pmVar17 + (int)((int)pmStack_4c + -1);\n      }\n      *pmVar17 = mVar15;\n    }\n    if (bVar1) {\n      pmStack_4c = (mp_limb_t *)-(int)pmStack_4c;\n    }\n    x->_mp_size = (int)pmStack_4c;\n    x->_mp_exp = (mp_exp_t)pmVar6;\n    if (__tmp_marker == (tmp_reentrant_t *)0x0) goto LAB_000187ac;\n  }" { (expression_statement "iStack_54 = 0;" (assignment_expression "iStack_54 = 0" identifier = number_literal) ;) (expression_statement "pmStack_4c = pmVar6;" (assignment_expression "pmStack_4c = pmVar6" identifier = identifier) ;) (if_statement "if (pbVar12 != (byte *)0x0) goto LAB_000185a0;" if (parenthesized_expression "(pbVar12 != (byte *)0x0)" ( (binary_expression "pbVar12 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000185a0;" goto statement_identifier ;)) (labeled_statement "LAB_000187d0:\n    if (pbVar24 != (byte *)0x0) {\n      pbStack_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }" statement_identifier : (if_statement "if (pbVar24 != (byte *)0x0) {\n      pbStack_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }" if (parenthesized_expression "(pbVar24 != (byte *)0x0)" ( (binary_expression "pbVar24 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbStack_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }" { (expression_statement "pbStack_44 = (byte *)0x0;" (assignment_expression "pbStack_44 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00018628;" goto statement_identifier ;) }))) (labeled_statement "LAB_000187e0:\n    if (pmStack_4c != (mp_limb_t *)0x0) {\n      pbVar3 = (byte *)((int)pmStack_4c + -1);\n      pmVar17 = x->_mp_d;\n      mVar15 = *pmStack_3c;\n      pmVar8 = pmVar17;\n      if (pbVar3 != (byte *)0x0) {\n        do {\n          pmStack_3c = pmStack_3c + 1;\n          *pmVar8 = mVar15;\n          pbVar3 = pbVar3 + -1;\n          mVar15 = *pmStack_3c;\n          pmVar8 = pmVar8 + 1;\n        } while (pbVar3 != (byte *)0x0);\n        pmVar17 = pmVar17 + (int)((int)pmStack_4c + -1);\n      }\n      *pmVar17 = mVar15;\n    }" statement_identifier : (if_statement "if (pmStack_4c != (mp_limb_t *)0x0) {\n      pbVar3 = (byte *)((int)pmStack_4c + -1);\n      pmVar17 = x->_mp_d;\n      mVar15 = *pmStack_3c;\n      pmVar8 = pmVar17;\n      if (pbVar3 != (byte *)0x0) {\n        do {\n          pmStack_3c = pmStack_3c + 1;\n          *pmVar8 = mVar15;\n          pbVar3 = pbVar3 + -1;\n          mVar15 = *pmStack_3c;\n          pmVar8 = pmVar8 + 1;\n        } while (pbVar3 != (byte *)0x0);\n        pmVar17 = pmVar17 + (int)((int)pmStack_4c + -1);\n      }\n      *pmVar17 = mVar15;\n    }" if (parenthesized_expression "(pmStack_4c != (mp_limb_t *)0x0)" ( (binary_expression "pmStack_4c != (mp_limb_t *)0x0" identifier != (cast_expression "(mp_limb_t *)0x0" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbVar3 = (byte *)((int)pmStack_4c + -1);\n      pmVar17 = x->_mp_d;\n      mVar15 = *pmStack_3c;\n      pmVar8 = pmVar17;\n      if (pbVar3 != (byte *)0x0) {\n        do {\n          pmStack_3c = pmStack_3c + 1;\n          *pmVar8 = mVar15;\n          pbVar3 = pbVar3 + -1;\n          mVar15 = *pmStack_3c;\n          pmVar8 = pmVar8 + 1;\n        } while (pbVar3 != (byte *)0x0);\n        pmVar17 = pmVar17 + (int)((int)pmStack_4c + -1);\n      }\n      *pmVar17 = mVar15;\n    }" { (expression_statement "pbVar3 = (byte *)((int)pmStack_4c + -1);" (assignment_expression "pbVar3 = (byte *)((int)pmStack_4c + -1)" identifier = (cast_expression "(byte *)((int)pmStack_4c + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmStack_4c + -1)" ( (binary_expression "(int)pmStack_4c + -1" (cast_expression "(int)pmStack_4c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pmVar17 = x->_mp_d;" (assignment_expression "pmVar17 = x->_mp_d" identifier = (field_expression "x->_mp_d" identifier -> field_identifier)) ;) (expression_statement "mVar15 = *pmStack_3c;" (assignment_expression "mVar15 = *pmStack_3c" identifier = (pointer_expression "*pmStack_3c" * identifier)) ;) (expression_statement "pmVar8 = pmVar17;" (assignment_expression "pmVar8 = pmVar17" identifier = identifier) ;) (if_statement "if (pbVar3 != (byte *)0x0) {\n        do {\n          pmStack_3c = pmStack_3c + 1;\n          *pmVar8 = mVar15;\n          pbVar3 = pbVar3 + -1;\n          mVar15 = *pmStack_3c;\n          pmVar8 = pmVar8 + 1;\n        } while (pbVar3 != (byte *)0x0);\n        pmVar17 = pmVar17 + (int)((int)pmStack_4c + -1);\n      }" if (parenthesized_expression "(pbVar3 != (byte *)0x0)" ( (binary_expression "pbVar3 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        do {\n          pmStack_3c = pmStack_3c + 1;\n          *pmVar8 = mVar15;\n          pbVar3 = pbVar3 + -1;\n          mVar15 = *pmStack_3c;\n          pmVar8 = pmVar8 + 1;\n        } while (pbVar3 != (byte *)0x0);\n        pmVar17 = pmVar17 + (int)((int)pmStack_4c + -1);\n      }" { (do_statement "do {\n          pmStack_3c = pmStack_3c + 1;\n          *pmVar8 = mVar15;\n          pbVar3 = pbVar3 + -1;\n          mVar15 = *pmStack_3c;\n          pmVar8 = pmVar8 + 1;\n        } while (pbVar3 != (byte *)0x0);" do (compound_statement "{\n          pmStack_3c = pmStack_3c + 1;\n          *pmVar8 = mVar15;\n          pbVar3 = pbVar3 + -1;\n          mVar15 = *pmStack_3c;\n          pmVar8 = pmVar8 + 1;\n        }" { (expression_statement "pmStack_3c = pmStack_3c + 1;" (assignment_expression "pmStack_3c = pmStack_3c + 1" identifier = (binary_expression "pmStack_3c + 1" identifier + number_literal)) ;) (expression_statement "*pmVar8 = mVar15;" (assignment_expression "*pmVar8 = mVar15" (pointer_expression "*pmVar8" * identifier) = identifier) ;) (expression_statement "pbVar3 = pbVar3 + -1;" (assignment_expression "pbVar3 = pbVar3 + -1" identifier = (binary_expression "pbVar3 + -1" identifier + number_literal)) ;) (expression_statement "mVar15 = *pmStack_3c;" (assignment_expression "mVar15 = *pmStack_3c" identifier = (pointer_expression "*pmStack_3c" * identifier)) ;) (expression_statement "pmVar8 = pmVar8 + 1;" (assignment_expression "pmVar8 = pmVar8 + 1" identifier = (binary_expression "pmVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar3 != (byte *)0x0)" ( (binary_expression "pbVar3 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pmVar17 = pmVar17 + (int)((int)pmStack_4c + -1);" (assignment_expression "pmVar17 = pmVar17 + (int)((int)pmStack_4c + -1)" identifier = (binary_expression "pmVar17 + (int)((int)pmStack_4c + -1)" identifier + (cast_expression "(int)((int)pmStack_4c + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pmStack_4c + -1)" ( (binary_expression "(int)pmStack_4c + -1" (cast_expression "(int)pmStack_4c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) })) (expression_statement "*pmVar17 = mVar15;" (assignment_expression "*pmVar17 = mVar15" (pointer_expression "*pmVar17" * identifier) = identifier) ;) }))) (if_statement "if (bVar1) {\n      pmStack_4c = (mp_limb_t *)-(int)pmStack_4c;\n    }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n      pmStack_4c = (mp_limb_t *)-(int)pmStack_4c;\n    }" { (expression_statement "pmStack_4c = (mp_limb_t *)-(int)pmStack_4c;" (assignment_expression "pmStack_4c = (mp_limb_t *)-(int)pmStack_4c" identifier = (cast_expression "(mp_limb_t *)-(int)pmStack_4c" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pmStack_4c" - (cast_expression "(int)pmStack_4c" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "x->_mp_size = (int)pmStack_4c;" (assignment_expression "x->_mp_size = (int)pmStack_4c" (field_expression "x->_mp_size" identifier -> field_identifier) = (cast_expression "(int)pmStack_4c" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "x->_mp_exp = (mp_exp_t)pmVar6;" (assignment_expression "x->_mp_exp = (mp_exp_t)pmVar6" (field_expression "x->_mp_exp" identifier -> field_identifier) = (cast_expression "(mp_exp_t)pmVar6" ( (type_descriptor "mp_exp_t" type_identifier) ) identifier)) ;) (if_statement "if (__tmp_marker == (tmp_reentrant_t *)0x0) goto LAB_000187ac;" 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)) )) (goto_statement "goto LAB_000187ac;" goto statement_identifier ;)) }))) (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_0009d618" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_0009d618" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00018714:\n  if (iStack_2c == *(int *)puVar25) {\n    return iVar7;\n  }" statement_identifier : (if_statement "if (iStack_2c == *(int *)puVar25) {\n    return iVar7;\n  }" if (parenthesized_expression "(iStack_2c == *(int *)puVar25)" ( (binary_expression "iStack_2c == *(int *)puVar25" identifier == (pointer_expression "*(int *)puVar25" * (cast_expression "(int *)puVar25" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return iVar7;\n  }" { (return_statement "return iVar7;" return identifier ;) }))) (expression_statement "pcVar28 = __gmpf_set_d;" (assignment_expression "pcVar28 = __gmpf_set_d" identifier = identifier) ;) (expression_statement "iVar4 = iStack_2c;" (assignment_expression "iVar4 = iStack_2c" identifier = identifier) ;) (expression_statement "puVar25 = PTR___stack_chk_fail_0009d4d0;" (assignment_expression "puVar25 = PTR___stack_chk_fail_0009d4d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0009d4d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0009d4d0" * (cast_expression "(code *)PTR___stack_chk_fail_0009d4d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "*(mp_limb_t **)(puVar27 + 8) = pmVar17;" (assignment_expression "*(mp_limb_t **)(puVar27 + 8) = pmVar17" (pointer_expression "*(mp_limb_t **)(puVar27 + 8)" * (cast_expression "(mp_limb_t **)(puVar27 + 8)" ( (type_descriptor "mp_limb_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + 8)" ( (binary_expression "puVar27 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar27 + -0x18) = puVar25 + 0x8c170;" (assignment_expression "*(undefined **)(puVar27 + -0x18) = puVar25 + 0x8c170" (pointer_expression "*(undefined **)(puVar27 + -0x18)" * (cast_expression "(undefined **)(puVar27 + -0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x18)" ( (binary_expression "puVar27 + -0x18" identifier + number_literal) )))) = (binary_expression "puVar25 + 0x8c170" identifier + number_literal)) ;) (expression_statement "*(code **)(puVar27 + -4) = pcVar28;" (assignment_expression "*(code **)(puVar27 + -4) = pcVar28" (pointer_expression "*(code **)(puVar27 + -4)" * (cast_expression "(code **)(puVar27 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -4)" ( (binary_expression "puVar27 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar27 + -8) = str;" (assignment_expression "*(char **)(puVar27 + -8) = str" (pointer_expression "*(char **)(puVar27 + -8)" * (cast_expression "(char **)(puVar27 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -8)" ( (binary_expression "puVar27 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mp_limb_t **)(puVar27 + 0xc) = in_a3;" (assignment_expression "*(mp_limb_t **)(puVar27 + 0xc) = in_a3" (pointer_expression "*(mp_limb_t **)(puVar27 + 0xc)" * (cast_expression "(mp_limb_t **)(puVar27 + 0xc)" ( (type_descriptor "mp_limb_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + 0xc)" ( (binary_expression "puVar27 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar22 = *(uint *)(puVar27 + 8) & 0x7ff00000;" (assignment_expression "uVar22 = *(uint *)(puVar27 + 8) & 0x7ff00000" identifier = (binary_expression "*(uint *)(puVar27 + 8) & 0x7ff00000" (pointer_expression "*(uint *)(puVar27 + 8)" * (cast_expression "(uint *)(puVar27 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + 8)" ( (binary_expression "puVar27 + 8" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (uVar22 == 0x7ff00000) {\n    uVar22 = (**(code **)(puVar25 + 0x8468c))();\n  }\n  else if ((double)CONCAT44(pmVar17,in_a3) != 0.0) {\n    if (0.0 <= (double)CONCAT44(pmVar17,in_a3)) {\n      *(ulonglong *)(puVar27 + -0x10) = CONCAT44(pmVar17,in_a3);\n    }\n    else {\n      *(uint *)(puVar27 + -0x10) = *(uint *)(puVar27 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar27 + -0xc) = *(undefined4 *)(puVar27 + 0xc);\n    }\n    pcVar28 = *(code **)(puVar25 + 0x84254);\n    uVar11 = 0xfffffffd;\n    if (0.0 <= (double)CONCAT44(pmVar17,in_a3)) {\n      uVar11 = 3;\n    }\n    *(undefined4 *)(iVar4 + 4) = uVar11;\n    iVar19 = (*pcVar28)(*(undefined4 *)(iVar4 + 0xc));\n    *(int *)(iVar4 + 8) = iVar19;\n    return iVar19;\n  }" if (parenthesized_expression "(uVar22 == 0x7ff00000)" ( (binary_expression "uVar22 == 0x7ff00000" identifier == number_literal) )) (compound_statement "{\n    uVar22 = (**(code **)(puVar25 + 0x8468c))();\n  }" { (expression_statement "uVar22 = (**(code **)(puVar25 + 0x8468c))();" (assignment_expression "uVar22 = (**(code **)(puVar25 + 0x8468c))()" identifier = (call_expression "(**(code **)(puVar25 + 0x8468c))()" (parenthesized_expression "(**(code **)(puVar25 + 0x8468c))" ( (pointer_expression "**(code **)(puVar25 + 0x8468c)" * (pointer_expression "*(code **)(puVar25 + 0x8468c)" * (cast_expression "(code **)(puVar25 + 0x8468c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x8468c)" ( (binary_expression "puVar25 + 0x8468c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else if ((double)CONCAT44(pmVar17,in_a3) != 0.0) {\n    if (0.0 <= (double)CONCAT44(pmVar17,in_a3)) {\n      *(ulonglong *)(puVar27 + -0x10) = CONCAT44(pmVar17,in_a3);\n    }\n    else {\n      *(uint *)(puVar27 + -0x10) = *(uint *)(puVar27 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar27 + -0xc) = *(undefined4 *)(puVar27 + 0xc);\n    }\n    pcVar28 = *(code **)(puVar25 + 0x84254);\n    uVar11 = 0xfffffffd;\n    if (0.0 <= (double)CONCAT44(pmVar17,in_a3)) {\n      uVar11 = 3;\n    }\n    *(undefined4 *)(iVar4 + 4) = uVar11;\n    iVar19 = (*pcVar28)(*(undefined4 *)(iVar4 + 0xc));\n    *(int *)(iVar4 + 8) = iVar19;\n    return iVar19;\n  }" else (if_statement "if ((double)CONCAT44(pmVar17,in_a3) != 0.0) {\n    if (0.0 <= (double)CONCAT44(pmVar17,in_a3)) {\n      *(ulonglong *)(puVar27 + -0x10) = CONCAT44(pmVar17,in_a3);\n    }\n    else {\n      *(uint *)(puVar27 + -0x10) = *(uint *)(puVar27 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar27 + -0xc) = *(undefined4 *)(puVar27 + 0xc);\n    }\n    pcVar28 = *(code **)(puVar25 + 0x84254);\n    uVar11 = 0xfffffffd;\n    if (0.0 <= (double)CONCAT44(pmVar17,in_a3)) {\n      uVar11 = 3;\n    }\n    *(undefined4 *)(iVar4 + 4) = uVar11;\n    iVar19 = (*pcVar28)(*(undefined4 *)(iVar4 + 0xc));\n    *(int *)(iVar4 + 8) = iVar19;\n    return iVar19;\n  }" if (parenthesized_expression "((double)CONCAT44(pmVar17,in_a3) != 0.0)" ( (binary_expression "(double)CONCAT44(pmVar17,in_a3) != 0.0" (cast_expression "(double)CONCAT44(pmVar17,in_a3)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(pmVar17,in_a3)" identifier (argument_list "(pmVar17,in_a3)" ( identifier , identifier )))) != number_literal) )) (compound_statement "{\n    if (0.0 <= (double)CONCAT44(pmVar17,in_a3)) {\n      *(ulonglong *)(puVar27 + -0x10) = CONCAT44(pmVar17,in_a3);\n    }\n    else {\n      *(uint *)(puVar27 + -0x10) = *(uint *)(puVar27 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar27 + -0xc) = *(undefined4 *)(puVar27 + 0xc);\n    }\n    pcVar28 = *(code **)(puVar25 + 0x84254);\n    uVar11 = 0xfffffffd;\n    if (0.0 <= (double)CONCAT44(pmVar17,in_a3)) {\n      uVar11 = 3;\n    }\n    *(undefined4 *)(iVar4 + 4) = uVar11;\n    iVar19 = (*pcVar28)(*(undefined4 *)(iVar4 + 0xc));\n    *(int *)(iVar4 + 8) = iVar19;\n    return iVar19;\n  }" { (if_statement "if (0.0 <= (double)CONCAT44(pmVar17,in_a3)) {\n      *(ulonglong *)(puVar27 + -0x10) = CONCAT44(pmVar17,in_a3);\n    }\n    else {\n      *(uint *)(puVar27 + -0x10) = *(uint *)(puVar27 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar27 + -0xc) = *(undefined4 *)(puVar27 + 0xc);\n    }" if (parenthesized_expression "(0.0 <= (double)CONCAT44(pmVar17,in_a3))" ( (binary_expression "0.0 <= (double)CONCAT44(pmVar17,in_a3)" number_literal <= (cast_expression "(double)CONCAT44(pmVar17,in_a3)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(pmVar17,in_a3)" identifier (argument_list "(pmVar17,in_a3)" ( identifier , identifier ))))) )) (compound_statement "{\n      *(ulonglong *)(puVar27 + -0x10) = CONCAT44(pmVar17,in_a3);\n    }" { (expression_statement "*(ulonglong *)(puVar27 + -0x10) = CONCAT44(pmVar17,in_a3);" (assignment_expression "*(ulonglong *)(puVar27 + -0x10) = CONCAT44(pmVar17,in_a3)" (pointer_expression "*(ulonglong *)(puVar27 + -0x10)" * (cast_expression "(ulonglong *)(puVar27 + -0x10)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x10)" ( (binary_expression "puVar27 + -0x10" identifier + number_literal) )))) = (call_expression "CONCAT44(pmVar17,in_a3)" identifier (argument_list "(pmVar17,in_a3)" ( identifier , identifier )))) ;) }) (else_clause "else {\n      *(uint *)(puVar27 + -0x10) = *(uint *)(puVar27 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar27 + -0xc) = *(undefined4 *)(puVar27 + 0xc);\n    }" else (compound_statement "{\n      *(uint *)(puVar27 + -0x10) = *(uint *)(puVar27 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar27 + -0xc) = *(undefined4 *)(puVar27 + 0xc);\n    }" { (expression_statement "*(uint *)(puVar27 + -0x10) = *(uint *)(puVar27 + 8) ^ 0x80000000;" (assignment_expression "*(uint *)(puVar27 + -0x10) = *(uint *)(puVar27 + 8) ^ 0x80000000" (pointer_expression "*(uint *)(puVar27 + -0x10)" * (cast_expression "(uint *)(puVar27 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x10)" ( (binary_expression "puVar27 + -0x10" identifier + number_literal) )))) = (binary_expression "*(uint *)(puVar27 + 8) ^ 0x80000000" (pointer_expression "*(uint *)(puVar27 + 8)" * (cast_expression "(uint *)(puVar27 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + 8)" ( (binary_expression "puVar27 + 8" identifier + number_literal) )))) ^ number_literal)) ;) (expression_statement "*(undefined4 *)(puVar27 + -0xc) = *(undefined4 *)(puVar27 + 0xc);" (assignment_expression "*(undefined4 *)(puVar27 + -0xc) = *(undefined4 *)(puVar27 + 0xc)" (pointer_expression "*(undefined4 *)(puVar27 + -0xc)" * (cast_expression "(undefined4 *)(puVar27 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0xc)" ( (binary_expression "puVar27 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar27 + 0xc)" * (cast_expression "(undefined4 *)(puVar27 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + 0xc)" ( (binary_expression "puVar27 + 0xc" identifier + number_literal) ))))) ;) }))) (expression_statement "pcVar28 = *(code **)(puVar25 + 0x84254);" (assignment_expression "pcVar28 = *(code **)(puVar25 + 0x84254)" identifier = (pointer_expression "*(code **)(puVar25 + 0x84254)" * (cast_expression "(code **)(puVar25 + 0x84254)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x84254)" ( (binary_expression "puVar25 + 0x84254" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = 0xfffffffd;" (assignment_expression "uVar11 = 0xfffffffd" identifier = number_literal) ;) (if_statement "if (0.0 <= (double)CONCAT44(pmVar17,in_a3)) {\n      uVar11 = 3;\n    }" if (parenthesized_expression "(0.0 <= (double)CONCAT44(pmVar17,in_a3))" ( (binary_expression "0.0 <= (double)CONCAT44(pmVar17,in_a3)" number_literal <= (cast_expression "(double)CONCAT44(pmVar17,in_a3)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(pmVar17,in_a3)" identifier (argument_list "(pmVar17,in_a3)" ( identifier , identifier ))))) )) (compound_statement "{\n      uVar11 = 3;\n    }" { (expression_statement "uVar11 = 3;" (assignment_expression "uVar11 = 3" identifier = number_literal) ;) })) (expression_statement "*(undefined4 *)(iVar4 + 4) = uVar11;" (assignment_expression "*(undefined4 *)(iVar4 + 4) = uVar11" (pointer_expression "*(undefined4 *)(iVar4 + 4)" * (cast_expression "(undefined4 *)(iVar4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar19 = (*pcVar28)(*(undefined4 *)(iVar4 + 0xc));" (assignment_expression "iVar19 = (*pcVar28)(*(undefined4 *)(iVar4 + 0xc))" identifier = (call_expression "(*pcVar28)(*(undefined4 *)(iVar4 + 0xc))" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(*(undefined4 *)(iVar4 + 0xc))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" * (cast_expression "(undefined4 *)(iVar4 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) )))) ;) (expression_statement "*(int *)(iVar4 + 8) = iVar19;" (assignment_expression "*(int *)(iVar4 + 8) = iVar19" (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) = identifier) ;) (return_statement "return iVar19;" return identifier ;) })))) (expression_statement "*(undefined4 *)(iVar4 + 4) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 4) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 4)" * (cast_expression "(undefined4 *)(iVar4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar4 + 8) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 8) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) = number_literal) ;) (return_statement "return uVar22;" return identifier ;) })))
(translation_unit "uint __gmpf_set_str(int *param_1,byte *param_2,byte *param_3,byte *param_4)\n\n{\n  bool bVar1;\n  ushort uVar2;\n  byte *pbVar3;\n  int iVar4;\n  int *piVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte bVar11;\n  byte *pbVar9;\n  int iVar10;\n  undefined4 uVar12;\n  int iVar13;\n  byte *pbVar14;\n  undefined1 *puVar15;\n  byte *pbVar16;\n  int iVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  undefined4 *puVar20;\n  undefined *puVar21;\n  uint uVar22;\n  byte *pbVar23;\n  undefined *puVar24;\n  undefined1 *puVar25;\n  undefined1 *puVar26;\n  code *pcVar27;\n  undefined1 auStack_88 [8];\n  undefined1 auStack_80 [16];\n  byte abStack_70 [8];\n  int local_54;\n  byte *local_50;\n  byte *local_4c;\n  byte *local_44;\n  byte *local_3c;\n  int local_30;\n  int local_2c;\n  \n  puVar24 = PTR___stack_chk_guard_0009d540;\n  puVar26 = auStack_80;\n  puVar25 = auStack_80;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  pbVar14 = param_3;\n  pbVar3 = (byte *)(*(code *)PTR_nl_langinfo_0009d21c)(0x10000);\n  iVar4 = (*(code *)PTR_strlen_0009d360)(pbVar3);\n  uVar22 = (uint)*param_2;\n  piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0009d0ac)();\n  iVar17 = *piVar5;\n  uVar2 = *(ushort *)(iVar17 + uVar22 * 2);\n  while ((uVar2 & 0x20) != 0) {\n    param_2 = param_2 + 1;\n    uVar22 = (uint)*param_2;\n    uVar2 = *(ushort *)(iVar17 + uVar22 * 2);\n  }\n  bVar1 = uVar22 == 0x2d;\n  if (bVar1) {\n    uVar22 = (uint)param_2[1];\n    param_2 = param_2 + 1;\n  }\n  if (param_3 != (byte *)0x0) {\n    if ((int)param_3 < 0) {\n      param_3 = (byte *)-(int)param_3;\n      pbVar19 = &DAT_0000000a;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }\n    else {\n      pbVar19 = param_3;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }\n    puVar15 = auStack_80;\n    if ((int)param_3 < 0x3f) {\n      puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;\n      if ((int)param_3 <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;\n      goto LAB_00018368;\n    }\nLAB_00018710:\n    puVar26 = puVar15;\n    uVar22 = 0xffffffff;\n    goto LAB_00018714;\n  }\n  param_3 = &DAT_0000000a;\n  pbVar19 = &DAT_0000000a;\nLAB_000183f8:\n  puVar21 = PTR___gmp_digit_value_tab_0009d388;\n  if ((int)param_3 <= (int)(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]) {\nLAB_00018310:\n    pbVar14 = param_2;\n    if (iVar4 != 0) {\n      puVar15 = auStack_80;\n      if (*param_2 == *pbVar3) {\n        pbVar14 = param_2 + iVar4;\n        pbVar6 = param_2;\n        pbVar8 = pbVar3;\n        do {\n          pbVar8 = pbVar8 + 1;\n          pbVar6 = pbVar6 + 1;\n          if (pbVar14 == pbVar6) goto LAB_0001834c;\n          puVar15 = auStack_80;\n        } while (*pbVar6 == *pbVar8);\n      }\n      goto LAB_00018710;\n    }\nLAB_0001834c:\n    uVar22 = 0xffffffff;\n    if ((int)param_3 <= (int)(uint)(byte)puVar21[*pbVar14]) goto LAB_00018714;\n  }\nLAB_00018368:\n  pbVar6 = (byte *)(*(code *)PTR_strlen_0009d360)(param_2);\n  pbVar14 = pbVar6 + -1;\n  if (pbVar14 == (byte *)0x0) {\n    puVar25 = auStack_88;\n    local_30 = 0;\n    pbVar16 = (byte *)0x0;\n    pbVar6 = abStack_70;\n    pbVar14 = (byte *)0x1;\nLAB_00018460:\n    pbVar18 = (byte *)0x0;\n    pbVar8 = pbVar6;\n    pbVar23 = (byte *)0x0;\n    do {\n      while( true ) {\n        bVar11 = *param_2;\n        puVar26 = puVar25;\n        if ((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pbVar18 = pbVar18 + 1;\n        param_2 = param_2 + 1;\n        if (pbVar14 <= pbVar18) goto LAB_00018500;\n      }\n      if (iVar4 != 0) {\n        if (*pbVar3 == bVar11) {\n          pbVar7 = param_2;\n          pbVar9 = pbVar3;\n          do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);\n        }\n        if ((int)(uint)(byte)puVar21[bVar11] < (int)param_3) {\n          *pbVar8 = puVar21[bVar11];\n          pbVar8 = pbVar8 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }\nLAB_000184e0:\n      if (pbVar23 != (byte *)0x0) goto LAB_000186f8;\n      pbVar18 = pbVar18 + iVar4;\n      param_2 = param_2 + iVar4;\n      pbVar23 = pbVar8;\n    } while (pbVar18 < pbVar14);\nLAB_00018500:\n    pbVar14 = pbVar8 + -(int)pbVar6;\n    iVar4 = *param_1;\n    uVar22 = (((uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5) + 2) * 4;\n    param_2 = (byte *)(iVar4 + 1);\n    if (uVar22 < 0x7f01) goto LAB_00018544;\n    local_3c = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }\n  else {\n    bVar11 = param_2[(int)pbVar14];\n    if (bVar11 == 0x40) {\n      pbVar16 = param_2 + (int)pbVar6;\n      pbVar8 = pbVar6;\n    }\n    else {\n      pbVar8 = pbVar6 + -2;\n      pbVar23 = pbVar14;\n      if ((int)param_3 < 0xb) {\n        do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);\nLAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;\n        pbVar8 = pbVar23;\n      }\n      else {\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }\n    }\nLAB_0001843c:\n    local_30 = 0;\n    if ((byte *)0x7f00 < pbVar8) {\n      pbVar6 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      iVar17 = *piVar5;\n      goto LAB_00018460;\n    }\n    iVar10 = -((uint)(pbVar8 + 7) & 0xfffffff8);\n    puVar25 = auStack_80 + iVar10;\n    puVar26 = auStack_80 + iVar10;\n    pbVar6 = &stack0xffffff98 + iVar10;\n    if (pbVar14 != (byte *)0x0) goto LAB_00018460;\n    pbVar23 = (byte *)0x0;\n    uVar22 = 8;\n    iVar4 = *param_1;\n    param_2 = (byte *)(iVar4 + 1);\n    pbVar8 = pbVar6;\nLAB_00018544:\n    iVar17 = -(uVar22 + 7 & 0xfffffff8);\n    local_3c = puVar26 + iVar17 + 0x18;\n    puVar26 = puVar26 + iVar17;\n  }\n  param_4 = param_3;\n  pbVar3 = (byte *)(*(code *)PTR___gmpn_set_str_0009d5b4)(local_3c,pbVar6);\n  if (pbVar3 == (byte *)0x0) {\n    param_1[1] = 0;\n    param_1[2] = 0;\n    if (local_30 != 0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      uVar22 = 0;\n      goto LAB_00018714;\n    }\nLAB_000187ac:\n    uVar22 = 0;\n    goto LAB_00018714;\n  }\n  local_54 = (int)pbVar3 - (int)param_2;\n  if ((int)param_2 < (int)pbVar3) {\n    local_3c = local_3c + local_54 * 4;\n    local_4c = param_2;\n    if (pbVar16 == (byte *)0x0) goto LAB_000187d0;\nLAB_000185a0:\n    bVar11 = *pbVar16;\n    param_4 = (byte *)(uint)(bVar11 == 0x2d);\n    pbVar16 = pbVar16 + (bVar11 == 0x2b || bVar11 == 0x2d);\n    pbVar6 = (byte *)(uint)(byte)puVar21[*pbVar16];\n    if ((int)pbVar19 <= (int)pbVar6) {\nLAB_000186f8:\n      uVar22 = 0xffffffff;\n      if (local_30 == 0) goto LAB_00018714;\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      puVar15 = puVar26;\n      goto LAB_00018710;\n    }\n    pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[1]];\n    if ((int)pbVar14 < (int)pbVar19) {\n      pbVar16 = pbVar16 + 3;\n      do {\n        pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19;\n        pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]];\n        pbVar16 = pbVar16 + 1;\n      } while ((int)pbVar14 < (int)pbVar19);\n    }\n    local_44 = param_4 + (-(int)param_4 ^ (uint)pbVar6);\n    if (pbVar23 != (byte *)0x0) {\nLAB_00018628:\n      local_44 = local_44 + -((int)pbVar8 - (int)pbVar23);\n    }\n    if (local_44 == (byte *)0x0) goto LAB_000187e0;\n    iVar4 = iVar4 + 2;\n    uVar22 = iVar4 * 8;\n    if (uVar22 < 0x7f01) {\n      local_50 = puVar26 + iVar4 * -8 + 0x18;\n      pbVar14 = puVar26 + iVar4 * -0x10 + 0x18;\n      puVar26 = puVar26 + iVar4 * -0x10;\n    }\n    else {\n      local_50 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      pbVar14 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n    }\n    puVar21 = PTR___gmpn_clz_tab_0009d18c;\n    pbVar3 = local_44;\n    if ((int)local_44 < 0) {\n      pbVar3 = (byte *)-(int)local_44;\n    }\n    *(byte **)local_50 = param_3;\n    if ((int)pbVar3 < 0x10000) {\n      iVar10 = 0x18;\n      if (0xff < (int)pbVar3) {\n        iVar17 = 9;\n        goto LAB_00018870;\n      }\n      uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;\n      if (-1 < (int)uVar22) goto LAB_00018890;\n      if ((int)param_2 < 1) {\n        iVar10 = 0;\n        pbVar19 = (byte *)0x1;\n        iVar17 = 0;\n        pbVar14 = local_50;\n        goto LAB_00018988;\n      }\n      pbVar19 = (byte *)0x1;\n      iVar10 = 0;\n      *(byte **)local_50 = param_3;\n    }\n    else {\n      iVar17 = 0x19;\n      if ((int)pbVar3 < 0x1000000) {\n        iVar17 = 0x11;\n      }\n      iVar10 = 0x10;\n      if ((int)pbVar3 >= 0x1000000) {\n        iVar10 = 8;\n      }\nLAB_00018870:\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e;\nLAB_00018890:\n      iVar10 = 0;\n      pbVar19 = (byte *)0x1;\n      iVar17 = 0;\n      pbVar6 = local_50;\n      while( true ) {\n        pbVar8 = pbVar6;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);\n        iVar10 = iVar10 * 2;\n        pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));\n        if ((int)param_2 < (int)pbVar19) {\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }\n        else {\n          iVar17 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pbVar6 = pbVar14;\n        pbVar14 = pbVar8;\n      }\n      if ((int)param_2 < (int)pbVar19) {\nLAB_00018988:\n        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);\n        pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;\n        pbVar19 = param_2;\n      }\n      pbVar3 = pbVar19 + -1;\n      if (pbVar19 != (byte *)0x0) {\n        uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);\n        if (pbVar3 == (byte *)0x0) {\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }\n        else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }\n      }\n    }\n    pbVar3 = param_2;\n    if ((int)local_44 < 0) {\n      if ((int)local_4c < (int)pbVar19) {\n        if ((uint)((int)(pbVar19 + 1) * 4) < 0x7f01) {\n          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);\n          puVar15 = puVar26 + iVar17 + 0x18;\n          puVar26 = puVar26 + iVar17;\n        }\n        else {\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }\n        iVar17 = ((int)pbVar19 - (int)local_4c) * 4;\n        pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17);\n        if (local_4c != (byte *)0x0) {\n          pbVar16 = local_4c + -1;\n          pbVar8 = pbVar14 + iVar17;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar6 = pbVar8;\n          if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }\n          *(undefined4 *)pbVar8 = uVar12;\n        }\n        local_54 = local_54 - ((int)pbVar19 - (int)local_4c);\n        local_4c = pbVar19;\n        local_3c = pbVar14;\n      }\n      uVar22 = *(uint *)(local_50 + (int)pbVar19 * 4 + -4);\n      if (-1 < (int)uVar22) {\n        if (uVar22 < 0x10000) {\n          iVar17 = 0x20;\n          if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }\n          iVar13 = 9;\n          if (0xff >= uVar22) {\n            iVar13 = 1;\n          }\n        }\n        else {\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }\n        bVar11 = puVar21[uVar22 >> iVar13];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11);\n        iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11);\n        if (iVar17 != 0) {\n          iVar13 = (int)local_4c * 4;\n          local_4c = local_4c + 1;\n          *(int *)(local_3c + iVar13) = iVar17;\n        }\n      }\n      if ((uint)(iVar4 * 4) < 0x7f01) {\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      }\n      iVar17 = (int)local_4c - (int)pbVar19;\n      *(byte **)(puVar26 + 0x14) = pbVar19;\n      *(byte **)(puVar26 + 0x10) = local_50;\n      iVar4 = (*(code *)PTR___gmpn_divrem_0009d0e4)(puVar20,(int)param_2 - iVar17);\n      pbVar14 = (byte *)((local_54 - iVar10) + iVar17 + iVar4);\n      if (iVar4 != 0) {\n        piVar5 = puVar20 + (int)param_2;\n        puVar20 = puVar20 + 1;\n        *piVar5 = iVar4;\n      }\n    }\n    else {\n      pbVar3 = pbVar19 + (int)local_4c;\n      uVar22 = (int)pbVar3 * 4;\n      if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      }\n      if ((int)local_4c < (int)pbVar19) {\n        *(byte **)(puVar26 + 0x10) = local_4c;\n        local_4c = local_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);\n        local_3c = pbVar19;\n      }\n      else {\n        *(byte **)(puVar26 + 0x10) = pbVar19;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);\n        local_3c = local_4c;\n        local_4c = local_50;\n      }\n      pbVar3 = pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0);\n      pbVar14 = pbVar3 + iVar10 + local_54;\n      if ((int)param_2 < (int)pbVar3) {\n        puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);\n        pbVar3 = param_2;\n      }\n    }\n    if (pbVar3 != (byte *)0x0) {\n      pbVar6 = pbVar3 + -1;\n      uVar12 = *puVar20;\n      local_3c = (byte *)param_1[3];\n      pbVar19 = local_3c;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          puVar20 = puVar20 + 1;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *puVar20;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        local_3c = local_3c + (int)pbVar3 * 4 + -4;\n      }\n      *(undefined4 *)local_3c = uVar12;\n    }\n    if (bVar1) {\n      pbVar3 = (byte *)-(int)pbVar3;\n    }\n    param_1[1] = (int)pbVar3;\n    param_1[2] = (int)pbVar14;\n    pbVar14 = local_3c;\n    param_4 = local_4c;\n    param_2 = pbVar3;\n    if (local_30 == 0) {\n      uVar22 = 0;\n      goto LAB_00018714;\n    }\n  }\n  else {\n    local_54 = 0;\n    local_4c = pbVar3;\n    if (pbVar16 != (byte *)0x0) goto LAB_000185a0;\nLAB_000187d0:\n    if (pbVar23 != (byte *)0x0) {\n      local_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }\nLAB_000187e0:\n    if (local_4c != (byte *)0x0) {\n      pbVar6 = local_4c + -1;\n      pbVar14 = (byte *)param_1[3];\n      uVar12 = *(undefined4 *)local_3c;\n      pbVar19 = pbVar14;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;\n      }\n      *(undefined4 *)pbVar14 = uVar12;\n    }\n    if (bVar1) {\n      local_4c = (byte *)-(int)local_4c;\n    }\n    param_1[1] = (int)local_4c;\n    param_1[2] = (int)pbVar3;\n    if (local_30 == 0) goto LAB_000187ac;\n  }\n  (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  uVar22 = 0;\nLAB_00018714:\n  if (local_2c == *(int *)puVar24) {\n    return uVar22;\n  }\n  pcVar27 = __gmpf_set_d;\n  iVar4 = local_2c;\n  puVar24 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  *(byte **)(puVar26 + 8) = pbVar14;\n  *(undefined **)(puVar26 + -0x18) = puVar24 + 0x8c170;\n  *(code **)(puVar26 + -4) = pcVar27;\n  *(byte **)(puVar26 + -8) = param_2;\n  *(byte **)(puVar26 + 0xc) = param_4;\n  uVar22 = *(uint *)(puVar26 + 8) & 0x7ff00000;\n  if (uVar22 == 0x7ff00000) {\n    uVar22 = (**(code **)(puVar24 + 0x8468c))();\n  }\n  else if ((double)CONCAT44(pbVar14,param_4) != 0.0) {\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      *(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4);\n    }\n    else {\n      *(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);\n    }\n    pcVar27 = *(code **)(puVar24 + 0x84254);\n    uVar12 = 0xfffffffd;\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      uVar12 = 3;\n    }\n    *(undefined4 *)(iVar4 + 4) = uVar12;\n    uVar22 = (*pcVar27)(*(undefined4 *)(iVar4 + 0xc));\n    *(uint *)(iVar4 + 8) = uVar22;\n    return uVar22;\n  }\n  *(undefined4 *)(iVar4 + 4) = 0;\n  *(undefined4 *)(iVar4 + 8) = 0;\n  return uVar22;\n}\n\n" (function_definition "uint __gmpf_set_str(int *param_1,byte *param_2,byte *param_3,byte *param_4)\n\n{\n  bool bVar1;\n  ushort uVar2;\n  byte *pbVar3;\n  int iVar4;\n  int *piVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte bVar11;\n  byte *pbVar9;\n  int iVar10;\n  undefined4 uVar12;\n  int iVar13;\n  byte *pbVar14;\n  undefined1 *puVar15;\n  byte *pbVar16;\n  int iVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  undefined4 *puVar20;\n  undefined *puVar21;\n  uint uVar22;\n  byte *pbVar23;\n  undefined *puVar24;\n  undefined1 *puVar25;\n  undefined1 *puVar26;\n  code *pcVar27;\n  undefined1 auStack_88 [8];\n  undefined1 auStack_80 [16];\n  byte abStack_70 [8];\n  int local_54;\n  byte *local_50;\n  byte *local_4c;\n  byte *local_44;\n  byte *local_3c;\n  int local_30;\n  int local_2c;\n  \n  puVar24 = PTR___stack_chk_guard_0009d540;\n  puVar26 = auStack_80;\n  puVar25 = auStack_80;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  pbVar14 = param_3;\n  pbVar3 = (byte *)(*(code *)PTR_nl_langinfo_0009d21c)(0x10000);\n  iVar4 = (*(code *)PTR_strlen_0009d360)(pbVar3);\n  uVar22 = (uint)*param_2;\n  piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0009d0ac)();\n  iVar17 = *piVar5;\n  uVar2 = *(ushort *)(iVar17 + uVar22 * 2);\n  while ((uVar2 & 0x20) != 0) {\n    param_2 = param_2 + 1;\n    uVar22 = (uint)*param_2;\n    uVar2 = *(ushort *)(iVar17 + uVar22 * 2);\n  }\n  bVar1 = uVar22 == 0x2d;\n  if (bVar1) {\n    uVar22 = (uint)param_2[1];\n    param_2 = param_2 + 1;\n  }\n  if (param_3 != (byte *)0x0) {\n    if ((int)param_3 < 0) {\n      param_3 = (byte *)-(int)param_3;\n      pbVar19 = &DAT_0000000a;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }\n    else {\n      pbVar19 = param_3;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }\n    puVar15 = auStack_80;\n    if ((int)param_3 < 0x3f) {\n      puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;\n      if ((int)param_3 <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;\n      goto LAB_00018368;\n    }\nLAB_00018710:\n    puVar26 = puVar15;\n    uVar22 = 0xffffffff;\n    goto LAB_00018714;\n  }\n  param_3 = &DAT_0000000a;\n  pbVar19 = &DAT_0000000a;\nLAB_000183f8:\n  puVar21 = PTR___gmp_digit_value_tab_0009d388;\n  if ((int)param_3 <= (int)(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]) {\nLAB_00018310:\n    pbVar14 = param_2;\n    if (iVar4 != 0) {\n      puVar15 = auStack_80;\n      if (*param_2 == *pbVar3) {\n        pbVar14 = param_2 + iVar4;\n        pbVar6 = param_2;\n        pbVar8 = pbVar3;\n        do {\n          pbVar8 = pbVar8 + 1;\n          pbVar6 = pbVar6 + 1;\n          if (pbVar14 == pbVar6) goto LAB_0001834c;\n          puVar15 = auStack_80;\n        } while (*pbVar6 == *pbVar8);\n      }\n      goto LAB_00018710;\n    }\nLAB_0001834c:\n    uVar22 = 0xffffffff;\n    if ((int)param_3 <= (int)(uint)(byte)puVar21[*pbVar14]) goto LAB_00018714;\n  }\nLAB_00018368:\n  pbVar6 = (byte *)(*(code *)PTR_strlen_0009d360)(param_2);\n  pbVar14 = pbVar6 + -1;\n  if (pbVar14 == (byte *)0x0) {\n    puVar25 = auStack_88;\n    local_30 = 0;\n    pbVar16 = (byte *)0x0;\n    pbVar6 = abStack_70;\n    pbVar14 = (byte *)0x1;\nLAB_00018460:\n    pbVar18 = (byte *)0x0;\n    pbVar8 = pbVar6;\n    pbVar23 = (byte *)0x0;\n    do {\n      while( true ) {\n        bVar11 = *param_2;\n        puVar26 = puVar25;\n        if ((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pbVar18 = pbVar18 + 1;\n        param_2 = param_2 + 1;\n        if (pbVar14 <= pbVar18) goto LAB_00018500;\n      }\n      if (iVar4 != 0) {\n        if (*pbVar3 == bVar11) {\n          pbVar7 = param_2;\n          pbVar9 = pbVar3;\n          do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);\n        }\n        if ((int)(uint)(byte)puVar21[bVar11] < (int)param_3) {\n          *pbVar8 = puVar21[bVar11];\n          pbVar8 = pbVar8 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }\nLAB_000184e0:\n      if (pbVar23 != (byte *)0x0) goto LAB_000186f8;\n      pbVar18 = pbVar18 + iVar4;\n      param_2 = param_2 + iVar4;\n      pbVar23 = pbVar8;\n    } while (pbVar18 < pbVar14);\nLAB_00018500:\n    pbVar14 = pbVar8 + -(int)pbVar6;\n    iVar4 = *param_1;\n    uVar22 = (((uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5) + 2) * 4;\n    param_2 = (byte *)(iVar4 + 1);\n    if (uVar22 < 0x7f01) goto LAB_00018544;\n    local_3c = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }\n  else {\n    bVar11 = param_2[(int)pbVar14];\n    if (bVar11 == 0x40) {\n      pbVar16 = param_2 + (int)pbVar6;\n      pbVar8 = pbVar6;\n    }\n    else {\n      pbVar8 = pbVar6 + -2;\n      pbVar23 = pbVar14;\n      if ((int)param_3 < 0xb) {\n        do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);\nLAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;\n        pbVar8 = pbVar23;\n      }\n      else {\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }\n    }\nLAB_0001843c:\n    local_30 = 0;\n    if ((byte *)0x7f00 < pbVar8) {\n      pbVar6 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      iVar17 = *piVar5;\n      goto LAB_00018460;\n    }\n    iVar10 = -((uint)(pbVar8 + 7) & 0xfffffff8);\n    puVar25 = auStack_80 + iVar10;\n    puVar26 = auStack_80 + iVar10;\n    pbVar6 = &stack0xffffff98 + iVar10;\n    if (pbVar14 != (byte *)0x0) goto LAB_00018460;\n    pbVar23 = (byte *)0x0;\n    uVar22 = 8;\n    iVar4 = *param_1;\n    param_2 = (byte *)(iVar4 + 1);\n    pbVar8 = pbVar6;\nLAB_00018544:\n    iVar17 = -(uVar22 + 7 & 0xfffffff8);\n    local_3c = puVar26 + iVar17 + 0x18;\n    puVar26 = puVar26 + iVar17;\n  }\n  param_4 = param_3;\n  pbVar3 = (byte *)(*(code *)PTR___gmpn_set_str_0009d5b4)(local_3c,pbVar6);\n  if (pbVar3 == (byte *)0x0) {\n    param_1[1] = 0;\n    param_1[2] = 0;\n    if (local_30 != 0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      uVar22 = 0;\n      goto LAB_00018714;\n    }\nLAB_000187ac:\n    uVar22 = 0;\n    goto LAB_00018714;\n  }\n  local_54 = (int)pbVar3 - (int)param_2;\n  if ((int)param_2 < (int)pbVar3) {\n    local_3c = local_3c + local_54 * 4;\n    local_4c = param_2;\n    if (pbVar16 == (byte *)0x0) goto LAB_000187d0;\nLAB_000185a0:\n    bVar11 = *pbVar16;\n    param_4 = (byte *)(uint)(bVar11 == 0x2d);\n    pbVar16 = pbVar16 + (bVar11 == 0x2b || bVar11 == 0x2d);\n    pbVar6 = (byte *)(uint)(byte)puVar21[*pbVar16];\n    if ((int)pbVar19 <= (int)pbVar6) {\nLAB_000186f8:\n      uVar22 = 0xffffffff;\n      if (local_30 == 0) goto LAB_00018714;\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      puVar15 = puVar26;\n      goto LAB_00018710;\n    }\n    pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[1]];\n    if ((int)pbVar14 < (int)pbVar19) {\n      pbVar16 = pbVar16 + 3;\n      do {\n        pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19;\n        pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]];\n        pbVar16 = pbVar16 + 1;\n      } while ((int)pbVar14 < (int)pbVar19);\n    }\n    local_44 = param_4 + (-(int)param_4 ^ (uint)pbVar6);\n    if (pbVar23 != (byte *)0x0) {\nLAB_00018628:\n      local_44 = local_44 + -((int)pbVar8 - (int)pbVar23);\n    }\n    if (local_44 == (byte *)0x0) goto LAB_000187e0;\n    iVar4 = iVar4 + 2;\n    uVar22 = iVar4 * 8;\n    if (uVar22 < 0x7f01) {\n      local_50 = puVar26 + iVar4 * -8 + 0x18;\n      pbVar14 = puVar26 + iVar4 * -0x10 + 0x18;\n      puVar26 = puVar26 + iVar4 * -0x10;\n    }\n    else {\n      local_50 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      pbVar14 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n    }\n    puVar21 = PTR___gmpn_clz_tab_0009d18c;\n    pbVar3 = local_44;\n    if ((int)local_44 < 0) {\n      pbVar3 = (byte *)-(int)local_44;\n    }\n    *(byte **)local_50 = param_3;\n    if ((int)pbVar3 < 0x10000) {\n      iVar10 = 0x18;\n      if (0xff < (int)pbVar3) {\n        iVar17 = 9;\n        goto LAB_00018870;\n      }\n      uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;\n      if (-1 < (int)uVar22) goto LAB_00018890;\n      if ((int)param_2 < 1) {\n        iVar10 = 0;\n        pbVar19 = (byte *)0x1;\n        iVar17 = 0;\n        pbVar14 = local_50;\n        goto LAB_00018988;\n      }\n      pbVar19 = (byte *)0x1;\n      iVar10 = 0;\n      *(byte **)local_50 = param_3;\n    }\n    else {\n      iVar17 = 0x19;\n      if ((int)pbVar3 < 0x1000000) {\n        iVar17 = 0x11;\n      }\n      iVar10 = 0x10;\n      if ((int)pbVar3 >= 0x1000000) {\n        iVar10 = 8;\n      }\nLAB_00018870:\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e;\nLAB_00018890:\n      iVar10 = 0;\n      pbVar19 = (byte *)0x1;\n      iVar17 = 0;\n      pbVar6 = local_50;\n      while( true ) {\n        pbVar8 = pbVar6;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);\n        iVar10 = iVar10 * 2;\n        pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));\n        if ((int)param_2 < (int)pbVar19) {\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }\n        else {\n          iVar17 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pbVar6 = pbVar14;\n        pbVar14 = pbVar8;\n      }\n      if ((int)param_2 < (int)pbVar19) {\nLAB_00018988:\n        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);\n        pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;\n        pbVar19 = param_2;\n      }\n      pbVar3 = pbVar19 + -1;\n      if (pbVar19 != (byte *)0x0) {\n        uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);\n        if (pbVar3 == (byte *)0x0) {\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }\n        else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }\n      }\n    }\n    pbVar3 = param_2;\n    if ((int)local_44 < 0) {\n      if ((int)local_4c < (int)pbVar19) {\n        if ((uint)((int)(pbVar19 + 1) * 4) < 0x7f01) {\n          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);\n          puVar15 = puVar26 + iVar17 + 0x18;\n          puVar26 = puVar26 + iVar17;\n        }\n        else {\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }\n        iVar17 = ((int)pbVar19 - (int)local_4c) * 4;\n        pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17);\n        if (local_4c != (byte *)0x0) {\n          pbVar16 = local_4c + -1;\n          pbVar8 = pbVar14 + iVar17;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar6 = pbVar8;\n          if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }\n          *(undefined4 *)pbVar8 = uVar12;\n        }\n        local_54 = local_54 - ((int)pbVar19 - (int)local_4c);\n        local_4c = pbVar19;\n        local_3c = pbVar14;\n      }\n      uVar22 = *(uint *)(local_50 + (int)pbVar19 * 4 + -4);\n      if (-1 < (int)uVar22) {\n        if (uVar22 < 0x10000) {\n          iVar17 = 0x20;\n          if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }\n          iVar13 = 9;\n          if (0xff >= uVar22) {\n            iVar13 = 1;\n          }\n        }\n        else {\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }\n        bVar11 = puVar21[uVar22 >> iVar13];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11);\n        iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11);\n        if (iVar17 != 0) {\n          iVar13 = (int)local_4c * 4;\n          local_4c = local_4c + 1;\n          *(int *)(local_3c + iVar13) = iVar17;\n        }\n      }\n      if ((uint)(iVar4 * 4) < 0x7f01) {\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      }\n      iVar17 = (int)local_4c - (int)pbVar19;\n      *(byte **)(puVar26 + 0x14) = pbVar19;\n      *(byte **)(puVar26 + 0x10) = local_50;\n      iVar4 = (*(code *)PTR___gmpn_divrem_0009d0e4)(puVar20,(int)param_2 - iVar17);\n      pbVar14 = (byte *)((local_54 - iVar10) + iVar17 + iVar4);\n      if (iVar4 != 0) {\n        piVar5 = puVar20 + (int)param_2;\n        puVar20 = puVar20 + 1;\n        *piVar5 = iVar4;\n      }\n    }\n    else {\n      pbVar3 = pbVar19 + (int)local_4c;\n      uVar22 = (int)pbVar3 * 4;\n      if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      }\n      if ((int)local_4c < (int)pbVar19) {\n        *(byte **)(puVar26 + 0x10) = local_4c;\n        local_4c = local_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);\n        local_3c = pbVar19;\n      }\n      else {\n        *(byte **)(puVar26 + 0x10) = pbVar19;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);\n        local_3c = local_4c;\n        local_4c = local_50;\n      }\n      pbVar3 = pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0);\n      pbVar14 = pbVar3 + iVar10 + local_54;\n      if ((int)param_2 < (int)pbVar3) {\n        puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);\n        pbVar3 = param_2;\n      }\n    }\n    if (pbVar3 != (byte *)0x0) {\n      pbVar6 = pbVar3 + -1;\n      uVar12 = *puVar20;\n      local_3c = (byte *)param_1[3];\n      pbVar19 = local_3c;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          puVar20 = puVar20 + 1;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *puVar20;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        local_3c = local_3c + (int)pbVar3 * 4 + -4;\n      }\n      *(undefined4 *)local_3c = uVar12;\n    }\n    if (bVar1) {\n      pbVar3 = (byte *)-(int)pbVar3;\n    }\n    param_1[1] = (int)pbVar3;\n    param_1[2] = (int)pbVar14;\n    pbVar14 = local_3c;\n    param_4 = local_4c;\n    param_2 = pbVar3;\n    if (local_30 == 0) {\n      uVar22 = 0;\n      goto LAB_00018714;\n    }\n  }\n  else {\n    local_54 = 0;\n    local_4c = pbVar3;\n    if (pbVar16 != (byte *)0x0) goto LAB_000185a0;\nLAB_000187d0:\n    if (pbVar23 != (byte *)0x0) {\n      local_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }\nLAB_000187e0:\n    if (local_4c != (byte *)0x0) {\n      pbVar6 = local_4c + -1;\n      pbVar14 = (byte *)param_1[3];\n      uVar12 = *(undefined4 *)local_3c;\n      pbVar19 = pbVar14;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;\n      }\n      *(undefined4 *)pbVar14 = uVar12;\n    }\n    if (bVar1) {\n      local_4c = (byte *)-(int)local_4c;\n    }\n    param_1[1] = (int)local_4c;\n    param_1[2] = (int)pbVar3;\n    if (local_30 == 0) goto LAB_000187ac;\n  }\n  (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  uVar22 = 0;\nLAB_00018714:\n  if (local_2c == *(int *)puVar24) {\n    return uVar22;\n  }\n  pcVar27 = __gmpf_set_d;\n  iVar4 = local_2c;\n  puVar24 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  *(byte **)(puVar26 + 8) = pbVar14;\n  *(undefined **)(puVar26 + -0x18) = puVar24 + 0x8c170;\n  *(code **)(puVar26 + -4) = pcVar27;\n  *(byte **)(puVar26 + -8) = param_2;\n  *(byte **)(puVar26 + 0xc) = param_4;\n  uVar22 = *(uint *)(puVar26 + 8) & 0x7ff00000;\n  if (uVar22 == 0x7ff00000) {\n    uVar22 = (**(code **)(puVar24 + 0x8468c))();\n  }\n  else if ((double)CONCAT44(pbVar14,param_4) != 0.0) {\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      *(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4);\n    }\n    else {\n      *(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);\n    }\n    pcVar27 = *(code **)(puVar24 + 0x84254);\n    uVar12 = 0xfffffffd;\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      uVar12 = 3;\n    }\n    *(undefined4 *)(iVar4 + 4) = uVar12;\n    uVar22 = (*pcVar27)(*(undefined4 *)(iVar4 + 0xc));\n    *(uint *)(iVar4 + 8) = uVar22;\n    return uVar22;\n  }\n  *(undefined4 *)(iVar4 + 4) = 0;\n  *(undefined4 *)(iVar4 + 8) = 0;\n  return uVar22;\n}" type_identifier (function_declarator "__gmpf_set_str(int *param_1,byte *param_2,byte *param_3,byte *param_4)" identifier (parameter_list "(int *param_1,byte *param_2,byte *param_3,byte *param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "byte *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "byte *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  ushort uVar2;\n  byte *pbVar3;\n  int iVar4;\n  int *piVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte bVar11;\n  byte *pbVar9;\n  int iVar10;\n  undefined4 uVar12;\n  int iVar13;\n  byte *pbVar14;\n  undefined1 *puVar15;\n  byte *pbVar16;\n  int iVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  undefined4 *puVar20;\n  undefined *puVar21;\n  uint uVar22;\n  byte *pbVar23;\n  undefined *puVar24;\n  undefined1 *puVar25;\n  undefined1 *puVar26;\n  code *pcVar27;\n  undefined1 auStack_88 [8];\n  undefined1 auStack_80 [16];\n  byte abStack_70 [8];\n  int local_54;\n  byte *local_50;\n  byte *local_4c;\n  byte *local_44;\n  byte *local_3c;\n  int local_30;\n  int local_2c;\n  \n  puVar24 = PTR___stack_chk_guard_0009d540;\n  puVar26 = auStack_80;\n  puVar25 = auStack_80;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  pbVar14 = param_3;\n  pbVar3 = (byte *)(*(code *)PTR_nl_langinfo_0009d21c)(0x10000);\n  iVar4 = (*(code *)PTR_strlen_0009d360)(pbVar3);\n  uVar22 = (uint)*param_2;\n  piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0009d0ac)();\n  iVar17 = *piVar5;\n  uVar2 = *(ushort *)(iVar17 + uVar22 * 2);\n  while ((uVar2 & 0x20) != 0) {\n    param_2 = param_2 + 1;\n    uVar22 = (uint)*param_2;\n    uVar2 = *(ushort *)(iVar17 + uVar22 * 2);\n  }\n  bVar1 = uVar22 == 0x2d;\n  if (bVar1) {\n    uVar22 = (uint)param_2[1];\n    param_2 = param_2 + 1;\n  }\n  if (param_3 != (byte *)0x0) {\n    if ((int)param_3 < 0) {\n      param_3 = (byte *)-(int)param_3;\n      pbVar19 = &DAT_0000000a;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }\n    else {\n      pbVar19 = param_3;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }\n    puVar15 = auStack_80;\n    if ((int)param_3 < 0x3f) {\n      puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;\n      if ((int)param_3 <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;\n      goto LAB_00018368;\n    }\nLAB_00018710:\n    puVar26 = puVar15;\n    uVar22 = 0xffffffff;\n    goto LAB_00018714;\n  }\n  param_3 = &DAT_0000000a;\n  pbVar19 = &DAT_0000000a;\nLAB_000183f8:\n  puVar21 = PTR___gmp_digit_value_tab_0009d388;\n  if ((int)param_3 <= (int)(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]) {\nLAB_00018310:\n    pbVar14 = param_2;\n    if (iVar4 != 0) {\n      puVar15 = auStack_80;\n      if (*param_2 == *pbVar3) {\n        pbVar14 = param_2 + iVar4;\n        pbVar6 = param_2;\n        pbVar8 = pbVar3;\n        do {\n          pbVar8 = pbVar8 + 1;\n          pbVar6 = pbVar6 + 1;\n          if (pbVar14 == pbVar6) goto LAB_0001834c;\n          puVar15 = auStack_80;\n        } while (*pbVar6 == *pbVar8);\n      }\n      goto LAB_00018710;\n    }\nLAB_0001834c:\n    uVar22 = 0xffffffff;\n    if ((int)param_3 <= (int)(uint)(byte)puVar21[*pbVar14]) goto LAB_00018714;\n  }\nLAB_00018368:\n  pbVar6 = (byte *)(*(code *)PTR_strlen_0009d360)(param_2);\n  pbVar14 = pbVar6 + -1;\n  if (pbVar14 == (byte *)0x0) {\n    puVar25 = auStack_88;\n    local_30 = 0;\n    pbVar16 = (byte *)0x0;\n    pbVar6 = abStack_70;\n    pbVar14 = (byte *)0x1;\nLAB_00018460:\n    pbVar18 = (byte *)0x0;\n    pbVar8 = pbVar6;\n    pbVar23 = (byte *)0x0;\n    do {\n      while( true ) {\n        bVar11 = *param_2;\n        puVar26 = puVar25;\n        if ((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pbVar18 = pbVar18 + 1;\n        param_2 = param_2 + 1;\n        if (pbVar14 <= pbVar18) goto LAB_00018500;\n      }\n      if (iVar4 != 0) {\n        if (*pbVar3 == bVar11) {\n          pbVar7 = param_2;\n          pbVar9 = pbVar3;\n          do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);\n        }\n        if ((int)(uint)(byte)puVar21[bVar11] < (int)param_3) {\n          *pbVar8 = puVar21[bVar11];\n          pbVar8 = pbVar8 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }\nLAB_000184e0:\n      if (pbVar23 != (byte *)0x0) goto LAB_000186f8;\n      pbVar18 = pbVar18 + iVar4;\n      param_2 = param_2 + iVar4;\n      pbVar23 = pbVar8;\n    } while (pbVar18 < pbVar14);\nLAB_00018500:\n    pbVar14 = pbVar8 + -(int)pbVar6;\n    iVar4 = *param_1;\n    uVar22 = (((uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5) + 2) * 4;\n    param_2 = (byte *)(iVar4 + 1);\n    if (uVar22 < 0x7f01) goto LAB_00018544;\n    local_3c = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }\n  else {\n    bVar11 = param_2[(int)pbVar14];\n    if (bVar11 == 0x40) {\n      pbVar16 = param_2 + (int)pbVar6;\n      pbVar8 = pbVar6;\n    }\n    else {\n      pbVar8 = pbVar6 + -2;\n      pbVar23 = pbVar14;\n      if ((int)param_3 < 0xb) {\n        do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);\nLAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;\n        pbVar8 = pbVar23;\n      }\n      else {\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }\n    }\nLAB_0001843c:\n    local_30 = 0;\n    if ((byte *)0x7f00 < pbVar8) {\n      pbVar6 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      iVar17 = *piVar5;\n      goto LAB_00018460;\n    }\n    iVar10 = -((uint)(pbVar8 + 7) & 0xfffffff8);\n    puVar25 = auStack_80 + iVar10;\n    puVar26 = auStack_80 + iVar10;\n    pbVar6 = &stack0xffffff98 + iVar10;\n    if (pbVar14 != (byte *)0x0) goto LAB_00018460;\n    pbVar23 = (byte *)0x0;\n    uVar22 = 8;\n    iVar4 = *param_1;\n    param_2 = (byte *)(iVar4 + 1);\n    pbVar8 = pbVar6;\nLAB_00018544:\n    iVar17 = -(uVar22 + 7 & 0xfffffff8);\n    local_3c = puVar26 + iVar17 + 0x18;\n    puVar26 = puVar26 + iVar17;\n  }\n  param_4 = param_3;\n  pbVar3 = (byte *)(*(code *)PTR___gmpn_set_str_0009d5b4)(local_3c,pbVar6);\n  if (pbVar3 == (byte *)0x0) {\n    param_1[1] = 0;\n    param_1[2] = 0;\n    if (local_30 != 0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      uVar22 = 0;\n      goto LAB_00018714;\n    }\nLAB_000187ac:\n    uVar22 = 0;\n    goto LAB_00018714;\n  }\n  local_54 = (int)pbVar3 - (int)param_2;\n  if ((int)param_2 < (int)pbVar3) {\n    local_3c = local_3c + local_54 * 4;\n    local_4c = param_2;\n    if (pbVar16 == (byte *)0x0) goto LAB_000187d0;\nLAB_000185a0:\n    bVar11 = *pbVar16;\n    param_4 = (byte *)(uint)(bVar11 == 0x2d);\n    pbVar16 = pbVar16 + (bVar11 == 0x2b || bVar11 == 0x2d);\n    pbVar6 = (byte *)(uint)(byte)puVar21[*pbVar16];\n    if ((int)pbVar19 <= (int)pbVar6) {\nLAB_000186f8:\n      uVar22 = 0xffffffff;\n      if (local_30 == 0) goto LAB_00018714;\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      puVar15 = puVar26;\n      goto LAB_00018710;\n    }\n    pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[1]];\n    if ((int)pbVar14 < (int)pbVar19) {\n      pbVar16 = pbVar16 + 3;\n      do {\n        pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19;\n        pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]];\n        pbVar16 = pbVar16 + 1;\n      } while ((int)pbVar14 < (int)pbVar19);\n    }\n    local_44 = param_4 + (-(int)param_4 ^ (uint)pbVar6);\n    if (pbVar23 != (byte *)0x0) {\nLAB_00018628:\n      local_44 = local_44 + -((int)pbVar8 - (int)pbVar23);\n    }\n    if (local_44 == (byte *)0x0) goto LAB_000187e0;\n    iVar4 = iVar4 + 2;\n    uVar22 = iVar4 * 8;\n    if (uVar22 < 0x7f01) {\n      local_50 = puVar26 + iVar4 * -8 + 0x18;\n      pbVar14 = puVar26 + iVar4 * -0x10 + 0x18;\n      puVar26 = puVar26 + iVar4 * -0x10;\n    }\n    else {\n      local_50 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      pbVar14 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n    }\n    puVar21 = PTR___gmpn_clz_tab_0009d18c;\n    pbVar3 = local_44;\n    if ((int)local_44 < 0) {\n      pbVar3 = (byte *)-(int)local_44;\n    }\n    *(byte **)local_50 = param_3;\n    if ((int)pbVar3 < 0x10000) {\n      iVar10 = 0x18;\n      if (0xff < (int)pbVar3) {\n        iVar17 = 9;\n        goto LAB_00018870;\n      }\n      uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;\n      if (-1 < (int)uVar22) goto LAB_00018890;\n      if ((int)param_2 < 1) {\n        iVar10 = 0;\n        pbVar19 = (byte *)0x1;\n        iVar17 = 0;\n        pbVar14 = local_50;\n        goto LAB_00018988;\n      }\n      pbVar19 = (byte *)0x1;\n      iVar10 = 0;\n      *(byte **)local_50 = param_3;\n    }\n    else {\n      iVar17 = 0x19;\n      if ((int)pbVar3 < 0x1000000) {\n        iVar17 = 0x11;\n      }\n      iVar10 = 0x10;\n      if ((int)pbVar3 >= 0x1000000) {\n        iVar10 = 8;\n      }\nLAB_00018870:\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e;\nLAB_00018890:\n      iVar10 = 0;\n      pbVar19 = (byte *)0x1;\n      iVar17 = 0;\n      pbVar6 = local_50;\n      while( true ) {\n        pbVar8 = pbVar6;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);\n        iVar10 = iVar10 * 2;\n        pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));\n        if ((int)param_2 < (int)pbVar19) {\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }\n        else {\n          iVar17 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pbVar6 = pbVar14;\n        pbVar14 = pbVar8;\n      }\n      if ((int)param_2 < (int)pbVar19) {\nLAB_00018988:\n        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);\n        pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;\n        pbVar19 = param_2;\n      }\n      pbVar3 = pbVar19 + -1;\n      if (pbVar19 != (byte *)0x0) {\n        uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);\n        if (pbVar3 == (byte *)0x0) {\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }\n        else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }\n      }\n    }\n    pbVar3 = param_2;\n    if ((int)local_44 < 0) {\n      if ((int)local_4c < (int)pbVar19) {\n        if ((uint)((int)(pbVar19 + 1) * 4) < 0x7f01) {\n          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);\n          puVar15 = puVar26 + iVar17 + 0x18;\n          puVar26 = puVar26 + iVar17;\n        }\n        else {\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }\n        iVar17 = ((int)pbVar19 - (int)local_4c) * 4;\n        pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17);\n        if (local_4c != (byte *)0x0) {\n          pbVar16 = local_4c + -1;\n          pbVar8 = pbVar14 + iVar17;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar6 = pbVar8;\n          if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }\n          *(undefined4 *)pbVar8 = uVar12;\n        }\n        local_54 = local_54 - ((int)pbVar19 - (int)local_4c);\n        local_4c = pbVar19;\n        local_3c = pbVar14;\n      }\n      uVar22 = *(uint *)(local_50 + (int)pbVar19 * 4 + -4);\n      if (-1 < (int)uVar22) {\n        if (uVar22 < 0x10000) {\n          iVar17 = 0x20;\n          if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }\n          iVar13 = 9;\n          if (0xff >= uVar22) {\n            iVar13 = 1;\n          }\n        }\n        else {\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }\n        bVar11 = puVar21[uVar22 >> iVar13];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11);\n        iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11);\n        if (iVar17 != 0) {\n          iVar13 = (int)local_4c * 4;\n          local_4c = local_4c + 1;\n          *(int *)(local_3c + iVar13) = iVar17;\n        }\n      }\n      if ((uint)(iVar4 * 4) < 0x7f01) {\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      }\n      iVar17 = (int)local_4c - (int)pbVar19;\n      *(byte **)(puVar26 + 0x14) = pbVar19;\n      *(byte **)(puVar26 + 0x10) = local_50;\n      iVar4 = (*(code *)PTR___gmpn_divrem_0009d0e4)(puVar20,(int)param_2 - iVar17);\n      pbVar14 = (byte *)((local_54 - iVar10) + iVar17 + iVar4);\n      if (iVar4 != 0) {\n        piVar5 = puVar20 + (int)param_2;\n        puVar20 = puVar20 + 1;\n        *piVar5 = iVar4;\n      }\n    }\n    else {\n      pbVar3 = pbVar19 + (int)local_4c;\n      uVar22 = (int)pbVar3 * 4;\n      if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      }\n      if ((int)local_4c < (int)pbVar19) {\n        *(byte **)(puVar26 + 0x10) = local_4c;\n        local_4c = local_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);\n        local_3c = pbVar19;\n      }\n      else {\n        *(byte **)(puVar26 + 0x10) = pbVar19;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);\n        local_3c = local_4c;\n        local_4c = local_50;\n      }\n      pbVar3 = pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0);\n      pbVar14 = pbVar3 + iVar10 + local_54;\n      if ((int)param_2 < (int)pbVar3) {\n        puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);\n        pbVar3 = param_2;\n      }\n    }\n    if (pbVar3 != (byte *)0x0) {\n      pbVar6 = pbVar3 + -1;\n      uVar12 = *puVar20;\n      local_3c = (byte *)param_1[3];\n      pbVar19 = local_3c;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          puVar20 = puVar20 + 1;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *puVar20;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        local_3c = local_3c + (int)pbVar3 * 4 + -4;\n      }\n      *(undefined4 *)local_3c = uVar12;\n    }\n    if (bVar1) {\n      pbVar3 = (byte *)-(int)pbVar3;\n    }\n    param_1[1] = (int)pbVar3;\n    param_1[2] = (int)pbVar14;\n    pbVar14 = local_3c;\n    param_4 = local_4c;\n    param_2 = pbVar3;\n    if (local_30 == 0) {\n      uVar22 = 0;\n      goto LAB_00018714;\n    }\n  }\n  else {\n    local_54 = 0;\n    local_4c = pbVar3;\n    if (pbVar16 != (byte *)0x0) goto LAB_000185a0;\nLAB_000187d0:\n    if (pbVar23 != (byte *)0x0) {\n      local_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }\nLAB_000187e0:\n    if (local_4c != (byte *)0x0) {\n      pbVar6 = local_4c + -1;\n      pbVar14 = (byte *)param_1[3];\n      uVar12 = *(undefined4 *)local_3c;\n      pbVar19 = pbVar14;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;\n      }\n      *(undefined4 *)pbVar14 = uVar12;\n    }\n    if (bVar1) {\n      local_4c = (byte *)-(int)local_4c;\n    }\n    param_1[1] = (int)local_4c;\n    param_1[2] = (int)pbVar3;\n    if (local_30 == 0) goto LAB_000187ac;\n  }\n  (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  uVar22 = 0;\nLAB_00018714:\n  if (local_2c == *(int *)puVar24) {\n    return uVar22;\n  }\n  pcVar27 = __gmpf_set_d;\n  iVar4 = local_2c;\n  puVar24 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  *(byte **)(puVar26 + 8) = pbVar14;\n  *(undefined **)(puVar26 + -0x18) = puVar24 + 0x8c170;\n  *(code **)(puVar26 + -4) = pcVar27;\n  *(byte **)(puVar26 + -8) = param_2;\n  *(byte **)(puVar26 + 0xc) = param_4;\n  uVar22 = *(uint *)(puVar26 + 8) & 0x7ff00000;\n  if (uVar22 == 0x7ff00000) {\n    uVar22 = (**(code **)(puVar24 + 0x8468c))();\n  }\n  else if ((double)CONCAT44(pbVar14,param_4) != 0.0) {\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      *(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4);\n    }\n    else {\n      *(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);\n    }\n    pcVar27 = *(code **)(puVar24 + 0x84254);\n    uVar12 = 0xfffffffd;\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      uVar12 = 3;\n    }\n    *(undefined4 *)(iVar4 + 4) = uVar12;\n    uVar22 = (*pcVar27)(*(undefined4 *)(iVar4 + 0xc));\n    *(uint *)(iVar4 + 8) = uVar22;\n    return uVar22;\n  }\n  *(undefined4 *)(iVar4 + 4) = 0;\n  *(undefined4 *)(iVar4 + 8) = 0;\n  return uVar22;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "byte bVar11;" type_identifier identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "undefined1 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "undefined4 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "byte *pbVar23;" type_identifier (pointer_declarator "*pbVar23" * identifier) ;) (declaration "undefined *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "undefined1 *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "undefined1 *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "code *pcVar27;" type_identifier (pointer_declarator "*pcVar27" * identifier) ;) (declaration "undefined1 auStack_88 [8];" type_identifier (array_declarator "auStack_88 [8]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_80 [16];" type_identifier (array_declarator "auStack_80 [16]" identifier [ number_literal ]) ;) (declaration "byte abStack_70 [8];" type_identifier (array_declarator "abStack_70 [8]" identifier [ number_literal ]) ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "byte *local_50;" type_identifier (pointer_declarator "*local_50" * identifier) ;) (declaration "byte *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "byte *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "byte *local_3c;" type_identifier (pointer_declarator "*local_3c" * identifier) ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar24 = PTR___stack_chk_guard_0009d540;" (assignment_expression "puVar24 = PTR___stack_chk_guard_0009d540" identifier = identifier) ;) (expression_statement "puVar26 = auStack_80;" (assignment_expression "puVar26 = auStack_80" identifier = identifier) ;) (expression_statement "puVar25 = auStack_80;" (assignment_expression "puVar25 = auStack_80" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0009d540;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0009d540" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0009d540" * (cast_expression "(int *)PTR___stack_chk_guard_0009d540" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar14 = param_3;" (assignment_expression "pbVar14 = param_3" identifier = identifier) ;) (expression_statement "pbVar3 = (byte *)(*(code *)PTR_nl_langinfo_0009d21c)(0x10000);" (assignment_expression "pbVar3 = (byte *)(*(code *)PTR_nl_langinfo_0009d21c)(0x10000)" identifier = (cast_expression "(byte *)(*(code *)PTR_nl_langinfo_0009d21c)(0x10000)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_nl_langinfo_0009d21c)(0x10000)" (parenthesized_expression "(*(code *)PTR_nl_langinfo_0009d21c)" ( (pointer_expression "*(code *)PTR_nl_langinfo_0009d21c" * (cast_expression "(code *)PTR_nl_langinfo_0009d21c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x10000)" ( number_literal ))))) ;) (expression_statement "iVar4 = (*(code *)PTR_strlen_0009d360)(pbVar3);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_0009d360)(pbVar3)" identifier = (call_expression "(*(code *)PTR_strlen_0009d360)(pbVar3)" (parenthesized_expression "(*(code *)PTR_strlen_0009d360)" ( (pointer_expression "*(code *)PTR_strlen_0009d360" * (cast_expression "(code *)PTR_strlen_0009d360" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar3)" ( identifier )))) ;) (expression_statement "uVar22 = (uint)*param_2;" (assignment_expression "uVar22 = (uint)*param_2" identifier = (binary_expression "(uint)*param_2" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0009d0ac)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0009d0ac)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_0009d0ac)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0009d0ac)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0009d0ac)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0009d0ac" * (cast_expression "(code *)PTR___ctype_b_loc_0009d0ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar17 = *piVar5;" (assignment_expression "iVar17 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "uVar2 = *(ushort *)(iVar17 + uVar22 * 2);" (assignment_expression "uVar2 = *(ushort *)(iVar17 + uVar22 * 2)" identifier = (pointer_expression "*(ushort *)(iVar17 + uVar22 * 2)" * (cast_expression "(ushort *)(iVar17 + uVar22 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + uVar22 * 2)" ( (binary_expression "iVar17 + uVar22 * 2" identifier + (binary_expression "uVar22 * 2" identifier * number_literal)) ))))) ;) (while_statement "while ((uVar2 & 0x20) != 0) {\n    param_2 = param_2 + 1;\n    uVar22 = (uint)*param_2;\n    uVar2 = *(ushort *)(iVar17 + uVar22 * 2);\n  }" while (parenthesized_expression "((uVar2 & 0x20) != 0)" ( (binary_expression "(uVar2 & 0x20) != 0" (parenthesized_expression "(uVar2 & 0x20)" ( (binary_expression "uVar2 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    param_2 = param_2 + 1;\n    uVar22 = (uint)*param_2;\n    uVar2 = *(ushort *)(iVar17 + uVar22 * 2);\n  }" { (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "uVar22 = (uint)*param_2;" (assignment_expression "uVar22 = (uint)*param_2" identifier = (binary_expression "(uint)*param_2" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "uVar2 = *(ushort *)(iVar17 + uVar22 * 2);" (assignment_expression "uVar2 = *(ushort *)(iVar17 + uVar22 * 2)" identifier = (pointer_expression "*(ushort *)(iVar17 + uVar22 * 2)" * (cast_expression "(ushort *)(iVar17 + uVar22 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + uVar22 * 2)" ( (binary_expression "iVar17 + uVar22 * 2" identifier + (binary_expression "uVar22 * 2" identifier * number_literal)) ))))) ;) })) (expression_statement "bVar1 = uVar22 == 0x2d;" (assignment_expression "bVar1 = uVar22 == 0x2d" identifier = (binary_expression "uVar22 == 0x2d" identifier == number_literal)) ;) (if_statement "if (bVar1) {\n    uVar22 = (uint)param_2[1];\n    param_2 = param_2 + 1;\n  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n    uVar22 = (uint)param_2[1];\n    param_2 = param_2 + 1;\n  }" { (expression_statement "uVar22 = (uint)param_2[1];" (assignment_expression "uVar22 = (uint)param_2[1]" identifier = (cast_expression "(uint)param_2[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[1]" identifier [ number_literal ]))) ;) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) })) (if_statement "if (param_3 != (byte *)0x0) {\n    if ((int)param_3 < 0) {\n      param_3 = (byte *)-(int)param_3;\n      pbVar19 = &DAT_0000000a;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }\n    else {\n      pbVar19 = param_3;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }\n    puVar15 = auStack_80;\n    if ((int)param_3 < 0x3f) {\n      puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;\n      if ((int)param_3 <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;\n      goto LAB_00018368;\n    }\nLAB_00018710:\n    puVar26 = puVar15;\n    uVar22 = 0xffffffff;\n    goto LAB_00018714;\n  }" if (parenthesized_expression "(param_3 != (byte *)0x0)" ( (binary_expression "param_3 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if ((int)param_3 < 0) {\n      param_3 = (byte *)-(int)param_3;\n      pbVar19 = &DAT_0000000a;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }\n    else {\n      pbVar19 = param_3;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }\n    puVar15 = auStack_80;\n    if ((int)param_3 < 0x3f) {\n      puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;\n      if ((int)param_3 <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;\n      goto LAB_00018368;\n    }\nLAB_00018710:\n    puVar26 = puVar15;\n    uVar22 = 0xffffffff;\n    goto LAB_00018714;\n  }" { (if_statement "if ((int)param_3 < 0) {\n      param_3 = (byte *)-(int)param_3;\n      pbVar19 = &DAT_0000000a;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }\n    else {\n      pbVar19 = param_3;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }" if (parenthesized_expression "((int)param_3 < 0)" ( (binary_expression "(int)param_3 < 0" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      param_3 = (byte *)-(int)param_3;\n      pbVar19 = &DAT_0000000a;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }" { (expression_statement "param_3 = (byte *)-(int)param_3;" (assignment_expression "param_3 = (byte *)-(int)param_3" identifier = (cast_expression "(byte *)-(int)param_3" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)param_3" - (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "pbVar19 = &DAT_0000000a;" (assignment_expression "pbVar19 = &DAT_0000000a" identifier = (pointer_expression "&DAT_0000000a" & identifier)) ;) (if_statement "if ((int)param_3 < 0x25) goto LAB_000183f8;" if (parenthesized_expression "((int)param_3 < 0x25)" ( (binary_expression "(int)param_3 < 0x25" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_000183f8;" goto statement_identifier ;)) }) (else_clause "else {\n      pbVar19 = param_3;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }" else (compound_statement "{\n      pbVar19 = param_3;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }" { (expression_statement "pbVar19 = param_3;" (assignment_expression "pbVar19 = param_3" identifier = identifier) ;) (if_statement "if ((int)param_3 < 0x25) goto LAB_000183f8;" if (parenthesized_expression "((int)param_3 < 0x25)" ( (binary_expression "(int)param_3 < 0x25" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_000183f8;" goto statement_identifier ;)) }))) (expression_statement "puVar15 = auStack_80;" (assignment_expression "puVar15 = auStack_80" identifier = identifier) ;) (if_statement "if ((int)param_3 < 0x3f) {\n      puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;\n      if ((int)param_3 <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;\n      goto LAB_00018368;\n    }" if (parenthesized_expression "((int)param_3 < 0x3f)" ( (binary_expression "(int)param_3 < 0x3f" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;\n      if ((int)param_3 <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;\n      goto LAB_00018368;\n    }" { (expression_statement "puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;" (assignment_expression "puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0" identifier = (binary_expression "PTR___gmp_digit_value_tab_0009d388 + 0xd0" identifier + number_literal)) ;) (if_statement "if ((int)param_3 <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;" if (parenthesized_expression "((int)param_3 <= (int)(uint)(byte)puVar21[uVar22])" ( (binary_expression "(int)param_3 <= (int)(uint)(byte)puVar21[uVar22]" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(uint)(byte)puVar21[uVar22]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)(byte)puVar21[uVar22]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar21[uVar22]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar21[uVar22]" identifier [ identifier ]))))) )) (goto_statement "goto LAB_00018310;" goto statement_identifier ;)) (goto_statement "goto LAB_00018368;" goto statement_identifier ;) })) (labeled_statement "LAB_00018710:\n    puVar26 = puVar15;" statement_identifier : (expression_statement "puVar26 = puVar15;" (assignment_expression "puVar26 = puVar15" identifier = identifier) ;)) (expression_statement "uVar22 = 0xffffffff;" (assignment_expression "uVar22 = 0xffffffff" identifier = number_literal) ;) (goto_statement "goto LAB_00018714;" goto statement_identifier ;) })) (expression_statement "param_3 = &DAT_0000000a;" (assignment_expression "param_3 = &DAT_0000000a" identifier = (pointer_expression "&DAT_0000000a" & identifier)) ;) (expression_statement "pbVar19 = &DAT_0000000a;" (assignment_expression "pbVar19 = &DAT_0000000a" identifier = (pointer_expression "&DAT_0000000a" & identifier)) ;) (labeled_statement "LAB_000183f8:\n  puVar21 = PTR___gmp_digit_value_tab_0009d388;" statement_identifier : (expression_statement "puVar21 = PTR___gmp_digit_value_tab_0009d388;" (assignment_expression "puVar21 = PTR___gmp_digit_value_tab_0009d388" identifier = identifier) ;)) (if_statement "if ((int)param_3 <= (int)(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]) {\nLAB_00018310:\n    pbVar14 = param_2;\n    if (iVar4 != 0) {\n      puVar15 = auStack_80;\n      if (*param_2 == *pbVar3) {\n        pbVar14 = param_2 + iVar4;\n        pbVar6 = param_2;\n        pbVar8 = pbVar3;\n        do {\n          pbVar8 = pbVar8 + 1;\n          pbVar6 = pbVar6 + 1;\n          if (pbVar14 == pbVar6) goto LAB_0001834c;\n          puVar15 = auStack_80;\n        } while (*pbVar6 == *pbVar8);\n      }\n      goto LAB_00018710;\n    }\nLAB_0001834c:\n    uVar22 = 0xffffffff;\n    if ((int)param_3 <= (int)(uint)(byte)puVar21[*pbVar14]) goto LAB_00018714;\n  }" if (parenthesized_expression "((int)param_3 <= (int)(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22])" ( (binary_expression "(int)param_3 <= (int)(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR___gmp_digit_value_tab_0009d388[uVar22]" identifier [ identifier ]))))) )) (compound_statement "{\nLAB_00018310:\n    pbVar14 = param_2;\n    if (iVar4 != 0) {\n      puVar15 = auStack_80;\n      if (*param_2 == *pbVar3) {\n        pbVar14 = param_2 + iVar4;\n        pbVar6 = param_2;\n        pbVar8 = pbVar3;\n        do {\n          pbVar8 = pbVar8 + 1;\n          pbVar6 = pbVar6 + 1;\n          if (pbVar14 == pbVar6) goto LAB_0001834c;\n          puVar15 = auStack_80;\n        } while (*pbVar6 == *pbVar8);\n      }\n      goto LAB_00018710;\n    }\nLAB_0001834c:\n    uVar22 = 0xffffffff;\n    if ((int)param_3 <= (int)(uint)(byte)puVar21[*pbVar14]) goto LAB_00018714;\n  }" { (labeled_statement "LAB_00018310:\n    pbVar14 = param_2;" statement_identifier : (expression_statement "pbVar14 = param_2;" (assignment_expression "pbVar14 = param_2" identifier = identifier) ;)) (if_statement "if (iVar4 != 0) {\n      puVar15 = auStack_80;\n      if (*param_2 == *pbVar3) {\n        pbVar14 = param_2 + iVar4;\n        pbVar6 = param_2;\n        pbVar8 = pbVar3;\n        do {\n          pbVar8 = pbVar8 + 1;\n          pbVar6 = pbVar6 + 1;\n          if (pbVar14 == pbVar6) goto LAB_0001834c;\n          puVar15 = auStack_80;\n        } while (*pbVar6 == *pbVar8);\n      }\n      goto LAB_00018710;\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      puVar15 = auStack_80;\n      if (*param_2 == *pbVar3) {\n        pbVar14 = param_2 + iVar4;\n        pbVar6 = param_2;\n        pbVar8 = pbVar3;\n        do {\n          pbVar8 = pbVar8 + 1;\n          pbVar6 = pbVar6 + 1;\n          if (pbVar14 == pbVar6) goto LAB_0001834c;\n          puVar15 = auStack_80;\n        } while (*pbVar6 == *pbVar8);\n      }\n      goto LAB_00018710;\n    }" { (expression_statement "puVar15 = auStack_80;" (assignment_expression "puVar15 = auStack_80" identifier = identifier) ;) (if_statement "if (*param_2 == *pbVar3) {\n        pbVar14 = param_2 + iVar4;\n        pbVar6 = param_2;\n        pbVar8 = pbVar3;\n        do {\n          pbVar8 = pbVar8 + 1;\n          pbVar6 = pbVar6 + 1;\n          if (pbVar14 == pbVar6) goto LAB_0001834c;\n          puVar15 = auStack_80;\n        } while (*pbVar6 == *pbVar8);\n      }" if (parenthesized_expression "(*param_2 == *pbVar3)" ( (binary_expression "*param_2 == *pbVar3" (pointer_expression "*param_2" * identifier) == (pointer_expression "*pbVar3" * identifier)) )) (compound_statement "{\n        pbVar14 = param_2 + iVar4;\n        pbVar6 = param_2;\n        pbVar8 = pbVar3;\n        do {\n          pbVar8 = pbVar8 + 1;\n          pbVar6 = pbVar6 + 1;\n          if (pbVar14 == pbVar6) goto LAB_0001834c;\n          puVar15 = auStack_80;\n        } while (*pbVar6 == *pbVar8);\n      }" { (expression_statement "pbVar14 = param_2 + iVar4;" (assignment_expression "pbVar14 = param_2 + iVar4" identifier = (binary_expression "param_2 + iVar4" identifier + identifier)) ;) (expression_statement "pbVar6 = param_2;" (assignment_expression "pbVar6 = param_2" identifier = identifier) ;) (expression_statement "pbVar8 = pbVar3;" (assignment_expression "pbVar8 = pbVar3" identifier = identifier) ;) (do_statement "do {\n          pbVar8 = pbVar8 + 1;\n          pbVar6 = pbVar6 + 1;\n          if (pbVar14 == pbVar6) goto LAB_0001834c;\n          puVar15 = auStack_80;\n        } while (*pbVar6 == *pbVar8);" do (compound_statement "{\n          pbVar8 = pbVar8 + 1;\n          pbVar6 = pbVar6 + 1;\n          if (pbVar14 == pbVar6) goto LAB_0001834c;\n          puVar15 = auStack_80;\n        }" { (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" identifier = (binary_expression "pbVar6 + 1" identifier + number_literal)) ;) (if_statement "if (pbVar14 == pbVar6) goto LAB_0001834c;" if (parenthesized_expression "(pbVar14 == pbVar6)" ( (binary_expression "pbVar14 == pbVar6" identifier == identifier) )) (goto_statement "goto LAB_0001834c;" goto statement_identifier ;)) (expression_statement "puVar15 = auStack_80;" (assignment_expression "puVar15 = auStack_80" identifier = identifier) ;) }) while (parenthesized_expression "(*pbVar6 == *pbVar8)" ( (binary_expression "*pbVar6 == *pbVar8" (pointer_expression "*pbVar6" * identifier) == (pointer_expression "*pbVar8" * identifier)) )) ;) })) (goto_statement "goto LAB_00018710;" goto statement_identifier ;) })) (labeled_statement "LAB_0001834c:\n    uVar22 = 0xffffffff;" statement_identifier : (expression_statement "uVar22 = 0xffffffff;" (assignment_expression "uVar22 = 0xffffffff" identifier = number_literal) ;)) (if_statement "if ((int)param_3 <= (int)(uint)(byte)puVar21[*pbVar14]) goto LAB_00018714;" if (parenthesized_expression "((int)param_3 <= (int)(uint)(byte)puVar21[*pbVar14])" ( (binary_expression "(int)param_3 <= (int)(uint)(byte)puVar21[*pbVar14]" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(uint)(byte)puVar21[*pbVar14]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)(byte)puVar21[*pbVar14]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar21[*pbVar14]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar21[*pbVar14]" identifier [ (pointer_expression "*pbVar14" * identifier) ]))))) )) (goto_statement "goto LAB_00018714;" goto statement_identifier ;)) })) (labeled_statement "LAB_00018368:\n  pbVar6 = (byte *)(*(code *)PTR_strlen_0009d360)(param_2);" statement_identifier : (expression_statement "pbVar6 = (byte *)(*(code *)PTR_strlen_0009d360)(param_2);" (assignment_expression "pbVar6 = (byte *)(*(code *)PTR_strlen_0009d360)(param_2)" identifier = (cast_expression "(byte *)(*(code *)PTR_strlen_0009d360)(param_2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strlen_0009d360)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_0009d360)" ( (pointer_expression "*(code *)PTR_strlen_0009d360" * (cast_expression "(code *)PTR_strlen_0009d360" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier ))))) ;)) (expression_statement "pbVar14 = pbVar6 + -1;" (assignment_expression "pbVar14 = pbVar6 + -1" identifier = (binary_expression "pbVar6 + -1" identifier + number_literal)) ;) (if_statement "if (pbVar14 == (byte *)0x0) {\n    puVar25 = auStack_88;\n    local_30 = 0;\n    pbVar16 = (byte *)0x0;\n    pbVar6 = abStack_70;\n    pbVar14 = (byte *)0x1;\nLAB_00018460:\n    pbVar18 = (byte *)0x0;\n    pbVar8 = pbVar6;\n    pbVar23 = (byte *)0x0;\n    do {\n      while( true ) {\n        bVar11 = *param_2;\n        puVar26 = puVar25;\n        if ((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pbVar18 = pbVar18 + 1;\n        param_2 = param_2 + 1;\n        if (pbVar14 <= pbVar18) goto LAB_00018500;\n      }\n      if (iVar4 != 0) {\n        if (*pbVar3 == bVar11) {\n          pbVar7 = param_2;\n          pbVar9 = pbVar3;\n          do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);\n        }\n        if ((int)(uint)(byte)puVar21[bVar11] < (int)param_3) {\n          *pbVar8 = puVar21[bVar11];\n          pbVar8 = pbVar8 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }\nLAB_000184e0:\n      if (pbVar23 != (byte *)0x0) goto LAB_000186f8;\n      pbVar18 = pbVar18 + iVar4;\n      param_2 = param_2 + iVar4;\n      pbVar23 = pbVar8;\n    } while (pbVar18 < pbVar14);\nLAB_00018500:\n    pbVar14 = pbVar8 + -(int)pbVar6;\n    iVar4 = *param_1;\n    uVar22 = (((uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5) + 2) * 4;\n    param_2 = (byte *)(iVar4 + 1);\n    if (uVar22 < 0x7f01) goto LAB_00018544;\n    local_3c = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }\n  else {\n    bVar11 = param_2[(int)pbVar14];\n    if (bVar11 == 0x40) {\n      pbVar16 = param_2 + (int)pbVar6;\n      pbVar8 = pbVar6;\n    }\n    else {\n      pbVar8 = pbVar6 + -2;\n      pbVar23 = pbVar14;\n      if ((int)param_3 < 0xb) {\n        do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);\nLAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;\n        pbVar8 = pbVar23;\n      }\n      else {\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }\n    }\nLAB_0001843c:\n    local_30 = 0;\n    if ((byte *)0x7f00 < pbVar8) {\n      pbVar6 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      iVar17 = *piVar5;\n      goto LAB_00018460;\n    }\n    iVar10 = -((uint)(pbVar8 + 7) & 0xfffffff8);\n    puVar25 = auStack_80 + iVar10;\n    puVar26 = auStack_80 + iVar10;\n    pbVar6 = &stack0xffffff98 + iVar10;\n    if (pbVar14 != (byte *)0x0) goto LAB_00018460;\n    pbVar23 = (byte *)0x0;\n    uVar22 = 8;\n    iVar4 = *param_1;\n    param_2 = (byte *)(iVar4 + 1);\n    pbVar8 = pbVar6;\nLAB_00018544:\n    iVar17 = -(uVar22 + 7 & 0xfffffff8);\n    local_3c = puVar26 + iVar17 + 0x18;\n    puVar26 = puVar26 + iVar17;\n  }" if (parenthesized_expression "(pbVar14 == (byte *)0x0)" ( (binary_expression "pbVar14 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar25 = auStack_88;\n    local_30 = 0;\n    pbVar16 = (byte *)0x0;\n    pbVar6 = abStack_70;\n    pbVar14 = (byte *)0x1;\nLAB_00018460:\n    pbVar18 = (byte *)0x0;\n    pbVar8 = pbVar6;\n    pbVar23 = (byte *)0x0;\n    do {\n      while( true ) {\n        bVar11 = *param_2;\n        puVar26 = puVar25;\n        if ((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pbVar18 = pbVar18 + 1;\n        param_2 = param_2 + 1;\n        if (pbVar14 <= pbVar18) goto LAB_00018500;\n      }\n      if (iVar4 != 0) {\n        if (*pbVar3 == bVar11) {\n          pbVar7 = param_2;\n          pbVar9 = pbVar3;\n          do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);\n        }\n        if ((int)(uint)(byte)puVar21[bVar11] < (int)param_3) {\n          *pbVar8 = puVar21[bVar11];\n          pbVar8 = pbVar8 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }\nLAB_000184e0:\n      if (pbVar23 != (byte *)0x0) goto LAB_000186f8;\n      pbVar18 = pbVar18 + iVar4;\n      param_2 = param_2 + iVar4;\n      pbVar23 = pbVar8;\n    } while (pbVar18 < pbVar14);\nLAB_00018500:\n    pbVar14 = pbVar8 + -(int)pbVar6;\n    iVar4 = *param_1;\n    uVar22 = (((uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5) + 2) * 4;\n    param_2 = (byte *)(iVar4 + 1);\n    if (uVar22 < 0x7f01) goto LAB_00018544;\n    local_3c = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }" { (expression_statement "puVar25 = auStack_88;" (assignment_expression "puVar25 = auStack_88" identifier = identifier) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "pbVar16 = (byte *)0x0;" (assignment_expression "pbVar16 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar6 = abStack_70;" (assignment_expression "pbVar6 = abStack_70" identifier = identifier) ;) (expression_statement "pbVar14 = (byte *)0x1;" (assignment_expression "pbVar14 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00018460:\n    pbVar18 = (byte *)0x0;" statement_identifier : (expression_statement "pbVar18 = (byte *)0x0;" (assignment_expression "pbVar18 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pbVar8 = pbVar6;" (assignment_expression "pbVar8 = pbVar6" identifier = identifier) ;) (expression_statement "pbVar23 = (byte *)0x0;" (assignment_expression "pbVar23 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      while( true ) {\n        bVar11 = *param_2;\n        puVar26 = puVar25;\n        if ((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pbVar18 = pbVar18 + 1;\n        param_2 = param_2 + 1;\n        if (pbVar14 <= pbVar18) goto LAB_00018500;\n      }\n      if (iVar4 != 0) {\n        if (*pbVar3 == bVar11) {\n          pbVar7 = param_2;\n          pbVar9 = pbVar3;\n          do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);\n        }\n        if ((int)(uint)(byte)puVar21[bVar11] < (int)param_3) {\n          *pbVar8 = puVar21[bVar11];\n          pbVar8 = pbVar8 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }\nLAB_000184e0:\n      if (pbVar23 != (byte *)0x0) goto LAB_000186f8;\n      pbVar18 = pbVar18 + iVar4;\n      param_2 = param_2 + iVar4;\n      pbVar23 = pbVar8;\n    } while (pbVar18 < pbVar14);" do (compound_statement "{\n      while( true ) {\n        bVar11 = *param_2;\n        puVar26 = puVar25;\n        if ((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pbVar18 = pbVar18 + 1;\n        param_2 = param_2 + 1;\n        if (pbVar14 <= pbVar18) goto LAB_00018500;\n      }\n      if (iVar4 != 0) {\n        if (*pbVar3 == bVar11) {\n          pbVar7 = param_2;\n          pbVar9 = pbVar3;\n          do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);\n        }\n        if ((int)(uint)(byte)puVar21[bVar11] < (int)param_3) {\n          *pbVar8 = puVar21[bVar11];\n          pbVar8 = pbVar8 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }\nLAB_000184e0:\n      if (pbVar23 != (byte *)0x0) goto LAB_000186f8;\n      pbVar18 = pbVar18 + iVar4;\n      param_2 = param_2 + iVar4;\n      pbVar23 = pbVar8;\n    }" { (while_statement "while( true ) {\n        bVar11 = *param_2;\n        puVar26 = puVar25;\n        if ((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pbVar18 = pbVar18 + 1;\n        param_2 = param_2 + 1;\n        if (pbVar14 <= pbVar18) goto LAB_00018500;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        bVar11 = *param_2;\n        puVar26 = puVar25;\n        if ((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pbVar18 = pbVar18 + 1;\n        param_2 = param_2 + 1;\n        if (pbVar14 <= pbVar18) goto LAB_00018500;\n      }" { (expression_statement "bVar11 = *param_2;" (assignment_expression "bVar11 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "puVar26 = puVar25;" (assignment_expression "puVar26 = puVar25" identifier = identifier) ;) (if_statement "if ((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0) break;" if (parenthesized_expression "((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0)" ( (binary_expression "(*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20)" ( (binary_expression "*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20" (pointer_expression "*(ushort *)(iVar17 + (uint)bVar11 * 2)" * (cast_expression "(ushort *)(iVar17 + (uint)bVar11 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + (uint)bVar11 * 2)" ( (binary_expression "iVar17 + (uint)bVar11 * 2" identifier + (binary_expression "(uint)bVar11 * 2" (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00018474:\n        pbVar18 = pbVar18 + 1;" statement_identifier : (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;)) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (if_statement "if (pbVar14 <= pbVar18) goto LAB_00018500;" if (parenthesized_expression "(pbVar14 <= pbVar18)" ( (binary_expression "pbVar14 <= pbVar18" identifier <= identifier) )) (goto_statement "goto LAB_00018500;" goto statement_identifier ;)) })) (if_statement "if (iVar4 != 0) {\n        if (*pbVar3 == bVar11) {\n          pbVar7 = param_2;\n          pbVar9 = pbVar3;\n          do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);\n        }\n        if ((int)(uint)(byte)puVar21[bVar11] < (int)param_3) {\n          *pbVar8 = puVar21[bVar11];\n          pbVar8 = pbVar8 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        if (*pbVar3 == bVar11) {\n          pbVar7 = param_2;\n          pbVar9 = pbVar3;\n          do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);\n        }\n        if ((int)(uint)(byte)puVar21[bVar11] < (int)param_3) {\n          *pbVar8 = puVar21[bVar11];\n          pbVar8 = pbVar8 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }" { (if_statement "if (*pbVar3 == bVar11) {\n          pbVar7 = param_2;\n          pbVar9 = pbVar3;\n          do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);\n        }" if (parenthesized_expression "(*pbVar3 == bVar11)" ( (binary_expression "*pbVar3 == bVar11" (pointer_expression "*pbVar3" * identifier) == identifier) )) (compound_statement "{\n          pbVar7 = param_2;\n          pbVar9 = pbVar3;\n          do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);\n        }" { (expression_statement "pbVar7 = param_2;" (assignment_expression "pbVar7 = param_2" identifier = identifier) ;) (expression_statement "pbVar9 = pbVar3;" (assignment_expression "pbVar9 = pbVar3" identifier = identifier) ;) (do_statement "do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);" do (compound_statement "{\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          }" { (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (if_statement "if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;" if (parenthesized_expression "(pbVar7 == param_2 + iVar4)" ( (binary_expression "pbVar7 == param_2 + iVar4" identifier == (binary_expression "param_2 + iVar4" identifier + identifier)) )) (goto_statement "goto LAB_000184e0;" goto statement_identifier ;)) }) while (parenthesized_expression "(*pbVar7 == *pbVar9)" ( (binary_expression "*pbVar7 == *pbVar9" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar9" * identifier)) )) ;) })) (if_statement "if ((int)(uint)(byte)puVar21[bVar11] < (int)param_3) {\n          *pbVar8 = puVar21[bVar11];\n          pbVar8 = pbVar8 + 1;\n          goto LAB_00018474;\n        }" if (parenthesized_expression "((int)(uint)(byte)puVar21[bVar11] < (int)param_3)" ( (binary_expression "(int)(uint)(byte)puVar21[bVar11] < (int)param_3" (cast_expression "(int)(uint)(byte)puVar21[bVar11]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)(byte)puVar21[bVar11]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar21[bVar11]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar21[bVar11]" identifier [ identifier ])))) < (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          *pbVar8 = puVar21[bVar11];\n          pbVar8 = pbVar8 + 1;\n          goto LAB_00018474;\n        }" { (expression_statement "*pbVar8 = puVar21[bVar11];" (assignment_expression "*pbVar8 = puVar21[bVar11]" (pointer_expression "*pbVar8" * identifier) = (subscript_expression "puVar21[bVar11]" identifier [ identifier ])) ;) (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_00018474;" goto statement_identifier ;) })) (goto_statement "goto LAB_000186f8;" goto statement_identifier ;) })) (labeled_statement "LAB_000184e0:\n      if (pbVar23 != (byte *)0x0) goto LAB_000186f8;" statement_identifier : (if_statement "if (pbVar23 != (byte *)0x0) goto LAB_000186f8;" if (parenthesized_expression "(pbVar23 != (byte *)0x0)" ( (binary_expression "pbVar23 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000186f8;" goto statement_identifier ;))) (expression_statement "pbVar18 = pbVar18 + iVar4;" (assignment_expression "pbVar18 = pbVar18 + iVar4" identifier = (binary_expression "pbVar18 + iVar4" identifier + identifier)) ;) (expression_statement "param_2 = param_2 + iVar4;" (assignment_expression "param_2 = param_2 + iVar4" identifier = (binary_expression "param_2 + iVar4" identifier + identifier)) ;) (expression_statement "pbVar23 = pbVar8;" (assignment_expression "pbVar23 = pbVar8" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar18 < pbVar14)" ( (binary_expression "pbVar18 < pbVar14" identifier < identifier) )) ;) (labeled_statement "LAB_00018500:\n    pbVar14 = pbVar8 + -(int)pbVar6;" statement_identifier : (expression_statement "pbVar14 = pbVar8 + -(int)pbVar6;" (assignment_expression "pbVar14 = pbVar8 + -(int)pbVar6" identifier = (binary_expression "pbVar8 + -(int)pbVar6" identifier + (unary_expression "-(int)pbVar6" - (cast_expression "(int)pbVar6" ( (type_descriptor "int" primitive_type) ) identifier)))) ;)) (expression_statement "iVar4 = *param_1;" (assignment_expression "iVar4 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar22 = (((uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5) + 2) * 4;" (assignment_expression "uVar22 = (((uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5) + 2) * 4" identifier = (binary_expression "(((uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5) + 2) * 4" (parenthesized_expression "(((uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5) + 2)" ( (binary_expression "((uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5) + 2" (parenthesized_expression "((uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5)" ( (binary_expression "(uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5" (call_expression "(uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3)" ( (binary_expression "(int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3" (cast_expression "(int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)" ( (binary_expression "ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20" (binary_expression "ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8)" (binary_expression "ZEXT48(pbVar14) *\n                            (ulonglong)" (call_expression "ZEXT48(pbVar14)" identifier (argument_list "(pbVar14)" ( identifier ))) * (parenthesized_expression "(ulonglong)" ( identifier ))) * (cast_expression "(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8)" ( (binary_expression "PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8" (binary_expression "PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14" identifier + (binary_expression "(int)param_3 * 0x14" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) >> number_literal) ))) << number_literal) ))) >> number_literal) )) + number_literal) )) * number_literal)) ;) (expression_statement "param_2 = (byte *)(iVar4 + 1);" (assignment_expression "param_2 = (byte *)(iVar4 + 1)" identifier = (cast_expression "(byte *)(iVar4 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 1)" ( (binary_expression "iVar4 + 1" identifier + number_literal) )))) ;) (if_statement "if (uVar22 < 0x7f01) goto LAB_00018544;" if (parenthesized_expression "(uVar22 < 0x7f01)" ( (binary_expression "uVar22 < 0x7f01" identifier < number_literal) )) (goto_statement "goto LAB_00018544;" goto statement_identifier ;)) (expression_statement "local_3c = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);" (assignment_expression "local_3c = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" identifier = (cast_expression "(byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30)" ( (pointer_expression "&local_30" & identifier) ))))) ;) }) (else_clause "else {\n    bVar11 = param_2[(int)pbVar14];\n    if (bVar11 == 0x40) {\n      pbVar16 = param_2 + (int)pbVar6;\n      pbVar8 = pbVar6;\n    }\n    else {\n      pbVar8 = pbVar6 + -2;\n      pbVar23 = pbVar14;\n      if ((int)param_3 < 0xb) {\n        do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);\nLAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;\n        pbVar8 = pbVar23;\n      }\n      else {\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }\n    }\nLAB_0001843c:\n    local_30 = 0;\n    if ((byte *)0x7f00 < pbVar8) {\n      pbVar6 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      iVar17 = *piVar5;\n      goto LAB_00018460;\n    }\n    iVar10 = -((uint)(pbVar8 + 7) & 0xfffffff8);\n    puVar25 = auStack_80 + iVar10;\n    puVar26 = auStack_80 + iVar10;\n    pbVar6 = &stack0xffffff98 + iVar10;\n    if (pbVar14 != (byte *)0x0) goto LAB_00018460;\n    pbVar23 = (byte *)0x0;\n    uVar22 = 8;\n    iVar4 = *param_1;\n    param_2 = (byte *)(iVar4 + 1);\n    pbVar8 = pbVar6;\nLAB_00018544:\n    iVar17 = -(uVar22 + 7 & 0xfffffff8);\n    local_3c = puVar26 + iVar17 + 0x18;\n    puVar26 = puVar26 + iVar17;\n  }" else (compound_statement "{\n    bVar11 = param_2[(int)pbVar14];\n    if (bVar11 == 0x40) {\n      pbVar16 = param_2 + (int)pbVar6;\n      pbVar8 = pbVar6;\n    }\n    else {\n      pbVar8 = pbVar6 + -2;\n      pbVar23 = pbVar14;\n      if ((int)param_3 < 0xb) {\n        do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);\nLAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;\n        pbVar8 = pbVar23;\n      }\n      else {\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }\n    }\nLAB_0001843c:\n    local_30 = 0;\n    if ((byte *)0x7f00 < pbVar8) {\n      pbVar6 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      iVar17 = *piVar5;\n      goto LAB_00018460;\n    }\n    iVar10 = -((uint)(pbVar8 + 7) & 0xfffffff8);\n    puVar25 = auStack_80 + iVar10;\n    puVar26 = auStack_80 + iVar10;\n    pbVar6 = &stack0xffffff98 + iVar10;\n    if (pbVar14 != (byte *)0x0) goto LAB_00018460;\n    pbVar23 = (byte *)0x0;\n    uVar22 = 8;\n    iVar4 = *param_1;\n    param_2 = (byte *)(iVar4 + 1);\n    pbVar8 = pbVar6;\nLAB_00018544:\n    iVar17 = -(uVar22 + 7 & 0xfffffff8);\n    local_3c = puVar26 + iVar17 + 0x18;\n    puVar26 = puVar26 + iVar17;\n  }" { (expression_statement "bVar11 = param_2[(int)pbVar14];" (assignment_expression "bVar11 = param_2[(int)pbVar14]" identifier = (subscript_expression "param_2[(int)pbVar14]" identifier [ (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) (if_statement "if (bVar11 == 0x40) {\n      pbVar16 = param_2 + (int)pbVar6;\n      pbVar8 = pbVar6;\n    }\n    else {\n      pbVar8 = pbVar6 + -2;\n      pbVar23 = pbVar14;\n      if ((int)param_3 < 0xb) {\n        do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);\nLAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;\n        pbVar8 = pbVar23;\n      }\n      else {\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }\n    }" if (parenthesized_expression "(bVar11 == 0x40)" ( (binary_expression "bVar11 == 0x40" identifier == number_literal) )) (compound_statement "{\n      pbVar16 = param_2 + (int)pbVar6;\n      pbVar8 = pbVar6;\n    }" { (expression_statement "pbVar16 = param_2 + (int)pbVar6;" (assignment_expression "pbVar16 = param_2 + (int)pbVar6" identifier = (binary_expression "param_2 + (int)pbVar6" identifier + (cast_expression "(int)pbVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pbVar8 = pbVar6;" (assignment_expression "pbVar8 = pbVar6" identifier = identifier) ;) }) (else_clause "else {\n      pbVar8 = pbVar6 + -2;\n      pbVar23 = pbVar14;\n      if ((int)param_3 < 0xb) {\n        do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);\nLAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;\n        pbVar8 = pbVar23;\n      }\n      else {\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }\n    }" else (compound_statement "{\n      pbVar8 = pbVar6 + -2;\n      pbVar23 = pbVar14;\n      if ((int)param_3 < 0xb) {\n        do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);\nLAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;\n        pbVar8 = pbVar23;\n      }\n      else {\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }\n    }" { (expression_statement "pbVar8 = pbVar6 + -2;" (assignment_expression "pbVar8 = pbVar6 + -2" identifier = (binary_expression "pbVar6 + -2" identifier + number_literal)) ;) (expression_statement "pbVar23 = pbVar14;" (assignment_expression "pbVar23 = pbVar14" identifier = identifier) ;) (if_statement "if ((int)param_3 < 0xb) {\n        do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);\nLAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;\n        pbVar8 = pbVar23;\n      }\n      else {\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }" if (parenthesized_expression "((int)param_3 < 0xb)" ( (binary_expression "(int)param_3 < 0xb" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);\nLAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;\n        pbVar8 = pbVar23;\n      }" { (do_statement "do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);" do (compound_statement "{\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        }" { (expression_statement "pbVar23 = pbVar14;" (assignment_expression "pbVar23 = pbVar14" identifier = identifier) ;) (expression_statement "pbVar14 = pbVar23 + -1;" (assignment_expression "pbVar14 = pbVar23 + -1" identifier = (binary_expression "pbVar23 + -1" identifier + number_literal)) ;) (if_statement "if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }" if (parenthesized_expression "((bVar11 & 0xdf) == 0x45)" ( (binary_expression "(bVar11 & 0xdf) == 0x45" (parenthesized_expression "(bVar11 & 0xdf)" ( (binary_expression "bVar11 & 0xdf" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }" { (expression_statement "pbVar16 = param_2 + (int)(pbVar23 + 1);" (assignment_expression "pbVar16 = param_2 + (int)(pbVar23 + 1)" identifier = (binary_expression "param_2 + (int)(pbVar23 + 1)" identifier + (cast_expression "(int)(pbVar23 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar23 + 1)" ( (binary_expression "pbVar23 + 1" identifier + number_literal) ))))) ;) (expression_statement "pbVar8 = pbVar23 + 1;" (assignment_expression "pbVar8 = pbVar23 + 1" identifier = (binary_expression "pbVar23 + 1" identifier + number_literal)) ;) (expression_statement "pbVar14 = pbVar23;" (assignment_expression "pbVar14 = pbVar23" identifier = identifier) ;) (goto_statement "goto LAB_0001843c;" goto statement_identifier ;) })) (if_statement "if (pbVar14 == (byte *)0x0) goto LAB_00018434;" if (parenthesized_expression "(pbVar14 == (byte *)0x0)" ( (binary_expression "pbVar14 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00018434;" goto statement_identifier ;)) (expression_statement "bVar11 = param_2[(int)pbVar14];" (assignment_expression "bVar11 = param_2[(int)pbVar14]" identifier = (subscript_expression "param_2[(int)pbVar14]" identifier [ (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) }) while (parenthesized_expression "(bVar11 != 0x40)" ( (binary_expression "bVar11 != 0x40" identifier != number_literal) )) ;) (labeled_statement "LAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;" statement_identifier : (expression_statement "pbVar16 = param_2 + (int)pbVar23;" (assignment_expression "pbVar16 = param_2 + (int)pbVar23" identifier = (binary_expression "param_2 + (int)pbVar23" identifier + (cast_expression "(int)pbVar23" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (expression_statement "pbVar8 = pbVar23;" (assignment_expression "pbVar8 = pbVar23" identifier = identifier) ;) }) (else_clause "else {\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }" else (compound_statement "{\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }" { (while_statement "while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }" while (parenthesized_expression "(pbVar14 = pbVar8, pbVar14 != (byte *)0x0)" ( (comma_expression "pbVar14 = pbVar8, pbVar14 != (byte *)0x0" (assignment_expression "pbVar14 = pbVar8" identifier = identifier) , (binary_expression "pbVar14 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }" { (if_statement "if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;" if (parenthesized_expression "(param_2[(int)pbVar14] == 0x40)" ( (binary_expression "param_2[(int)pbVar14] == 0x40" (subscript_expression "param_2[(int)pbVar14]" identifier [ (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier) ]) == number_literal) )) (goto_statement "goto LAB_0001878c;" goto statement_identifier ;)) (expression_statement "pbVar23 = pbVar14;" (assignment_expression "pbVar23 = pbVar14" identifier = identifier) ;) (expression_statement "pbVar8 = pbVar14 + -1;" (assignment_expression "pbVar8 = pbVar14 + -1" identifier = (binary_expression "pbVar14 + -1" identifier + number_literal)) ;) })) (labeled_statement "LAB_00018434:\n        pbVar16 = (byte *)0x0;" statement_identifier : (expression_statement "pbVar16 = (byte *)0x0;" (assignment_expression "pbVar16 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pbVar8 = pbVar6 + 1;" (assignment_expression "pbVar8 = pbVar6 + 1" identifier = (binary_expression "pbVar6 + 1" identifier + number_literal)) ;) (expression_statement "pbVar14 = pbVar6;" (assignment_expression "pbVar14 = pbVar6" identifier = identifier) ;) }))) }))) (labeled_statement "LAB_0001843c:\n    local_30 = 0;" statement_identifier : (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;)) (if_statement "if ((byte *)0x7f00 < pbVar8) {\n      pbVar6 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      iVar17 = *piVar5;\n      goto LAB_00018460;\n    }" if (parenthesized_expression "((byte *)0x7f00 < pbVar8)" ( (binary_expression "(byte *)0x7f00 < pbVar8" (cast_expression "(byte *)0x7f00" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n      pbVar6 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      iVar17 = *piVar5;\n      goto LAB_00018460;\n    }" { (expression_statement "pbVar6 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);" (assignment_expression "pbVar6 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" identifier = (cast_expression "(byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30)" ( (pointer_expression "&local_30" & identifier) ))))) ;) (expression_statement "iVar17 = *piVar5;" (assignment_expression "iVar17 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (goto_statement "goto LAB_00018460;" goto statement_identifier ;) })) (expression_statement "iVar10 = -((uint)(pbVar8 + 7) & 0xfffffff8);" (assignment_expression "iVar10 = -((uint)(pbVar8 + 7) & 0xfffffff8)" identifier = (unary_expression "-((uint)(pbVar8 + 7) & 0xfffffff8)" - (parenthesized_expression "((uint)(pbVar8 + 7) & 0xfffffff8)" ( (binary_expression "(uint)(pbVar8 + 7) & 0xfffffff8" (call_expression "(uint)(pbVar8 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar8 + 7)" ( (binary_expression "pbVar8 + 7" identifier + number_literal) ))) & number_literal) )))) ;) (expression_statement "puVar25 = auStack_80 + iVar10;" (assignment_expression "puVar25 = auStack_80 + iVar10" identifier = (binary_expression "auStack_80 + iVar10" identifier + identifier)) ;) (expression_statement "puVar26 = auStack_80 + iVar10;" (assignment_expression "puVar26 = auStack_80 + iVar10" identifier = (binary_expression "auStack_80 + iVar10" identifier + identifier)) ;) (expression_statement "pbVar6 = &stack0xffffff98 + iVar10;" (assignment_expression "pbVar6 = &stack0xffffff98 + iVar10" identifier = (binary_expression "&stack0xffffff98 + iVar10" (pointer_expression "&stack0xffffff98" & identifier) + identifier)) ;) (if_statement "if (pbVar14 != (byte *)0x0) goto LAB_00018460;" if (parenthesized_expression "(pbVar14 != (byte *)0x0)" ( (binary_expression "pbVar14 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00018460;" goto statement_identifier ;)) (expression_statement "pbVar23 = (byte *)0x0;" (assignment_expression "pbVar23 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar22 = 8;" (assignment_expression "uVar22 = 8" identifier = number_literal) ;) (expression_statement "iVar4 = *param_1;" (assignment_expression "iVar4 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "param_2 = (byte *)(iVar4 + 1);" (assignment_expression "param_2 = (byte *)(iVar4 + 1)" identifier = (cast_expression "(byte *)(iVar4 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 1)" ( (binary_expression "iVar4 + 1" identifier + number_literal) )))) ;) (expression_statement "pbVar8 = pbVar6;" (assignment_expression "pbVar8 = pbVar6" identifier = identifier) ;) (labeled_statement "LAB_00018544:\n    iVar17 = -(uVar22 + 7 & 0xfffffff8);" statement_identifier : (expression_statement "iVar17 = -(uVar22 + 7 & 0xfffffff8);" (assignment_expression "iVar17 = -(uVar22 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar22 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar22 + 7 & 0xfffffff8)" ( (binary_expression "uVar22 + 7 & 0xfffffff8" (binary_expression "uVar22 + 7" identifier + number_literal) & number_literal) )))) ;)) (expression_statement "local_3c = puVar26 + iVar17 + 0x18;" (assignment_expression "local_3c = puVar26 + iVar17 + 0x18" identifier = (binary_expression "puVar26 + iVar17 + 0x18" (binary_expression "puVar26 + iVar17" identifier + identifier) + number_literal)) ;) (expression_statement "puVar26 = puVar26 + iVar17;" (assignment_expression "puVar26 = puVar26 + iVar17" identifier = (binary_expression "puVar26 + iVar17" identifier + identifier)) ;) }))) (expression_statement "param_4 = param_3;" (assignment_expression "param_4 = param_3" identifier = identifier) ;) (expression_statement "pbVar3 = (byte *)(*(code *)PTR___gmpn_set_str_0009d5b4)(local_3c,pbVar6);" (assignment_expression "pbVar3 = (byte *)(*(code *)PTR___gmpn_set_str_0009d5b4)(local_3c,pbVar6)" identifier = (cast_expression "(byte *)(*(code *)PTR___gmpn_set_str_0009d5b4)(local_3c,pbVar6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmpn_set_str_0009d5b4)(local_3c,pbVar6)" (parenthesized_expression "(*(code *)PTR___gmpn_set_str_0009d5b4)" ( (pointer_expression "*(code *)PTR___gmpn_set_str_0009d5b4" * (cast_expression "(code *)PTR___gmpn_set_str_0009d5b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_3c,pbVar6)" ( identifier , identifier ))))) ;) (if_statement "if (pbVar3 == (byte *)0x0) {\n    param_1[1] = 0;\n    param_1[2] = 0;\n    if (local_30 != 0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      uVar22 = 0;\n      goto LAB_00018714;\n    }\nLAB_000187ac:\n    uVar22 = 0;\n    goto LAB_00018714;\n  }" if (parenthesized_expression "(pbVar3 == (byte *)0x0)" ( (binary_expression "pbVar3 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    param_1[1] = 0;\n    param_1[2] = 0;\n    if (local_30 != 0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      uVar22 = 0;\n      goto LAB_00018714;\n    }\nLAB_000187ac:\n    uVar22 = 0;\n    goto LAB_00018714;\n  }" { (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (local_30 != 0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      uVar22 = 0;\n      goto LAB_00018714;\n    }" if (parenthesized_expression "(local_30 != 0)" ( (binary_expression "local_30 != 0" identifier != number_literal) )) (compound_statement "{\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      uVar22 = 0;\n      goto LAB_00018714;\n    }" { (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_0009d618" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_0009d618" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00018714;" goto statement_identifier ;) })) (labeled_statement "LAB_000187ac:\n    uVar22 = 0;" statement_identifier : (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_00018714;" goto statement_identifier ;) })) (expression_statement "local_54 = (int)pbVar3 - (int)param_2;" (assignment_expression "local_54 = (int)pbVar3 - (int)param_2" identifier = (binary_expression "(int)pbVar3 - (int)param_2" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)param_2 < (int)pbVar3) {\n    local_3c = local_3c + local_54 * 4;\n    local_4c = param_2;\n    if (pbVar16 == (byte *)0x0) goto LAB_000187d0;\nLAB_000185a0:\n    bVar11 = *pbVar16;\n    param_4 = (byte *)(uint)(bVar11 == 0x2d);\n    pbVar16 = pbVar16 + (bVar11 == 0x2b || bVar11 == 0x2d);\n    pbVar6 = (byte *)(uint)(byte)puVar21[*pbVar16];\n    if ((int)pbVar19 <= (int)pbVar6) {\nLAB_000186f8:\n      uVar22 = 0xffffffff;\n      if (local_30 == 0) goto LAB_00018714;\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      puVar15 = puVar26;\n      goto LAB_00018710;\n    }\n    pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[1]];\n    if ((int)pbVar14 < (int)pbVar19) {\n      pbVar16 = pbVar16 + 3;\n      do {\n        pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19;\n        pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]];\n        pbVar16 = pbVar16 + 1;\n      } while ((int)pbVar14 < (int)pbVar19);\n    }\n    local_44 = param_4 + (-(int)param_4 ^ (uint)pbVar6);\n    if (pbVar23 != (byte *)0x0) {\nLAB_00018628:\n      local_44 = local_44 + -((int)pbVar8 - (int)pbVar23);\n    }\n    if (local_44 == (byte *)0x0) goto LAB_000187e0;\n    iVar4 = iVar4 + 2;\n    uVar22 = iVar4 * 8;\n    if (uVar22 < 0x7f01) {\n      local_50 = puVar26 + iVar4 * -8 + 0x18;\n      pbVar14 = puVar26 + iVar4 * -0x10 + 0x18;\n      puVar26 = puVar26 + iVar4 * -0x10;\n    }\n    else {\n      local_50 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      pbVar14 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n    }\n    puVar21 = PTR___gmpn_clz_tab_0009d18c;\n    pbVar3 = local_44;\n    if ((int)local_44 < 0) {\n      pbVar3 = (byte *)-(int)local_44;\n    }\n    *(byte **)local_50 = param_3;\n    if ((int)pbVar3 < 0x10000) {\n      iVar10 = 0x18;\n      if (0xff < (int)pbVar3) {\n        iVar17 = 9;\n        goto LAB_00018870;\n      }\n      uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;\n      if (-1 < (int)uVar22) goto LAB_00018890;\n      if ((int)param_2 < 1) {\n        iVar10 = 0;\n        pbVar19 = (byte *)0x1;\n        iVar17 = 0;\n        pbVar14 = local_50;\n        goto LAB_00018988;\n      }\n      pbVar19 = (byte *)0x1;\n      iVar10 = 0;\n      *(byte **)local_50 = param_3;\n    }\n    else {\n      iVar17 = 0x19;\n      if ((int)pbVar3 < 0x1000000) {\n        iVar17 = 0x11;\n      }\n      iVar10 = 0x10;\n      if ((int)pbVar3 >= 0x1000000) {\n        iVar10 = 8;\n      }\nLAB_00018870:\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e;\nLAB_00018890:\n      iVar10 = 0;\n      pbVar19 = (byte *)0x1;\n      iVar17 = 0;\n      pbVar6 = local_50;\n      while( true ) {\n        pbVar8 = pbVar6;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);\n        iVar10 = iVar10 * 2;\n        pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));\n        if ((int)param_2 < (int)pbVar19) {\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }\n        else {\n          iVar17 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pbVar6 = pbVar14;\n        pbVar14 = pbVar8;\n      }\n      if ((int)param_2 < (int)pbVar19) {\nLAB_00018988:\n        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);\n        pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;\n        pbVar19 = param_2;\n      }\n      pbVar3 = pbVar19 + -1;\n      if (pbVar19 != (byte *)0x0) {\n        uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);\n        if (pbVar3 == (byte *)0x0) {\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }\n        else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }\n      }\n    }\n    pbVar3 = param_2;\n    if ((int)local_44 < 0) {\n      if ((int)local_4c < (int)pbVar19) {\n        if ((uint)((int)(pbVar19 + 1) * 4) < 0x7f01) {\n          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);\n          puVar15 = puVar26 + iVar17 + 0x18;\n          puVar26 = puVar26 + iVar17;\n        }\n        else {\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }\n        iVar17 = ((int)pbVar19 - (int)local_4c) * 4;\n        pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17);\n        if (local_4c != (byte *)0x0) {\n          pbVar16 = local_4c + -1;\n          pbVar8 = pbVar14 + iVar17;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar6 = pbVar8;\n          if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }\n          *(undefined4 *)pbVar8 = uVar12;\n        }\n        local_54 = local_54 - ((int)pbVar19 - (int)local_4c);\n        local_4c = pbVar19;\n        local_3c = pbVar14;\n      }\n      uVar22 = *(uint *)(local_50 + (int)pbVar19 * 4 + -4);\n      if (-1 < (int)uVar22) {\n        if (uVar22 < 0x10000) {\n          iVar17 = 0x20;\n          if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }\n          iVar13 = 9;\n          if (0xff >= uVar22) {\n            iVar13 = 1;\n          }\n        }\n        else {\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }\n        bVar11 = puVar21[uVar22 >> iVar13];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11);\n        iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11);\n        if (iVar17 != 0) {\n          iVar13 = (int)local_4c * 4;\n          local_4c = local_4c + 1;\n          *(int *)(local_3c + iVar13) = iVar17;\n        }\n      }\n      if ((uint)(iVar4 * 4) < 0x7f01) {\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      }\n      iVar17 = (int)local_4c - (int)pbVar19;\n      *(byte **)(puVar26 + 0x14) = pbVar19;\n      *(byte **)(puVar26 + 0x10) = local_50;\n      iVar4 = (*(code *)PTR___gmpn_divrem_0009d0e4)(puVar20,(int)param_2 - iVar17);\n      pbVar14 = (byte *)((local_54 - iVar10) + iVar17 + iVar4);\n      if (iVar4 != 0) {\n        piVar5 = puVar20 + (int)param_2;\n        puVar20 = puVar20 + 1;\n        *piVar5 = iVar4;\n      }\n    }\n    else {\n      pbVar3 = pbVar19 + (int)local_4c;\n      uVar22 = (int)pbVar3 * 4;\n      if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      }\n      if ((int)local_4c < (int)pbVar19) {\n        *(byte **)(puVar26 + 0x10) = local_4c;\n        local_4c = local_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);\n        local_3c = pbVar19;\n      }\n      else {\n        *(byte **)(puVar26 + 0x10) = pbVar19;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);\n        local_3c = local_4c;\n        local_4c = local_50;\n      }\n      pbVar3 = pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0);\n      pbVar14 = pbVar3 + iVar10 + local_54;\n      if ((int)param_2 < (int)pbVar3) {\n        puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);\n        pbVar3 = param_2;\n      }\n    }\n    if (pbVar3 != (byte *)0x0) {\n      pbVar6 = pbVar3 + -1;\n      uVar12 = *puVar20;\n      local_3c = (byte *)param_1[3];\n      pbVar19 = local_3c;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          puVar20 = puVar20 + 1;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *puVar20;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        local_3c = local_3c + (int)pbVar3 * 4 + -4;\n      }\n      *(undefined4 *)local_3c = uVar12;\n    }\n    if (bVar1) {\n      pbVar3 = (byte *)-(int)pbVar3;\n    }\n    param_1[1] = (int)pbVar3;\n    param_1[2] = (int)pbVar14;\n    pbVar14 = local_3c;\n    param_4 = local_4c;\n    param_2 = pbVar3;\n    if (local_30 == 0) {\n      uVar22 = 0;\n      goto LAB_00018714;\n    }\n  }\n  else {\n    local_54 = 0;\n    local_4c = pbVar3;\n    if (pbVar16 != (byte *)0x0) goto LAB_000185a0;\nLAB_000187d0:\n    if (pbVar23 != (byte *)0x0) {\n      local_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }\nLAB_000187e0:\n    if (local_4c != (byte *)0x0) {\n      pbVar6 = local_4c + -1;\n      pbVar14 = (byte *)param_1[3];\n      uVar12 = *(undefined4 *)local_3c;\n      pbVar19 = pbVar14;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;\n      }\n      *(undefined4 *)pbVar14 = uVar12;\n    }\n    if (bVar1) {\n      local_4c = (byte *)-(int)local_4c;\n    }\n    param_1[1] = (int)local_4c;\n    param_1[2] = (int)pbVar3;\n    if (local_30 == 0) goto LAB_000187ac;\n  }" if (parenthesized_expression "((int)param_2 < (int)pbVar3)" ( (binary_expression "(int)param_2 < (int)pbVar3" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    local_3c = local_3c + local_54 * 4;\n    local_4c = param_2;\n    if (pbVar16 == (byte *)0x0) goto LAB_000187d0;\nLAB_000185a0:\n    bVar11 = *pbVar16;\n    param_4 = (byte *)(uint)(bVar11 == 0x2d);\n    pbVar16 = pbVar16 + (bVar11 == 0x2b || bVar11 == 0x2d);\n    pbVar6 = (byte *)(uint)(byte)puVar21[*pbVar16];\n    if ((int)pbVar19 <= (int)pbVar6) {\nLAB_000186f8:\n      uVar22 = 0xffffffff;\n      if (local_30 == 0) goto LAB_00018714;\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      puVar15 = puVar26;\n      goto LAB_00018710;\n    }\n    pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[1]];\n    if ((int)pbVar14 < (int)pbVar19) {\n      pbVar16 = pbVar16 + 3;\n      do {\n        pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19;\n        pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]];\n        pbVar16 = pbVar16 + 1;\n      } while ((int)pbVar14 < (int)pbVar19);\n    }\n    local_44 = param_4 + (-(int)param_4 ^ (uint)pbVar6);\n    if (pbVar23 != (byte *)0x0) {\nLAB_00018628:\n      local_44 = local_44 + -((int)pbVar8 - (int)pbVar23);\n    }\n    if (local_44 == (byte *)0x0) goto LAB_000187e0;\n    iVar4 = iVar4 + 2;\n    uVar22 = iVar4 * 8;\n    if (uVar22 < 0x7f01) {\n      local_50 = puVar26 + iVar4 * -8 + 0x18;\n      pbVar14 = puVar26 + iVar4 * -0x10 + 0x18;\n      puVar26 = puVar26 + iVar4 * -0x10;\n    }\n    else {\n      local_50 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      pbVar14 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n    }\n    puVar21 = PTR___gmpn_clz_tab_0009d18c;\n    pbVar3 = local_44;\n    if ((int)local_44 < 0) {\n      pbVar3 = (byte *)-(int)local_44;\n    }\n    *(byte **)local_50 = param_3;\n    if ((int)pbVar3 < 0x10000) {\n      iVar10 = 0x18;\n      if (0xff < (int)pbVar3) {\n        iVar17 = 9;\n        goto LAB_00018870;\n      }\n      uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;\n      if (-1 < (int)uVar22) goto LAB_00018890;\n      if ((int)param_2 < 1) {\n        iVar10 = 0;\n        pbVar19 = (byte *)0x1;\n        iVar17 = 0;\n        pbVar14 = local_50;\n        goto LAB_00018988;\n      }\n      pbVar19 = (byte *)0x1;\n      iVar10 = 0;\n      *(byte **)local_50 = param_3;\n    }\n    else {\n      iVar17 = 0x19;\n      if ((int)pbVar3 < 0x1000000) {\n        iVar17 = 0x11;\n      }\n      iVar10 = 0x10;\n      if ((int)pbVar3 >= 0x1000000) {\n        iVar10 = 8;\n      }\nLAB_00018870:\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e;\nLAB_00018890:\n      iVar10 = 0;\n      pbVar19 = (byte *)0x1;\n      iVar17 = 0;\n      pbVar6 = local_50;\n      while( true ) {\n        pbVar8 = pbVar6;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);\n        iVar10 = iVar10 * 2;\n        pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));\n        if ((int)param_2 < (int)pbVar19) {\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }\n        else {\n          iVar17 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pbVar6 = pbVar14;\n        pbVar14 = pbVar8;\n      }\n      if ((int)param_2 < (int)pbVar19) {\nLAB_00018988:\n        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);\n        pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;\n        pbVar19 = param_2;\n      }\n      pbVar3 = pbVar19 + -1;\n      if (pbVar19 != (byte *)0x0) {\n        uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);\n        if (pbVar3 == (byte *)0x0) {\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }\n        else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }\n      }\n    }\n    pbVar3 = param_2;\n    if ((int)local_44 < 0) {\n      if ((int)local_4c < (int)pbVar19) {\n        if ((uint)((int)(pbVar19 + 1) * 4) < 0x7f01) {\n          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);\n          puVar15 = puVar26 + iVar17 + 0x18;\n          puVar26 = puVar26 + iVar17;\n        }\n        else {\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }\n        iVar17 = ((int)pbVar19 - (int)local_4c) * 4;\n        pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17);\n        if (local_4c != (byte *)0x0) {\n          pbVar16 = local_4c + -1;\n          pbVar8 = pbVar14 + iVar17;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar6 = pbVar8;\n          if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }\n          *(undefined4 *)pbVar8 = uVar12;\n        }\n        local_54 = local_54 - ((int)pbVar19 - (int)local_4c);\n        local_4c = pbVar19;\n        local_3c = pbVar14;\n      }\n      uVar22 = *(uint *)(local_50 + (int)pbVar19 * 4 + -4);\n      if (-1 < (int)uVar22) {\n        if (uVar22 < 0x10000) {\n          iVar17 = 0x20;\n          if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }\n          iVar13 = 9;\n          if (0xff >= uVar22) {\n            iVar13 = 1;\n          }\n        }\n        else {\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }\n        bVar11 = puVar21[uVar22 >> iVar13];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11);\n        iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11);\n        if (iVar17 != 0) {\n          iVar13 = (int)local_4c * 4;\n          local_4c = local_4c + 1;\n          *(int *)(local_3c + iVar13) = iVar17;\n        }\n      }\n      if ((uint)(iVar4 * 4) < 0x7f01) {\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      }\n      iVar17 = (int)local_4c - (int)pbVar19;\n      *(byte **)(puVar26 + 0x14) = pbVar19;\n      *(byte **)(puVar26 + 0x10) = local_50;\n      iVar4 = (*(code *)PTR___gmpn_divrem_0009d0e4)(puVar20,(int)param_2 - iVar17);\n      pbVar14 = (byte *)((local_54 - iVar10) + iVar17 + iVar4);\n      if (iVar4 != 0) {\n        piVar5 = puVar20 + (int)param_2;\n        puVar20 = puVar20 + 1;\n        *piVar5 = iVar4;\n      }\n    }\n    else {\n      pbVar3 = pbVar19 + (int)local_4c;\n      uVar22 = (int)pbVar3 * 4;\n      if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      }\n      if ((int)local_4c < (int)pbVar19) {\n        *(byte **)(puVar26 + 0x10) = local_4c;\n        local_4c = local_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);\n        local_3c = pbVar19;\n      }\n      else {\n        *(byte **)(puVar26 + 0x10) = pbVar19;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);\n        local_3c = local_4c;\n        local_4c = local_50;\n      }\n      pbVar3 = pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0);\n      pbVar14 = pbVar3 + iVar10 + local_54;\n      if ((int)param_2 < (int)pbVar3) {\n        puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);\n        pbVar3 = param_2;\n      }\n    }\n    if (pbVar3 != (byte *)0x0) {\n      pbVar6 = pbVar3 + -1;\n      uVar12 = *puVar20;\n      local_3c = (byte *)param_1[3];\n      pbVar19 = local_3c;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          puVar20 = puVar20 + 1;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *puVar20;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        local_3c = local_3c + (int)pbVar3 * 4 + -4;\n      }\n      *(undefined4 *)local_3c = uVar12;\n    }\n    if (bVar1) {\n      pbVar3 = (byte *)-(int)pbVar3;\n    }\n    param_1[1] = (int)pbVar3;\n    param_1[2] = (int)pbVar14;\n    pbVar14 = local_3c;\n    param_4 = local_4c;\n    param_2 = pbVar3;\n    if (local_30 == 0) {\n      uVar22 = 0;\n      goto LAB_00018714;\n    }\n  }" { (expression_statement "local_3c = local_3c + local_54 * 4;" (assignment_expression "local_3c = local_3c + local_54 * 4" identifier = (binary_expression "local_3c + local_54 * 4" identifier + (binary_expression "local_54 * 4" identifier * number_literal))) ;) (expression_statement "local_4c = param_2;" (assignment_expression "local_4c = param_2" identifier = identifier) ;) (if_statement "if (pbVar16 == (byte *)0x0) goto LAB_000187d0;" if (parenthesized_expression "(pbVar16 == (byte *)0x0)" ( (binary_expression "pbVar16 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000187d0;" goto statement_identifier ;)) (labeled_statement "LAB_000185a0:\n    bVar11 = *pbVar16;" statement_identifier : (expression_statement "bVar11 = *pbVar16;" (assignment_expression "bVar11 = *pbVar16" identifier = (pointer_expression "*pbVar16" * identifier)) ;)) (expression_statement "param_4 = (byte *)(uint)(bVar11 == 0x2d);" (assignment_expression "param_4 = (byte *)(uint)(bVar11 == 0x2d)" identifier = (cast_expression "(byte *)(uint)(bVar11 == 0x2d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(bVar11 == 0x2d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar11 == 0x2d)" ( (binary_expression "bVar11 == 0x2d" identifier == number_literal) ))))) ;) (expression_statement "pbVar16 = pbVar16 + (bVar11 == 0x2b || bVar11 == 0x2d);" (assignment_expression "pbVar16 = pbVar16 + (bVar11 == 0x2b || bVar11 == 0x2d)" identifier = (binary_expression "pbVar16 + (bVar11 == 0x2b || bVar11 == 0x2d)" identifier + (parenthesized_expression "(bVar11 == 0x2b || bVar11 == 0x2d)" ( (binary_expression "bVar11 == 0x2b || bVar11 == 0x2d" (binary_expression "bVar11 == 0x2b" identifier == number_literal) || (binary_expression "bVar11 == 0x2d" identifier == number_literal)) )))) ;) (expression_statement "pbVar6 = (byte *)(uint)(byte)puVar21[*pbVar16];" (assignment_expression "pbVar6 = (byte *)(uint)(byte)puVar21[*pbVar16]" identifier = (cast_expression "(byte *)(uint)(byte)puVar21[*pbVar16]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)(byte)puVar21[*pbVar16]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar21[*pbVar16]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar21[*pbVar16]" identifier [ (pointer_expression "*pbVar16" * identifier) ]))))) ;) (if_statement "if ((int)pbVar19 <= (int)pbVar6) {\nLAB_000186f8:\n      uVar22 = 0xffffffff;\n      if (local_30 == 0) goto LAB_00018714;\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      puVar15 = puVar26;\n      goto LAB_00018710;\n    }" if (parenthesized_expression "((int)pbVar19 <= (int)pbVar6)" ( (binary_expression "(int)pbVar19 <= (int)pbVar6" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pbVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\nLAB_000186f8:\n      uVar22 = 0xffffffff;\n      if (local_30 == 0) goto LAB_00018714;\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      puVar15 = puVar26;\n      goto LAB_00018710;\n    }" { (labeled_statement "LAB_000186f8:\n      uVar22 = 0xffffffff;" statement_identifier : (expression_statement "uVar22 = 0xffffffff;" (assignment_expression "uVar22 = 0xffffffff" identifier = number_literal) ;)) (if_statement "if (local_30 == 0) goto LAB_00018714;" if (parenthesized_expression "(local_30 == 0)" ( (binary_expression "local_30 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00018714;" goto statement_identifier ;)) (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_0009d618" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_0009d618" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar15 = puVar26;" (assignment_expression "puVar15 = puVar26" identifier = identifier) ;) (goto_statement "goto LAB_00018710;" goto statement_identifier ;) })) (expression_statement "pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[1]];" (assignment_expression "pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[1]]" identifier = (cast_expression "(byte *)(uint)(byte)puVar21[pbVar16[1]]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)(byte)puVar21[pbVar16[1]]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar21[pbVar16[1]]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar21[pbVar16[1]]" identifier [ (subscript_expression "pbVar16[1]" identifier [ number_literal ]) ]))))) ;) (if_statement "if ((int)pbVar14 < (int)pbVar19) {\n      pbVar16 = pbVar16 + 3;\n      do {\n        pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19;\n        pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]];\n        pbVar16 = pbVar16 + 1;\n      } while ((int)pbVar14 < (int)pbVar19);\n    }" if (parenthesized_expression "((int)pbVar14 < (int)pbVar19)" ( (binary_expression "(int)pbVar14 < (int)pbVar19" (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      pbVar16 = pbVar16 + 3;\n      do {\n        pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19;\n        pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]];\n        pbVar16 = pbVar16 + 1;\n      } while ((int)pbVar14 < (int)pbVar19);\n    }" { (expression_statement "pbVar16 = pbVar16 + 3;" (assignment_expression "pbVar16 = pbVar16 + 3" identifier = (binary_expression "pbVar16 + 3" identifier + number_literal)) ;) (do_statement "do {\n        pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19;\n        pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]];\n        pbVar16 = pbVar16 + 1;\n      } while ((int)pbVar14 < (int)pbVar19);" do (compound_statement "{\n        pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19;\n        pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]];\n        pbVar16 = pbVar16 + 1;\n      }" { (expression_statement "pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19;" (assignment_expression "pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19" identifier = (binary_expression "pbVar14 + (int)pbVar6 * (int)pbVar19" identifier + (binary_expression "(int)pbVar6 * (int)pbVar19" (cast_expression "(int)pbVar6" ( (type_descriptor "int" primitive_type) ) identifier) * (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]];" (assignment_expression "pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]]" identifier = (cast_expression "(byte *)(uint)(byte)puVar21[pbVar16[-1]]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)(byte)puVar21[pbVar16[-1]]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar21[pbVar16[-1]]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar21[pbVar16[-1]]" identifier [ (subscript_expression "pbVar16[-1]" identifier [ number_literal ]) ]))))) ;) (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((int)pbVar14 < (int)pbVar19)" ( (binary_expression "(int)pbVar14 < (int)pbVar19" (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "local_44 = param_4 + (-(int)param_4 ^ (uint)pbVar6);" (assignment_expression "local_44 = param_4 + (-(int)param_4 ^ (uint)pbVar6)" identifier = (binary_expression "param_4 + (-(int)param_4 ^ (uint)pbVar6)" identifier + (parenthesized_expression "(-(int)param_4 ^ (uint)pbVar6)" ( (binary_expression "-(int)param_4 ^ (uint)pbVar6" (unary_expression "-(int)param_4" - (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) ^ (cast_expression "(uint)pbVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (if_statement "if (pbVar23 != (byte *)0x0) {\nLAB_00018628:\n      local_44 = local_44 + -((int)pbVar8 - (int)pbVar23);\n    }" if (parenthesized_expression "(pbVar23 != (byte *)0x0)" ( (binary_expression "pbVar23 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00018628:\n      local_44 = local_44 + -((int)pbVar8 - (int)pbVar23);\n    }" { (labeled_statement "LAB_00018628:\n      local_44 = local_44 + -((int)pbVar8 - (int)pbVar23);" statement_identifier : (expression_statement "local_44 = local_44 + -((int)pbVar8 - (int)pbVar23);" (assignment_expression "local_44 = local_44 + -((int)pbVar8 - (int)pbVar23)" identifier = (binary_expression "local_44 + -((int)pbVar8 - (int)pbVar23)" identifier + (unary_expression "-((int)pbVar8 - (int)pbVar23)" - (parenthesized_expression "((int)pbVar8 - (int)pbVar23)" ( (binary_expression "(int)pbVar8 - (int)pbVar23" (cast_expression "(int)pbVar8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar23" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;)) })) (if_statement "if (local_44 == (byte *)0x0) goto LAB_000187e0;" if (parenthesized_expression "(local_44 == (byte *)0x0)" ( (binary_expression "local_44 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000187e0;" goto statement_identifier ;)) (expression_statement "iVar4 = iVar4 + 2;" (assignment_expression "iVar4 = iVar4 + 2" identifier = (binary_expression "iVar4 + 2" identifier + number_literal)) ;) (expression_statement "uVar22 = iVar4 * 8;" (assignment_expression "uVar22 = iVar4 * 8" identifier = (binary_expression "iVar4 * 8" identifier * number_literal)) ;) (if_statement "if (uVar22 < 0x7f01) {\n      local_50 = puVar26 + iVar4 * -8 + 0x18;\n      pbVar14 = puVar26 + iVar4 * -0x10 + 0x18;\n      puVar26 = puVar26 + iVar4 * -0x10;\n    }\n    else {\n      local_50 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      pbVar14 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n    }" if (parenthesized_expression "(uVar22 < 0x7f01)" ( (binary_expression "uVar22 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n      local_50 = puVar26 + iVar4 * -8 + 0x18;\n      pbVar14 = puVar26 + iVar4 * -0x10 + 0x18;\n      puVar26 = puVar26 + iVar4 * -0x10;\n    }" { (expression_statement "local_50 = puVar26 + iVar4 * -8 + 0x18;" (assignment_expression "local_50 = puVar26 + iVar4 * -8 + 0x18" identifier = (binary_expression "puVar26 + iVar4 * -8 + 0x18" (binary_expression "puVar26 + iVar4 * -8" identifier + (binary_expression "iVar4 * -8" identifier * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = puVar26 + iVar4 * -0x10 + 0x18;" (assignment_expression "pbVar14 = puVar26 + iVar4 * -0x10 + 0x18" identifier = (binary_expression "puVar26 + iVar4 * -0x10 + 0x18" (binary_expression "puVar26 + iVar4 * -0x10" identifier + (binary_expression "iVar4 * -0x10" identifier * number_literal)) + number_literal)) ;) (expression_statement "puVar26 = puVar26 + iVar4 * -0x10;" (assignment_expression "puVar26 = puVar26 + iVar4 * -0x10" identifier = (binary_expression "puVar26 + iVar4 * -0x10" identifier + (binary_expression "iVar4 * -0x10" identifier * number_literal))) ;) }) (else_clause "else {\n      local_50 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      pbVar14 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n    }" else (compound_statement "{\n      local_50 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      pbVar14 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n    }" { (expression_statement "local_50 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);" (assignment_expression "local_50 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22)" identifier = (cast_expression "(byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30,uVar22)" ( (pointer_expression "&local_30" & identifier) , identifier ))))) ;) (expression_statement "pbVar14 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);" (assignment_expression "pbVar14 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22)" identifier = (cast_expression "(byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30,uVar22)" ( (pointer_expression "&local_30" & identifier) , identifier ))))) ;) }))) (expression_statement "puVar21 = PTR___gmpn_clz_tab_0009d18c;" (assignment_expression "puVar21 = PTR___gmpn_clz_tab_0009d18c" identifier = identifier) ;) (expression_statement "pbVar3 = local_44;" (assignment_expression "pbVar3 = local_44" identifier = identifier) ;) (if_statement "if ((int)local_44 < 0) {\n      pbVar3 = (byte *)-(int)local_44;\n    }" if (parenthesized_expression "((int)local_44 < 0)" ( (binary_expression "(int)local_44 < 0" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      pbVar3 = (byte *)-(int)local_44;\n    }" { (expression_statement "pbVar3 = (byte *)-(int)local_44;" (assignment_expression "pbVar3 = (byte *)-(int)local_44" identifier = (cast_expression "(byte *)-(int)local_44" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)local_44" - (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "*(byte **)local_50 = param_3;" (assignment_expression "*(byte **)local_50 = param_3" (pointer_expression "*(byte **)local_50" * (cast_expression "(byte **)local_50" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (if_statement "if ((int)pbVar3 < 0x10000) {\n      iVar10 = 0x18;\n      if (0xff < (int)pbVar3) {\n        iVar17 = 9;\n        goto LAB_00018870;\n      }\n      uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;\n      if (-1 < (int)uVar22) goto LAB_00018890;\n      if ((int)param_2 < 1) {\n        iVar10 = 0;\n        pbVar19 = (byte *)0x1;\n        iVar17 = 0;\n        pbVar14 = local_50;\n        goto LAB_00018988;\n      }\n      pbVar19 = (byte *)0x1;\n      iVar10 = 0;\n      *(byte **)local_50 = param_3;\n    }\n    else {\n      iVar17 = 0x19;\n      if ((int)pbVar3 < 0x1000000) {\n        iVar17 = 0x11;\n      }\n      iVar10 = 0x10;\n      if ((int)pbVar3 >= 0x1000000) {\n        iVar10 = 8;\n      }\nLAB_00018870:\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e;\nLAB_00018890:\n      iVar10 = 0;\n      pbVar19 = (byte *)0x1;\n      iVar17 = 0;\n      pbVar6 = local_50;\n      while( true ) {\n        pbVar8 = pbVar6;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);\n        iVar10 = iVar10 * 2;\n        pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));\n        if ((int)param_2 < (int)pbVar19) {\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }\n        else {\n          iVar17 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pbVar6 = pbVar14;\n        pbVar14 = pbVar8;\n      }\n      if ((int)param_2 < (int)pbVar19) {\nLAB_00018988:\n        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);\n        pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;\n        pbVar19 = param_2;\n      }\n      pbVar3 = pbVar19 + -1;\n      if (pbVar19 != (byte *)0x0) {\n        uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);\n        if (pbVar3 == (byte *)0x0) {\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }\n        else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }\n      }\n    }" if (parenthesized_expression "((int)pbVar3 < 0x10000)" ( (binary_expression "(int)pbVar3 < 0x10000" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      iVar10 = 0x18;\n      if (0xff < (int)pbVar3) {\n        iVar17 = 9;\n        goto LAB_00018870;\n      }\n      uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;\n      if (-1 < (int)uVar22) goto LAB_00018890;\n      if ((int)param_2 < 1) {\n        iVar10 = 0;\n        pbVar19 = (byte *)0x1;\n        iVar17 = 0;\n        pbVar14 = local_50;\n        goto LAB_00018988;\n      }\n      pbVar19 = (byte *)0x1;\n      iVar10 = 0;\n      *(byte **)local_50 = param_3;\n    }" { (expression_statement "iVar10 = 0x18;" (assignment_expression "iVar10 = 0x18" identifier = number_literal) ;) (if_statement "if (0xff < (int)pbVar3) {\n        iVar17 = 9;\n        goto LAB_00018870;\n      }" if (parenthesized_expression "(0xff < (int)pbVar3)" ( (binary_expression "0xff < (int)pbVar3" number_literal < (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        iVar17 = 9;\n        goto LAB_00018870;\n      }" { (expression_statement "iVar17 = 9;" (assignment_expression "iVar17 = 9" identifier = number_literal) ;) (goto_statement "goto LAB_00018870;" goto statement_identifier ;) })) (expression_statement "uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;" (assignment_expression "uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2" identifier = (binary_expression "(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2" (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1]" identifier [ (binary_expression "(uint)pbVar3 >> 1" (cast_expression "(uint)pbVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ])) - number_literal)) ;) (if_statement "if (-1 < (int)uVar22) goto LAB_00018890;" if (parenthesized_expression "(-1 < (int)uVar22)" ( (binary_expression "-1 < (int)uVar22" number_literal < (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00018890;" goto statement_identifier ;)) (if_statement "if ((int)param_2 < 1) {\n        iVar10 = 0;\n        pbVar19 = (byte *)0x1;\n        iVar17 = 0;\n        pbVar14 = local_50;\n        goto LAB_00018988;\n      }" if (parenthesized_expression "((int)param_2 < 1)" ( (binary_expression "(int)param_2 < 1" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        iVar10 = 0;\n        pbVar19 = (byte *)0x1;\n        iVar17 = 0;\n        pbVar14 = local_50;\n        goto LAB_00018988;\n      }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "pbVar19 = (byte *)0x1;" (assignment_expression "pbVar19 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "pbVar14 = local_50;" (assignment_expression "pbVar14 = local_50" identifier = identifier) ;) (goto_statement "goto LAB_00018988;" goto statement_identifier ;) })) (expression_statement "pbVar19 = (byte *)0x1;" (assignment_expression "pbVar19 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "*(byte **)local_50 = param_3;" (assignment_expression "*(byte **)local_50 = param_3" (pointer_expression "*(byte **)local_50" * (cast_expression "(byte **)local_50" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) }) (else_clause "else {\n      iVar17 = 0x19;\n      if ((int)pbVar3 < 0x1000000) {\n        iVar17 = 0x11;\n      }\n      iVar10 = 0x10;\n      if ((int)pbVar3 >= 0x1000000) {\n        iVar10 = 8;\n      }\nLAB_00018870:\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e;\nLAB_00018890:\n      iVar10 = 0;\n      pbVar19 = (byte *)0x1;\n      iVar17 = 0;\n      pbVar6 = local_50;\n      while( true ) {\n        pbVar8 = pbVar6;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);\n        iVar10 = iVar10 * 2;\n        pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));\n        if ((int)param_2 < (int)pbVar19) {\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }\n        else {\n          iVar17 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pbVar6 = pbVar14;\n        pbVar14 = pbVar8;\n      }\n      if ((int)param_2 < (int)pbVar19) {\nLAB_00018988:\n        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);\n        pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;\n        pbVar19 = param_2;\n      }\n      pbVar3 = pbVar19 + -1;\n      if (pbVar19 != (byte *)0x0) {\n        uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);\n        if (pbVar3 == (byte *)0x0) {\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }\n        else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }\n      }\n    }" else (compound_statement "{\n      iVar17 = 0x19;\n      if ((int)pbVar3 < 0x1000000) {\n        iVar17 = 0x11;\n      }\n      iVar10 = 0x10;\n      if ((int)pbVar3 >= 0x1000000) {\n        iVar10 = 8;\n      }\nLAB_00018870:\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e;\nLAB_00018890:\n      iVar10 = 0;\n      pbVar19 = (byte *)0x1;\n      iVar17 = 0;\n      pbVar6 = local_50;\n      while( true ) {\n        pbVar8 = pbVar6;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);\n        iVar10 = iVar10 * 2;\n        pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));\n        if ((int)param_2 < (int)pbVar19) {\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }\n        else {\n          iVar17 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pbVar6 = pbVar14;\n        pbVar14 = pbVar8;\n      }\n      if ((int)param_2 < (int)pbVar19) {\nLAB_00018988:\n        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);\n        pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;\n        pbVar19 = param_2;\n      }\n      pbVar3 = pbVar19 + -1;\n      if (pbVar19 != (byte *)0x0) {\n        uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);\n        if (pbVar3 == (byte *)0x0) {\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }\n        else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }\n      }\n    }" { (expression_statement "iVar17 = 0x19;" (assignment_expression "iVar17 = 0x19" identifier = number_literal) ;) (if_statement "if ((int)pbVar3 < 0x1000000) {\n        iVar17 = 0x11;\n      }" if (parenthesized_expression "((int)pbVar3 < 0x1000000)" ( (binary_expression "(int)pbVar3 < 0x1000000" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        iVar17 = 0x11;\n      }" { (expression_statement "iVar17 = 0x11;" (assignment_expression "iVar17 = 0x11" identifier = number_literal) ;) })) (expression_statement "iVar10 = 0x10;" (assignment_expression "iVar10 = 0x10" identifier = number_literal) ;) (if_statement "if ((int)pbVar3 >= 0x1000000) {\n        iVar10 = 8;\n      }" if (parenthesized_expression "((int)pbVar3 >= 0x1000000)" ( (binary_expression "(int)pbVar3 >= 0x1000000" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) >= number_literal) )) (compound_statement "{\n        iVar10 = 8;\n      }" { (expression_statement "iVar10 = 8;" (assignment_expression "iVar10 = 8" identifier = number_literal) ;) })) (labeled_statement "LAB_00018870:\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e;" statement_identifier : (expression_statement "uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e;" (assignment_expression "uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e" identifier = (binary_expression "((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e" (parenthesized_expression "((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10)" ( (binary_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10" (cast_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17]" identifier [ (binary_expression "(uint)pbVar3 >> iVar17" (cast_expression "(uint)pbVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) ]))) - identifier) )) + number_literal)) ;)) (labeled_statement "LAB_00018890:\n      iVar10 = 0;" statement_identifier : (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;)) (expression_statement "pbVar19 = (byte *)0x1;" (assignment_expression "pbVar19 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "pbVar6 = local_50;" (assignment_expression "pbVar6 = local_50" identifier = identifier) ;) (while_statement "while( true ) {\n        pbVar8 = pbVar6;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);\n        iVar10 = iVar10 * 2;\n        pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));\n        if ((int)param_2 < (int)pbVar19) {\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }\n        else {\n          iVar17 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pbVar6 = pbVar14;\n        pbVar14 = pbVar8;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        pbVar8 = pbVar6;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);\n        iVar10 = iVar10 * 2;\n        pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));\n        if ((int)param_2 < (int)pbVar19) {\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }\n        else {\n          iVar17 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pbVar6 = pbVar14;\n        pbVar14 = pbVar8;\n      }" { (expression_statement "pbVar8 = pbVar6;" (assignment_expression "pbVar8 = pbVar6" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);" (call_expression "(*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19)" (parenthesized_expression "(*(code *)PTR___gmpn_sqr_0009d394)" ( (pointer_expression "*(code *)PTR___gmpn_sqr_0009d394" * (cast_expression "(code *)PTR___gmpn_sqr_0009d394" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar14,pbVar8 + iVar17 * 4,pbVar19)" ( identifier , (binary_expression "pbVar8 + iVar17 * 4" identifier + (binary_expression "iVar17 * 4" identifier * number_literal)) , identifier ))) ;) (expression_statement "iVar10 = iVar10 * 2;" (assignment_expression "iVar10 = iVar10 * 2" identifier = (binary_expression "iVar10 * 2" identifier * number_literal)) ;) (expression_statement "pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));" (assignment_expression "pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0))" identifier = (cast_expression "(byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0))" ( (binary_expression "(int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0)" (binary_expression "(int)pbVar19 * 2" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) - (call_expression "(uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0)" ( (binary_expression "*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0" (pointer_expression "*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4)" * (cast_expression "(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4)" ( (binary_expression "pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4" identifier + (binary_expression "((int)pbVar19 * 2 + 0x3fffffff) * 4" (parenthesized_expression "((int)pbVar19 * 2 + 0x3fffffff)" ( (binary_expression "(int)pbVar19 * 2 + 0x3fffffff" (binary_expression "(int)pbVar19 * 2" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) )) * number_literal)) )))) == number_literal) )))) )))) ;) (if_statement "if ((int)param_2 < (int)pbVar19) {\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }\n        else {\n          iVar17 = 0;\n        }" if (parenthesized_expression "((int)param_2 < (int)pbVar19)" ( (binary_expression "(int)param_2 < (int)pbVar19" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }" { (expression_statement "iVar17 = (int)pbVar19 - (int)param_2;" (assignment_expression "iVar17 = (int)pbVar19 - (int)param_2" identifier = (binary_expression "(int)pbVar19 - (int)param_2" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar10 = iVar10 + iVar17;" (assignment_expression "iVar10 = iVar10 + iVar17" identifier = (binary_expression "iVar10 + iVar17" identifier + identifier)) ;) (expression_statement "pbVar19 = param_2;" (assignment_expression "pbVar19 = param_2" identifier = identifier) ;) }) (else_clause "else {\n          iVar17 = 0;\n        }" else (compound_statement "{\n          iVar17 = 0;\n        }" { (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) }))) (if_statement "if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }" if (parenthesized_expression "(((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0)" ( (binary_expression "((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0" (parenthesized_expression "((int)pbVar3 >> (uVar22 & 0x1f) & 1U)" ( (binary_expression "(int)pbVar3 >> (uVar22 & 0x1f) & 1U" (binary_expression "(int)pbVar3 >> (uVar22 & 0x1f)" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) >> (parenthesized_expression "(uVar22 & 0x1f)" ( (binary_expression "uVar22 & 0x1f" identifier & number_literal) ))) & number_literal) )) != number_literal) )) (compound_statement "{\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }" { (expression_statement "iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);" (assignment_expression "iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3)" identifier = (call_expression "(*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_1_0009d0a4)" ( (pointer_expression "*(code *)PTR___gmpn_mul_1_0009d0a4" * (cast_expression "(code *)PTR___gmpn_mul_1_0009d0a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3)" ( identifier , (binary_expression "pbVar14 + iVar17 * 4" identifier + (binary_expression "iVar17 * 4" identifier * number_literal)) , identifier , identifier )))) ;) (expression_statement "iVar13 = (int)pbVar19 * 4;" (assignment_expression "iVar13 = (int)pbVar19 * 4" identifier = (binary_expression "(int)pbVar19 * 4" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (iVar17 != 0);" (assignment_expression "pbVar19 = pbVar19 + (iVar17 != 0)" identifier = (binary_expression "pbVar19 + (iVar17 != 0)" identifier + (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )))) ;) (expression_statement "*(int *)(pbVar14 + iVar13) = iVar17;" (assignment_expression "*(int *)(pbVar14 + iVar13) = iVar17" (pointer_expression "*(int *)(pbVar14 + iVar13)" * (cast_expression "(int *)(pbVar14 + iVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar14 + iVar13)" ( (binary_expression "pbVar14 + iVar13" identifier + identifier) )))) = identifier) ;) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) })) (if_statement "if (uVar22 == 0) break;" if (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar22 = uVar22 - 1;" (assignment_expression "uVar22 = uVar22 - 1" identifier = (binary_expression "uVar22 - 1" identifier - number_literal)) ;) (expression_statement "pbVar6 = pbVar14;" (assignment_expression "pbVar6 = pbVar14" identifier = identifier) ;) (expression_statement "pbVar14 = pbVar8;" (assignment_expression "pbVar14 = pbVar8" identifier = identifier) ;) })) (if_statement "if ((int)param_2 < (int)pbVar19) {\nLAB_00018988:\n        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);\n        pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;\n        pbVar19 = param_2;\n      }" if (parenthesized_expression "((int)param_2 < (int)pbVar19)" ( (binary_expression "(int)param_2 < (int)pbVar19" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\nLAB_00018988:\n        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);\n        pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;\n        pbVar19 = param_2;\n      }" { (labeled_statement "LAB_00018988:\n        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);" statement_identifier : (expression_statement "iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);" (assignment_expression "iVar10 = iVar10 + ((int)pbVar19 - (int)param_2)" identifier = (binary_expression "iVar10 + ((int)pbVar19 - (int)param_2)" identifier + (parenthesized_expression "((int)pbVar19 - (int)param_2)" ( (binary_expression "(int)pbVar19 - (int)param_2" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;" (assignment_expression "pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4" identifier = (binary_expression "pbVar14 + ((int)pbVar19 - (int)param_2) * 4" identifier + (binary_expression "((int)pbVar19 - (int)param_2) * 4" (parenthesized_expression "((int)pbVar19 - (int)param_2)" ( (binary_expression "(int)pbVar19 - (int)param_2" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal))) ;) (expression_statement "pbVar19 = param_2;" (assignment_expression "pbVar19 = param_2" identifier = identifier) ;) })) (expression_statement "pbVar3 = pbVar19 + -1;" (assignment_expression "pbVar3 = pbVar19 + -1" identifier = (binary_expression "pbVar19 + -1" identifier + number_literal)) ;) (if_statement "if (pbVar19 != (byte *)0x0) {\n        uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);\n        if (pbVar3 == (byte *)0x0) {\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }\n        else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }\n      }" if (parenthesized_expression "(pbVar19 != (byte *)0x0)" ( (binary_expression "pbVar19 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);\n        if (pbVar3 == (byte *)0x0) {\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }\n        else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }\n      }" { (expression_statement "uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);" (assignment_expression "uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4)" identifier = (pointer_expression "*(undefined4 *)(pbVar14 + iVar17 * 4)" * (cast_expression "(undefined4 *)(pbVar14 + iVar17 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar14 + iVar17 * 4)" ( (binary_expression "pbVar14 + iVar17 * 4" identifier + (binary_expression "iVar17 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (pbVar3 == (byte *)0x0) {\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }\n        else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }" if (parenthesized_expression "(pbVar3 == (byte *)0x0)" ( (binary_expression "pbVar3 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }" { (expression_statement "pbVar19 = (byte *)0x1;" (assignment_expression "pbVar19 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)local_50 = uVar12;" (assignment_expression "*(undefined4 *)local_50 = uVar12" (pointer_expression "*(undefined4 *)local_50" * (cast_expression "(undefined4 *)local_50" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) }) (else_clause "else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }" else (compound_statement "{\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }" { (expression_statement "pbVar14 = pbVar14 + iVar17 * 4 + 4;" (assignment_expression "pbVar14 = pbVar14 + iVar17 * 4 + 4" identifier = (binary_expression "pbVar14 + iVar17 * 4 + 4" (binary_expression "pbVar14 + iVar17 * 4" identifier + (binary_expression "iVar17 * 4" identifier * number_literal)) + number_literal)) ;) (expression_statement "pbVar6 = local_50;" (assignment_expression "pbVar6 = local_50" identifier = identifier) ;) (do_statement "do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);" do (compound_statement "{\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          }" { (expression_statement "*(undefined4 *)pbVar6 = uVar12;" (assignment_expression "*(undefined4 *)pbVar6 = uVar12" (pointer_expression "*(undefined4 *)pbVar6" * (cast_expression "(undefined4 *)pbVar6" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "pbVar3 = pbVar3 + -1;" (assignment_expression "pbVar3 = pbVar3 + -1" identifier = (binary_expression "pbVar3 + -1" identifier + number_literal)) ;) (expression_statement "uVar12 = *(undefined4 *)pbVar14;" (assignment_expression "uVar12 = *(undefined4 *)pbVar14" identifier = (pointer_expression "*(undefined4 *)pbVar14" * (cast_expression "(undefined4 *)pbVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar14 = pbVar14 + 4;" (assignment_expression "pbVar14 = pbVar14 + 4" identifier = (binary_expression "pbVar14 + 4" identifier + number_literal)) ;) (expression_statement "pbVar6 = pbVar6 + 4;" (assignment_expression "pbVar6 = pbVar6 + 4" identifier = (binary_expression "pbVar6 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar3 != (byte *)0x0)" ( (binary_expression "pbVar3 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "*(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;" (assignment_expression "*(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12" (pointer_expression "*(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4)" * (cast_expression "(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + (int)pbVar19 * 4 + -4)" ( (binary_expression "local_50 + (int)pbVar19 * 4 + -4" (binary_expression "local_50 + (int)pbVar19 * 4" identifier + (binary_expression "(int)pbVar19 * 4" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) = identifier) ;) }))) })) }))) (expression_statement "pbVar3 = param_2;" (assignment_expression "pbVar3 = param_2" identifier = identifier) ;) (if_statement "if ((int)local_44 < 0) {\n      if ((int)local_4c < (int)pbVar19) {\n        if ((uint)((int)(pbVar19 + 1) * 4) < 0x7f01) {\n          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);\n          puVar15 = puVar26 + iVar17 + 0x18;\n          puVar26 = puVar26 + iVar17;\n        }\n        else {\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }\n        iVar17 = ((int)pbVar19 - (int)local_4c) * 4;\n        pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17);\n        if (local_4c != (byte *)0x0) {\n          pbVar16 = local_4c + -1;\n          pbVar8 = pbVar14 + iVar17;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar6 = pbVar8;\n          if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }\n          *(undefined4 *)pbVar8 = uVar12;\n        }\n        local_54 = local_54 - ((int)pbVar19 - (int)local_4c);\n        local_4c = pbVar19;\n        local_3c = pbVar14;\n      }\n      uVar22 = *(uint *)(local_50 + (int)pbVar19 * 4 + -4);\n      if (-1 < (int)uVar22) {\n        if (uVar22 < 0x10000) {\n          iVar17 = 0x20;\n          if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }\n          iVar13 = 9;\n          if (0xff >= uVar22) {\n            iVar13 = 1;\n          }\n        }\n        else {\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }\n        bVar11 = puVar21[uVar22 >> iVar13];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11);\n        iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11);\n        if (iVar17 != 0) {\n          iVar13 = (int)local_4c * 4;\n          local_4c = local_4c + 1;\n          *(int *)(local_3c + iVar13) = iVar17;\n        }\n      }\n      if ((uint)(iVar4 * 4) < 0x7f01) {\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      }\n      iVar17 = (int)local_4c - (int)pbVar19;\n      *(byte **)(puVar26 + 0x14) = pbVar19;\n      *(byte **)(puVar26 + 0x10) = local_50;\n      iVar4 = (*(code *)PTR___gmpn_divrem_0009d0e4)(puVar20,(int)param_2 - iVar17);\n      pbVar14 = (byte *)((local_54 - iVar10) + iVar17 + iVar4);\n      if (iVar4 != 0) {\n        piVar5 = puVar20 + (int)param_2;\n        puVar20 = puVar20 + 1;\n        *piVar5 = iVar4;\n      }\n    }\n    else {\n      pbVar3 = pbVar19 + (int)local_4c;\n      uVar22 = (int)pbVar3 * 4;\n      if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      }\n      if ((int)local_4c < (int)pbVar19) {\n        *(byte **)(puVar26 + 0x10) = local_4c;\n        local_4c = local_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);\n        local_3c = pbVar19;\n      }\n      else {\n        *(byte **)(puVar26 + 0x10) = pbVar19;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);\n        local_3c = local_4c;\n        local_4c = local_50;\n      }\n      pbVar3 = pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0);\n      pbVar14 = pbVar3 + iVar10 + local_54;\n      if ((int)param_2 < (int)pbVar3) {\n        puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);\n        pbVar3 = param_2;\n      }\n    }" if (parenthesized_expression "((int)local_44 < 0)" ( (binary_expression "(int)local_44 < 0" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      if ((int)local_4c < (int)pbVar19) {\n        if ((uint)((int)(pbVar19 + 1) * 4) < 0x7f01) {\n          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);\n          puVar15 = puVar26 + iVar17 + 0x18;\n          puVar26 = puVar26 + iVar17;\n        }\n        else {\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }\n        iVar17 = ((int)pbVar19 - (int)local_4c) * 4;\n        pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17);\n        if (local_4c != (byte *)0x0) {\n          pbVar16 = local_4c + -1;\n          pbVar8 = pbVar14 + iVar17;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar6 = pbVar8;\n          if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }\n          *(undefined4 *)pbVar8 = uVar12;\n        }\n        local_54 = local_54 - ((int)pbVar19 - (int)local_4c);\n        local_4c = pbVar19;\n        local_3c = pbVar14;\n      }\n      uVar22 = *(uint *)(local_50 + (int)pbVar19 * 4 + -4);\n      if (-1 < (int)uVar22) {\n        if (uVar22 < 0x10000) {\n          iVar17 = 0x20;\n          if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }\n          iVar13 = 9;\n          if (0xff >= uVar22) {\n            iVar13 = 1;\n          }\n        }\n        else {\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }\n        bVar11 = puVar21[uVar22 >> iVar13];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11);\n        iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11);\n        if (iVar17 != 0) {\n          iVar13 = (int)local_4c * 4;\n          local_4c = local_4c + 1;\n          *(int *)(local_3c + iVar13) = iVar17;\n        }\n      }\n      if ((uint)(iVar4 * 4) < 0x7f01) {\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      }\n      iVar17 = (int)local_4c - (int)pbVar19;\n      *(byte **)(puVar26 + 0x14) = pbVar19;\n      *(byte **)(puVar26 + 0x10) = local_50;\n      iVar4 = (*(code *)PTR___gmpn_divrem_0009d0e4)(puVar20,(int)param_2 - iVar17);\n      pbVar14 = (byte *)((local_54 - iVar10) + iVar17 + iVar4);\n      if (iVar4 != 0) {\n        piVar5 = puVar20 + (int)param_2;\n        puVar20 = puVar20 + 1;\n        *piVar5 = iVar4;\n      }\n    }" { (if_statement "if ((int)local_4c < (int)pbVar19) {\n        if ((uint)((int)(pbVar19 + 1) * 4) < 0x7f01) {\n          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);\n          puVar15 = puVar26 + iVar17 + 0x18;\n          puVar26 = puVar26 + iVar17;\n        }\n        else {\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }\n        iVar17 = ((int)pbVar19 - (int)local_4c) * 4;\n        pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17);\n        if (local_4c != (byte *)0x0) {\n          pbVar16 = local_4c + -1;\n          pbVar8 = pbVar14 + iVar17;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar6 = pbVar8;\n          if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }\n          *(undefined4 *)pbVar8 = uVar12;\n        }\n        local_54 = local_54 - ((int)pbVar19 - (int)local_4c);\n        local_4c = pbVar19;\n        local_3c = pbVar14;\n      }" if (parenthesized_expression "((int)local_4c < (int)pbVar19)" ( (binary_expression "(int)local_4c < (int)pbVar19" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        if ((uint)((int)(pbVar19 + 1) * 4) < 0x7f01) {\n          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);\n          puVar15 = puVar26 + iVar17 + 0x18;\n          puVar26 = puVar26 + iVar17;\n        }\n        else {\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }\n        iVar17 = ((int)pbVar19 - (int)local_4c) * 4;\n        pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17);\n        if (local_4c != (byte *)0x0) {\n          pbVar16 = local_4c + -1;\n          pbVar8 = pbVar14 + iVar17;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar6 = pbVar8;\n          if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }\n          *(undefined4 *)pbVar8 = uVar12;\n        }\n        local_54 = local_54 - ((int)pbVar19 - (int)local_4c);\n        local_4c = pbVar19;\n        local_3c = pbVar14;\n      }" { (if_statement "if ((uint)((int)(pbVar19 + 1) * 4) < 0x7f01) {\n          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);\n          puVar15 = puVar26 + iVar17 + 0x18;\n          puVar26 = puVar26 + iVar17;\n        }\n        else {\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }" if (parenthesized_expression "((uint)((int)(pbVar19 + 1) * 4) < 0x7f01)" ( (binary_expression "(uint)((int)(pbVar19 + 1) * 4) < 0x7f01" (call_expression "(uint)((int)(pbVar19 + 1) * 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(pbVar19 + 1) * 4)" ( (binary_expression "(int)(pbVar19 + 1) * 4" (cast_expression "(int)(pbVar19 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar19 + 1)" ( (binary_expression "pbVar19 + 1" identifier + number_literal) ))) * number_literal) ))) < number_literal) )) (compound_statement "{\n          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);\n          puVar15 = puVar26 + iVar17 + 0x18;\n          puVar26 = puVar26 + iVar17;\n        }" { (expression_statement "iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);" (assignment_expression "iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8)" identifier = (unary_expression "-((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8)" - (parenthesized_expression "((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8)" ( (binary_expression "(int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8" (binary_expression "(int)(pbVar19 + 1) * 4 + 7U" (binary_expression "(int)(pbVar19 + 1) * 4" (cast_expression "(int)(pbVar19 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar19 + 1)" ( (binary_expression "pbVar19 + 1" identifier + number_literal) ))) * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "puVar15 = puVar26 + iVar17 + 0x18;" (assignment_expression "puVar15 = puVar26 + iVar17 + 0x18" identifier = (binary_expression "puVar26 + iVar17 + 0x18" (binary_expression "puVar26 + iVar17" identifier + identifier) + number_literal)) ;) (expression_statement "puVar26 = puVar26 + iVar17;" (assignment_expression "puVar26 = puVar26 + iVar17" identifier = (binary_expression "puVar26 + iVar17" identifier + identifier)) ;) }) (else_clause "else {\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }" else (compound_statement "{\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }" { (expression_statement "puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);" (assignment_expression "puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30)" ( (pointer_expression "&local_30" & identifier) ))))) ;) }))) (expression_statement "iVar17 = ((int)pbVar19 - (int)local_4c) * 4;" (assignment_expression "iVar17 = ((int)pbVar19 - (int)local_4c) * 4" identifier = (binary_expression "((int)pbVar19 - (int)local_4c) * 4" (parenthesized_expression "((int)pbVar19 - (int)local_4c)" ( (binary_expression "(int)pbVar19 - (int)local_4c" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal)) ;) (expression_statement "pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17);" (assignment_expression "pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17)" identifier = (cast_expression "(byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17)" (parenthesized_expression "(*(code *)PTR_memset_0009d2e8)" ( (pointer_expression "*(code *)PTR_memset_0009d2e8" * (cast_expression "(code *)PTR_memset_0009d2e8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar15,0,iVar17)" ( identifier , number_literal , identifier ))))) ;) (if_statement "if (local_4c != (byte *)0x0) {\n          pbVar16 = local_4c + -1;\n          pbVar8 = pbVar14 + iVar17;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar6 = pbVar8;\n          if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }\n          *(undefined4 *)pbVar8 = uVar12;\n        }" if (parenthesized_expression "(local_4c != (byte *)0x0)" ( (binary_expression "local_4c != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pbVar16 = local_4c + -1;\n          pbVar8 = pbVar14 + iVar17;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar6 = pbVar8;\n          if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }\n          *(undefined4 *)pbVar8 = uVar12;\n        }" { (expression_statement "pbVar16 = local_4c + -1;" (assignment_expression "pbVar16 = local_4c + -1" identifier = (binary_expression "local_4c + -1" identifier + number_literal)) ;) (expression_statement "pbVar8 = pbVar14 + iVar17;" (assignment_expression "pbVar8 = pbVar14 + iVar17" identifier = (binary_expression "pbVar14 + iVar17" identifier + identifier)) ;) (expression_statement "uVar12 = *(undefined4 *)local_3c;" (assignment_expression "uVar12 = *(undefined4 *)local_3c" identifier = (pointer_expression "*(undefined4 *)local_3c" * (cast_expression "(undefined4 *)local_3c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar6 = pbVar8;" (assignment_expression "pbVar6 = pbVar8" identifier = identifier) ;) (if_statement "if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }" if (parenthesized_expression "(pbVar16 != (byte *)0x0)" ( (binary_expression "pbVar16 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }" { (do_statement "do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);" do (compound_statement "{\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            }" { (expression_statement "local_3c = local_3c + 4;" (assignment_expression "local_3c = local_3c + 4" identifier = (binary_expression "local_3c + 4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)pbVar6 = uVar12;" (assignment_expression "*(undefined4 *)pbVar6 = uVar12" (pointer_expression "*(undefined4 *)pbVar6" * (cast_expression "(undefined4 *)pbVar6" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "pbVar16 = pbVar16 + -1;" (assignment_expression "pbVar16 = pbVar16 + -1" identifier = (binary_expression "pbVar16 + -1" identifier + number_literal)) ;) (expression_statement "uVar12 = *(undefined4 *)local_3c;" (assignment_expression "uVar12 = *(undefined4 *)local_3c" identifier = (pointer_expression "*(undefined4 *)local_3c" * (cast_expression "(undefined4 *)local_3c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar6 = pbVar6 + 4;" (assignment_expression "pbVar6 = pbVar6 + 4" identifier = (binary_expression "pbVar6 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar16 != (byte *)0x0)" ( (binary_expression "pbVar16 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pbVar8 = pbVar8 + (int)local_4c * 4 + -4;" (assignment_expression "pbVar8 = pbVar8 + (int)local_4c * 4 + -4" identifier = (binary_expression "pbVar8 + (int)local_4c * 4 + -4" (binary_expression "pbVar8 + (int)local_4c * 4" identifier + (binary_expression "(int)local_4c * 4" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "*(undefined4 *)pbVar8 = uVar12;" (assignment_expression "*(undefined4 *)pbVar8 = uVar12" (pointer_expression "*(undefined4 *)pbVar8" * (cast_expression "(undefined4 *)pbVar8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) })) (expression_statement "local_54 = local_54 - ((int)pbVar19 - (int)local_4c);" (assignment_expression "local_54 = local_54 - ((int)pbVar19 - (int)local_4c)" identifier = (binary_expression "local_54 - ((int)pbVar19 - (int)local_4c)" identifier - (parenthesized_expression "((int)pbVar19 - (int)local_4c)" ( (binary_expression "(int)pbVar19 - (int)local_4c" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_4c = pbVar19;" (assignment_expression "local_4c = pbVar19" identifier = identifier) ;) (expression_statement "local_3c = pbVar14;" (assignment_expression "local_3c = pbVar14" identifier = identifier) ;) })) (expression_statement "uVar22 = *(uint *)(local_50 + (int)pbVar19 * 4 + -4);" (assignment_expression "uVar22 = *(uint *)(local_50 + (int)pbVar19 * 4 + -4)" identifier = (pointer_expression "*(uint *)(local_50 + (int)pbVar19 * 4 + -4)" * (cast_expression "(uint *)(local_50 + (int)pbVar19 * 4 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + (int)pbVar19 * 4 + -4)" ( (binary_expression "local_50 + (int)pbVar19 * 4 + -4" (binary_expression "local_50 + (int)pbVar19 * 4" identifier + (binary_expression "(int)pbVar19 * 4" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) ))))) ;) (if_statement "if (-1 < (int)uVar22) {\n        if (uVar22 < 0x10000) {\n          iVar17 = 0x20;\n          if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }\n          iVar13 = 9;\n          if (0xff >= uVar22) {\n            iVar13 = 1;\n          }\n        }\n        else {\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }\n        bVar11 = puVar21[uVar22 >> iVar13];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11);\n        iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11);\n        if (iVar17 != 0) {\n          iVar13 = (int)local_4c * 4;\n          local_4c = local_4c + 1;\n          *(int *)(local_3c + iVar13) = iVar17;\n        }\n      }" if (parenthesized_expression "(-1 < (int)uVar22)" ( (binary_expression "-1 < (int)uVar22" number_literal < (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        if (uVar22 < 0x10000) {\n          iVar17 = 0x20;\n          if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }\n          iVar13 = 9;\n          if (0xff >= uVar22) {\n            iVar13 = 1;\n          }\n        }\n        else {\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }\n        bVar11 = puVar21[uVar22 >> iVar13];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11);\n        iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11);\n        if (iVar17 != 0) {\n          iVar13 = (int)local_4c * 4;\n          local_4c = local_4c + 1;\n          *(int *)(local_3c + iVar13) = iVar17;\n        }\n      }" { (if_statement "if (uVar22 < 0x10000) {\n          iVar17 = 0x20;\n          if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }\n          iVar13 = 9;\n          if (0xff >= uVar22) {\n            iVar13 = 1;\n          }\n        }\n        else {\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }" if (parenthesized_expression "(uVar22 < 0x10000)" ( (binary_expression "uVar22 < 0x10000" identifier < number_literal) )) (compound_statement "{\n          iVar17 = 0x20;\n          if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }\n          iVar13 = 9;\n          if (0xff >= uVar22) {\n            iVar13 = 1;\n          }\n        }" { (expression_statement "iVar17 = 0x20;" (assignment_expression "iVar17 = 0x20" identifier = number_literal) ;) (if_statement "if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }" if (parenthesized_expression "(0xff < uVar22)" ( (binary_expression "0xff < uVar22" number_literal < identifier) )) (compound_statement "{\n            iVar17 = 0x18;\n          }" { (expression_statement "iVar17 = 0x18;" (assignment_expression "iVar17 = 0x18" identifier = number_literal) ;) })) (expression_statement "iVar13 = 9;" (assignment_expression "iVar13 = 9" identifier = number_literal) ;) (if_statement "if (0xff >= uVar22) {\n            iVar13 = 1;\n          }" if (parenthesized_expression "(0xff >= uVar22)" ( (binary_expression "0xff >= uVar22" number_literal >= identifier) )) (compound_statement "{\n            iVar13 = 1;\n          }" { (expression_statement "iVar13 = 1;" (assignment_expression "iVar13 = 1" identifier = number_literal) ;) })) }) (else_clause "else {\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }" else (compound_statement "{\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }" { (expression_statement "iVar17 = 0x10;" (assignment_expression "iVar17 = 0x10" identifier = number_literal) ;) (if_statement "if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }" if (parenthesized_expression "(0xffffff < uVar22)" ( (binary_expression "0xffffff < uVar22" number_literal < identifier) )) (compound_statement "{\n            iVar17 = 8;\n          }" { (expression_statement "iVar17 = 8;" (assignment_expression "iVar17 = 8" identifier = number_literal) ;) })) (expression_statement "iVar13 = 0x19;" (assignment_expression "iVar13 = 0x19" identifier = number_literal) ;) (if_statement "if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }" if (parenthesized_expression "(0xffffff >= uVar22)" ( (binary_expression "0xffffff >= uVar22" number_literal >= identifier) )) (compound_statement "{\n            iVar13 = 0x11;\n          }" { (expression_statement "iVar13 = 0x11;" (assignment_expression "iVar13 = 0x11" identifier = number_literal) ;) })) }))) (expression_statement "bVar11 = puVar21[uVar22 >> iVar13];" (assignment_expression "bVar11 = puVar21[uVar22 >> iVar13]" identifier = (subscript_expression "puVar21[uVar22 >> iVar13]" identifier [ (binary_expression "uVar22 >> iVar13" identifier >> identifier) ])) ;) (expression_statement "(*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11);" (call_expression "(*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009d56c)" ( (pointer_expression "*(code *)PTR___gmpn_lshift_0009d56c" * (cast_expression "(code *)PTR___gmpn_lshift_0009d56c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_50,local_50,pbVar19,iVar17 - (uint)bVar11)" ( identifier , identifier , identifier , (binary_expression "iVar17 - (uint)bVar11" identifier - (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) ;) (expression_statement "iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11);" (assignment_expression "iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11)" identifier = (call_expression "(*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009d56c)" ( (pointer_expression "*(code *)PTR___gmpn_lshift_0009d56c" * (cast_expression "(code *)PTR___gmpn_lshift_0009d56c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_3c,local_3c,local_4c,iVar17 - (uint)bVar11)" ( identifier , identifier , identifier , (binary_expression "iVar17 - (uint)bVar11" identifier - (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (if_statement "if (iVar17 != 0) {\n          iVar13 = (int)local_4c * 4;\n          local_4c = local_4c + 1;\n          *(int *)(local_3c + iVar13) = iVar17;\n        }" if (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar13 = (int)local_4c * 4;\n          local_4c = local_4c + 1;\n          *(int *)(local_3c + iVar13) = iVar17;\n        }" { (expression_statement "iVar13 = (int)local_4c * 4;" (assignment_expression "iVar13 = (int)local_4c * 4" identifier = (binary_expression "(int)local_4c * 4" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "local_4c = local_4c + 1;" (assignment_expression "local_4c = local_4c + 1" identifier = (binary_expression "local_4c + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(local_3c + iVar13) = iVar17;" (assignment_expression "*(int *)(local_3c + iVar13) = iVar17" (pointer_expression "*(int *)(local_3c + iVar13)" * (cast_expression "(int *)(local_3c + iVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_3c + iVar13)" ( (binary_expression "local_3c + iVar13" identifier + identifier) )))) = identifier) ;) })) })) (if_statement "if ((uint)(iVar4 * 4) < 0x7f01) {\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      }" if (parenthesized_expression "((uint)(iVar4 * 4) < 0x7f01)" ( (binary_expression "(uint)(iVar4 * 4) < 0x7f01" (call_expression "(uint)(iVar4 * 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar4 * 4)" ( (binary_expression "iVar4 * 4" identifier * number_literal) ))) < number_literal) )) (compound_statement "{\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }" { (expression_statement "iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);" (assignment_expression "iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8)" identifier = (unary_expression "-(iVar4 * 4 + 7U & 0xfffffff8)" - (parenthesized_expression "(iVar4 * 4 + 7U & 0xfffffff8)" ( (binary_expression "iVar4 * 4 + 7U & 0xfffffff8" (binary_expression "iVar4 * 4 + 7U" (binary_expression "iVar4 * 4" identifier * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);" (assignment_expression "puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18)" identifier = (cast_expression "(undefined4 *)(puVar26 + iVar4 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + iVar4 + 0x18)" ( (binary_expression "puVar26 + iVar4 + 0x18" (binary_expression "puVar26 + iVar4" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar26 = puVar26 + iVar4;" (assignment_expression "puVar26 = puVar26 + iVar4" identifier = (binary_expression "puVar26 + iVar4" identifier + identifier)) ;) }) (else_clause "else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      }" else (compound_statement "{\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      }" { (expression_statement "puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);" (assignment_expression "puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30)" ( (pointer_expression "&local_30" & identifier) ))))) ;) }))) (expression_statement "iVar17 = (int)local_4c - (int)pbVar19;" (assignment_expression "iVar17 = (int)local_4c - (int)pbVar19" identifier = (binary_expression "(int)local_4c - (int)pbVar19" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(byte **)(puVar26 + 0x14) = pbVar19;" (assignment_expression "*(byte **)(puVar26 + 0x14) = pbVar19" (pointer_expression "*(byte **)(puVar26 + 0x14)" * (cast_expression "(byte **)(puVar26 + 0x14)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x14)" ( (binary_expression "puVar26 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar26 + 0x10) = local_50;" (assignment_expression "*(byte **)(puVar26 + 0x10) = local_50" (pointer_expression "*(byte **)(puVar26 + 0x10)" * (cast_expression "(byte **)(puVar26 + 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x10)" ( (binary_expression "puVar26 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar4 = (*(code *)PTR___gmpn_divrem_0009d0e4)(puVar20,(int)param_2 - iVar17);" (assignment_expression "iVar4 = (*(code *)PTR___gmpn_divrem_0009d0e4)(puVar20,(int)param_2 - iVar17)" identifier = (call_expression "(*(code *)PTR___gmpn_divrem_0009d0e4)(puVar20,(int)param_2 - iVar17)" (parenthesized_expression "(*(code *)PTR___gmpn_divrem_0009d0e4)" ( (pointer_expression "*(code *)PTR___gmpn_divrem_0009d0e4" * (cast_expression "(code *)PTR___gmpn_divrem_0009d0e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar20,(int)param_2 - iVar17)" ( identifier , (binary_expression "(int)param_2 - iVar17" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "pbVar14 = (byte *)((local_54 - iVar10) + iVar17 + iVar4);" (assignment_expression "pbVar14 = (byte *)((local_54 - iVar10) + iVar17 + iVar4)" identifier = (cast_expression "(byte *)((local_54 - iVar10) + iVar17 + iVar4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((local_54 - iVar10) + iVar17 + iVar4)" ( (binary_expression "(local_54 - iVar10) + iVar17 + iVar4" (binary_expression "(local_54 - iVar10) + iVar17" (parenthesized_expression "(local_54 - iVar10)" ( (binary_expression "local_54 - iVar10" identifier - identifier) )) + identifier) + identifier) )))) ;) (if_statement "if (iVar4 != 0) {\n        piVar5 = puVar20 + (int)param_2;\n        puVar20 = puVar20 + 1;\n        *piVar5 = iVar4;\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        piVar5 = puVar20 + (int)param_2;\n        puVar20 = puVar20 + 1;\n        *piVar5 = iVar4;\n      }" { (expression_statement "piVar5 = puVar20 + (int)param_2;" (assignment_expression "piVar5 = puVar20 + (int)param_2" identifier = (binary_expression "puVar20 + (int)param_2" identifier + (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar20 = puVar20 + 1;" (assignment_expression "puVar20 = puVar20 + 1" identifier = (binary_expression "puVar20 + 1" identifier + number_literal)) ;) (expression_statement "*piVar5 = iVar4;" (assignment_expression "*piVar5 = iVar4" (pointer_expression "*piVar5" * identifier) = identifier) ;) })) }) (else_clause "else {\n      pbVar3 = pbVar19 + (int)local_4c;\n      uVar22 = (int)pbVar3 * 4;\n      if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      }\n      if ((int)local_4c < (int)pbVar19) {\n        *(byte **)(puVar26 + 0x10) = local_4c;\n        local_4c = local_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);\n        local_3c = pbVar19;\n      }\n      else {\n        *(byte **)(puVar26 + 0x10) = pbVar19;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);\n        local_3c = local_4c;\n        local_4c = local_50;\n      }\n      pbVar3 = pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0);\n      pbVar14 = pbVar3 + iVar10 + local_54;\n      if ((int)param_2 < (int)pbVar3) {\n        puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);\n        pbVar3 = param_2;\n      }\n    }" else (compound_statement "{\n      pbVar3 = pbVar19 + (int)local_4c;\n      uVar22 = (int)pbVar3 * 4;\n      if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      }\n      if ((int)local_4c < (int)pbVar19) {\n        *(byte **)(puVar26 + 0x10) = local_4c;\n        local_4c = local_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);\n        local_3c = pbVar19;\n      }\n      else {\n        *(byte **)(puVar26 + 0x10) = pbVar19;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);\n        local_3c = local_4c;\n        local_4c = local_50;\n      }\n      pbVar3 = pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0);\n      pbVar14 = pbVar3 + iVar10 + local_54;\n      if ((int)param_2 < (int)pbVar3) {\n        puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);\n        pbVar3 = param_2;\n      }\n    }" { (expression_statement "pbVar3 = pbVar19 + (int)local_4c;" (assignment_expression "pbVar3 = pbVar19 + (int)local_4c" identifier = (binary_expression "pbVar19 + (int)local_4c" identifier + (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar22 = (int)pbVar3 * 4;" (assignment_expression "uVar22 = (int)pbVar3 * 4" identifier = (binary_expression "(int)pbVar3 * 4" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (if_statement "if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      }" if (parenthesized_expression "(uVar22 < 0x7f01)" ( (binary_expression "uVar22 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }" { (expression_statement "iVar4 = -(uVar22 + 7 & 0xfffffff8);" (assignment_expression "iVar4 = -(uVar22 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar22 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar22 + 7 & 0xfffffff8)" ( (binary_expression "uVar22 + 7 & 0xfffffff8" (binary_expression "uVar22 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);" (assignment_expression "puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18)" identifier = (cast_expression "(undefined4 *)(puVar26 + iVar4 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + iVar4 + 0x18)" ( (binary_expression "puVar26 + iVar4 + 0x18" (binary_expression "puVar26 + iVar4" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar26 = puVar26 + iVar4;" (assignment_expression "puVar26 = puVar26 + iVar4" identifier = (binary_expression "puVar26 + iVar4" identifier + identifier)) ;) }) (else_clause "else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      }" else (compound_statement "{\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      }" { (expression_statement "puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);" (assignment_expression "puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30,uVar22)" ( (pointer_expression "&local_30" & identifier) , identifier ))))) ;) }))) (if_statement "if ((int)local_4c < (int)pbVar19) {\n        *(byte **)(puVar26 + 0x10) = local_4c;\n        local_4c = local_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);\n        local_3c = pbVar19;\n      }\n      else {\n        *(byte **)(puVar26 + 0x10) = pbVar19;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);\n        local_3c = local_4c;\n        local_4c = local_50;\n      }" if (parenthesized_expression "((int)local_4c < (int)pbVar19)" ( (binary_expression "(int)local_4c < (int)pbVar19" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        *(byte **)(puVar26 + 0x10) = local_4c;\n        local_4c = local_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);\n        local_3c = pbVar19;\n      }" { (expression_statement "*(byte **)(puVar26 + 0x10) = local_4c;" (assignment_expression "*(byte **)(puVar26 + 0x10) = local_4c" (pointer_expression "*(byte **)(puVar26 + 0x10)" * (cast_expression "(byte **)(puVar26 + 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x10)" ( (binary_expression "puVar26 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_4c = local_3c;" (assignment_expression "local_4c = local_3c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);" (call_expression "(*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_0009d2b4)" ( (pointer_expression "*(code *)PTR___gmpn_mul_0009d2b4" * (cast_expression "(code *)PTR___gmpn_mul_0009d2b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar20,local_50)" ( identifier , identifier ))) ;) (expression_statement "local_3c = pbVar19;" (assignment_expression "local_3c = pbVar19" identifier = identifier) ;) }) (else_clause "else {\n        *(byte **)(puVar26 + 0x10) = pbVar19;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);\n        local_3c = local_4c;\n        local_4c = local_50;\n      }" else (compound_statement "{\n        *(byte **)(puVar26 + 0x10) = pbVar19;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);\n        local_3c = local_4c;\n        local_4c = local_50;\n      }" { (expression_statement "*(byte **)(puVar26 + 0x10) = pbVar19;" (assignment_expression "*(byte **)(puVar26 + 0x10) = pbVar19" (pointer_expression "*(byte **)(puVar26 + 0x10)" * (cast_expression "(byte **)(puVar26 + 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x10)" ( (binary_expression "puVar26 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);" (call_expression "(*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_0009d2b4)" ( (pointer_expression "*(code *)PTR___gmpn_mul_0009d2b4" * (cast_expression "(code *)PTR___gmpn_mul_0009d2b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar20,local_3c)" ( identifier , identifier ))) ;) (expression_statement "local_3c = local_4c;" (assignment_expression "local_3c = local_4c" identifier = identifier) ;) (expression_statement "local_4c = local_50;" (assignment_expression "local_4c = local_50" identifier = identifier) ;) }))) (expression_statement "pbVar3 = pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0);" (assignment_expression "pbVar3 = pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0)" identifier = (binary_expression "pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0)" identifier + (unary_expression "-(uint)(puVar20[(int)(pbVar3 + -1)] == 0)" - (call_expression "(uint)(puVar20[(int)(pbVar3 + -1)] == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar20[(int)(pbVar3 + -1)] == 0)" ( (binary_expression "puVar20[(int)(pbVar3 + -1)] == 0" (subscript_expression "puVar20[(int)(pbVar3 + -1)]" identifier [ (cast_expression "(int)(pbVar3 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar3 + -1)" ( (binary_expression "pbVar3 + -1" identifier + number_literal) ))) ]) == number_literal) )))))) ;) (expression_statement "pbVar14 = pbVar3 + iVar10 + local_54;" (assignment_expression "pbVar14 = pbVar3 + iVar10 + local_54" identifier = (binary_expression "pbVar3 + iVar10 + local_54" (binary_expression "pbVar3 + iVar10" identifier + identifier) + identifier)) ;) (if_statement "if ((int)param_2 < (int)pbVar3) {\n        puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);\n        pbVar3 = param_2;\n      }" if (parenthesized_expression "((int)param_2 < (int)pbVar3)" ( (binary_expression "(int)param_2 < (int)pbVar3" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);\n        pbVar3 = param_2;\n      }" { (expression_statement "puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);" (assignment_expression "puVar20 = puVar20 + ((int)pbVar3 - (int)param_2)" identifier = (binary_expression "puVar20 + ((int)pbVar3 - (int)param_2)" identifier + (parenthesized_expression "((int)pbVar3 - (int)param_2)" ( (binary_expression "(int)pbVar3 - (int)param_2" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pbVar3 = param_2;" (assignment_expression "pbVar3 = param_2" identifier = identifier) ;) })) }))) (if_statement "if (pbVar3 != (byte *)0x0) {\n      pbVar6 = pbVar3 + -1;\n      uVar12 = *puVar20;\n      local_3c = (byte *)param_1[3];\n      pbVar19 = local_3c;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          puVar20 = puVar20 + 1;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *puVar20;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        local_3c = local_3c + (int)pbVar3 * 4 + -4;\n      }\n      *(undefined4 *)local_3c = uVar12;\n    }" if (parenthesized_expression "(pbVar3 != (byte *)0x0)" ( (binary_expression "pbVar3 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbVar6 = pbVar3 + -1;\n      uVar12 = *puVar20;\n      local_3c = (byte *)param_1[3];\n      pbVar19 = local_3c;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          puVar20 = puVar20 + 1;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *puVar20;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        local_3c = local_3c + (int)pbVar3 * 4 + -4;\n      }\n      *(undefined4 *)local_3c = uVar12;\n    }" { (expression_statement "pbVar6 = pbVar3 + -1;" (assignment_expression "pbVar6 = pbVar3 + -1" identifier = (binary_expression "pbVar3 + -1" identifier + number_literal)) ;) (expression_statement "uVar12 = *puVar20;" (assignment_expression "uVar12 = *puVar20" identifier = (pointer_expression "*puVar20" * identifier)) ;) (expression_statement "local_3c = (byte *)param_1[3];" (assignment_expression "local_3c = (byte *)param_1[3]" identifier = (cast_expression "(byte *)param_1[3]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[3]" identifier [ number_literal ]))) ;) (expression_statement "pbVar19 = local_3c;" (assignment_expression "pbVar19 = local_3c" identifier = identifier) ;) (if_statement "if (pbVar6 != (byte *)0x0) {\n        do {\n          puVar20 = puVar20 + 1;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *puVar20;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        local_3c = local_3c + (int)pbVar3 * 4 + -4;\n      }" if (parenthesized_expression "(pbVar6 != (byte *)0x0)" ( (binary_expression "pbVar6 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        do {\n          puVar20 = puVar20 + 1;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *puVar20;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        local_3c = local_3c + (int)pbVar3 * 4 + -4;\n      }" { (do_statement "do {\n          puVar20 = puVar20 + 1;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *puVar20;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);" do (compound_statement "{\n          puVar20 = puVar20 + 1;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *puVar20;\n          pbVar19 = pbVar19 + 4;\n        }" { (expression_statement "puVar20 = puVar20 + 1;" (assignment_expression "puVar20 = puVar20 + 1" identifier = (binary_expression "puVar20 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)pbVar19 = uVar12;" (assignment_expression "*(undefined4 *)pbVar19 = uVar12" (pointer_expression "*(undefined4 *)pbVar19" * (cast_expression "(undefined4 *)pbVar19" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "pbVar6 = pbVar6 + -1;" (assignment_expression "pbVar6 = pbVar6 + -1" identifier = (binary_expression "pbVar6 + -1" identifier + number_literal)) ;) (expression_statement "uVar12 = *puVar20;" (assignment_expression "uVar12 = *puVar20" identifier = (pointer_expression "*puVar20" * identifier)) ;) (expression_statement "pbVar19 = pbVar19 + 4;" (assignment_expression "pbVar19 = pbVar19 + 4" identifier = (binary_expression "pbVar19 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar6 != (byte *)0x0)" ( (binary_expression "pbVar6 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "local_3c = local_3c + (int)pbVar3 * 4 + -4;" (assignment_expression "local_3c = local_3c + (int)pbVar3 * 4 + -4" identifier = (binary_expression "local_3c + (int)pbVar3 * 4 + -4" (binary_expression "local_3c + (int)pbVar3 * 4" identifier + (binary_expression "(int)pbVar3 * 4" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "*(undefined4 *)local_3c = uVar12;" (assignment_expression "*(undefined4 *)local_3c = uVar12" (pointer_expression "*(undefined4 *)local_3c" * (cast_expression "(undefined4 *)local_3c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) })) (if_statement "if (bVar1) {\n      pbVar3 = (byte *)-(int)pbVar3;\n    }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n      pbVar3 = (byte *)-(int)pbVar3;\n    }" { (expression_statement "pbVar3 = (byte *)-(int)pbVar3;" (assignment_expression "pbVar3 = (byte *)-(int)pbVar3" identifier = (cast_expression "(byte *)-(int)pbVar3" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)pbVar3" - (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "param_1[1] = (int)pbVar3;" (assignment_expression "param_1[1] = (int)pbVar3" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[2] = (int)pbVar14;" (assignment_expression "param_1[2] = (int)pbVar14" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pbVar14 = local_3c;" (assignment_expression "pbVar14 = local_3c" identifier = identifier) ;) (expression_statement "param_4 = local_4c;" (assignment_expression "param_4 = local_4c" identifier = identifier) ;) (expression_statement "param_2 = pbVar3;" (assignment_expression "param_2 = pbVar3" identifier = identifier) ;) (if_statement "if (local_30 == 0) {\n      uVar22 = 0;\n      goto LAB_00018714;\n    }" if (parenthesized_expression "(local_30 == 0)" ( (binary_expression "local_30 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar22 = 0;\n      goto LAB_00018714;\n    }" { (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00018714;" goto statement_identifier ;) })) }) (else_clause "else {\n    local_54 = 0;\n    local_4c = pbVar3;\n    if (pbVar16 != (byte *)0x0) goto LAB_000185a0;\nLAB_000187d0:\n    if (pbVar23 != (byte *)0x0) {\n      local_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }\nLAB_000187e0:\n    if (local_4c != (byte *)0x0) {\n      pbVar6 = local_4c + -1;\n      pbVar14 = (byte *)param_1[3];\n      uVar12 = *(undefined4 *)local_3c;\n      pbVar19 = pbVar14;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;\n      }\n      *(undefined4 *)pbVar14 = uVar12;\n    }\n    if (bVar1) {\n      local_4c = (byte *)-(int)local_4c;\n    }\n    param_1[1] = (int)local_4c;\n    param_1[2] = (int)pbVar3;\n    if (local_30 == 0) goto LAB_000187ac;\n  }" else (compound_statement "{\n    local_54 = 0;\n    local_4c = pbVar3;\n    if (pbVar16 != (byte *)0x0) goto LAB_000185a0;\nLAB_000187d0:\n    if (pbVar23 != (byte *)0x0) {\n      local_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }\nLAB_000187e0:\n    if (local_4c != (byte *)0x0) {\n      pbVar6 = local_4c + -1;\n      pbVar14 = (byte *)param_1[3];\n      uVar12 = *(undefined4 *)local_3c;\n      pbVar19 = pbVar14;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;\n      }\n      *(undefined4 *)pbVar14 = uVar12;\n    }\n    if (bVar1) {\n      local_4c = (byte *)-(int)local_4c;\n    }\n    param_1[1] = (int)local_4c;\n    param_1[2] = (int)pbVar3;\n    if (local_30 == 0) goto LAB_000187ac;\n  }" { (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_4c = pbVar3;" (assignment_expression "local_4c = pbVar3" identifier = identifier) ;) (if_statement "if (pbVar16 != (byte *)0x0) goto LAB_000185a0;" if (parenthesized_expression "(pbVar16 != (byte *)0x0)" ( (binary_expression "pbVar16 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000185a0;" goto statement_identifier ;)) (labeled_statement "LAB_000187d0:\n    if (pbVar23 != (byte *)0x0) {\n      local_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }" statement_identifier : (if_statement "if (pbVar23 != (byte *)0x0) {\n      local_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }" if (parenthesized_expression "(pbVar23 != (byte *)0x0)" ( (binary_expression "pbVar23 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }" { (expression_statement "local_44 = (byte *)0x0;" (assignment_expression "local_44 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00018628;" goto statement_identifier ;) }))) (labeled_statement "LAB_000187e0:\n    if (local_4c != (byte *)0x0) {\n      pbVar6 = local_4c + -1;\n      pbVar14 = (byte *)param_1[3];\n      uVar12 = *(undefined4 *)local_3c;\n      pbVar19 = pbVar14;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;\n      }\n      *(undefined4 *)pbVar14 = uVar12;\n    }" statement_identifier : (if_statement "if (local_4c != (byte *)0x0) {\n      pbVar6 = local_4c + -1;\n      pbVar14 = (byte *)param_1[3];\n      uVar12 = *(undefined4 *)local_3c;\n      pbVar19 = pbVar14;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;\n      }\n      *(undefined4 *)pbVar14 = uVar12;\n    }" if (parenthesized_expression "(local_4c != (byte *)0x0)" ( (binary_expression "local_4c != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbVar6 = local_4c + -1;\n      pbVar14 = (byte *)param_1[3];\n      uVar12 = *(undefined4 *)local_3c;\n      pbVar19 = pbVar14;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;\n      }\n      *(undefined4 *)pbVar14 = uVar12;\n    }" { (expression_statement "pbVar6 = local_4c + -1;" (assignment_expression "pbVar6 = local_4c + -1" identifier = (binary_expression "local_4c + -1" identifier + number_literal)) ;) (expression_statement "pbVar14 = (byte *)param_1[3];" (assignment_expression "pbVar14 = (byte *)param_1[3]" identifier = (cast_expression "(byte *)param_1[3]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[3]" identifier [ number_literal ]))) ;) (expression_statement "uVar12 = *(undefined4 *)local_3c;" (assignment_expression "uVar12 = *(undefined4 *)local_3c" identifier = (pointer_expression "*(undefined4 *)local_3c" * (cast_expression "(undefined4 *)local_3c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar19 = pbVar14;" (assignment_expression "pbVar19 = pbVar14" identifier = identifier) ;) (if_statement "if (pbVar6 != (byte *)0x0) {\n        do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;\n      }" if (parenthesized_expression "(pbVar6 != (byte *)0x0)" ( (binary_expression "pbVar6 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;\n      }" { (do_statement "do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);" do (compound_statement "{\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        }" { (expression_statement "local_3c = local_3c + 4;" (assignment_expression "local_3c = local_3c + 4" identifier = (binary_expression "local_3c + 4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)pbVar19 = uVar12;" (assignment_expression "*(undefined4 *)pbVar19 = uVar12" (pointer_expression "*(undefined4 *)pbVar19" * (cast_expression "(undefined4 *)pbVar19" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "pbVar6 = pbVar6 + -1;" (assignment_expression "pbVar6 = pbVar6 + -1" identifier = (binary_expression "pbVar6 + -1" identifier + number_literal)) ;) (expression_statement "uVar12 = *(undefined4 *)local_3c;" (assignment_expression "uVar12 = *(undefined4 *)local_3c" identifier = (pointer_expression "*(undefined4 *)local_3c" * (cast_expression "(undefined4 *)local_3c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar19 = pbVar19 + 4;" (assignment_expression "pbVar19 = pbVar19 + 4" identifier = (binary_expression "pbVar19 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar6 != (byte *)0x0)" ( (binary_expression "pbVar6 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pbVar14 = pbVar14 + (int)local_4c * 4 + -4;" (assignment_expression "pbVar14 = pbVar14 + (int)local_4c * 4 + -4" identifier = (binary_expression "pbVar14 + (int)local_4c * 4 + -4" (binary_expression "pbVar14 + (int)local_4c * 4" identifier + (binary_expression "(int)local_4c * 4" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "*(undefined4 *)pbVar14 = uVar12;" (assignment_expression "*(undefined4 *)pbVar14 = uVar12" (pointer_expression "*(undefined4 *)pbVar14" * (cast_expression "(undefined4 *)pbVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) }))) (if_statement "if (bVar1) {\n      local_4c = (byte *)-(int)local_4c;\n    }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n      local_4c = (byte *)-(int)local_4c;\n    }" { (expression_statement "local_4c = (byte *)-(int)local_4c;" (assignment_expression "local_4c = (byte *)-(int)local_4c" identifier = (cast_expression "(byte *)-(int)local_4c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)local_4c" - (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "param_1[1] = (int)local_4c;" (assignment_expression "param_1[1] = (int)local_4c" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[2] = (int)pbVar3;" (assignment_expression "param_1[2] = (int)pbVar3" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (local_30 == 0) goto LAB_000187ac;" if (parenthesized_expression "(local_30 == 0)" ( (binary_expression "local_30 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000187ac;" goto statement_identifier ;)) }))) (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_0009d618" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_0009d618" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00018714:\n  if (local_2c == *(int *)puVar24) {\n    return uVar22;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar24) {\n    return uVar22;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar24)" ( (binary_expression "local_2c == *(int *)puVar24" identifier == (pointer_expression "*(int *)puVar24" * (cast_expression "(int *)puVar24" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return uVar22;\n  }" { (return_statement "return uVar22;" return identifier ;) }))) (expression_statement "pcVar27 = __gmpf_set_d;" (assignment_expression "pcVar27 = __gmpf_set_d" identifier = identifier) ;) (expression_statement "iVar4 = local_2c;" (assignment_expression "iVar4 = local_2c" identifier = identifier) ;) (expression_statement "puVar24 = PTR___stack_chk_fail_0009d4d0;" (assignment_expression "puVar24 = PTR___stack_chk_fail_0009d4d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0009d4d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0009d4d0" * (cast_expression "(code *)PTR___stack_chk_fail_0009d4d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "*(byte **)(puVar26 + 8) = pbVar14;" (assignment_expression "*(byte **)(puVar26 + 8) = pbVar14" (pointer_expression "*(byte **)(puVar26 + 8)" * (cast_expression "(byte **)(puVar26 + 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 8)" ( (binary_expression "puVar26 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar26 + -0x18) = puVar24 + 0x8c170;" (assignment_expression "*(undefined **)(puVar26 + -0x18) = puVar24 + 0x8c170" (pointer_expression "*(undefined **)(puVar26 + -0x18)" * (cast_expression "(undefined **)(puVar26 + -0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -0x18)" ( (binary_expression "puVar26 + -0x18" identifier + number_literal) )))) = (binary_expression "puVar24 + 0x8c170" identifier + number_literal)) ;) (expression_statement "*(code **)(puVar26 + -4) = pcVar27;" (assignment_expression "*(code **)(puVar26 + -4) = pcVar27" (pointer_expression "*(code **)(puVar26 + -4)" * (cast_expression "(code **)(puVar26 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -4)" ( (binary_expression "puVar26 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar26 + -8) = param_2;" (assignment_expression "*(byte **)(puVar26 + -8) = param_2" (pointer_expression "*(byte **)(puVar26 + -8)" * (cast_expression "(byte **)(puVar26 + -8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + -8)" ( (binary_expression "puVar26 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar26 + 0xc) = param_4;" (assignment_expression "*(byte **)(puVar26 + 0xc) = param_4" (pointer_expression "*(byte **)(puVar26 + 0xc)" * (cast_expression "(byte **)(puVar26 + 0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0xc)" ( (binary_expression "puVar26 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar22 = *(uint *)(puVar26 + 8) & 0x7ff00000;" (assignment_expression "uVar22 = *(uint *)(puVar26 + 8) & 0x7ff00000" identifier = (binary_expression "*(uint *)(puVar26 + 8) & 0x7ff00000" (pointer_expression "*(uint *)(puVar26 + 8)" * (cast_expression "(uint *)(puVar26 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 8)" ( (binary_expression "puVar26 + 8" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (uVar22 == 0x7ff00000) {\n    uVar22 = (**(code **)(puVar24 + 0x8468c))();\n  }\n  else if ((double)CONCAT44(pbVar14,param_4) != 0.0) {\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      *(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4);\n    }\n    else {\n      *(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);\n    }\n    pcVar27 = *(code **)(puVar24 + 0x84254);\n    uVar12 = 0xfffffffd;\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      uVar12 = 3;\n    }\n    *(undefined4 *)(iVar4 + 4) = uVar12;\n    uVar22 = (*pcVar27)(*(undefined4 *)(iVar4 + 0xc));\n    *(uint *)(iVar4 + 8) = uVar22;\n    return uVar22;\n  }" if (parenthesized_expression "(uVar22 == 0x7ff00000)" ( (binary_expression "uVar22 == 0x7ff00000" identifier == number_literal) )) (compound_statement "{\n    uVar22 = (**(code **)(puVar24 + 0x8468c))();\n  }" { (expression_statement "uVar22 = (**(code **)(puVar24 + 0x8468c))();" (assignment_expression "uVar22 = (**(code **)(puVar24 + 0x8468c))()" identifier = (call_expression "(**(code **)(puVar24 + 0x8468c))()" (parenthesized_expression "(**(code **)(puVar24 + 0x8468c))" ( (pointer_expression "**(code **)(puVar24 + 0x8468c)" * (pointer_expression "*(code **)(puVar24 + 0x8468c)" * (cast_expression "(code **)(puVar24 + 0x8468c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x8468c)" ( (binary_expression "puVar24 + 0x8468c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else if ((double)CONCAT44(pbVar14,param_4) != 0.0) {\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      *(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4);\n    }\n    else {\n      *(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);\n    }\n    pcVar27 = *(code **)(puVar24 + 0x84254);\n    uVar12 = 0xfffffffd;\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      uVar12 = 3;\n    }\n    *(undefined4 *)(iVar4 + 4) = uVar12;\n    uVar22 = (*pcVar27)(*(undefined4 *)(iVar4 + 0xc));\n    *(uint *)(iVar4 + 8) = uVar22;\n    return uVar22;\n  }" else (if_statement "if ((double)CONCAT44(pbVar14,param_4) != 0.0) {\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      *(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4);\n    }\n    else {\n      *(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);\n    }\n    pcVar27 = *(code **)(puVar24 + 0x84254);\n    uVar12 = 0xfffffffd;\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      uVar12 = 3;\n    }\n    *(undefined4 *)(iVar4 + 4) = uVar12;\n    uVar22 = (*pcVar27)(*(undefined4 *)(iVar4 + 0xc));\n    *(uint *)(iVar4 + 8) = uVar22;\n    return uVar22;\n  }" if (parenthesized_expression "((double)CONCAT44(pbVar14,param_4) != 0.0)" ( (binary_expression "(double)CONCAT44(pbVar14,param_4) != 0.0" (cast_expression "(double)CONCAT44(pbVar14,param_4)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(pbVar14,param_4)" identifier (argument_list "(pbVar14,param_4)" ( identifier , identifier )))) != number_literal) )) (compound_statement "{\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      *(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4);\n    }\n    else {\n      *(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);\n    }\n    pcVar27 = *(code **)(puVar24 + 0x84254);\n    uVar12 = 0xfffffffd;\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      uVar12 = 3;\n    }\n    *(undefined4 *)(iVar4 + 4) = uVar12;\n    uVar22 = (*pcVar27)(*(undefined4 *)(iVar4 + 0xc));\n    *(uint *)(iVar4 + 8) = uVar22;\n    return uVar22;\n  }" { (if_statement "if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      *(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4);\n    }\n    else {\n      *(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);\n    }" if (parenthesized_expression "(0.0 <= (double)CONCAT44(pbVar14,param_4))" ( (binary_expression "0.0 <= (double)CONCAT44(pbVar14,param_4)" number_literal <= (cast_expression "(double)CONCAT44(pbVar14,param_4)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(pbVar14,param_4)" identifier (argument_list "(pbVar14,param_4)" ( identifier , identifier ))))) )) (compound_statement "{\n      *(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4);\n    }" { (expression_statement "*(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4);" (assignment_expression "*(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4)" (pointer_expression "*(ulonglong *)(puVar26 + -0x10)" * (cast_expression "(ulonglong *)(puVar26 + -0x10)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = (call_expression "CONCAT44(pbVar14,param_4)" identifier (argument_list "(pbVar14,param_4)" ( identifier , identifier )))) ;) }) (else_clause "else {\n      *(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);\n    }" else (compound_statement "{\n      *(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);\n    }" { (expression_statement "*(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;" (assignment_expression "*(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000" (pointer_expression "*(uint *)(puVar26 + -0x10)" * (cast_expression "(uint *)(puVar26 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x10)" ( (binary_expression "puVar26 + -0x10" identifier + number_literal) )))) = (binary_expression "*(uint *)(puVar26 + 8) ^ 0x80000000" (pointer_expression "*(uint *)(puVar26 + 8)" * (cast_expression "(uint *)(puVar26 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 8)" ( (binary_expression "puVar26 + 8" identifier + number_literal) )))) ^ number_literal)) ;) (expression_statement "*(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);" (assignment_expression "*(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc)" (pointer_expression "*(undefined4 *)(puVar26 + -0xc)" * (cast_expression "(undefined4 *)(puVar26 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0xc)" ( (binary_expression "puVar26 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar26 + 0xc)" * (cast_expression "(undefined4 *)(puVar26 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0xc)" ( (binary_expression "puVar26 + 0xc" identifier + number_literal) ))))) ;) }))) (expression_statement "pcVar27 = *(code **)(puVar24 + 0x84254);" (assignment_expression "pcVar27 = *(code **)(puVar24 + 0x84254)" identifier = (pointer_expression "*(code **)(puVar24 + 0x84254)" * (cast_expression "(code **)(puVar24 + 0x84254)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x84254)" ( (binary_expression "puVar24 + 0x84254" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = 0xfffffffd;" (assignment_expression "uVar12 = 0xfffffffd" identifier = number_literal) ;) (if_statement "if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      uVar12 = 3;\n    }" if (parenthesized_expression "(0.0 <= (double)CONCAT44(pbVar14,param_4))" ( (binary_expression "0.0 <= (double)CONCAT44(pbVar14,param_4)" number_literal <= (cast_expression "(double)CONCAT44(pbVar14,param_4)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(pbVar14,param_4)" identifier (argument_list "(pbVar14,param_4)" ( identifier , identifier ))))) )) (compound_statement "{\n      uVar12 = 3;\n    }" { (expression_statement "uVar12 = 3;" (assignment_expression "uVar12 = 3" identifier = number_literal) ;) })) (expression_statement "*(undefined4 *)(iVar4 + 4) = uVar12;" (assignment_expression "*(undefined4 *)(iVar4 + 4) = uVar12" (pointer_expression "*(undefined4 *)(iVar4 + 4)" * (cast_expression "(undefined4 *)(iVar4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar22 = (*pcVar27)(*(undefined4 *)(iVar4 + 0xc));" (assignment_expression "uVar22 = (*pcVar27)(*(undefined4 *)(iVar4 + 0xc))" identifier = (call_expression "(*pcVar27)(*(undefined4 *)(iVar4 + 0xc))" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "(*(undefined4 *)(iVar4 + 0xc))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" * (cast_expression "(undefined4 *)(iVar4 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) )))) ;) (expression_statement "*(uint *)(iVar4 + 8) = uVar22;" (assignment_expression "*(uint *)(iVar4 + 8) = uVar22" (pointer_expression "*(uint *)(iVar4 + 8)" * (cast_expression "(uint *)(iVar4 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) = identifier) ;) (return_statement "return uVar22;" return identifier ;) })))) (expression_statement "*(undefined4 *)(iVar4 + 4) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 4) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 4)" * (cast_expression "(undefined4 *)(iVar4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar4 + 8) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 8) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) = number_literal) ;) (return_statement "return uVar22;" return identifier ;) })))
(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 (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE 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 (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 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (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 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) ;) (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 ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (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 ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) (while_statement while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (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 { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ]))))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ]))))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT)) )) ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (pointer_expression * IDENT) ]))))) )) (goto_statement goto statement_identifier ;)) })) (labeled_statement statement_identifier : (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 ( IDENT ))))) ;)) (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) & LIT) )) == LIT) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + IDENT)) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT)) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ])))) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ IDENT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (call_expression IDENT (argument_list ( IDENT ))) * (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) >> LIT) ))) << LIT) ))) >> LIT) )) + LIT) )) * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (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) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ])) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < IDENT) )) (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 = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) & LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 ( 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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) || (binary_expression IDENT == LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (pointer_expression * IDENT) ]))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (subscript_expression IDENT [ LIT ]) ]))))) ;) (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 IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (subscript_expression IDENT [ LIT ]) ]))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ^ (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) }) (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) , IDENT ))))) ;) (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) , IDENT ))))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ])) - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >= LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> IDENT) ]))) - IDENT) )) + LIT)) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (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 , (binary_expression IDENT + (binary_expression IDENT * LIT)) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) )) * LIT)) )))) == LIT) )))) )))) ;) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + (binary_expression IDENT * LIT)) , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (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 + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) * LIT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (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 *)) ) (parenthesized_expression ( (binary_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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) = 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) * LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) * LIT) + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (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 = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) * LIT)) ;) (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 ( IDENT , LIT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_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 IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (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 *)) ) IDENT)) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT >= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT >= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_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 , (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 + IDENT) )))) = IDENT) ;) })) })) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) ;) (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 = (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (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 = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + IDENT) + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (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)) ;) (expression_statement (assignment_expression (pointer_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 (cast_expression ( (type_descriptor TYPE) ) IDENT) * 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) ;) (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) , IDENT ))))) ;) }))) (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 (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 ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (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 , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ]) == LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + IDENT)) ;) (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 IDENT + (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 IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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 { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (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 *)) ) IDENT)) = IDENT) ;) })) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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 IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (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 *)) ) IDENT)) = IDENT) ;) }))) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 IDENT ;) }))) (expression_statement (assignment_expression IDENT = 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 ( ))) ;) (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) )))) = (binary_expression 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) )))) = 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 IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT <= (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ^ LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (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 = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (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) ;) (return_statement return IDENT ;) })))) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (return_statement return IDENT ;) })))
(function_definition "uint __gmpf_set_str(int *param_1,byte *param_2,byte *param_3,byte *param_4)\n\n{\n  bool bVar1;\n  ushort uVar2;\n  byte *pbVar3;\n  int iVar4;\n  int *piVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte bVar11;\n  byte *pbVar9;\n  int iVar10;\n  undefined4 uVar12;\n  int iVar13;\n  byte *pbVar14;\n  undefined1 *puVar15;\n  byte *pbVar16;\n  int iVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  undefined4 *puVar20;\n  undefined *puVar21;\n  uint uVar22;\n  byte *pbVar23;\n  undefined *puVar24;\n  undefined1 *puVar25;\n  undefined1 *puVar26;\n  code *pcVar27;\n  undefined1 auStack_88 [8];\n  undefined1 auStack_80 [16];\n  byte abStack_70 [8];\n  int local_54;\n  byte *local_50;\n  byte *local_4c;\n  byte *local_44;\n  byte *local_3c;\n  int local_30;\n  int local_2c;\n  \n  puVar24 = PTR___stack_chk_guard_0009d540;\n  puVar26 = auStack_80;\n  puVar25 = auStack_80;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  pbVar14 = param_3;\n  pbVar3 = (byte *)(*(code *)PTR_nl_langinfo_0009d21c)(0x10000);\n  iVar4 = (*(code *)PTR_strlen_0009d360)(pbVar3);\n  uVar22 = (uint)*param_2;\n  piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0009d0ac)();\n  iVar17 = *piVar5;\n  uVar2 = *(ushort *)(iVar17 + uVar22 * 2);\n  while ((uVar2 & 0x20) != 0) {\n    param_2 = param_2 + 1;\n    uVar22 = (uint)*param_2;\n    uVar2 = *(ushort *)(iVar17 + uVar22 * 2);\n  }\n  bVar1 = uVar22 == 0x2d;\n  if (bVar1) {\n    uVar22 = (uint)param_2[1];\n    param_2 = param_2 + 1;\n  }\n  if (param_3 != (byte *)0x0) {\n    if ((int)param_3 < 0) {\n      param_3 = (byte *)-(int)param_3;\n      pbVar19 = &DAT_0000000a;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }\n    else {\n      pbVar19 = param_3;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }\n    puVar15 = auStack_80;\n    if ((int)param_3 < 0x3f) {\n      puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;\n      if ((int)param_3 <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;\n      goto LAB_00018368;\n    }\nLAB_00018710:\n    puVar26 = puVar15;\n    uVar22 = 0xffffffff;\n    goto LAB_00018714;\n  }\n  param_3 = &DAT_0000000a;\n  pbVar19 = &DAT_0000000a;\nLAB_000183f8:\n  puVar21 = PTR___gmp_digit_value_tab_0009d388;\n  if ((int)param_3 <= (int)(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]) {\nLAB_00018310:\n    pbVar14 = param_2;\n    if (iVar4 != 0) {\n      puVar15 = auStack_80;\n      if (*param_2 == *pbVar3) {\n        pbVar14 = param_2 + iVar4;\n        pbVar6 = param_2;\n        pbVar8 = pbVar3;\n        do {\n          pbVar8 = pbVar8 + 1;\n          pbVar6 = pbVar6 + 1;\n          if (pbVar14 == pbVar6) goto LAB_0001834c;\n          puVar15 = auStack_80;\n        } while (*pbVar6 == *pbVar8);\n      }\n      goto LAB_00018710;\n    }\nLAB_0001834c:\n    uVar22 = 0xffffffff;\n    if ((int)param_3 <= (int)(uint)(byte)puVar21[*pbVar14]) goto LAB_00018714;\n  }\nLAB_00018368:\n  pbVar6 = (byte *)(*(code *)PTR_strlen_0009d360)(param_2);\n  pbVar14 = pbVar6 + -1;\n  if (pbVar14 == (byte *)0x0) {\n    puVar25 = auStack_88;\n    local_30 = 0;\n    pbVar16 = (byte *)0x0;\n    pbVar6 = abStack_70;\n    pbVar14 = (byte *)0x1;\nLAB_00018460:\n    pbVar18 = (byte *)0x0;\n    pbVar8 = pbVar6;\n    pbVar23 = (byte *)0x0;\n    do {\n      while( true ) {\n        bVar11 = *param_2;\n        puVar26 = puVar25;\n        if ((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pbVar18 = pbVar18 + 1;\n        param_2 = param_2 + 1;\n        if (pbVar14 <= pbVar18) goto LAB_00018500;\n      }\n      if (iVar4 != 0) {\n        if (*pbVar3 == bVar11) {\n          pbVar7 = param_2;\n          pbVar9 = pbVar3;\n          do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);\n        }\n        if ((int)(uint)(byte)puVar21[bVar11] < (int)param_3) {\n          *pbVar8 = puVar21[bVar11];\n          pbVar8 = pbVar8 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }\nLAB_000184e0:\n      if (pbVar23 != (byte *)0x0) goto LAB_000186f8;\n      pbVar18 = pbVar18 + iVar4;\n      param_2 = param_2 + iVar4;\n      pbVar23 = pbVar8;\n    } while (pbVar18 < pbVar14);\nLAB_00018500:\n    pbVar14 = pbVar8 + -(int)pbVar6;\n    iVar4 = *param_1;\n    uVar22 = (((uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5) + 2) * 4;\n    param_2 = (byte *)(iVar4 + 1);\n    if (uVar22 < 0x7f01) goto LAB_00018544;\n    local_3c = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }\n  else {\n    bVar11 = param_2[(int)pbVar14];\n    if (bVar11 == 0x40) {\n      pbVar16 = param_2 + (int)pbVar6;\n      pbVar8 = pbVar6;\n    }\n    else {\n      pbVar8 = pbVar6 + -2;\n      pbVar23 = pbVar14;\n      if ((int)param_3 < 0xb) {\n        do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);\nLAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;\n        pbVar8 = pbVar23;\n      }\n      else {\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }\n    }\nLAB_0001843c:\n    local_30 = 0;\n    if ((byte *)0x7f00 < pbVar8) {\n      pbVar6 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      iVar17 = *piVar5;\n      goto LAB_00018460;\n    }\n    iVar10 = -((uint)(pbVar8 + 7) & 0xfffffff8);\n    puVar25 = auStack_80 + iVar10;\n    puVar26 = auStack_80 + iVar10;\n    pbVar6 = &stack0xffffff98 + iVar10;\n    if (pbVar14 != (byte *)0x0) goto LAB_00018460;\n    pbVar23 = (byte *)0x0;\n    uVar22 = 8;\n    iVar4 = *param_1;\n    param_2 = (byte *)(iVar4 + 1);\n    pbVar8 = pbVar6;\nLAB_00018544:\n    iVar17 = -(uVar22 + 7 & 0xfffffff8);\n    local_3c = puVar26 + iVar17 + 0x18;\n    puVar26 = puVar26 + iVar17;\n  }\n  param_4 = param_3;\n  pbVar3 = (byte *)(*(code *)PTR___gmpn_set_str_0009d5b4)(local_3c,pbVar6);\n  if (pbVar3 == (byte *)0x0) {\n    param_1[1] = 0;\n    param_1[2] = 0;\n    if (local_30 != 0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      uVar22 = 0;\n      goto LAB_00018714;\n    }\nLAB_000187ac:\n    uVar22 = 0;\n    goto LAB_00018714;\n  }\n  local_54 = (int)pbVar3 - (int)param_2;\n  if ((int)param_2 < (int)pbVar3) {\n    local_3c = local_3c + local_54 * 4;\n    local_4c = param_2;\n    if (pbVar16 == (byte *)0x0) goto LAB_000187d0;\nLAB_000185a0:\n    bVar11 = *pbVar16;\n    param_4 = (byte *)(uint)(bVar11 == 0x2d);\n    pbVar16 = pbVar16 + (bVar11 == 0x2b || bVar11 == 0x2d);\n    pbVar6 = (byte *)(uint)(byte)puVar21[*pbVar16];\n    if ((int)pbVar19 <= (int)pbVar6) {\nLAB_000186f8:\n      uVar22 = 0xffffffff;\n      if (local_30 == 0) goto LAB_00018714;\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      puVar15 = puVar26;\n      goto LAB_00018710;\n    }\n    pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[1]];\n    if ((int)pbVar14 < (int)pbVar19) {\n      pbVar16 = pbVar16 + 3;\n      do {\n        pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19;\n        pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]];\n        pbVar16 = pbVar16 + 1;\n      } while ((int)pbVar14 < (int)pbVar19);\n    }\n    local_44 = param_4 + (-(int)param_4 ^ (uint)pbVar6);\n    if (pbVar23 != (byte *)0x0) {\nLAB_00018628:\n      local_44 = local_44 + -((int)pbVar8 - (int)pbVar23);\n    }\n    if (local_44 == (byte *)0x0) goto LAB_000187e0;\n    iVar4 = iVar4 + 2;\n    uVar22 = iVar4 * 8;\n    if (uVar22 < 0x7f01) {\n      local_50 = puVar26 + iVar4 * -8 + 0x18;\n      pbVar14 = puVar26 + iVar4 * -0x10 + 0x18;\n      puVar26 = puVar26 + iVar4 * -0x10;\n    }\n    else {\n      local_50 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      pbVar14 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n    }\n    puVar21 = PTR___gmpn_clz_tab_0009d18c;\n    pbVar3 = local_44;\n    if ((int)local_44 < 0) {\n      pbVar3 = (byte *)-(int)local_44;\n    }\n    *(byte **)local_50 = param_3;\n    if ((int)pbVar3 < 0x10000) {\n      iVar10 = 0x18;\n      if (0xff < (int)pbVar3) {\n        iVar17 = 9;\n        goto LAB_00018870;\n      }\n      uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;\n      if (-1 < (int)uVar22) goto LAB_00018890;\n      if ((int)param_2 < 1) {\n        iVar10 = 0;\n        pbVar19 = (byte *)0x1;\n        iVar17 = 0;\n        pbVar14 = local_50;\n        goto LAB_00018988;\n      }\n      pbVar19 = (byte *)0x1;\n      iVar10 = 0;\n      *(byte **)local_50 = param_3;\n    }\n    else {\n      iVar17 = 0x19;\n      if ((int)pbVar3 < 0x1000000) {\n        iVar17 = 0x11;\n      }\n      iVar10 = 0x10;\n      if ((int)pbVar3 >= 0x1000000) {\n        iVar10 = 8;\n      }\nLAB_00018870:\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e;\nLAB_00018890:\n      iVar10 = 0;\n      pbVar19 = (byte *)0x1;\n      iVar17 = 0;\n      pbVar6 = local_50;\n      while( true ) {\n        pbVar8 = pbVar6;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);\n        iVar10 = iVar10 * 2;\n        pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));\n        if ((int)param_2 < (int)pbVar19) {\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }\n        else {\n          iVar17 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pbVar6 = pbVar14;\n        pbVar14 = pbVar8;\n      }\n      if ((int)param_2 < (int)pbVar19) {\nLAB_00018988:\n        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);\n        pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;\n        pbVar19 = param_2;\n      }\n      pbVar3 = pbVar19 + -1;\n      if (pbVar19 != (byte *)0x0) {\n        uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);\n        if (pbVar3 == (byte *)0x0) {\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }\n        else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }\n      }\n    }\n    pbVar3 = param_2;\n    if ((int)local_44 < 0) {\n      if ((int)local_4c < (int)pbVar19) {\n        if ((uint)((int)(pbVar19 + 1) * 4) < 0x7f01) {\n          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);\n          puVar15 = puVar26 + iVar17 + 0x18;\n          puVar26 = puVar26 + iVar17;\n        }\n        else {\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }\n        iVar17 = ((int)pbVar19 - (int)local_4c) * 4;\n        pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17);\n        if (local_4c != (byte *)0x0) {\n          pbVar16 = local_4c + -1;\n          pbVar8 = pbVar14 + iVar17;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar6 = pbVar8;\n          if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }\n          *(undefined4 *)pbVar8 = uVar12;\n        }\n        local_54 = local_54 - ((int)pbVar19 - (int)local_4c);\n        local_4c = pbVar19;\n        local_3c = pbVar14;\n      }\n      uVar22 = *(uint *)(local_50 + (int)pbVar19 * 4 + -4);\n      if (-1 < (int)uVar22) {\n        if (uVar22 < 0x10000) {\n          iVar17 = 0x20;\n          if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }\n          iVar13 = 9;\n          if (0xff >= uVar22) {\n            iVar13 = 1;\n          }\n        }\n        else {\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }\n        bVar11 = puVar21[uVar22 >> iVar13];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11);\n        iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11);\n        if (iVar17 != 0) {\n          iVar13 = (int)local_4c * 4;\n          local_4c = local_4c + 1;\n          *(int *)(local_3c + iVar13) = iVar17;\n        }\n      }\n      if ((uint)(iVar4 * 4) < 0x7f01) {\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      }\n      iVar17 = (int)local_4c - (int)pbVar19;\n      *(byte **)(puVar26 + 0x14) = pbVar19;\n      *(byte **)(puVar26 + 0x10) = local_50;\n      iVar4 = (*(code *)PTR___gmpn_divrem_0009d0e4)(puVar20,(int)param_2 - iVar17);\n      pbVar14 = (byte *)((local_54 - iVar10) + iVar17 + iVar4);\n      if (iVar4 != 0) {\n        piVar5 = puVar20 + (int)param_2;\n        puVar20 = puVar20 + 1;\n        *piVar5 = iVar4;\n      }\n    }\n    else {\n      pbVar3 = pbVar19 + (int)local_4c;\n      uVar22 = (int)pbVar3 * 4;\n      if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      }\n      if ((int)local_4c < (int)pbVar19) {\n        *(byte **)(puVar26 + 0x10) = local_4c;\n        local_4c = local_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);\n        local_3c = pbVar19;\n      }\n      else {\n        *(byte **)(puVar26 + 0x10) = pbVar19;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);\n        local_3c = local_4c;\n        local_4c = local_50;\n      }\n      pbVar3 = pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0);\n      pbVar14 = pbVar3 + iVar10 + local_54;\n      if ((int)param_2 < (int)pbVar3) {\n        puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);\n        pbVar3 = param_2;\n      }\n    }\n    if (pbVar3 != (byte *)0x0) {\n      pbVar6 = pbVar3 + -1;\n      uVar12 = *puVar20;\n      local_3c = (byte *)param_1[3];\n      pbVar19 = local_3c;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          puVar20 = puVar20 + 1;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *puVar20;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        local_3c = local_3c + (int)pbVar3 * 4 + -4;\n      }\n      *(undefined4 *)local_3c = uVar12;\n    }\n    if (bVar1) {\n      pbVar3 = (byte *)-(int)pbVar3;\n    }\n    param_1[1] = (int)pbVar3;\n    param_1[2] = (int)pbVar14;\n    pbVar14 = local_3c;\n    param_4 = local_4c;\n    param_2 = pbVar3;\n    if (local_30 == 0) {\n      uVar22 = 0;\n      goto LAB_00018714;\n    }\n  }\n  else {\n    local_54 = 0;\n    local_4c = pbVar3;\n    if (pbVar16 != (byte *)0x0) goto LAB_000185a0;\nLAB_000187d0:\n    if (pbVar23 != (byte *)0x0) {\n      local_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }\nLAB_000187e0:\n    if (local_4c != (byte *)0x0) {\n      pbVar6 = local_4c + -1;\n      pbVar14 = (byte *)param_1[3];\n      uVar12 = *(undefined4 *)local_3c;\n      pbVar19 = pbVar14;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;\n      }\n      *(undefined4 *)pbVar14 = uVar12;\n    }\n    if (bVar1) {\n      local_4c = (byte *)-(int)local_4c;\n    }\n    param_1[1] = (int)local_4c;\n    param_1[2] = (int)pbVar3;\n    if (local_30 == 0) goto LAB_000187ac;\n  }\n  (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  uVar22 = 0;\nLAB_00018714:\n  if (local_2c == *(int *)puVar24) {\n    return uVar22;\n  }\n  pcVar27 = __gmpf_set_d;\n  iVar4 = local_2c;\n  puVar24 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  *(byte **)(puVar26 + 8) = pbVar14;\n  *(undefined **)(puVar26 + -0x18) = puVar24 + 0x8c170;\n  *(code **)(puVar26 + -4) = pcVar27;\n  *(byte **)(puVar26 + -8) = param_2;\n  *(byte **)(puVar26 + 0xc) = param_4;\n  uVar22 = *(uint *)(puVar26 + 8) & 0x7ff00000;\n  if (uVar22 == 0x7ff00000) {\n    uVar22 = (**(code **)(puVar24 + 0x8468c))();\n  }\n  else if ((double)CONCAT44(pbVar14,param_4) != 0.0) {\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      *(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4);\n    }\n    else {\n      *(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);\n    }\n    pcVar27 = *(code **)(puVar24 + 0x84254);\n    uVar12 = 0xfffffffd;\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      uVar12 = 3;\n    }\n    *(undefined4 *)(iVar4 + 4) = uVar12;\n    uVar22 = (*pcVar27)(*(undefined4 *)(iVar4 + 0xc));\n    *(uint *)(iVar4 + 8) = uVar22;\n    return uVar22;\n  }\n  *(undefined4 *)(iVar4 + 4) = 0;\n  *(undefined4 *)(iVar4 + 8) = 0;\n  return uVar22;\n}" (type_identifier "uint") (function_declarator "__gmpf_set_str(int *param_1,byte *param_2,byte *param_3,byte *param_4)" (identifier "__gmpf_set_str") (parameter_list "(int *param_1,byte *param_2,byte *param_3,byte *param_4)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "byte *param_2" (type_identifier "byte") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "byte *param_3" (type_identifier "byte") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "byte *param_4" (type_identifier "byte") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) (compound_statement "{\n  bool bVar1;\n  ushort uVar2;\n  byte *pbVar3;\n  int iVar4;\n  int *piVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte bVar11;\n  byte *pbVar9;\n  int iVar10;\n  undefined4 uVar12;\n  int iVar13;\n  byte *pbVar14;\n  undefined1 *puVar15;\n  byte *pbVar16;\n  int iVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  undefined4 *puVar20;\n  undefined *puVar21;\n  uint uVar22;\n  byte *pbVar23;\n  undefined *puVar24;\n  undefined1 *puVar25;\n  undefined1 *puVar26;\n  code *pcVar27;\n  undefined1 auStack_88 [8];\n  undefined1 auStack_80 [16];\n  byte abStack_70 [8];\n  int local_54;\n  byte *local_50;\n  byte *local_4c;\n  byte *local_44;\n  byte *local_3c;\n  int local_30;\n  int local_2c;\n  \n  puVar24 = PTR___stack_chk_guard_0009d540;\n  puVar26 = auStack_80;\n  puVar25 = auStack_80;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  pbVar14 = param_3;\n  pbVar3 = (byte *)(*(code *)PTR_nl_langinfo_0009d21c)(0x10000);\n  iVar4 = (*(code *)PTR_strlen_0009d360)(pbVar3);\n  uVar22 = (uint)*param_2;\n  piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0009d0ac)();\n  iVar17 = *piVar5;\n  uVar2 = *(ushort *)(iVar17 + uVar22 * 2);\n  while ((uVar2 & 0x20) != 0) {\n    param_2 = param_2 + 1;\n    uVar22 = (uint)*param_2;\n    uVar2 = *(ushort *)(iVar17 + uVar22 * 2);\n  }\n  bVar1 = uVar22 == 0x2d;\n  if (bVar1) {\n    uVar22 = (uint)param_2[1];\n    param_2 = param_2 + 1;\n  }\n  if (param_3 != (byte *)0x0) {\n    if ((int)param_3 < 0) {\n      param_3 = (byte *)-(int)param_3;\n      pbVar19 = &DAT_0000000a;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }\n    else {\n      pbVar19 = param_3;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }\n    puVar15 = auStack_80;\n    if ((int)param_3 < 0x3f) {\n      puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;\n      if ((int)param_3 <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;\n      goto LAB_00018368;\n    }\nLAB_00018710:\n    puVar26 = puVar15;\n    uVar22 = 0xffffffff;\n    goto LAB_00018714;\n  }\n  param_3 = &DAT_0000000a;\n  pbVar19 = &DAT_0000000a;\nLAB_000183f8:\n  puVar21 = PTR___gmp_digit_value_tab_0009d388;\n  if ((int)param_3 <= (int)(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]) {\nLAB_00018310:\n    pbVar14 = param_2;\n    if (iVar4 != 0) {\n      puVar15 = auStack_80;\n      if (*param_2 == *pbVar3) {\n        pbVar14 = param_2 + iVar4;\n        pbVar6 = param_2;\n        pbVar8 = pbVar3;\n        do {\n          pbVar8 = pbVar8 + 1;\n          pbVar6 = pbVar6 + 1;\n          if (pbVar14 == pbVar6) goto LAB_0001834c;\n          puVar15 = auStack_80;\n        } while (*pbVar6 == *pbVar8);\n      }\n      goto LAB_00018710;\n    }\nLAB_0001834c:\n    uVar22 = 0xffffffff;\n    if ((int)param_3 <= (int)(uint)(byte)puVar21[*pbVar14]) goto LAB_00018714;\n  }\nLAB_00018368:\n  pbVar6 = (byte *)(*(code *)PTR_strlen_0009d360)(param_2);\n  pbVar14 = pbVar6 + -1;\n  if (pbVar14 == (byte *)0x0) {\n    puVar25 = auStack_88;\n    local_30 = 0;\n    pbVar16 = (byte *)0x0;\n    pbVar6 = abStack_70;\n    pbVar14 = (byte *)0x1;\nLAB_00018460:\n    pbVar18 = (byte *)0x0;\n    pbVar8 = pbVar6;\n    pbVar23 = (byte *)0x0;\n    do {\n      while( true ) {\n        bVar11 = *param_2;\n        puVar26 = puVar25;\n        if ((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pbVar18 = pbVar18 + 1;\n        param_2 = param_2 + 1;\n        if (pbVar14 <= pbVar18) goto LAB_00018500;\n      }\n      if (iVar4 != 0) {\n        if (*pbVar3 == bVar11) {\n          pbVar7 = param_2;\n          pbVar9 = pbVar3;\n          do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);\n        }\n        if ((int)(uint)(byte)puVar21[bVar11] < (int)param_3) {\n          *pbVar8 = puVar21[bVar11];\n          pbVar8 = pbVar8 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }\nLAB_000184e0:\n      if (pbVar23 != (byte *)0x0) goto LAB_000186f8;\n      pbVar18 = pbVar18 + iVar4;\n      param_2 = param_2 + iVar4;\n      pbVar23 = pbVar8;\n    } while (pbVar18 < pbVar14);\nLAB_00018500:\n    pbVar14 = pbVar8 + -(int)pbVar6;\n    iVar4 = *param_1;\n    uVar22 = (((uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5) + 2) * 4;\n    param_2 = (byte *)(iVar4 + 1);\n    if (uVar22 < 0x7f01) goto LAB_00018544;\n    local_3c = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }\n  else {\n    bVar11 = param_2[(int)pbVar14];\n    if (bVar11 == 0x40) {\n      pbVar16 = param_2 + (int)pbVar6;\n      pbVar8 = pbVar6;\n    }\n    else {\n      pbVar8 = pbVar6 + -2;\n      pbVar23 = pbVar14;\n      if ((int)param_3 < 0xb) {\n        do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);\nLAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;\n        pbVar8 = pbVar23;\n      }\n      else {\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }\n    }\nLAB_0001843c:\n    local_30 = 0;\n    if ((byte *)0x7f00 < pbVar8) {\n      pbVar6 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      iVar17 = *piVar5;\n      goto LAB_00018460;\n    }\n    iVar10 = -((uint)(pbVar8 + 7) & 0xfffffff8);\n    puVar25 = auStack_80 + iVar10;\n    puVar26 = auStack_80 + iVar10;\n    pbVar6 = &stack0xffffff98 + iVar10;\n    if (pbVar14 != (byte *)0x0) goto LAB_00018460;\n    pbVar23 = (byte *)0x0;\n    uVar22 = 8;\n    iVar4 = *param_1;\n    param_2 = (byte *)(iVar4 + 1);\n    pbVar8 = pbVar6;\nLAB_00018544:\n    iVar17 = -(uVar22 + 7 & 0xfffffff8);\n    local_3c = puVar26 + iVar17 + 0x18;\n    puVar26 = puVar26 + iVar17;\n  }\n  param_4 = param_3;\n  pbVar3 = (byte *)(*(code *)PTR___gmpn_set_str_0009d5b4)(local_3c,pbVar6);\n  if (pbVar3 == (byte *)0x0) {\n    param_1[1] = 0;\n    param_1[2] = 0;\n    if (local_30 != 0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      uVar22 = 0;\n      goto LAB_00018714;\n    }\nLAB_000187ac:\n    uVar22 = 0;\n    goto LAB_00018714;\n  }\n  local_54 = (int)pbVar3 - (int)param_2;\n  if ((int)param_2 < (int)pbVar3) {\n    local_3c = local_3c + local_54 * 4;\n    local_4c = param_2;\n    if (pbVar16 == (byte *)0x0) goto LAB_000187d0;\nLAB_000185a0:\n    bVar11 = *pbVar16;\n    param_4 = (byte *)(uint)(bVar11 == 0x2d);\n    pbVar16 = pbVar16 + (bVar11 == 0x2b || bVar11 == 0x2d);\n    pbVar6 = (byte *)(uint)(byte)puVar21[*pbVar16];\n    if ((int)pbVar19 <= (int)pbVar6) {\nLAB_000186f8:\n      uVar22 = 0xffffffff;\n      if (local_30 == 0) goto LAB_00018714;\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      puVar15 = puVar26;\n      goto LAB_00018710;\n    }\n    pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[1]];\n    if ((int)pbVar14 < (int)pbVar19) {\n      pbVar16 = pbVar16 + 3;\n      do {\n        pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19;\n        pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]];\n        pbVar16 = pbVar16 + 1;\n      } while ((int)pbVar14 < (int)pbVar19);\n    }\n    local_44 = param_4 + (-(int)param_4 ^ (uint)pbVar6);\n    if (pbVar23 != (byte *)0x0) {\nLAB_00018628:\n      local_44 = local_44 + -((int)pbVar8 - (int)pbVar23);\n    }\n    if (local_44 == (byte *)0x0) goto LAB_000187e0;\n    iVar4 = iVar4 + 2;\n    uVar22 = iVar4 * 8;\n    if (uVar22 < 0x7f01) {\n      local_50 = puVar26 + iVar4 * -8 + 0x18;\n      pbVar14 = puVar26 + iVar4 * -0x10 + 0x18;\n      puVar26 = puVar26 + iVar4 * -0x10;\n    }\n    else {\n      local_50 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      pbVar14 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n    }\n    puVar21 = PTR___gmpn_clz_tab_0009d18c;\n    pbVar3 = local_44;\n    if ((int)local_44 < 0) {\n      pbVar3 = (byte *)-(int)local_44;\n    }\n    *(byte **)local_50 = param_3;\n    if ((int)pbVar3 < 0x10000) {\n      iVar10 = 0x18;\n      if (0xff < (int)pbVar3) {\n        iVar17 = 9;\n        goto LAB_00018870;\n      }\n      uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;\n      if (-1 < (int)uVar22) goto LAB_00018890;\n      if ((int)param_2 < 1) {\n        iVar10 = 0;\n        pbVar19 = (byte *)0x1;\n        iVar17 = 0;\n        pbVar14 = local_50;\n        goto LAB_00018988;\n      }\n      pbVar19 = (byte *)0x1;\n      iVar10 = 0;\n      *(byte **)local_50 = param_3;\n    }\n    else {\n      iVar17 = 0x19;\n      if ((int)pbVar3 < 0x1000000) {\n        iVar17 = 0x11;\n      }\n      iVar10 = 0x10;\n      if ((int)pbVar3 >= 0x1000000) {\n        iVar10 = 8;\n      }\nLAB_00018870:\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e;\nLAB_00018890:\n      iVar10 = 0;\n      pbVar19 = (byte *)0x1;\n      iVar17 = 0;\n      pbVar6 = local_50;\n      while( true ) {\n        pbVar8 = pbVar6;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);\n        iVar10 = iVar10 * 2;\n        pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));\n        if ((int)param_2 < (int)pbVar19) {\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }\n        else {\n          iVar17 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pbVar6 = pbVar14;\n        pbVar14 = pbVar8;\n      }\n      if ((int)param_2 < (int)pbVar19) {\nLAB_00018988:\n        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);\n        pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;\n        pbVar19 = param_2;\n      }\n      pbVar3 = pbVar19 + -1;\n      if (pbVar19 != (byte *)0x0) {\n        uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);\n        if (pbVar3 == (byte *)0x0) {\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }\n        else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }\n      }\n    }\n    pbVar3 = param_2;\n    if ((int)local_44 < 0) {\n      if ((int)local_4c < (int)pbVar19) {\n        if ((uint)((int)(pbVar19 + 1) * 4) < 0x7f01) {\n          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);\n          puVar15 = puVar26 + iVar17 + 0x18;\n          puVar26 = puVar26 + iVar17;\n        }\n        else {\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }\n        iVar17 = ((int)pbVar19 - (int)local_4c) * 4;\n        pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17);\n        if (local_4c != (byte *)0x0) {\n          pbVar16 = local_4c + -1;\n          pbVar8 = pbVar14 + iVar17;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar6 = pbVar8;\n          if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }\n          *(undefined4 *)pbVar8 = uVar12;\n        }\n        local_54 = local_54 - ((int)pbVar19 - (int)local_4c);\n        local_4c = pbVar19;\n        local_3c = pbVar14;\n      }\n      uVar22 = *(uint *)(local_50 + (int)pbVar19 * 4 + -4);\n      if (-1 < (int)uVar22) {\n        if (uVar22 < 0x10000) {\n          iVar17 = 0x20;\n          if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }\n          iVar13 = 9;\n          if (0xff >= uVar22) {\n            iVar13 = 1;\n          }\n        }\n        else {\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }\n        bVar11 = puVar21[uVar22 >> iVar13];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11);\n        iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11);\n        if (iVar17 != 0) {\n          iVar13 = (int)local_4c * 4;\n          local_4c = local_4c + 1;\n          *(int *)(local_3c + iVar13) = iVar17;\n        }\n      }\n      if ((uint)(iVar4 * 4) < 0x7f01) {\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      }\n      iVar17 = (int)local_4c - (int)pbVar19;\n      *(byte **)(puVar26 + 0x14) = pbVar19;\n      *(byte **)(puVar26 + 0x10) = local_50;\n      iVar4 = (*(code *)PTR___gmpn_divrem_0009d0e4)(puVar20,(int)param_2 - iVar17);\n      pbVar14 = (byte *)((local_54 - iVar10) + iVar17 + iVar4);\n      if (iVar4 != 0) {\n        piVar5 = puVar20 + (int)param_2;\n        puVar20 = puVar20 + 1;\n        *piVar5 = iVar4;\n      }\n    }\n    else {\n      pbVar3 = pbVar19 + (int)local_4c;\n      uVar22 = (int)pbVar3 * 4;\n      if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      }\n      if ((int)local_4c < (int)pbVar19) {\n        *(byte **)(puVar26 + 0x10) = local_4c;\n        local_4c = local_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);\n        local_3c = pbVar19;\n      }\n      else {\n        *(byte **)(puVar26 + 0x10) = pbVar19;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);\n        local_3c = local_4c;\n        local_4c = local_50;\n      }\n      pbVar3 = pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0);\n      pbVar14 = pbVar3 + iVar10 + local_54;\n      if ((int)param_2 < (int)pbVar3) {\n        puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);\n        pbVar3 = param_2;\n      }\n    }\n    if (pbVar3 != (byte *)0x0) {\n      pbVar6 = pbVar3 + -1;\n      uVar12 = *puVar20;\n      local_3c = (byte *)param_1[3];\n      pbVar19 = local_3c;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          puVar20 = puVar20 + 1;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *puVar20;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        local_3c = local_3c + (int)pbVar3 * 4 + -4;\n      }\n      *(undefined4 *)local_3c = uVar12;\n    }\n    if (bVar1) {\n      pbVar3 = (byte *)-(int)pbVar3;\n    }\n    param_1[1] = (int)pbVar3;\n    param_1[2] = (int)pbVar14;\n    pbVar14 = local_3c;\n    param_4 = local_4c;\n    param_2 = pbVar3;\n    if (local_30 == 0) {\n      uVar22 = 0;\n      goto LAB_00018714;\n    }\n  }\n  else {\n    local_54 = 0;\n    local_4c = pbVar3;\n    if (pbVar16 != (byte *)0x0) goto LAB_000185a0;\nLAB_000187d0:\n    if (pbVar23 != (byte *)0x0) {\n      local_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }\nLAB_000187e0:\n    if (local_4c != (byte *)0x0) {\n      pbVar6 = local_4c + -1;\n      pbVar14 = (byte *)param_1[3];\n      uVar12 = *(undefined4 *)local_3c;\n      pbVar19 = pbVar14;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;\n      }\n      *(undefined4 *)pbVar14 = uVar12;\n    }\n    if (bVar1) {\n      local_4c = (byte *)-(int)local_4c;\n    }\n    param_1[1] = (int)local_4c;\n    param_1[2] = (int)pbVar3;\n    if (local_30 == 0) goto LAB_000187ac;\n  }\n  (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n  uVar22 = 0;\nLAB_00018714:\n  if (local_2c == *(int *)puVar24) {\n    return uVar22;\n  }\n  pcVar27 = __gmpf_set_d;\n  iVar4 = local_2c;\n  puVar24 = PTR___stack_chk_fail_0009d4d0;\n  (*(code *)PTR___stack_chk_fail_0009d4d0)();\n  *(byte **)(puVar26 + 8) = pbVar14;\n  *(undefined **)(puVar26 + -0x18) = puVar24 + 0x8c170;\n  *(code **)(puVar26 + -4) = pcVar27;\n  *(byte **)(puVar26 + -8) = param_2;\n  *(byte **)(puVar26 + 0xc) = param_4;\n  uVar22 = *(uint *)(puVar26 + 8) & 0x7ff00000;\n  if (uVar22 == 0x7ff00000) {\n    uVar22 = (**(code **)(puVar24 + 0x8468c))();\n  }\n  else if ((double)CONCAT44(pbVar14,param_4) != 0.0) {\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      *(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4);\n    }\n    else {\n      *(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);\n    }\n    pcVar27 = *(code **)(puVar24 + 0x84254);\n    uVar12 = 0xfffffffd;\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      uVar12 = 3;\n    }\n    *(undefined4 *)(iVar4 + 4) = uVar12;\n    uVar22 = (*pcVar27)(*(undefined4 *)(iVar4 + 0xc));\n    *(uint *)(iVar4 + 8) = uVar22;\n    return uVar22;\n  }\n  *(undefined4 *)(iVar4 + 4) = 0;\n  *(undefined4 *)(iVar4 + 8) = 0;\n  return uVar22;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "ushort uVar2;" (type_identifier "ushort") (identifier "uVar2") (; ";")) (declaration "byte *pbVar3;" (type_identifier "byte") (pointer_declarator "*pbVar3" (* "*") (identifier "pbVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "byte *pbVar6;" (type_identifier "byte") (pointer_declarator "*pbVar6" (* "*") (identifier "pbVar6")) (; ";")) (declaration "byte *pbVar7;" (type_identifier "byte") (pointer_declarator "*pbVar7" (* "*") (identifier "pbVar7")) (; ";")) (declaration "byte *pbVar8;" (type_identifier "byte") (pointer_declarator "*pbVar8" (* "*") (identifier "pbVar8")) (; ";")) (declaration "byte bVar11;" (type_identifier "byte") (identifier "bVar11") (; ";")) (declaration "byte *pbVar9;" (type_identifier "byte") (pointer_declarator "*pbVar9" (* "*") (identifier "pbVar9")) (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "undefined4 uVar12;" (type_identifier "undefined4") (identifier "uVar12") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "byte *pbVar14;" (type_identifier "byte") (pointer_declarator "*pbVar14" (* "*") (identifier "pbVar14")) (; ";")) (declaration "undefined1 *puVar15;" (type_identifier "undefined1") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "byte *pbVar16;" (type_identifier "byte") (pointer_declarator "*pbVar16" (* "*") (identifier "pbVar16")) (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "byte *pbVar18;" (type_identifier "byte") (pointer_declarator "*pbVar18" (* "*") (identifier "pbVar18")) (; ";")) (declaration "byte *pbVar19;" (type_identifier "byte") (pointer_declarator "*pbVar19" (* "*") (identifier "pbVar19")) (; ";")) (declaration "undefined4 *puVar20;" (type_identifier "undefined4") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "undefined *puVar21;" (type_identifier "undefined") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "uint uVar22;" (type_identifier "uint") (identifier "uVar22") (; ";")) (declaration "byte *pbVar23;" (type_identifier "byte") (pointer_declarator "*pbVar23" (* "*") (identifier "pbVar23")) (; ";")) (declaration "undefined *puVar24;" (type_identifier "undefined") (pointer_declarator "*puVar24" (* "*") (identifier "puVar24")) (; ";")) (declaration "undefined1 *puVar25;" (type_identifier "undefined1") (pointer_declarator "*puVar25" (* "*") (identifier "puVar25")) (; ";")) (declaration "undefined1 *puVar26;" (type_identifier "undefined1") (pointer_declarator "*puVar26" (* "*") (identifier "puVar26")) (; ";")) (declaration "code *pcVar27;" (type_identifier "code") (pointer_declarator "*pcVar27" (* "*") (identifier "pcVar27")) (; ";")) (declaration "undefined1 auStack_88 [8];" (type_identifier "undefined1") (array_declarator "auStack_88 [8]" (identifier "auStack_88") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "undefined1 auStack_80 [16];" (type_identifier "undefined1") (array_declarator "auStack_80 [16]" (identifier "auStack_80") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "byte abStack_70 [8];" (type_identifier "byte") (array_declarator "abStack_70 [8]" (identifier "abStack_70") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "int local_54;" (primitive_type "int") (identifier "local_54") (; ";")) (declaration "byte *local_50;" (type_identifier "byte") (pointer_declarator "*local_50" (* "*") (identifier "local_50")) (; ";")) (declaration "byte *local_4c;" (type_identifier "byte") (pointer_declarator "*local_4c" (* "*") (identifier "local_4c")) (; ";")) (declaration "byte *local_44;" (type_identifier "byte") (pointer_declarator "*local_44" (* "*") (identifier "local_44")) (; ";")) (declaration "byte *local_3c;" (type_identifier "byte") (pointer_declarator "*local_3c" (* "*") (identifier "local_3c")) (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar24 = PTR___stack_chk_guard_0009d540;" (assignment_expression "puVar24 = PTR___stack_chk_guard_0009d540" (identifier "puVar24") (= "=") (identifier "PTR___stack_chk_guard_0009d540")) (; ";")) (expression_statement "puVar26 = auStack_80;" (assignment_expression "puVar26 = auStack_80" (identifier "puVar26") (= "=") (identifier "auStack_80")) (; ";")) (expression_statement "puVar25 = auStack_80;" (assignment_expression "puVar25 = auStack_80" (identifier "puVar25") (= "=") (identifier "auStack_80")) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0009d540;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0009d540" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0009d540" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0009d540" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0009d540")))) (; ";")) (expression_statement "pbVar14 = param_3;" (assignment_expression "pbVar14 = param_3" (identifier "pbVar14") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pbVar3 = (byte *)(*(code *)PTR_nl_langinfo_0009d21c)(0x10000);" (assignment_expression "pbVar3 = (byte *)(*(code *)PTR_nl_langinfo_0009d21c)(0x10000)" (identifier "pbVar3") (= "=") (cast_expression "(byte *)(*(code *)PTR_nl_langinfo_0009d21c)(0x10000)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_nl_langinfo_0009d21c)(0x10000)" (parenthesized_expression "(*(code *)PTR_nl_langinfo_0009d21c)" (( "(") (pointer_expression "*(code *)PTR_nl_langinfo_0009d21c" (* "*") (cast_expression "(code *)PTR_nl_langinfo_0009d21c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_nl_langinfo_0009d21c"))) () ")")) (argument_list "(0x10000)" (( "(") (number_literal "0x10000") () ")"))))) (; ";")) (expression_statement "iVar4 = (*(code *)PTR_strlen_0009d360)(pbVar3);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_0009d360)(pbVar3)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_strlen_0009d360)(pbVar3)" (parenthesized_expression "(*(code *)PTR_strlen_0009d360)" (( "(") (pointer_expression "*(code *)PTR_strlen_0009d360" (* "*") (cast_expression "(code *)PTR_strlen_0009d360" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0009d360"))) () ")")) (argument_list "(pbVar3)" (( "(") (identifier "pbVar3") () ")")))) (; ";")) (expression_statement "uVar22 = (uint)*param_2;" (assignment_expression "uVar22 = (uint)*param_2" (identifier "uVar22") (= "=") (binary_expression "(uint)*param_2" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "param_2"))) (; ";")) (expression_statement "piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0009d0ac)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0009d0ac)()" (identifier "piVar5") (= "=") (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_0009d0ac)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_b_loc_0009d0ac)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0009d0ac)" (( "(") (pointer_expression "*(code *)PTR___ctype_b_loc_0009d0ac" (* "*") (cast_expression "(code *)PTR___ctype_b_loc_0009d0ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_b_loc_0009d0ac"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar17 = *piVar5;" (assignment_expression "iVar17 = *piVar5" (identifier "iVar17") (= "=") (pointer_expression "*piVar5" (* "*") (identifier "piVar5"))) (; ";")) (expression_statement "uVar2 = *(ushort *)(iVar17 + uVar22 * 2);" (assignment_expression "uVar2 = *(ushort *)(iVar17 + uVar22 * 2)" (identifier "uVar2") (= "=") (pointer_expression "*(ushort *)(iVar17 + uVar22 * 2)" (* "*") (cast_expression "(ushort *)(iVar17 + uVar22 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + uVar22 * 2)" (( "(") (binary_expression "iVar17 + uVar22 * 2" (identifier "iVar17") (+ "+") (binary_expression "uVar22 * 2" (identifier "uVar22") (* "*") (number_literal "2"))) () ")"))))) (; ";")) (while_statement "while ((uVar2 & 0x20) != 0) {\n    param_2 = param_2 + 1;\n    uVar22 = (uint)*param_2;\n    uVar2 = *(ushort *)(iVar17 + uVar22 * 2);\n  }" (while "while") (parenthesized_expression "((uVar2 & 0x20) != 0)" (( "(") (binary_expression "(uVar2 & 0x20) != 0" (parenthesized_expression "(uVar2 & 0x20)" (( "(") (binary_expression "uVar2 & 0x20" (identifier "uVar2") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    param_2 = param_2 + 1;\n    uVar22 = (uint)*param_2;\n    uVar2 = *(ushort *)(iVar17 + uVar22 * 2);\n  }" ({ "{") (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" (identifier "param_2") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar22 = (uint)*param_2;" (assignment_expression "uVar22 = (uint)*param_2" (identifier "uVar22") (= "=") (binary_expression "(uint)*param_2" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "param_2"))) (; ";")) (expression_statement "uVar2 = *(ushort *)(iVar17 + uVar22 * 2);" (assignment_expression "uVar2 = *(ushort *)(iVar17 + uVar22 * 2)" (identifier "uVar2") (= "=") (pointer_expression "*(ushort *)(iVar17 + uVar22 * 2)" (* "*") (cast_expression "(ushort *)(iVar17 + uVar22 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + uVar22 * 2)" (( "(") (binary_expression "iVar17 + uVar22 * 2" (identifier "iVar17") (+ "+") (binary_expression "uVar22 * 2" (identifier "uVar22") (* "*") (number_literal "2"))) () ")"))))) (; ";")) (} "}"))) (expression_statement "bVar1 = uVar22 == 0x2d;" (assignment_expression "bVar1 = uVar22 == 0x2d" (identifier "bVar1") (= "=") (binary_expression "uVar22 == 0x2d" (identifier "uVar22") (== "==") (number_literal "0x2d"))) (; ";")) (if_statement "if (bVar1) {\n    uVar22 = (uint)param_2[1];\n    param_2 = param_2 + 1;\n  }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n    uVar22 = (uint)param_2[1];\n    param_2 = param_2 + 1;\n  }" ({ "{") (expression_statement "uVar22 = (uint)param_2[1];" (assignment_expression "uVar22 = (uint)param_2[1]" (identifier "uVar22") (= "=") (cast_expression "(uint)param_2[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" (identifier "param_2") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (param_3 != (byte *)0x0) {\n    if ((int)param_3 < 0) {\n      param_3 = (byte *)-(int)param_3;\n      pbVar19 = &DAT_0000000a;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }\n    else {\n      pbVar19 = param_3;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }\n    puVar15 = auStack_80;\n    if ((int)param_3 < 0x3f) {\n      puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;\n      if ((int)param_3 <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;\n      goto LAB_00018368;\n    }\nLAB_00018710:\n    puVar26 = puVar15;\n    uVar22 = 0xffffffff;\n    goto LAB_00018714;\n  }" (if "if") (parenthesized_expression "(param_3 != (byte *)0x0)" (( "(") (binary_expression "param_3 != (byte *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if ((int)param_3 < 0) {\n      param_3 = (byte *)-(int)param_3;\n      pbVar19 = &DAT_0000000a;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }\n    else {\n      pbVar19 = param_3;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }\n    puVar15 = auStack_80;\n    if ((int)param_3 < 0x3f) {\n      puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;\n      if ((int)param_3 <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;\n      goto LAB_00018368;\n    }\nLAB_00018710:\n    puVar26 = puVar15;\n    uVar22 = 0xffffffff;\n    goto LAB_00018714;\n  }" ({ "{") (if_statement "if ((int)param_3 < 0) {\n      param_3 = (byte *)-(int)param_3;\n      pbVar19 = &DAT_0000000a;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }\n    else {\n      pbVar19 = param_3;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }" (if "if") (parenthesized_expression "((int)param_3 < 0)" (( "(") (binary_expression "(int)param_3 < 0" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      param_3 = (byte *)-(int)param_3;\n      pbVar19 = &DAT_0000000a;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }" ({ "{") (expression_statement "param_3 = (byte *)-(int)param_3;" (assignment_expression "param_3 = (byte *)-(int)param_3" (identifier "param_3") (= "=") (cast_expression "(byte *)-(int)param_3" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (unary_expression "-(int)param_3" (- "-") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))))) (; ";")) (expression_statement "pbVar19 = &DAT_0000000a;" (assignment_expression "pbVar19 = &DAT_0000000a" (identifier "pbVar19") (= "=") (pointer_expression "&DAT_0000000a" (& "&") (identifier "DAT_0000000a"))) (; ";")) (if_statement "if ((int)param_3 < 0x25) goto LAB_000183f8;" (if "if") (parenthesized_expression "((int)param_3 < 0x25)" (( "(") (binary_expression "(int)param_3 < 0x25" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (< "<") (number_literal "0x25")) () ")")) (goto_statement "goto LAB_000183f8;" (goto "goto") (statement_identifier "LAB_000183f8") (; ";"))) (} "}")) (else_clause "else {\n      pbVar19 = param_3;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }" (else "else") (compound_statement "{\n      pbVar19 = param_3;\n      if ((int)param_3 < 0x25) goto LAB_000183f8;\n    }" ({ "{") (expression_statement "pbVar19 = param_3;" (assignment_expression "pbVar19 = param_3" (identifier "pbVar19") (= "=") (identifier "param_3")) (; ";")) (if_statement "if ((int)param_3 < 0x25) goto LAB_000183f8;" (if "if") (parenthesized_expression "((int)param_3 < 0x25)" (( "(") (binary_expression "(int)param_3 < 0x25" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (< "<") (number_literal "0x25")) () ")")) (goto_statement "goto LAB_000183f8;" (goto "goto") (statement_identifier "LAB_000183f8") (; ";"))) (} "}")))) (expression_statement "puVar15 = auStack_80;" (assignment_expression "puVar15 = auStack_80" (identifier "puVar15") (= "=") (identifier "auStack_80")) (; ";")) (if_statement "if ((int)param_3 < 0x3f) {\n      puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;\n      if ((int)param_3 <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;\n      goto LAB_00018368;\n    }" (if "if") (parenthesized_expression "((int)param_3 < 0x3f)" (( "(") (binary_expression "(int)param_3 < 0x3f" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (< "<") (number_literal "0x3f")) () ")")) (compound_statement "{\n      puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;\n      if ((int)param_3 <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;\n      goto LAB_00018368;\n    }" ({ "{") (expression_statement "puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;" (assignment_expression "puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0" (identifier "puVar21") (= "=") (binary_expression "PTR___gmp_digit_value_tab_0009d388 + 0xd0" (identifier "PTR___gmp_digit_value_tab_0009d388") (+ "+") (number_literal "0xd0"))) (; ";")) (if_statement "if ((int)param_3 <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;" (if "if") (parenthesized_expression "((int)param_3 <= (int)(uint)(byte)puVar21[uVar22])" (( "(") (binary_expression "(int)param_3 <= (int)(uint)(byte)puVar21[uVar22]" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (<= "<=") (cast_expression "(int)(uint)(byte)puVar21[uVar22]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)(byte)puVar21[uVar22]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)puVar21[uVar22]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "puVar21[uVar22]" (identifier "puVar21") ([ "[") (identifier "uVar22") (] "]")))))) () ")")) (goto_statement "goto LAB_00018310;" (goto "goto") (statement_identifier "LAB_00018310") (; ";"))) (goto_statement "goto LAB_00018368;" (goto "goto") (statement_identifier "LAB_00018368") (; ";")) (} "}"))) (labeled_statement "LAB_00018710:\n    puVar26 = puVar15;" (statement_identifier "LAB_00018710") (: ":") (expression_statement "puVar26 = puVar15;" (assignment_expression "puVar26 = puVar15" (identifier "puVar26") (= "=") (identifier "puVar15")) (; ";"))) (expression_statement "uVar22 = 0xffffffff;" (assignment_expression "uVar22 = 0xffffffff" (identifier "uVar22") (= "=") (number_literal "0xffffffff")) (; ";")) (goto_statement "goto LAB_00018714;" (goto "goto") (statement_identifier "LAB_00018714") (; ";")) (} "}"))) (expression_statement "param_3 = &DAT_0000000a;" (assignment_expression "param_3 = &DAT_0000000a" (identifier "param_3") (= "=") (pointer_expression "&DAT_0000000a" (& "&") (identifier "DAT_0000000a"))) (; ";")) (expression_statement "pbVar19 = &DAT_0000000a;" (assignment_expression "pbVar19 = &DAT_0000000a" (identifier "pbVar19") (= "=") (pointer_expression "&DAT_0000000a" (& "&") (identifier "DAT_0000000a"))) (; ";")) (labeled_statement "LAB_000183f8:\n  puVar21 = PTR___gmp_digit_value_tab_0009d388;" (statement_identifier "LAB_000183f8") (: ":") (expression_statement "puVar21 = PTR___gmp_digit_value_tab_0009d388;" (assignment_expression "puVar21 = PTR___gmp_digit_value_tab_0009d388" (identifier "puVar21") (= "=") (identifier "PTR___gmp_digit_value_tab_0009d388")) (; ";"))) (if_statement "if ((int)param_3 <= (int)(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]) {\nLAB_00018310:\n    pbVar14 = param_2;\n    if (iVar4 != 0) {\n      puVar15 = auStack_80;\n      if (*param_2 == *pbVar3) {\n        pbVar14 = param_2 + iVar4;\n        pbVar6 = param_2;\n        pbVar8 = pbVar3;\n        do {\n          pbVar8 = pbVar8 + 1;\n          pbVar6 = pbVar6 + 1;\n          if (pbVar14 == pbVar6) goto LAB_0001834c;\n          puVar15 = auStack_80;\n        } while (*pbVar6 == *pbVar8);\n      }\n      goto LAB_00018710;\n    }\nLAB_0001834c:\n    uVar22 = 0xffffffff;\n    if ((int)param_3 <= (int)(uint)(byte)puVar21[*pbVar14]) goto LAB_00018714;\n  }" (if "if") (parenthesized_expression "((int)param_3 <= (int)(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22])" (( "(") (binary_expression "(int)param_3 <= (int)(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (<= "<=") (cast_expression "(int)(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "PTR___gmp_digit_value_tab_0009d388[uVar22]" (identifier "PTR___gmp_digit_value_tab_0009d388") ([ "[") (identifier "uVar22") (] "]")))))) () ")")) (compound_statement "{\nLAB_00018310:\n    pbVar14 = param_2;\n    if (iVar4 != 0) {\n      puVar15 = auStack_80;\n      if (*param_2 == *pbVar3) {\n        pbVar14 = param_2 + iVar4;\n        pbVar6 = param_2;\n        pbVar8 = pbVar3;\n        do {\n          pbVar8 = pbVar8 + 1;\n          pbVar6 = pbVar6 + 1;\n          if (pbVar14 == pbVar6) goto LAB_0001834c;\n          puVar15 = auStack_80;\n        } while (*pbVar6 == *pbVar8);\n      }\n      goto LAB_00018710;\n    }\nLAB_0001834c:\n    uVar22 = 0xffffffff;\n    if ((int)param_3 <= (int)(uint)(byte)puVar21[*pbVar14]) goto LAB_00018714;\n  }" ({ "{") (labeled_statement "LAB_00018310:\n    pbVar14 = param_2;" (statement_identifier "LAB_00018310") (: ":") (expression_statement "pbVar14 = param_2;" (assignment_expression "pbVar14 = param_2" (identifier "pbVar14") (= "=") (identifier "param_2")) (; ";"))) (if_statement "if (iVar4 != 0) {\n      puVar15 = auStack_80;\n      if (*param_2 == *pbVar3) {\n        pbVar14 = param_2 + iVar4;\n        pbVar6 = param_2;\n        pbVar8 = pbVar3;\n        do {\n          pbVar8 = pbVar8 + 1;\n          pbVar6 = pbVar6 + 1;\n          if (pbVar14 == pbVar6) goto LAB_0001834c;\n          puVar15 = auStack_80;\n        } while (*pbVar6 == *pbVar8);\n      }\n      goto LAB_00018710;\n    }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      puVar15 = auStack_80;\n      if (*param_2 == *pbVar3) {\n        pbVar14 = param_2 + iVar4;\n        pbVar6 = param_2;\n        pbVar8 = pbVar3;\n        do {\n          pbVar8 = pbVar8 + 1;\n          pbVar6 = pbVar6 + 1;\n          if (pbVar14 == pbVar6) goto LAB_0001834c;\n          puVar15 = auStack_80;\n        } while (*pbVar6 == *pbVar8);\n      }\n      goto LAB_00018710;\n    }" ({ "{") (expression_statement "puVar15 = auStack_80;" (assignment_expression "puVar15 = auStack_80" (identifier "puVar15") (= "=") (identifier "auStack_80")) (; ";")) (if_statement "if (*param_2 == *pbVar3) {\n        pbVar14 = param_2 + iVar4;\n        pbVar6 = param_2;\n        pbVar8 = pbVar3;\n        do {\n          pbVar8 = pbVar8 + 1;\n          pbVar6 = pbVar6 + 1;\n          if (pbVar14 == pbVar6) goto LAB_0001834c;\n          puVar15 = auStack_80;\n        } while (*pbVar6 == *pbVar8);\n      }" (if "if") (parenthesized_expression "(*param_2 == *pbVar3)" (( "(") (binary_expression "*param_2 == *pbVar3" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (== "==") (pointer_expression "*pbVar3" (* "*") (identifier "pbVar3"))) () ")")) (compound_statement "{\n        pbVar14 = param_2 + iVar4;\n        pbVar6 = param_2;\n        pbVar8 = pbVar3;\n        do {\n          pbVar8 = pbVar8 + 1;\n          pbVar6 = pbVar6 + 1;\n          if (pbVar14 == pbVar6) goto LAB_0001834c;\n          puVar15 = auStack_80;\n        } while (*pbVar6 == *pbVar8);\n      }" ({ "{") (expression_statement "pbVar14 = param_2 + iVar4;" (assignment_expression "pbVar14 = param_2 + iVar4" (identifier "pbVar14") (= "=") (binary_expression "param_2 + iVar4" (identifier "param_2") (+ "+") (identifier "iVar4"))) (; ";")) (expression_statement "pbVar6 = param_2;" (assignment_expression "pbVar6 = param_2" (identifier "pbVar6") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pbVar8 = pbVar3;" (assignment_expression "pbVar8 = pbVar3" (identifier "pbVar8") (= "=") (identifier "pbVar3")) (; ";")) (do_statement "do {\n          pbVar8 = pbVar8 + 1;\n          pbVar6 = pbVar6 + 1;\n          if (pbVar14 == pbVar6) goto LAB_0001834c;\n          puVar15 = auStack_80;\n        } while (*pbVar6 == *pbVar8);" (do "do") (compound_statement "{\n          pbVar8 = pbVar8 + 1;\n          pbVar6 = pbVar6 + 1;\n          if (pbVar14 == pbVar6) goto LAB_0001834c;\n          puVar15 = auStack_80;\n        }" ({ "{") (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" (identifier "pbVar8") (= "=") (binary_expression "pbVar8 + 1" (identifier "pbVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" (identifier "pbVar6") (= "=") (binary_expression "pbVar6 + 1" (identifier "pbVar6") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (pbVar14 == pbVar6) goto LAB_0001834c;" (if "if") (parenthesized_expression "(pbVar14 == pbVar6)" (( "(") (binary_expression "pbVar14 == pbVar6" (identifier "pbVar14") (== "==") (identifier "pbVar6")) () ")")) (goto_statement "goto LAB_0001834c;" (goto "goto") (statement_identifier "LAB_0001834c") (; ";"))) (expression_statement "puVar15 = auStack_80;" (assignment_expression "puVar15 = auStack_80" (identifier "puVar15") (= "=") (identifier "auStack_80")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*pbVar6 == *pbVar8)" (( "(") (binary_expression "*pbVar6 == *pbVar8" (pointer_expression "*pbVar6" (* "*") (identifier "pbVar6")) (== "==") (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8"))) () ")")) (; ";")) (} "}"))) (goto_statement "goto LAB_00018710;" (goto "goto") (statement_identifier "LAB_00018710") (; ";")) (} "}"))) (labeled_statement "LAB_0001834c:\n    uVar22 = 0xffffffff;" (statement_identifier "LAB_0001834c") (: ":") (expression_statement "uVar22 = 0xffffffff;" (assignment_expression "uVar22 = 0xffffffff" (identifier "uVar22") (= "=") (number_literal "0xffffffff")) (; ";"))) (if_statement "if ((int)param_3 <= (int)(uint)(byte)puVar21[*pbVar14]) goto LAB_00018714;" (if "if") (parenthesized_expression "((int)param_3 <= (int)(uint)(byte)puVar21[*pbVar14])" (( "(") (binary_expression "(int)param_3 <= (int)(uint)(byte)puVar21[*pbVar14]" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (<= "<=") (cast_expression "(int)(uint)(byte)puVar21[*pbVar14]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)(byte)puVar21[*pbVar14]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)puVar21[*pbVar14]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "puVar21[*pbVar14]" (identifier "puVar21") ([ "[") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (] "]")))))) () ")")) (goto_statement "goto LAB_00018714;" (goto "goto") (statement_identifier "LAB_00018714") (; ";"))) (} "}"))) (labeled_statement "LAB_00018368:\n  pbVar6 = (byte *)(*(code *)PTR_strlen_0009d360)(param_2);" (statement_identifier "LAB_00018368") (: ":") (expression_statement "pbVar6 = (byte *)(*(code *)PTR_strlen_0009d360)(param_2);" (assignment_expression "pbVar6 = (byte *)(*(code *)PTR_strlen_0009d360)(param_2)" (identifier "pbVar6") (= "=") (cast_expression "(byte *)(*(code *)PTR_strlen_0009d360)(param_2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_strlen_0009d360)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_0009d360)" (( "(") (pointer_expression "*(code *)PTR_strlen_0009d360" (* "*") (cast_expression "(code *)PTR_strlen_0009d360" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0009d360"))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))))) (; ";"))) (expression_statement "pbVar14 = pbVar6 + -1;" (assignment_expression "pbVar14 = pbVar6 + -1" (identifier "pbVar14") (= "=") (binary_expression "pbVar6 + -1" (identifier "pbVar6") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (pbVar14 == (byte *)0x0) {\n    puVar25 = auStack_88;\n    local_30 = 0;\n    pbVar16 = (byte *)0x0;\n    pbVar6 = abStack_70;\n    pbVar14 = (byte *)0x1;\nLAB_00018460:\n    pbVar18 = (byte *)0x0;\n    pbVar8 = pbVar6;\n    pbVar23 = (byte *)0x0;\n    do {\n      while( true ) {\n        bVar11 = *param_2;\n        puVar26 = puVar25;\n        if ((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pbVar18 = pbVar18 + 1;\n        param_2 = param_2 + 1;\n        if (pbVar14 <= pbVar18) goto LAB_00018500;\n      }\n      if (iVar4 != 0) {\n        if (*pbVar3 == bVar11) {\n          pbVar7 = param_2;\n          pbVar9 = pbVar3;\n          do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);\n        }\n        if ((int)(uint)(byte)puVar21[bVar11] < (int)param_3) {\n          *pbVar8 = puVar21[bVar11];\n          pbVar8 = pbVar8 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }\nLAB_000184e0:\n      if (pbVar23 != (byte *)0x0) goto LAB_000186f8;\n      pbVar18 = pbVar18 + iVar4;\n      param_2 = param_2 + iVar4;\n      pbVar23 = pbVar8;\n    } while (pbVar18 < pbVar14);\nLAB_00018500:\n    pbVar14 = pbVar8 + -(int)pbVar6;\n    iVar4 = *param_1;\n    uVar22 = (((uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5) + 2) * 4;\n    param_2 = (byte *)(iVar4 + 1);\n    if (uVar22 < 0x7f01) goto LAB_00018544;\n    local_3c = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }\n  else {\n    bVar11 = param_2[(int)pbVar14];\n    if (bVar11 == 0x40) {\n      pbVar16 = param_2 + (int)pbVar6;\n      pbVar8 = pbVar6;\n    }\n    else {\n      pbVar8 = pbVar6 + -2;\n      pbVar23 = pbVar14;\n      if ((int)param_3 < 0xb) {\n        do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);\nLAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;\n        pbVar8 = pbVar23;\n      }\n      else {\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }\n    }\nLAB_0001843c:\n    local_30 = 0;\n    if ((byte *)0x7f00 < pbVar8) {\n      pbVar6 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      iVar17 = *piVar5;\n      goto LAB_00018460;\n    }\n    iVar10 = -((uint)(pbVar8 + 7) & 0xfffffff8);\n    puVar25 = auStack_80 + iVar10;\n    puVar26 = auStack_80 + iVar10;\n    pbVar6 = &stack0xffffff98 + iVar10;\n    if (pbVar14 != (byte *)0x0) goto LAB_00018460;\n    pbVar23 = (byte *)0x0;\n    uVar22 = 8;\n    iVar4 = *param_1;\n    param_2 = (byte *)(iVar4 + 1);\n    pbVar8 = pbVar6;\nLAB_00018544:\n    iVar17 = -(uVar22 + 7 & 0xfffffff8);\n    local_3c = puVar26 + iVar17 + 0x18;\n    puVar26 = puVar26 + iVar17;\n  }" (if "if") (parenthesized_expression "(pbVar14 == (byte *)0x0)" (( "(") (binary_expression "pbVar14 == (byte *)0x0" (identifier "pbVar14") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar25 = auStack_88;\n    local_30 = 0;\n    pbVar16 = (byte *)0x0;\n    pbVar6 = abStack_70;\n    pbVar14 = (byte *)0x1;\nLAB_00018460:\n    pbVar18 = (byte *)0x0;\n    pbVar8 = pbVar6;\n    pbVar23 = (byte *)0x0;\n    do {\n      while( true ) {\n        bVar11 = *param_2;\n        puVar26 = puVar25;\n        if ((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pbVar18 = pbVar18 + 1;\n        param_2 = param_2 + 1;\n        if (pbVar14 <= pbVar18) goto LAB_00018500;\n      }\n      if (iVar4 != 0) {\n        if (*pbVar3 == bVar11) {\n          pbVar7 = param_2;\n          pbVar9 = pbVar3;\n          do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);\n        }\n        if ((int)(uint)(byte)puVar21[bVar11] < (int)param_3) {\n          *pbVar8 = puVar21[bVar11];\n          pbVar8 = pbVar8 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }\nLAB_000184e0:\n      if (pbVar23 != (byte *)0x0) goto LAB_000186f8;\n      pbVar18 = pbVar18 + iVar4;\n      param_2 = param_2 + iVar4;\n      pbVar23 = pbVar8;\n    } while (pbVar18 < pbVar14);\nLAB_00018500:\n    pbVar14 = pbVar8 + -(int)pbVar6;\n    iVar4 = *param_1;\n    uVar22 = (((uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5) + 2) * 4;\n    param_2 = (byte *)(iVar4 + 1);\n    if (uVar22 < 0x7f01) goto LAB_00018544;\n    local_3c = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }" ({ "{") (expression_statement "puVar25 = auStack_88;" (assignment_expression "puVar25 = auStack_88" (identifier "puVar25") (= "=") (identifier "auStack_88")) (; ";")) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar16 = (byte *)0x0;" (assignment_expression "pbVar16 = (byte *)0x0" (identifier "pbVar16") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pbVar6 = abStack_70;" (assignment_expression "pbVar6 = abStack_70" (identifier "pbVar6") (= "=") (identifier "abStack_70")) (; ";")) (expression_statement "pbVar14 = (byte *)0x1;" (assignment_expression "pbVar14 = (byte *)0x1" (identifier "pbVar14") (= "=") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (labeled_statement "LAB_00018460:\n    pbVar18 = (byte *)0x0;" (statement_identifier "LAB_00018460") (: ":") (expression_statement "pbVar18 = (byte *)0x0;" (assignment_expression "pbVar18 = (byte *)0x0" (identifier "pbVar18") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "pbVar8 = pbVar6;" (assignment_expression "pbVar8 = pbVar6" (identifier "pbVar8") (= "=") (identifier "pbVar6")) (; ";")) (expression_statement "pbVar23 = (byte *)0x0;" (assignment_expression "pbVar23 = (byte *)0x0" (identifier "pbVar23") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n      while( true ) {\n        bVar11 = *param_2;\n        puVar26 = puVar25;\n        if ((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pbVar18 = pbVar18 + 1;\n        param_2 = param_2 + 1;\n        if (pbVar14 <= pbVar18) goto LAB_00018500;\n      }\n      if (iVar4 != 0) {\n        if (*pbVar3 == bVar11) {\n          pbVar7 = param_2;\n          pbVar9 = pbVar3;\n          do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);\n        }\n        if ((int)(uint)(byte)puVar21[bVar11] < (int)param_3) {\n          *pbVar8 = puVar21[bVar11];\n          pbVar8 = pbVar8 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }\nLAB_000184e0:\n      if (pbVar23 != (byte *)0x0) goto LAB_000186f8;\n      pbVar18 = pbVar18 + iVar4;\n      param_2 = param_2 + iVar4;\n      pbVar23 = pbVar8;\n    } while (pbVar18 < pbVar14);" (do "do") (compound_statement "{\n      while( true ) {\n        bVar11 = *param_2;\n        puVar26 = puVar25;\n        if ((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pbVar18 = pbVar18 + 1;\n        param_2 = param_2 + 1;\n        if (pbVar14 <= pbVar18) goto LAB_00018500;\n      }\n      if (iVar4 != 0) {\n        if (*pbVar3 == bVar11) {\n          pbVar7 = param_2;\n          pbVar9 = pbVar3;\n          do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);\n        }\n        if ((int)(uint)(byte)puVar21[bVar11] < (int)param_3) {\n          *pbVar8 = puVar21[bVar11];\n          pbVar8 = pbVar8 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }\nLAB_000184e0:\n      if (pbVar23 != (byte *)0x0) goto LAB_000186f8;\n      pbVar18 = pbVar18 + iVar4;\n      param_2 = param_2 + iVar4;\n      pbVar23 = pbVar8;\n    }" ({ "{") (while_statement "while( true ) {\n        bVar11 = *param_2;\n        puVar26 = puVar25;\n        if ((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pbVar18 = pbVar18 + 1;\n        param_2 = param_2 + 1;\n        if (pbVar14 <= pbVar18) goto LAB_00018500;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        bVar11 = *param_2;\n        puVar26 = puVar25;\n        if ((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0) break;\nLAB_00018474:\n        pbVar18 = pbVar18 + 1;\n        param_2 = param_2 + 1;\n        if (pbVar14 <= pbVar18) goto LAB_00018500;\n      }" ({ "{") (expression_statement "bVar11 = *param_2;" (assignment_expression "bVar11 = *param_2" (identifier "bVar11") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "puVar26 = puVar25;" (assignment_expression "puVar26 = puVar25" (identifier "puVar26") (= "=") (identifier "puVar25")) (; ";")) (if_statement "if ((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0) break;" (if "if") (parenthesized_expression "((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0)" (( "(") (binary_expression "(*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20)" (( "(") (binary_expression "*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20" (pointer_expression "*(ushort *)(iVar17 + (uint)bVar11 * 2)" (* "*") (cast_expression "(ushort *)(iVar17 + (uint)bVar11 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + (uint)bVar11 * 2)" (( "(") (binary_expression "iVar17 + (uint)bVar11 * 2" (identifier "iVar17") (+ "+") (binary_expression "(uint)bVar11 * 2" (cast_expression "(uint)bVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar11")) (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_00018474:\n        pbVar18 = pbVar18 + 1;" (statement_identifier "LAB_00018474") (: ":") (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + 1" (identifier "pbVar18") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" (identifier "param_2") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (pbVar14 <= pbVar18) goto LAB_00018500;" (if "if") (parenthesized_expression "(pbVar14 <= pbVar18)" (( "(") (binary_expression "pbVar14 <= pbVar18" (identifier "pbVar14") (<= "<=") (identifier "pbVar18")) () ")")) (goto_statement "goto LAB_00018500;" (goto "goto") (statement_identifier "LAB_00018500") (; ";"))) (} "}"))) (if_statement "if (iVar4 != 0) {\n        if (*pbVar3 == bVar11) {\n          pbVar7 = param_2;\n          pbVar9 = pbVar3;\n          do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);\n        }\n        if ((int)(uint)(byte)puVar21[bVar11] < (int)param_3) {\n          *pbVar8 = puVar21[bVar11];\n          pbVar8 = pbVar8 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (*pbVar3 == bVar11) {\n          pbVar7 = param_2;\n          pbVar9 = pbVar3;\n          do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);\n        }\n        if ((int)(uint)(byte)puVar21[bVar11] < (int)param_3) {\n          *pbVar8 = puVar21[bVar11];\n          pbVar8 = pbVar8 + 1;\n          goto LAB_00018474;\n        }\n        goto LAB_000186f8;\n      }" ({ "{") (if_statement "if (*pbVar3 == bVar11) {\n          pbVar7 = param_2;\n          pbVar9 = pbVar3;\n          do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);\n        }" (if "if") (parenthesized_expression "(*pbVar3 == bVar11)" (( "(") (binary_expression "*pbVar3 == bVar11" (pointer_expression "*pbVar3" (* "*") (identifier "pbVar3")) (== "==") (identifier "bVar11")) () ")")) (compound_statement "{\n          pbVar7 = param_2;\n          pbVar9 = pbVar3;\n          do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);\n        }" ({ "{") (expression_statement "pbVar7 = param_2;" (assignment_expression "pbVar7 = param_2" (identifier "pbVar7") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pbVar9 = pbVar3;" (assignment_expression "pbVar9 = pbVar3" (identifier "pbVar9") (= "=") (identifier "pbVar3")) (; ";")) (do_statement "do {\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          } while (*pbVar7 == *pbVar9);" (do "do") (compound_statement "{\n            pbVar9 = pbVar9 + 1;\n            pbVar7 = pbVar7 + 1;\n            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;\n          }" ({ "{") (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + 1" (identifier "pbVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + 1" (identifier "pbVar7") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;" (if "if") (parenthesized_expression "(pbVar7 == param_2 + iVar4)" (( "(") (binary_expression "pbVar7 == param_2 + iVar4" (identifier "pbVar7") (== "==") (binary_expression "param_2 + iVar4" (identifier "param_2") (+ "+") (identifier "iVar4"))) () ")")) (goto_statement "goto LAB_000184e0;" (goto "goto") (statement_identifier "LAB_000184e0") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(*pbVar7 == *pbVar9)" (( "(") (binary_expression "*pbVar7 == *pbVar9" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (== "==") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9"))) () ")")) (; ";")) (} "}"))) (if_statement "if ((int)(uint)(byte)puVar21[bVar11] < (int)param_3) {\n          *pbVar8 = puVar21[bVar11];\n          pbVar8 = pbVar8 + 1;\n          goto LAB_00018474;\n        }" (if "if") (parenthesized_expression "((int)(uint)(byte)puVar21[bVar11] < (int)param_3)" (( "(") (binary_expression "(int)(uint)(byte)puVar21[bVar11] < (int)param_3" (cast_expression "(int)(uint)(byte)puVar21[bVar11]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)(byte)puVar21[bVar11]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)puVar21[bVar11]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "puVar21[bVar11]" (identifier "puVar21") ([ "[") (identifier "bVar11") (] "]"))))) (< "<") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) () ")")) (compound_statement "{\n          *pbVar8 = puVar21[bVar11];\n          pbVar8 = pbVar8 + 1;\n          goto LAB_00018474;\n        }" ({ "{") (expression_statement "*pbVar8 = puVar21[bVar11];" (assignment_expression "*pbVar8 = puVar21[bVar11]" (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")) (= "=") (subscript_expression "puVar21[bVar11]" (identifier "puVar21") ([ "[") (identifier "bVar11") (] "]"))) (; ";")) (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" (identifier "pbVar8") (= "=") (binary_expression "pbVar8 + 1" (identifier "pbVar8") (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_00018474;" (goto "goto") (statement_identifier "LAB_00018474") (; ";")) (} "}"))) (goto_statement "goto LAB_000186f8;" (goto "goto") (statement_identifier "LAB_000186f8") (; ";")) (} "}"))) (labeled_statement "LAB_000184e0:\n      if (pbVar23 != (byte *)0x0) goto LAB_000186f8;" (statement_identifier "LAB_000184e0") (: ":") (if_statement "if (pbVar23 != (byte *)0x0) goto LAB_000186f8;" (if "if") (parenthesized_expression "(pbVar23 != (byte *)0x0)" (( "(") (binary_expression "pbVar23 != (byte *)0x0" (identifier "pbVar23") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000186f8;" (goto "goto") (statement_identifier "LAB_000186f8") (; ";")))) (expression_statement "pbVar18 = pbVar18 + iVar4;" (assignment_expression "pbVar18 = pbVar18 + iVar4" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + iVar4" (identifier "pbVar18") (+ "+") (identifier "iVar4"))) (; ";")) (expression_statement "param_2 = param_2 + iVar4;" (assignment_expression "param_2 = param_2 + iVar4" (identifier "param_2") (= "=") (binary_expression "param_2 + iVar4" (identifier "param_2") (+ "+") (identifier "iVar4"))) (; ";")) (expression_statement "pbVar23 = pbVar8;" (assignment_expression "pbVar23 = pbVar8" (identifier "pbVar23") (= "=") (identifier "pbVar8")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar18 < pbVar14)" (( "(") (binary_expression "pbVar18 < pbVar14" (identifier "pbVar18") (< "<") (identifier "pbVar14")) () ")")) (; ";")) (labeled_statement "LAB_00018500:\n    pbVar14 = pbVar8 + -(int)pbVar6;" (statement_identifier "LAB_00018500") (: ":") (expression_statement "pbVar14 = pbVar8 + -(int)pbVar6;" (assignment_expression "pbVar14 = pbVar8 + -(int)pbVar6" (identifier "pbVar14") (= "=") (binary_expression "pbVar8 + -(int)pbVar6" (identifier "pbVar8") (+ "+") (unary_expression "-(int)pbVar6" (- "-") (cast_expression "(int)pbVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar6"))))) (; ";"))) (expression_statement "iVar4 = *param_1;" (assignment_expression "iVar4 = *param_1" (identifier "iVar4") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "uVar22 = (((uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5) + 2) * 4;" (assignment_expression "uVar22 = (((uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5) + 2) * 4" (identifier "uVar22") (= "=") (binary_expression "(((uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5) + 2) * 4" (parenthesized_expression "(((uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5) + 2)" (( "(") (binary_expression "((uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5) + 2" (parenthesized_expression "((uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5)" (( "(") (binary_expression "(uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3) >> 5" (call_expression "(uint)((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3)" (( "(") (binary_expression "(int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)\n                     << 3" (cast_expression "(int)(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)" (( "(") (binary_expression "ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20" (binary_expression "ZEXT48(pbVar14) *\n                            (ulonglong)\n                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8)" (binary_expression "ZEXT48(pbVar14) *\n                            (ulonglong)" (call_expression "ZEXT48(pbVar14)" (identifier "ZEXT48") (argument_list "(pbVar14)" (( "(") (identifier "pbVar14") () ")"))) (* "*") (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")"))) (* "*") (cast_expression "(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8)" (( "(") (binary_expression "PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8" (binary_expression "PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14" (identifier "PTR___gmpn_bases_0009d338") (+ "+") (binary_expression "(int)param_3 * 0x14" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (* "*") (number_literal "0x14"))) (+ "+") (number_literal "8")) () ")")))) (>> ">>") (number_literal "0x20")) () ")"))) (<< "<<") (number_literal "3")) () ")"))) (>> ">>") (number_literal "5")) () ")")) (+ "+") (number_literal "2")) () ")")) (* "*") (number_literal "4"))) (; ";")) (expression_statement "param_2 = (byte *)(iVar4 + 1);" (assignment_expression "param_2 = (byte *)(iVar4 + 1)" (identifier "param_2") (= "=") (cast_expression "(byte *)(iVar4 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 1)" (( "(") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (uVar22 < 0x7f01) goto LAB_00018544;" (if "if") (parenthesized_expression "(uVar22 < 0x7f01)" (( "(") (binary_expression "uVar22 < 0x7f01" (identifier "uVar22") (< "<") (number_literal "0x7f01")) () ")")) (goto_statement "goto LAB_00018544;" (goto "goto") (statement_identifier "LAB_00018544") (; ";"))) (expression_statement "local_3c = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);" (assignment_expression "local_3c = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (identifier "local_3c") (= "=") (cast_expression "(byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" (( "(") (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" (* "*") (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmp_tmp_reentrant_alloc_0009d2f0"))) () ")")) (argument_list "(&local_30)" (( "(") (pointer_expression "&local_30" (& "&") (identifier "local_30")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    bVar11 = param_2[(int)pbVar14];\n    if (bVar11 == 0x40) {\n      pbVar16 = param_2 + (int)pbVar6;\n      pbVar8 = pbVar6;\n    }\n    else {\n      pbVar8 = pbVar6 + -2;\n      pbVar23 = pbVar14;\n      if ((int)param_3 < 0xb) {\n        do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);\nLAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;\n        pbVar8 = pbVar23;\n      }\n      else {\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }\n    }\nLAB_0001843c:\n    local_30 = 0;\n    if ((byte *)0x7f00 < pbVar8) {\n      pbVar6 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      iVar17 = *piVar5;\n      goto LAB_00018460;\n    }\n    iVar10 = -((uint)(pbVar8 + 7) & 0xfffffff8);\n    puVar25 = auStack_80 + iVar10;\n    puVar26 = auStack_80 + iVar10;\n    pbVar6 = &stack0xffffff98 + iVar10;\n    if (pbVar14 != (byte *)0x0) goto LAB_00018460;\n    pbVar23 = (byte *)0x0;\n    uVar22 = 8;\n    iVar4 = *param_1;\n    param_2 = (byte *)(iVar4 + 1);\n    pbVar8 = pbVar6;\nLAB_00018544:\n    iVar17 = -(uVar22 + 7 & 0xfffffff8);\n    local_3c = puVar26 + iVar17 + 0x18;\n    puVar26 = puVar26 + iVar17;\n  }" (else "else") (compound_statement "{\n    bVar11 = param_2[(int)pbVar14];\n    if (bVar11 == 0x40) {\n      pbVar16 = param_2 + (int)pbVar6;\n      pbVar8 = pbVar6;\n    }\n    else {\n      pbVar8 = pbVar6 + -2;\n      pbVar23 = pbVar14;\n      if ((int)param_3 < 0xb) {\n        do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);\nLAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;\n        pbVar8 = pbVar23;\n      }\n      else {\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }\n    }\nLAB_0001843c:\n    local_30 = 0;\n    if ((byte *)0x7f00 < pbVar8) {\n      pbVar6 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      iVar17 = *piVar5;\n      goto LAB_00018460;\n    }\n    iVar10 = -((uint)(pbVar8 + 7) & 0xfffffff8);\n    puVar25 = auStack_80 + iVar10;\n    puVar26 = auStack_80 + iVar10;\n    pbVar6 = &stack0xffffff98 + iVar10;\n    if (pbVar14 != (byte *)0x0) goto LAB_00018460;\n    pbVar23 = (byte *)0x0;\n    uVar22 = 8;\n    iVar4 = *param_1;\n    param_2 = (byte *)(iVar4 + 1);\n    pbVar8 = pbVar6;\nLAB_00018544:\n    iVar17 = -(uVar22 + 7 & 0xfffffff8);\n    local_3c = puVar26 + iVar17 + 0x18;\n    puVar26 = puVar26 + iVar17;\n  }" ({ "{") (expression_statement "bVar11 = param_2[(int)pbVar14];" (assignment_expression "bVar11 = param_2[(int)pbVar14]" (identifier "bVar11") (= "=") (subscript_expression "param_2[(int)pbVar14]" (identifier "param_2") ([ "[") (cast_expression "(int)pbVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar14")) (] "]"))) (; ";")) (if_statement "if (bVar11 == 0x40) {\n      pbVar16 = param_2 + (int)pbVar6;\n      pbVar8 = pbVar6;\n    }\n    else {\n      pbVar8 = pbVar6 + -2;\n      pbVar23 = pbVar14;\n      if ((int)param_3 < 0xb) {\n        do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);\nLAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;\n        pbVar8 = pbVar23;\n      }\n      else {\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }\n    }" (if "if") (parenthesized_expression "(bVar11 == 0x40)" (( "(") (binary_expression "bVar11 == 0x40" (identifier "bVar11") (== "==") (number_literal "0x40")) () ")")) (compound_statement "{\n      pbVar16 = param_2 + (int)pbVar6;\n      pbVar8 = pbVar6;\n    }" ({ "{") (expression_statement "pbVar16 = param_2 + (int)pbVar6;" (assignment_expression "pbVar16 = param_2 + (int)pbVar6" (identifier "pbVar16") (= "=") (binary_expression "param_2 + (int)pbVar6" (identifier "param_2") (+ "+") (cast_expression "(int)pbVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar6")))) (; ";")) (expression_statement "pbVar8 = pbVar6;" (assignment_expression "pbVar8 = pbVar6" (identifier "pbVar8") (= "=") (identifier "pbVar6")) (; ";")) (} "}")) (else_clause "else {\n      pbVar8 = pbVar6 + -2;\n      pbVar23 = pbVar14;\n      if ((int)param_3 < 0xb) {\n        do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);\nLAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;\n        pbVar8 = pbVar23;\n      }\n      else {\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }\n    }" (else "else") (compound_statement "{\n      pbVar8 = pbVar6 + -2;\n      pbVar23 = pbVar14;\n      if ((int)param_3 < 0xb) {\n        do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);\nLAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;\n        pbVar8 = pbVar23;\n      }\n      else {\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }\n    }" ({ "{") (expression_statement "pbVar8 = pbVar6 + -2;" (assignment_expression "pbVar8 = pbVar6 + -2" (identifier "pbVar8") (= "=") (binary_expression "pbVar6 + -2" (identifier "pbVar6") (+ "+") (number_literal "-2"))) (; ";")) (expression_statement "pbVar23 = pbVar14;" (assignment_expression "pbVar23 = pbVar14" (identifier "pbVar23") (= "=") (identifier "pbVar14")) (; ";")) (if_statement "if ((int)param_3 < 0xb) {\n        do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);\nLAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;\n        pbVar8 = pbVar23;\n      }\n      else {\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }" (if "if") (parenthesized_expression "((int)param_3 < 0xb)" (( "(") (binary_expression "(int)param_3 < 0xb" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (< "<") (number_literal "0xb")) () ")")) (compound_statement "{\n        do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);\nLAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;\n        pbVar8 = pbVar23;\n      }" ({ "{") (do_statement "do {\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        } while (bVar11 != 0x40);" (do "do") (compound_statement "{\n          pbVar23 = pbVar14;\n          pbVar14 = pbVar23 + -1;\n          if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }\n          if (pbVar14 == (byte *)0x0) goto LAB_00018434;\n          bVar11 = param_2[(int)pbVar14];\n        }" ({ "{") (expression_statement "pbVar23 = pbVar14;" (assignment_expression "pbVar23 = pbVar14" (identifier "pbVar23") (= "=") (identifier "pbVar14")) (; ";")) (expression_statement "pbVar14 = pbVar23 + -1;" (assignment_expression "pbVar14 = pbVar23 + -1" (identifier "pbVar14") (= "=") (binary_expression "pbVar23 + -1" (identifier "pbVar23") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if ((bVar11 & 0xdf) == 0x45) {\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }" (if "if") (parenthesized_expression "((bVar11 & 0xdf) == 0x45)" (( "(") (binary_expression "(bVar11 & 0xdf) == 0x45" (parenthesized_expression "(bVar11 & 0xdf)" (( "(") (binary_expression "bVar11 & 0xdf" (identifier "bVar11") (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x45")) () ")")) (compound_statement "{\n            pbVar16 = param_2 + (int)(pbVar23 + 1);\n            pbVar8 = pbVar23 + 1;\n            pbVar14 = pbVar23;\n            goto LAB_0001843c;\n          }" ({ "{") (expression_statement "pbVar16 = param_2 + (int)(pbVar23 + 1);" (assignment_expression "pbVar16 = param_2 + (int)(pbVar23 + 1)" (identifier "pbVar16") (= "=") (binary_expression "param_2 + (int)(pbVar23 + 1)" (identifier "param_2") (+ "+") (cast_expression "(int)(pbVar23 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar23 + 1)" (( "(") (binary_expression "pbVar23 + 1" (identifier "pbVar23") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "pbVar8 = pbVar23 + 1;" (assignment_expression "pbVar8 = pbVar23 + 1" (identifier "pbVar8") (= "=") (binary_expression "pbVar23 + 1" (identifier "pbVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar23;" (assignment_expression "pbVar14 = pbVar23" (identifier "pbVar14") (= "=") (identifier "pbVar23")) (; ";")) (goto_statement "goto LAB_0001843c;" (goto "goto") (statement_identifier "LAB_0001843c") (; ";")) (} "}"))) (if_statement "if (pbVar14 == (byte *)0x0) goto LAB_00018434;" (if "if") (parenthesized_expression "(pbVar14 == (byte *)0x0)" (( "(") (binary_expression "pbVar14 == (byte *)0x0" (identifier "pbVar14") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00018434;" (goto "goto") (statement_identifier "LAB_00018434") (; ";"))) (expression_statement "bVar11 = param_2[(int)pbVar14];" (assignment_expression "bVar11 = param_2[(int)pbVar14]" (identifier "bVar11") (= "=") (subscript_expression "param_2[(int)pbVar14]" (identifier "param_2") ([ "[") (cast_expression "(int)pbVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar14")) (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar11 != 0x40)" (( "(") (binary_expression "bVar11 != 0x40" (identifier "bVar11") (!= "!=") (number_literal "0x40")) () ")")) (; ";")) (labeled_statement "LAB_0001878c:\n        pbVar16 = param_2 + (int)pbVar23;" (statement_identifier "LAB_0001878c") (: ":") (expression_statement "pbVar16 = param_2 + (int)pbVar23;" (assignment_expression "pbVar16 = param_2 + (int)pbVar23" (identifier "pbVar16") (= "=") (binary_expression "param_2 + (int)pbVar23" (identifier "param_2") (+ "+") (cast_expression "(int)pbVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar23")))) (; ";"))) (expression_statement "pbVar8 = pbVar23;" (assignment_expression "pbVar8 = pbVar23" (identifier "pbVar8") (= "=") (identifier "pbVar23")) (; ";")) (} "}")) (else_clause "else {\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }" (else "else") (compound_statement "{\n        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }\nLAB_00018434:\n        pbVar16 = (byte *)0x0;\n        pbVar8 = pbVar6 + 1;\n        pbVar14 = pbVar6;\n      }" ({ "{") (while_statement "while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }" (while "while") (parenthesized_expression "(pbVar14 = pbVar8, pbVar14 != (byte *)0x0)" (( "(") (comma_expression "pbVar14 = pbVar8, pbVar14 != (byte *)0x0" (assignment_expression "pbVar14 = pbVar8" (identifier "pbVar14") (= "=") (identifier "pbVar8")) (, ",") (binary_expression "pbVar14 != (byte *)0x0" (identifier "pbVar14") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;\n          pbVar23 = pbVar14;\n          pbVar8 = pbVar14 + -1;\n        }" ({ "{") (if_statement "if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;" (if "if") (parenthesized_expression "(param_2[(int)pbVar14] == 0x40)" (( "(") (binary_expression "param_2[(int)pbVar14] == 0x40" (subscript_expression "param_2[(int)pbVar14]" (identifier "param_2") ([ "[") (cast_expression "(int)pbVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar14")) (] "]")) (== "==") (number_literal "0x40")) () ")")) (goto_statement "goto LAB_0001878c;" (goto "goto") (statement_identifier "LAB_0001878c") (; ";"))) (expression_statement "pbVar23 = pbVar14;" (assignment_expression "pbVar23 = pbVar14" (identifier "pbVar23") (= "=") (identifier "pbVar14")) (; ";")) (expression_statement "pbVar8 = pbVar14 + -1;" (assignment_expression "pbVar8 = pbVar14 + -1" (identifier "pbVar8") (= "=") (binary_expression "pbVar14 + -1" (identifier "pbVar14") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (labeled_statement "LAB_00018434:\n        pbVar16 = (byte *)0x0;" (statement_identifier "LAB_00018434") (: ":") (expression_statement "pbVar16 = (byte *)0x0;" (assignment_expression "pbVar16 = (byte *)0x0" (identifier "pbVar16") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "pbVar8 = pbVar6 + 1;" (assignment_expression "pbVar8 = pbVar6 + 1" (identifier "pbVar8") (= "=") (binary_expression "pbVar6 + 1" (identifier "pbVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar6;" (assignment_expression "pbVar14 = pbVar6" (identifier "pbVar14") (= "=") (identifier "pbVar6")) (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_0001843c:\n    local_30 = 0;" (statement_identifier "LAB_0001843c") (: ":") (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";"))) (if_statement "if ((byte *)0x7f00 < pbVar8) {\n      pbVar6 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      iVar17 = *piVar5;\n      goto LAB_00018460;\n    }" (if "if") (parenthesized_expression "((byte *)0x7f00 < pbVar8)" (( "(") (binary_expression "(byte *)0x7f00 < pbVar8" (cast_expression "(byte *)0x7f00" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7f00")) (< "<") (identifier "pbVar8")) () ")")) (compound_statement "{\n      pbVar6 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      iVar17 = *piVar5;\n      goto LAB_00018460;\n    }" ({ "{") (expression_statement "pbVar6 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);" (assignment_expression "pbVar6 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (identifier "pbVar6") (= "=") (cast_expression "(byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" (( "(") (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" (* "*") (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmp_tmp_reentrant_alloc_0009d2f0"))) () ")")) (argument_list "(&local_30)" (( "(") (pointer_expression "&local_30" (& "&") (identifier "local_30")) () ")"))))) (; ";")) (expression_statement "iVar17 = *piVar5;" (assignment_expression "iVar17 = *piVar5" (identifier "iVar17") (= "=") (pointer_expression "*piVar5" (* "*") (identifier "piVar5"))) (; ";")) (goto_statement "goto LAB_00018460;" (goto "goto") (statement_identifier "LAB_00018460") (; ";")) (} "}"))) (expression_statement "iVar10 = -((uint)(pbVar8 + 7) & 0xfffffff8);" (assignment_expression "iVar10 = -((uint)(pbVar8 + 7) & 0xfffffff8)" (identifier "iVar10") (= "=") (unary_expression "-((uint)(pbVar8 + 7) & 0xfffffff8)" (- "-") (parenthesized_expression "((uint)(pbVar8 + 7) & 0xfffffff8)" (( "(") (binary_expression "(uint)(pbVar8 + 7) & 0xfffffff8" (call_expression "(uint)(pbVar8 + 7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar8 + 7)" (( "(") (binary_expression "pbVar8 + 7" (identifier "pbVar8") (+ "+") (number_literal "7")) () ")"))) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar25 = auStack_80 + iVar10;" (assignment_expression "puVar25 = auStack_80 + iVar10" (identifier "puVar25") (= "=") (binary_expression "auStack_80 + iVar10" (identifier "auStack_80") (+ "+") (identifier "iVar10"))) (; ";")) (expression_statement "puVar26 = auStack_80 + iVar10;" (assignment_expression "puVar26 = auStack_80 + iVar10" (identifier "puVar26") (= "=") (binary_expression "auStack_80 + iVar10" (identifier "auStack_80") (+ "+") (identifier "iVar10"))) (; ";")) (expression_statement "pbVar6 = &stack0xffffff98 + iVar10;" (assignment_expression "pbVar6 = &stack0xffffff98 + iVar10" (identifier "pbVar6") (= "=") (binary_expression "&stack0xffffff98 + iVar10" (pointer_expression "&stack0xffffff98" (& "&") (identifier "stack0xffffff98")) (+ "+") (identifier "iVar10"))) (; ";")) (if_statement "if (pbVar14 != (byte *)0x0) goto LAB_00018460;" (if "if") (parenthesized_expression "(pbVar14 != (byte *)0x0)" (( "(") (binary_expression "pbVar14 != (byte *)0x0" (identifier "pbVar14") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00018460;" (goto "goto") (statement_identifier "LAB_00018460") (; ";"))) (expression_statement "pbVar23 = (byte *)0x0;" (assignment_expression "pbVar23 = (byte *)0x0" (identifier "pbVar23") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uVar22 = 8;" (assignment_expression "uVar22 = 8" (identifier "uVar22") (= "=") (number_literal "8")) (; ";")) (expression_statement "iVar4 = *param_1;" (assignment_expression "iVar4 = *param_1" (identifier "iVar4") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "param_2 = (byte *)(iVar4 + 1);" (assignment_expression "param_2 = (byte *)(iVar4 + 1)" (identifier "param_2") (= "=") (cast_expression "(byte *)(iVar4 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 1)" (( "(") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pbVar8 = pbVar6;" (assignment_expression "pbVar8 = pbVar6" (identifier "pbVar8") (= "=") (identifier "pbVar6")) (; ";")) (labeled_statement "LAB_00018544:\n    iVar17 = -(uVar22 + 7 & 0xfffffff8);" (statement_identifier "LAB_00018544") (: ":") (expression_statement "iVar17 = -(uVar22 + 7 & 0xfffffff8);" (assignment_expression "iVar17 = -(uVar22 + 7 & 0xfffffff8)" (identifier "iVar17") (= "=") (unary_expression "-(uVar22 + 7 & 0xfffffff8)" (- "-") (parenthesized_expression "(uVar22 + 7 & 0xfffffff8)" (( "(") (binary_expression "uVar22 + 7 & 0xfffffff8" (binary_expression "uVar22 + 7" (identifier "uVar22") (+ "+") (number_literal "7")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";"))) (expression_statement "local_3c = puVar26 + iVar17 + 0x18;" (assignment_expression "local_3c = puVar26 + iVar17 + 0x18" (identifier "local_3c") (= "=") (binary_expression "puVar26 + iVar17 + 0x18" (binary_expression "puVar26 + iVar17" (identifier "puVar26") (+ "+") (identifier "iVar17")) (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "puVar26 = puVar26 + iVar17;" (assignment_expression "puVar26 = puVar26 + iVar17" (identifier "puVar26") (= "=") (binary_expression "puVar26 + iVar17" (identifier "puVar26") (+ "+") (identifier "iVar17"))) (; ";")) (} "}")))) (expression_statement "param_4 = param_3;" (assignment_expression "param_4 = param_3" (identifier "param_4") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pbVar3 = (byte *)(*(code *)PTR___gmpn_set_str_0009d5b4)(local_3c,pbVar6);" (assignment_expression "pbVar3 = (byte *)(*(code *)PTR___gmpn_set_str_0009d5b4)(local_3c,pbVar6)" (identifier "pbVar3") (= "=") (cast_expression "(byte *)(*(code *)PTR___gmpn_set_str_0009d5b4)(local_3c,pbVar6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___gmpn_set_str_0009d5b4)(local_3c,pbVar6)" (parenthesized_expression "(*(code *)PTR___gmpn_set_str_0009d5b4)" (( "(") (pointer_expression "*(code *)PTR___gmpn_set_str_0009d5b4" (* "*") (cast_expression "(code *)PTR___gmpn_set_str_0009d5b4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_set_str_0009d5b4"))) () ")")) (argument_list "(local_3c,pbVar6)" (( "(") (identifier "local_3c") (, ",") (identifier "pbVar6") () ")"))))) (; ";")) (if_statement "if (pbVar3 == (byte *)0x0) {\n    param_1[1] = 0;\n    param_1[2] = 0;\n    if (local_30 != 0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      uVar22 = 0;\n      goto LAB_00018714;\n    }\nLAB_000187ac:\n    uVar22 = 0;\n    goto LAB_00018714;\n  }" (if "if") (parenthesized_expression "(pbVar3 == (byte *)0x0)" (( "(") (binary_expression "pbVar3 == (byte *)0x0" (identifier "pbVar3") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    param_1[1] = 0;\n    param_1[2] = 0;\n    if (local_30 != 0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      uVar22 = 0;\n      goto LAB_00018714;\n    }\nLAB_000187ac:\n    uVar22 = 0;\n    goto LAB_00018714;\n  }" ({ "{") (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_30 != 0) {\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      uVar22 = 0;\n      goto LAB_00018714;\n    }" (if "if") (parenthesized_expression "(local_30 != 0)" (( "(") (binary_expression "local_30 != 0" (identifier "local_30") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      uVar22 = 0;\n      goto LAB_00018714;\n    }" ({ "{") (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)" (( "(") (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_0009d618" (* "*") (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_0009d618" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmp_tmp_reentrant_free_0009d618"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" (identifier "uVar22") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00018714;" (goto "goto") (statement_identifier "LAB_00018714") (; ";")) (} "}"))) (labeled_statement "LAB_000187ac:\n    uVar22 = 0;" (statement_identifier "LAB_000187ac") (: ":") (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" (identifier "uVar22") (= "=") (number_literal "0")) (; ";"))) (goto_statement "goto LAB_00018714;" (goto "goto") (statement_identifier "LAB_00018714") (; ";")) (} "}"))) (expression_statement "local_54 = (int)pbVar3 - (int)param_2;" (assignment_expression "local_54 = (int)pbVar3 - (int)param_2" (identifier "local_54") (= "=") (binary_expression "(int)pbVar3 - (int)param_2" (cast_expression "(int)pbVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar3")) (- "-") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")))) (; ";")) (if_statement "if ((int)param_2 < (int)pbVar3) {\n    local_3c = local_3c + local_54 * 4;\n    local_4c = param_2;\n    if (pbVar16 == (byte *)0x0) goto LAB_000187d0;\nLAB_000185a0:\n    bVar11 = *pbVar16;\n    param_4 = (byte *)(uint)(bVar11 == 0x2d);\n    pbVar16 = pbVar16 + (bVar11 == 0x2b || bVar11 == 0x2d);\n    pbVar6 = (byte *)(uint)(byte)puVar21[*pbVar16];\n    if ((int)pbVar19 <= (int)pbVar6) {\nLAB_000186f8:\n      uVar22 = 0xffffffff;\n      if (local_30 == 0) goto LAB_00018714;\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      puVar15 = puVar26;\n      goto LAB_00018710;\n    }\n    pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[1]];\n    if ((int)pbVar14 < (int)pbVar19) {\n      pbVar16 = pbVar16 + 3;\n      do {\n        pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19;\n        pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]];\n        pbVar16 = pbVar16 + 1;\n      } while ((int)pbVar14 < (int)pbVar19);\n    }\n    local_44 = param_4 + (-(int)param_4 ^ (uint)pbVar6);\n    if (pbVar23 != (byte *)0x0) {\nLAB_00018628:\n      local_44 = local_44 + -((int)pbVar8 - (int)pbVar23);\n    }\n    if (local_44 == (byte *)0x0) goto LAB_000187e0;\n    iVar4 = iVar4 + 2;\n    uVar22 = iVar4 * 8;\n    if (uVar22 < 0x7f01) {\n      local_50 = puVar26 + iVar4 * -8 + 0x18;\n      pbVar14 = puVar26 + iVar4 * -0x10 + 0x18;\n      puVar26 = puVar26 + iVar4 * -0x10;\n    }\n    else {\n      local_50 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      pbVar14 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n    }\n    puVar21 = PTR___gmpn_clz_tab_0009d18c;\n    pbVar3 = local_44;\n    if ((int)local_44 < 0) {\n      pbVar3 = (byte *)-(int)local_44;\n    }\n    *(byte **)local_50 = param_3;\n    if ((int)pbVar3 < 0x10000) {\n      iVar10 = 0x18;\n      if (0xff < (int)pbVar3) {\n        iVar17 = 9;\n        goto LAB_00018870;\n      }\n      uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;\n      if (-1 < (int)uVar22) goto LAB_00018890;\n      if ((int)param_2 < 1) {\n        iVar10 = 0;\n        pbVar19 = (byte *)0x1;\n        iVar17 = 0;\n        pbVar14 = local_50;\n        goto LAB_00018988;\n      }\n      pbVar19 = (byte *)0x1;\n      iVar10 = 0;\n      *(byte **)local_50 = param_3;\n    }\n    else {\n      iVar17 = 0x19;\n      if ((int)pbVar3 < 0x1000000) {\n        iVar17 = 0x11;\n      }\n      iVar10 = 0x10;\n      if ((int)pbVar3 >= 0x1000000) {\n        iVar10 = 8;\n      }\nLAB_00018870:\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e;\nLAB_00018890:\n      iVar10 = 0;\n      pbVar19 = (byte *)0x1;\n      iVar17 = 0;\n      pbVar6 = local_50;\n      while( true ) {\n        pbVar8 = pbVar6;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);\n        iVar10 = iVar10 * 2;\n        pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));\n        if ((int)param_2 < (int)pbVar19) {\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }\n        else {\n          iVar17 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pbVar6 = pbVar14;\n        pbVar14 = pbVar8;\n      }\n      if ((int)param_2 < (int)pbVar19) {\nLAB_00018988:\n        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);\n        pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;\n        pbVar19 = param_2;\n      }\n      pbVar3 = pbVar19 + -1;\n      if (pbVar19 != (byte *)0x0) {\n        uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);\n        if (pbVar3 == (byte *)0x0) {\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }\n        else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }\n      }\n    }\n    pbVar3 = param_2;\n    if ((int)local_44 < 0) {\n      if ((int)local_4c < (int)pbVar19) {\n        if ((uint)((int)(pbVar19 + 1) * 4) < 0x7f01) {\n          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);\n          puVar15 = puVar26 + iVar17 + 0x18;\n          puVar26 = puVar26 + iVar17;\n        }\n        else {\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }\n        iVar17 = ((int)pbVar19 - (int)local_4c) * 4;\n        pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17);\n        if (local_4c != (byte *)0x0) {\n          pbVar16 = local_4c + -1;\n          pbVar8 = pbVar14 + iVar17;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar6 = pbVar8;\n          if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }\n          *(undefined4 *)pbVar8 = uVar12;\n        }\n        local_54 = local_54 - ((int)pbVar19 - (int)local_4c);\n        local_4c = pbVar19;\n        local_3c = pbVar14;\n      }\n      uVar22 = *(uint *)(local_50 + (int)pbVar19 * 4 + -4);\n      if (-1 < (int)uVar22) {\n        if (uVar22 < 0x10000) {\n          iVar17 = 0x20;\n          if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }\n          iVar13 = 9;\n          if (0xff >= uVar22) {\n            iVar13 = 1;\n          }\n        }\n        else {\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }\n        bVar11 = puVar21[uVar22 >> iVar13];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11);\n        iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11);\n        if (iVar17 != 0) {\n          iVar13 = (int)local_4c * 4;\n          local_4c = local_4c + 1;\n          *(int *)(local_3c + iVar13) = iVar17;\n        }\n      }\n      if ((uint)(iVar4 * 4) < 0x7f01) {\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      }\n      iVar17 = (int)local_4c - (int)pbVar19;\n      *(byte **)(puVar26 + 0x14) = pbVar19;\n      *(byte **)(puVar26 + 0x10) = local_50;\n      iVar4 = (*(code *)PTR___gmpn_divrem_0009d0e4)(puVar20,(int)param_2 - iVar17);\n      pbVar14 = (byte *)((local_54 - iVar10) + iVar17 + iVar4);\n      if (iVar4 != 0) {\n        piVar5 = puVar20 + (int)param_2;\n        puVar20 = puVar20 + 1;\n        *piVar5 = iVar4;\n      }\n    }\n    else {\n      pbVar3 = pbVar19 + (int)local_4c;\n      uVar22 = (int)pbVar3 * 4;\n      if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      }\n      if ((int)local_4c < (int)pbVar19) {\n        *(byte **)(puVar26 + 0x10) = local_4c;\n        local_4c = local_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);\n        local_3c = pbVar19;\n      }\n      else {\n        *(byte **)(puVar26 + 0x10) = pbVar19;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);\n        local_3c = local_4c;\n        local_4c = local_50;\n      }\n      pbVar3 = pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0);\n      pbVar14 = pbVar3 + iVar10 + local_54;\n      if ((int)param_2 < (int)pbVar3) {\n        puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);\n        pbVar3 = param_2;\n      }\n    }\n    if (pbVar3 != (byte *)0x0) {\n      pbVar6 = pbVar3 + -1;\n      uVar12 = *puVar20;\n      local_3c = (byte *)param_1[3];\n      pbVar19 = local_3c;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          puVar20 = puVar20 + 1;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *puVar20;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        local_3c = local_3c + (int)pbVar3 * 4 + -4;\n      }\n      *(undefined4 *)local_3c = uVar12;\n    }\n    if (bVar1) {\n      pbVar3 = (byte *)-(int)pbVar3;\n    }\n    param_1[1] = (int)pbVar3;\n    param_1[2] = (int)pbVar14;\n    pbVar14 = local_3c;\n    param_4 = local_4c;\n    param_2 = pbVar3;\n    if (local_30 == 0) {\n      uVar22 = 0;\n      goto LAB_00018714;\n    }\n  }\n  else {\n    local_54 = 0;\n    local_4c = pbVar3;\n    if (pbVar16 != (byte *)0x0) goto LAB_000185a0;\nLAB_000187d0:\n    if (pbVar23 != (byte *)0x0) {\n      local_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }\nLAB_000187e0:\n    if (local_4c != (byte *)0x0) {\n      pbVar6 = local_4c + -1;\n      pbVar14 = (byte *)param_1[3];\n      uVar12 = *(undefined4 *)local_3c;\n      pbVar19 = pbVar14;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;\n      }\n      *(undefined4 *)pbVar14 = uVar12;\n    }\n    if (bVar1) {\n      local_4c = (byte *)-(int)local_4c;\n    }\n    param_1[1] = (int)local_4c;\n    param_1[2] = (int)pbVar3;\n    if (local_30 == 0) goto LAB_000187ac;\n  }" (if "if") (parenthesized_expression "((int)param_2 < (int)pbVar3)" (( "(") (binary_expression "(int)param_2 < (int)pbVar3" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (< "<") (cast_expression "(int)pbVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar3"))) () ")")) (compound_statement "{\n    local_3c = local_3c + local_54 * 4;\n    local_4c = param_2;\n    if (pbVar16 == (byte *)0x0) goto LAB_000187d0;\nLAB_000185a0:\n    bVar11 = *pbVar16;\n    param_4 = (byte *)(uint)(bVar11 == 0x2d);\n    pbVar16 = pbVar16 + (bVar11 == 0x2b || bVar11 == 0x2d);\n    pbVar6 = (byte *)(uint)(byte)puVar21[*pbVar16];\n    if ((int)pbVar19 <= (int)pbVar6) {\nLAB_000186f8:\n      uVar22 = 0xffffffff;\n      if (local_30 == 0) goto LAB_00018714;\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      puVar15 = puVar26;\n      goto LAB_00018710;\n    }\n    pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[1]];\n    if ((int)pbVar14 < (int)pbVar19) {\n      pbVar16 = pbVar16 + 3;\n      do {\n        pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19;\n        pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]];\n        pbVar16 = pbVar16 + 1;\n      } while ((int)pbVar14 < (int)pbVar19);\n    }\n    local_44 = param_4 + (-(int)param_4 ^ (uint)pbVar6);\n    if (pbVar23 != (byte *)0x0) {\nLAB_00018628:\n      local_44 = local_44 + -((int)pbVar8 - (int)pbVar23);\n    }\n    if (local_44 == (byte *)0x0) goto LAB_000187e0;\n    iVar4 = iVar4 + 2;\n    uVar22 = iVar4 * 8;\n    if (uVar22 < 0x7f01) {\n      local_50 = puVar26 + iVar4 * -8 + 0x18;\n      pbVar14 = puVar26 + iVar4 * -0x10 + 0x18;\n      puVar26 = puVar26 + iVar4 * -0x10;\n    }\n    else {\n      local_50 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      pbVar14 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n    }\n    puVar21 = PTR___gmpn_clz_tab_0009d18c;\n    pbVar3 = local_44;\n    if ((int)local_44 < 0) {\n      pbVar3 = (byte *)-(int)local_44;\n    }\n    *(byte **)local_50 = param_3;\n    if ((int)pbVar3 < 0x10000) {\n      iVar10 = 0x18;\n      if (0xff < (int)pbVar3) {\n        iVar17 = 9;\n        goto LAB_00018870;\n      }\n      uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;\n      if (-1 < (int)uVar22) goto LAB_00018890;\n      if ((int)param_2 < 1) {\n        iVar10 = 0;\n        pbVar19 = (byte *)0x1;\n        iVar17 = 0;\n        pbVar14 = local_50;\n        goto LAB_00018988;\n      }\n      pbVar19 = (byte *)0x1;\n      iVar10 = 0;\n      *(byte **)local_50 = param_3;\n    }\n    else {\n      iVar17 = 0x19;\n      if ((int)pbVar3 < 0x1000000) {\n        iVar17 = 0x11;\n      }\n      iVar10 = 0x10;\n      if ((int)pbVar3 >= 0x1000000) {\n        iVar10 = 8;\n      }\nLAB_00018870:\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e;\nLAB_00018890:\n      iVar10 = 0;\n      pbVar19 = (byte *)0x1;\n      iVar17 = 0;\n      pbVar6 = local_50;\n      while( true ) {\n        pbVar8 = pbVar6;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);\n        iVar10 = iVar10 * 2;\n        pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));\n        if ((int)param_2 < (int)pbVar19) {\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }\n        else {\n          iVar17 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pbVar6 = pbVar14;\n        pbVar14 = pbVar8;\n      }\n      if ((int)param_2 < (int)pbVar19) {\nLAB_00018988:\n        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);\n        pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;\n        pbVar19 = param_2;\n      }\n      pbVar3 = pbVar19 + -1;\n      if (pbVar19 != (byte *)0x0) {\n        uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);\n        if (pbVar3 == (byte *)0x0) {\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }\n        else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }\n      }\n    }\n    pbVar3 = param_2;\n    if ((int)local_44 < 0) {\n      if ((int)local_4c < (int)pbVar19) {\n        if ((uint)((int)(pbVar19 + 1) * 4) < 0x7f01) {\n          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);\n          puVar15 = puVar26 + iVar17 + 0x18;\n          puVar26 = puVar26 + iVar17;\n        }\n        else {\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }\n        iVar17 = ((int)pbVar19 - (int)local_4c) * 4;\n        pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17);\n        if (local_4c != (byte *)0x0) {\n          pbVar16 = local_4c + -1;\n          pbVar8 = pbVar14 + iVar17;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar6 = pbVar8;\n          if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }\n          *(undefined4 *)pbVar8 = uVar12;\n        }\n        local_54 = local_54 - ((int)pbVar19 - (int)local_4c);\n        local_4c = pbVar19;\n        local_3c = pbVar14;\n      }\n      uVar22 = *(uint *)(local_50 + (int)pbVar19 * 4 + -4);\n      if (-1 < (int)uVar22) {\n        if (uVar22 < 0x10000) {\n          iVar17 = 0x20;\n          if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }\n          iVar13 = 9;\n          if (0xff >= uVar22) {\n            iVar13 = 1;\n          }\n        }\n        else {\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }\n        bVar11 = puVar21[uVar22 >> iVar13];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11);\n        iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11);\n        if (iVar17 != 0) {\n          iVar13 = (int)local_4c * 4;\n          local_4c = local_4c + 1;\n          *(int *)(local_3c + iVar13) = iVar17;\n        }\n      }\n      if ((uint)(iVar4 * 4) < 0x7f01) {\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      }\n      iVar17 = (int)local_4c - (int)pbVar19;\n      *(byte **)(puVar26 + 0x14) = pbVar19;\n      *(byte **)(puVar26 + 0x10) = local_50;\n      iVar4 = (*(code *)PTR___gmpn_divrem_0009d0e4)(puVar20,(int)param_2 - iVar17);\n      pbVar14 = (byte *)((local_54 - iVar10) + iVar17 + iVar4);\n      if (iVar4 != 0) {\n        piVar5 = puVar20 + (int)param_2;\n        puVar20 = puVar20 + 1;\n        *piVar5 = iVar4;\n      }\n    }\n    else {\n      pbVar3 = pbVar19 + (int)local_4c;\n      uVar22 = (int)pbVar3 * 4;\n      if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      }\n      if ((int)local_4c < (int)pbVar19) {\n        *(byte **)(puVar26 + 0x10) = local_4c;\n        local_4c = local_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);\n        local_3c = pbVar19;\n      }\n      else {\n        *(byte **)(puVar26 + 0x10) = pbVar19;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);\n        local_3c = local_4c;\n        local_4c = local_50;\n      }\n      pbVar3 = pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0);\n      pbVar14 = pbVar3 + iVar10 + local_54;\n      if ((int)param_2 < (int)pbVar3) {\n        puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);\n        pbVar3 = param_2;\n      }\n    }\n    if (pbVar3 != (byte *)0x0) {\n      pbVar6 = pbVar3 + -1;\n      uVar12 = *puVar20;\n      local_3c = (byte *)param_1[3];\n      pbVar19 = local_3c;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          puVar20 = puVar20 + 1;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *puVar20;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        local_3c = local_3c + (int)pbVar3 * 4 + -4;\n      }\n      *(undefined4 *)local_3c = uVar12;\n    }\n    if (bVar1) {\n      pbVar3 = (byte *)-(int)pbVar3;\n    }\n    param_1[1] = (int)pbVar3;\n    param_1[2] = (int)pbVar14;\n    pbVar14 = local_3c;\n    param_4 = local_4c;\n    param_2 = pbVar3;\n    if (local_30 == 0) {\n      uVar22 = 0;\n      goto LAB_00018714;\n    }\n  }" ({ "{") (expression_statement "local_3c = local_3c + local_54 * 4;" (assignment_expression "local_3c = local_3c + local_54 * 4" (identifier "local_3c") (= "=") (binary_expression "local_3c + local_54 * 4" (identifier "local_3c") (+ "+") (binary_expression "local_54 * 4" (identifier "local_54") (* "*") (number_literal "4")))) (; ";")) (expression_statement "local_4c = param_2;" (assignment_expression "local_4c = param_2" (identifier "local_4c") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (pbVar16 == (byte *)0x0) goto LAB_000187d0;" (if "if") (parenthesized_expression "(pbVar16 == (byte *)0x0)" (( "(") (binary_expression "pbVar16 == (byte *)0x0" (identifier "pbVar16") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000187d0;" (goto "goto") (statement_identifier "LAB_000187d0") (; ";"))) (labeled_statement "LAB_000185a0:\n    bVar11 = *pbVar16;" (statement_identifier "LAB_000185a0") (: ":") (expression_statement "bVar11 = *pbVar16;" (assignment_expression "bVar11 = *pbVar16" (identifier "bVar11") (= "=") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16"))) (; ";"))) (expression_statement "param_4 = (byte *)(uint)(bVar11 == 0x2d);" (assignment_expression "param_4 = (byte *)(uint)(bVar11 == 0x2d)" (identifier "param_4") (= "=") (cast_expression "(byte *)(uint)(bVar11 == 0x2d)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(bVar11 == 0x2d)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(bVar11 == 0x2d)" (( "(") (binary_expression "bVar11 == 0x2d" (identifier "bVar11") (== "==") (number_literal "0x2d")) () ")"))))) (; ";")) (expression_statement "pbVar16 = pbVar16 + (bVar11 == 0x2b || bVar11 == 0x2d);" (assignment_expression "pbVar16 = pbVar16 + (bVar11 == 0x2b || bVar11 == 0x2d)" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + (bVar11 == 0x2b || bVar11 == 0x2d)" (identifier "pbVar16") (+ "+") (parenthesized_expression "(bVar11 == 0x2b || bVar11 == 0x2d)" (( "(") (binary_expression "bVar11 == 0x2b || bVar11 == 0x2d" (binary_expression "bVar11 == 0x2b" (identifier "bVar11") (== "==") (number_literal "0x2b")) (|| "||") (binary_expression "bVar11 == 0x2d" (identifier "bVar11") (== "==") (number_literal "0x2d"))) () ")")))) (; ";")) (expression_statement "pbVar6 = (byte *)(uint)(byte)puVar21[*pbVar16];" (assignment_expression "pbVar6 = (byte *)(uint)(byte)puVar21[*pbVar16]" (identifier "pbVar6") (= "=") (cast_expression "(byte *)(uint)(byte)puVar21[*pbVar16]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(uint)(byte)puVar21[*pbVar16]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)puVar21[*pbVar16]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "puVar21[*pbVar16]" (identifier "puVar21") ([ "[") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")) (] "]")))))) (; ";")) (if_statement "if ((int)pbVar19 <= (int)pbVar6) {\nLAB_000186f8:\n      uVar22 = 0xffffffff;\n      if (local_30 == 0) goto LAB_00018714;\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      puVar15 = puVar26;\n      goto LAB_00018710;\n    }" (if "if") (parenthesized_expression "((int)pbVar19 <= (int)pbVar6)" (( "(") (binary_expression "(int)pbVar19 <= (int)pbVar6" (cast_expression "(int)pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar19")) (<= "<=") (cast_expression "(int)pbVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar6"))) () ")")) (compound_statement "{\nLAB_000186f8:\n      uVar22 = 0xffffffff;\n      if (local_30 == 0) goto LAB_00018714;\n      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      puVar15 = puVar26;\n      goto LAB_00018710;\n    }" ({ "{") (labeled_statement "LAB_000186f8:\n      uVar22 = 0xffffffff;" (statement_identifier "LAB_000186f8") (: ":") (expression_statement "uVar22 = 0xffffffff;" (assignment_expression "uVar22 = 0xffffffff" (identifier "uVar22") (= "=") (number_literal "0xffffffff")) (; ";"))) (if_statement "if (local_30 == 0) goto LAB_00018714;" (if "if") (parenthesized_expression "(local_30 == 0)" (( "(") (binary_expression "local_30 == 0" (identifier "local_30") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00018714;" (goto "goto") (statement_identifier "LAB_00018714") (; ";"))) (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)" (( "(") (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_0009d618" (* "*") (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_0009d618" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmp_tmp_reentrant_free_0009d618"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar15 = puVar26;" (assignment_expression "puVar15 = puVar26" (identifier "puVar15") (= "=") (identifier "puVar26")) (; ";")) (goto_statement "goto LAB_00018710;" (goto "goto") (statement_identifier "LAB_00018710") (; ";")) (} "}"))) (expression_statement "pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[1]];" (assignment_expression "pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[1]]" (identifier "pbVar14") (= "=") (cast_expression "(byte *)(uint)(byte)puVar21[pbVar16[1]]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(uint)(byte)puVar21[pbVar16[1]]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)puVar21[pbVar16[1]]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "puVar21[pbVar16[1]]" (identifier "puVar21") ([ "[") (subscript_expression "pbVar16[1]" (identifier "pbVar16") ([ "[") (number_literal "1") (] "]")) (] "]")))))) (; ";")) (if_statement "if ((int)pbVar14 < (int)pbVar19) {\n      pbVar16 = pbVar16 + 3;\n      do {\n        pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19;\n        pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]];\n        pbVar16 = pbVar16 + 1;\n      } while ((int)pbVar14 < (int)pbVar19);\n    }" (if "if") (parenthesized_expression "((int)pbVar14 < (int)pbVar19)" (( "(") (binary_expression "(int)pbVar14 < (int)pbVar19" (cast_expression "(int)pbVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar14")) (< "<") (cast_expression "(int)pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar19"))) () ")")) (compound_statement "{\n      pbVar16 = pbVar16 + 3;\n      do {\n        pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19;\n        pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]];\n        pbVar16 = pbVar16 + 1;\n      } while ((int)pbVar14 < (int)pbVar19);\n    }" ({ "{") (expression_statement "pbVar16 = pbVar16 + 3;" (assignment_expression "pbVar16 = pbVar16 + 3" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + 3" (identifier "pbVar16") (+ "+") (number_literal "3"))) (; ";")) (do_statement "do {\n        pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19;\n        pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]];\n        pbVar16 = pbVar16 + 1;\n      } while ((int)pbVar14 < (int)pbVar19);" (do "do") (compound_statement "{\n        pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19;\n        pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]];\n        pbVar16 = pbVar16 + 1;\n      }" ({ "{") (expression_statement "pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19;" (assignment_expression "pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19" (identifier "pbVar6") (= "=") (binary_expression "pbVar14 + (int)pbVar6 * (int)pbVar19" (identifier "pbVar14") (+ "+") (binary_expression "(int)pbVar6 * (int)pbVar19" (cast_expression "(int)pbVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar6")) (* "*") (cast_expression "(int)pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar19"))))) (; ";")) (expression_statement "pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]];" (assignment_expression "pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]]" (identifier "pbVar14") (= "=") (cast_expression "(byte *)(uint)(byte)puVar21[pbVar16[-1]]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(uint)(byte)puVar21[pbVar16[-1]]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)puVar21[pbVar16[-1]]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "puVar21[pbVar16[-1]]" (identifier "puVar21") ([ "[") (subscript_expression "pbVar16[-1]" (identifier "pbVar16") ([ "[") (number_literal "-1") (] "]")) (] "]")))))) (; ";")) (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + 1" (identifier "pbVar16") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)pbVar14 < (int)pbVar19)" (( "(") (binary_expression "(int)pbVar14 < (int)pbVar19" (cast_expression "(int)pbVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar14")) (< "<") (cast_expression "(int)pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar19"))) () ")")) (; ";")) (} "}"))) (expression_statement "local_44 = param_4 + (-(int)param_4 ^ (uint)pbVar6);" (assignment_expression "local_44 = param_4 + (-(int)param_4 ^ (uint)pbVar6)" (identifier "local_44") (= "=") (binary_expression "param_4 + (-(int)param_4 ^ (uint)pbVar6)" (identifier "param_4") (+ "+") (parenthesized_expression "(-(int)param_4 ^ (uint)pbVar6)" (( "(") (binary_expression "-(int)param_4 ^ (uint)pbVar6" (unary_expression "-(int)param_4" (- "-") (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4"))) (^ "^") (cast_expression "(uint)pbVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pbVar6"))) () ")")))) (; ";")) (if_statement "if (pbVar23 != (byte *)0x0) {\nLAB_00018628:\n      local_44 = local_44 + -((int)pbVar8 - (int)pbVar23);\n    }" (if "if") (parenthesized_expression "(pbVar23 != (byte *)0x0)" (( "(") (binary_expression "pbVar23 != (byte *)0x0" (identifier "pbVar23") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00018628:\n      local_44 = local_44 + -((int)pbVar8 - (int)pbVar23);\n    }" ({ "{") (labeled_statement "LAB_00018628:\n      local_44 = local_44 + -((int)pbVar8 - (int)pbVar23);" (statement_identifier "LAB_00018628") (: ":") (expression_statement "local_44 = local_44 + -((int)pbVar8 - (int)pbVar23);" (assignment_expression "local_44 = local_44 + -((int)pbVar8 - (int)pbVar23)" (identifier "local_44") (= "=") (binary_expression "local_44 + -((int)pbVar8 - (int)pbVar23)" (identifier "local_44") (+ "+") (unary_expression "-((int)pbVar8 - (int)pbVar23)" (- "-") (parenthesized_expression "((int)pbVar8 - (int)pbVar23)" (( "(") (binary_expression "(int)pbVar8 - (int)pbVar23" (cast_expression "(int)pbVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar8")) (- "-") (cast_expression "(int)pbVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar23"))) () ")"))))) (; ";"))) (} "}"))) (if_statement "if (local_44 == (byte *)0x0) goto LAB_000187e0;" (if "if") (parenthesized_expression "(local_44 == (byte *)0x0)" (( "(") (binary_expression "local_44 == (byte *)0x0" (identifier "local_44") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000187e0;" (goto "goto") (statement_identifier "LAB_000187e0") (; ";"))) (expression_statement "iVar4 = iVar4 + 2;" (assignment_expression "iVar4 = iVar4 + 2" (identifier "iVar4") (= "=") (binary_expression "iVar4 + 2" (identifier "iVar4") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar22 = iVar4 * 8;" (assignment_expression "uVar22 = iVar4 * 8" (identifier "uVar22") (= "=") (binary_expression "iVar4 * 8" (identifier "iVar4") (* "*") (number_literal "8"))) (; ";")) (if_statement "if (uVar22 < 0x7f01) {\n      local_50 = puVar26 + iVar4 * -8 + 0x18;\n      pbVar14 = puVar26 + iVar4 * -0x10 + 0x18;\n      puVar26 = puVar26 + iVar4 * -0x10;\n    }\n    else {\n      local_50 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      pbVar14 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n    }" (if "if") (parenthesized_expression "(uVar22 < 0x7f01)" (( "(") (binary_expression "uVar22 < 0x7f01" (identifier "uVar22") (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n      local_50 = puVar26 + iVar4 * -8 + 0x18;\n      pbVar14 = puVar26 + iVar4 * -0x10 + 0x18;\n      puVar26 = puVar26 + iVar4 * -0x10;\n    }" ({ "{") (expression_statement "local_50 = puVar26 + iVar4 * -8 + 0x18;" (assignment_expression "local_50 = puVar26 + iVar4 * -8 + 0x18" (identifier "local_50") (= "=") (binary_expression "puVar26 + iVar4 * -8 + 0x18" (binary_expression "puVar26 + iVar4 * -8" (identifier "puVar26") (+ "+") (binary_expression "iVar4 * -8" (identifier "iVar4") (* "*") (number_literal "-8"))) (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "pbVar14 = puVar26 + iVar4 * -0x10 + 0x18;" (assignment_expression "pbVar14 = puVar26 + iVar4 * -0x10 + 0x18" (identifier "pbVar14") (= "=") (binary_expression "puVar26 + iVar4 * -0x10 + 0x18" (binary_expression "puVar26 + iVar4 * -0x10" (identifier "puVar26") (+ "+") (binary_expression "iVar4 * -0x10" (identifier "iVar4") (* "*") (number_literal "-0x10"))) (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "puVar26 = puVar26 + iVar4 * -0x10;" (assignment_expression "puVar26 = puVar26 + iVar4 * -0x10" (identifier "puVar26") (= "=") (binary_expression "puVar26 + iVar4 * -0x10" (identifier "puVar26") (+ "+") (binary_expression "iVar4 * -0x10" (identifier "iVar4") (* "*") (number_literal "-0x10")))) (; ";")) (} "}")) (else_clause "else {\n      local_50 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      pbVar14 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n    }" (else "else") (compound_statement "{\n      local_50 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      pbVar14 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n    }" ({ "{") (expression_statement "local_50 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);" (assignment_expression "local_50 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22)" (identifier "local_50") (= "=") (cast_expression "(byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" (( "(") (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" (* "*") (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmp_tmp_reentrant_alloc_0009d2f0"))) () ")")) (argument_list "(&local_30,uVar22)" (( "(") (pointer_expression "&local_30" (& "&") (identifier "local_30")) (, ",") (identifier "uVar22") () ")"))))) (; ";")) (expression_statement "pbVar14 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);" (assignment_expression "pbVar14 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22)" (identifier "pbVar14") (= "=") (cast_expression "(byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" (( "(") (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" (* "*") (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmp_tmp_reentrant_alloc_0009d2f0"))) () ")")) (argument_list "(&local_30,uVar22)" (( "(") (pointer_expression "&local_30" (& "&") (identifier "local_30")) (, ",") (identifier "uVar22") () ")"))))) (; ";")) (} "}")))) (expression_statement "puVar21 = PTR___gmpn_clz_tab_0009d18c;" (assignment_expression "puVar21 = PTR___gmpn_clz_tab_0009d18c" (identifier "puVar21") (= "=") (identifier "PTR___gmpn_clz_tab_0009d18c")) (; ";")) (expression_statement "pbVar3 = local_44;" (assignment_expression "pbVar3 = local_44" (identifier "pbVar3") (= "=") (identifier "local_44")) (; ";")) (if_statement "if ((int)local_44 < 0) {\n      pbVar3 = (byte *)-(int)local_44;\n    }" (if "if") (parenthesized_expression "((int)local_44 < 0)" (( "(") (binary_expression "(int)local_44 < 0" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      pbVar3 = (byte *)-(int)local_44;\n    }" ({ "{") (expression_statement "pbVar3 = (byte *)-(int)local_44;" (assignment_expression "pbVar3 = (byte *)-(int)local_44" (identifier "pbVar3") (= "=") (cast_expression "(byte *)-(int)local_44" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (unary_expression "-(int)local_44" (- "-") (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44"))))) (; ";")) (} "}"))) (expression_statement "*(byte **)local_50 = param_3;" (assignment_expression "*(byte **)local_50 = param_3" (pointer_expression "*(byte **)local_50" (* "*") (cast_expression "(byte **)local_50" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "local_50"))) (= "=") (identifier "param_3")) (; ";")) (if_statement "if ((int)pbVar3 < 0x10000) {\n      iVar10 = 0x18;\n      if (0xff < (int)pbVar3) {\n        iVar17 = 9;\n        goto LAB_00018870;\n      }\n      uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;\n      if (-1 < (int)uVar22) goto LAB_00018890;\n      if ((int)param_2 < 1) {\n        iVar10 = 0;\n        pbVar19 = (byte *)0x1;\n        iVar17 = 0;\n        pbVar14 = local_50;\n        goto LAB_00018988;\n      }\n      pbVar19 = (byte *)0x1;\n      iVar10 = 0;\n      *(byte **)local_50 = param_3;\n    }\n    else {\n      iVar17 = 0x19;\n      if ((int)pbVar3 < 0x1000000) {\n        iVar17 = 0x11;\n      }\n      iVar10 = 0x10;\n      if ((int)pbVar3 >= 0x1000000) {\n        iVar10 = 8;\n      }\nLAB_00018870:\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e;\nLAB_00018890:\n      iVar10 = 0;\n      pbVar19 = (byte *)0x1;\n      iVar17 = 0;\n      pbVar6 = local_50;\n      while( true ) {\n        pbVar8 = pbVar6;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);\n        iVar10 = iVar10 * 2;\n        pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));\n        if ((int)param_2 < (int)pbVar19) {\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }\n        else {\n          iVar17 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pbVar6 = pbVar14;\n        pbVar14 = pbVar8;\n      }\n      if ((int)param_2 < (int)pbVar19) {\nLAB_00018988:\n        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);\n        pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;\n        pbVar19 = param_2;\n      }\n      pbVar3 = pbVar19 + -1;\n      if (pbVar19 != (byte *)0x0) {\n        uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);\n        if (pbVar3 == (byte *)0x0) {\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }\n        else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }\n      }\n    }" (if "if") (parenthesized_expression "((int)pbVar3 < 0x10000)" (( "(") (binary_expression "(int)pbVar3 < 0x10000" (cast_expression "(int)pbVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar3")) (< "<") (number_literal "0x10000")) () ")")) (compound_statement "{\n      iVar10 = 0x18;\n      if (0xff < (int)pbVar3) {\n        iVar17 = 9;\n        goto LAB_00018870;\n      }\n      uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;\n      if (-1 < (int)uVar22) goto LAB_00018890;\n      if ((int)param_2 < 1) {\n        iVar10 = 0;\n        pbVar19 = (byte *)0x1;\n        iVar17 = 0;\n        pbVar14 = local_50;\n        goto LAB_00018988;\n      }\n      pbVar19 = (byte *)0x1;\n      iVar10 = 0;\n      *(byte **)local_50 = param_3;\n    }" ({ "{") (expression_statement "iVar10 = 0x18;" (assignment_expression "iVar10 = 0x18" (identifier "iVar10") (= "=") (number_literal "0x18")) (; ";")) (if_statement "if (0xff < (int)pbVar3) {\n        iVar17 = 9;\n        goto LAB_00018870;\n      }" (if "if") (parenthesized_expression "(0xff < (int)pbVar3)" (( "(") (binary_expression "0xff < (int)pbVar3" (number_literal "0xff") (< "<") (cast_expression "(int)pbVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar3"))) () ")")) (compound_statement "{\n        iVar17 = 9;\n        goto LAB_00018870;\n      }" ({ "{") (expression_statement "iVar17 = 9;" (assignment_expression "iVar17 = 9" (identifier "iVar17") (= "=") (number_literal "9")) (; ";")) (goto_statement "goto LAB_00018870;" (goto "goto") (statement_identifier "LAB_00018870") (; ";")) (} "}"))) (expression_statement "uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;" (assignment_expression "uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2" (identifier "uVar22") (= "=") (binary_expression "(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2" (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1]" (identifier "PTR___gmpn_clz_tab_0009d18c") ([ "[") (binary_expression "(uint)pbVar3 >> 1" (cast_expression "(uint)pbVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pbVar3")) (>> ">>") (number_literal "1")) (] "]"))) (- "-") (number_literal "2"))) (; ";")) (if_statement "if (-1 < (int)uVar22) goto LAB_00018890;" (if "if") (parenthesized_expression "(-1 < (int)uVar22)" (( "(") (binary_expression "-1 < (int)uVar22" (number_literal "-1") (< "<") (cast_expression "(int)uVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar22"))) () ")")) (goto_statement "goto LAB_00018890;" (goto "goto") (statement_identifier "LAB_00018890") (; ";"))) (if_statement "if ((int)param_2 < 1) {\n        iVar10 = 0;\n        pbVar19 = (byte *)0x1;\n        iVar17 = 0;\n        pbVar14 = local_50;\n        goto LAB_00018988;\n      }" (if "if") (parenthesized_expression "((int)param_2 < 1)" (( "(") (binary_expression "(int)param_2 < 1" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n        iVar10 = 0;\n        pbVar19 = (byte *)0x1;\n        iVar17 = 0;\n        pbVar14 = local_50;\n        goto LAB_00018988;\n      }" ({ "{") (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar19 = (byte *)0x1;" (assignment_expression "pbVar19 = (byte *)0x1" (identifier "pbVar19") (= "=") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" (identifier "iVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar14 = local_50;" (assignment_expression "pbVar14 = local_50" (identifier "pbVar14") (= "=") (identifier "local_50")) (; ";")) (goto_statement "goto LAB_00018988;" (goto "goto") (statement_identifier "LAB_00018988") (; ";")) (} "}"))) (expression_statement "pbVar19 = (byte *)0x1;" (assignment_expression "pbVar19 = (byte *)0x1" (identifier "pbVar19") (= "=") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte **)local_50 = param_3;" (assignment_expression "*(byte **)local_50 = param_3" (pointer_expression "*(byte **)local_50" (* "*") (cast_expression "(byte **)local_50" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "local_50"))) (= "=") (identifier "param_3")) (; ";")) (} "}")) (else_clause "else {\n      iVar17 = 0x19;\n      if ((int)pbVar3 < 0x1000000) {\n        iVar17 = 0x11;\n      }\n      iVar10 = 0x10;\n      if ((int)pbVar3 >= 0x1000000) {\n        iVar10 = 8;\n      }\nLAB_00018870:\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e;\nLAB_00018890:\n      iVar10 = 0;\n      pbVar19 = (byte *)0x1;\n      iVar17 = 0;\n      pbVar6 = local_50;\n      while( true ) {\n        pbVar8 = pbVar6;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);\n        iVar10 = iVar10 * 2;\n        pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));\n        if ((int)param_2 < (int)pbVar19) {\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }\n        else {\n          iVar17 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pbVar6 = pbVar14;\n        pbVar14 = pbVar8;\n      }\n      if ((int)param_2 < (int)pbVar19) {\nLAB_00018988:\n        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);\n        pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;\n        pbVar19 = param_2;\n      }\n      pbVar3 = pbVar19 + -1;\n      if (pbVar19 != (byte *)0x0) {\n        uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);\n        if (pbVar3 == (byte *)0x0) {\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }\n        else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }\n      }\n    }" (else "else") (compound_statement "{\n      iVar17 = 0x19;\n      if ((int)pbVar3 < 0x1000000) {\n        iVar17 = 0x11;\n      }\n      iVar10 = 0x10;\n      if ((int)pbVar3 >= 0x1000000) {\n        iVar10 = 8;\n      }\nLAB_00018870:\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e;\nLAB_00018890:\n      iVar10 = 0;\n      pbVar19 = (byte *)0x1;\n      iVar17 = 0;\n      pbVar6 = local_50;\n      while( true ) {\n        pbVar8 = pbVar6;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);\n        iVar10 = iVar10 * 2;\n        pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));\n        if ((int)param_2 < (int)pbVar19) {\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }\n        else {\n          iVar17 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pbVar6 = pbVar14;\n        pbVar14 = pbVar8;\n      }\n      if ((int)param_2 < (int)pbVar19) {\nLAB_00018988:\n        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);\n        pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;\n        pbVar19 = param_2;\n      }\n      pbVar3 = pbVar19 + -1;\n      if (pbVar19 != (byte *)0x0) {\n        uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);\n        if (pbVar3 == (byte *)0x0) {\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }\n        else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }\n      }\n    }" ({ "{") (expression_statement "iVar17 = 0x19;" (assignment_expression "iVar17 = 0x19" (identifier "iVar17") (= "=") (number_literal "0x19")) (; ";")) (if_statement "if ((int)pbVar3 < 0x1000000) {\n        iVar17 = 0x11;\n      }" (if "if") (parenthesized_expression "((int)pbVar3 < 0x1000000)" (( "(") (binary_expression "(int)pbVar3 < 0x1000000" (cast_expression "(int)pbVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar3")) (< "<") (number_literal "0x1000000")) () ")")) (compound_statement "{\n        iVar17 = 0x11;\n      }" ({ "{") (expression_statement "iVar17 = 0x11;" (assignment_expression "iVar17 = 0x11" (identifier "iVar17") (= "=") (number_literal "0x11")) (; ";")) (} "}"))) (expression_statement "iVar10 = 0x10;" (assignment_expression "iVar10 = 0x10" (identifier "iVar10") (= "=") (number_literal "0x10")) (; ";")) (if_statement "if ((int)pbVar3 >= 0x1000000) {\n        iVar10 = 8;\n      }" (if "if") (parenthesized_expression "((int)pbVar3 >= 0x1000000)" (( "(") (binary_expression "(int)pbVar3 >= 0x1000000" (cast_expression "(int)pbVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar3")) (>= ">=") (number_literal "0x1000000")) () ")")) (compound_statement "{\n        iVar10 = 8;\n      }" ({ "{") (expression_statement "iVar10 = 8;" (assignment_expression "iVar10 = 8" (identifier "iVar10") (= "=") (number_literal "8")) (; ";")) (} "}"))) (labeled_statement "LAB_00018870:\n      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e;" (statement_identifier "LAB_00018870") (: ":") (expression_statement "uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e;" (assignment_expression "uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e" (identifier "uVar22") (= "=") (binary_expression "((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e" (parenthesized_expression "((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10)" (( "(") (binary_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10" (cast_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17]" (identifier "PTR___gmpn_clz_tab_0009d18c") ([ "[") (binary_expression "(uint)pbVar3 >> iVar17" (cast_expression "(uint)pbVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pbVar3")) (>> ">>") (identifier "iVar17")) (] "]")))) (- "-") (identifier "iVar10")) () ")")) (+ "+") (number_literal "0x1e"))) (; ";"))) (labeled_statement "LAB_00018890:\n      iVar10 = 0;" (statement_identifier "LAB_00018890") (: ":") (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";"))) (expression_statement "pbVar19 = (byte *)0x1;" (assignment_expression "pbVar19 = (byte *)0x1" (identifier "pbVar19") (= "=") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" (identifier "iVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar6 = local_50;" (assignment_expression "pbVar6 = local_50" (identifier "pbVar6") (= "=") (identifier "local_50")) (; ";")) (while_statement "while( true ) {\n        pbVar8 = pbVar6;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);\n        iVar10 = iVar10 * 2;\n        pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));\n        if ((int)param_2 < (int)pbVar19) {\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }\n        else {\n          iVar17 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pbVar6 = pbVar14;\n        pbVar14 = pbVar8;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        pbVar8 = pbVar6;\n        (*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);\n        iVar10 = iVar10 * 2;\n        pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));\n        if ((int)param_2 < (int)pbVar19) {\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }\n        else {\n          iVar17 = 0;\n        }\n        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }\n        if (uVar22 == 0) break;\n        uVar22 = uVar22 - 1;\n        pbVar6 = pbVar14;\n        pbVar14 = pbVar8;\n      }" ({ "{") (expression_statement "pbVar8 = pbVar6;" (assignment_expression "pbVar8 = pbVar6" (identifier "pbVar8") (= "=") (identifier "pbVar6")) (; ";")) (expression_statement "(*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);" (call_expression "(*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19)" (parenthesized_expression "(*(code *)PTR___gmpn_sqr_0009d394)" (( "(") (pointer_expression "*(code *)PTR___gmpn_sqr_0009d394" (* "*") (cast_expression "(code *)PTR___gmpn_sqr_0009d394" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_sqr_0009d394"))) () ")")) (argument_list "(pbVar14,pbVar8 + iVar17 * 4,pbVar19)" (( "(") (identifier "pbVar14") (, ",") (binary_expression "pbVar8 + iVar17 * 4" (identifier "pbVar8") (+ "+") (binary_expression "iVar17 * 4" (identifier "iVar17") (* "*") (number_literal "4"))) (, ",") (identifier "pbVar19") () ")"))) (; ";")) (expression_statement "iVar10 = iVar10 * 2;" (assignment_expression "iVar10 = iVar10 * 2" (identifier "iVar10") (= "=") (binary_expression "iVar10 * 2" (identifier "iVar10") (* "*") (number_literal "2"))) (; ";")) (expression_statement "pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));" (assignment_expression "pbVar19 = (byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0))" (identifier "pbVar19") (= "=") (cast_expression "(byte *)((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0))" (( "(") (binary_expression "(int)pbVar19 * 2 -\n                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0)" (binary_expression "(int)pbVar19 * 2" (cast_expression "(int)pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar19")) (* "*") (number_literal "2")) (- "-") (call_expression "(uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0)" (( "(") (binary_expression "*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0" (pointer_expression "*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4)" (* "*") (cast_expression "(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4)" (( "(") (binary_expression "pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4" (identifier "pbVar14") (+ "+") (binary_expression "((int)pbVar19 * 2 + 0x3fffffff) * 4" (parenthesized_expression "((int)pbVar19 * 2 + 0x3fffffff)" (( "(") (binary_expression "(int)pbVar19 * 2 + 0x3fffffff" (binary_expression "(int)pbVar19 * 2" (cast_expression "(int)pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar19")) (* "*") (number_literal "2")) (+ "+") (number_literal "0x3fffffff")) () ")")) (* "*") (number_literal "4"))) () ")")))) (== "==") (number_literal "0")) () ")")))) () ")")))) (; ";")) (if_statement "if ((int)param_2 < (int)pbVar19) {\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }\n        else {\n          iVar17 = 0;\n        }" (if "if") (parenthesized_expression "((int)param_2 < (int)pbVar19)" (( "(") (binary_expression "(int)param_2 < (int)pbVar19" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (< "<") (cast_expression "(int)pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar19"))) () ")")) (compound_statement "{\n          iVar17 = (int)pbVar19 - (int)param_2;\n          iVar10 = iVar10 + iVar17;\n          pbVar19 = param_2;\n        }" ({ "{") (expression_statement "iVar17 = (int)pbVar19 - (int)param_2;" (assignment_expression "iVar17 = (int)pbVar19 - (int)param_2" (identifier "iVar17") (= "=") (binary_expression "(int)pbVar19 - (int)param_2" (cast_expression "(int)pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar19")) (- "-") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")))) (; ";")) (expression_statement "iVar10 = iVar10 + iVar17;" (assignment_expression "iVar10 = iVar10 + iVar17" (identifier "iVar10") (= "=") (binary_expression "iVar10 + iVar17" (identifier "iVar10") (+ "+") (identifier "iVar17"))) (; ";")) (expression_statement "pbVar19 = param_2;" (assignment_expression "pbVar19 = param_2" (identifier "pbVar19") (= "=") (identifier "param_2")) (; ";")) (} "}")) (else_clause "else {\n          iVar17 = 0;\n        }" (else "else") (compound_statement "{\n          iVar17 = 0;\n        }" ({ "{") (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" (identifier "iVar17") (= "=") (number_literal "0")) (; ";")) (} "}")))) (if_statement "if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }" (if "if") (parenthesized_expression "(((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0)" (( "(") (binary_expression "((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0" (parenthesized_expression "((int)pbVar3 >> (uVar22 & 0x1f) & 1U)" (( "(") (binary_expression "(int)pbVar3 >> (uVar22 & 0x1f) & 1U" (binary_expression "(int)pbVar3 >> (uVar22 & 0x1f)" (cast_expression "(int)pbVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar3")) (>> ">>") (parenthesized_expression "(uVar22 & 0x1f)" (( "(") (binary_expression "uVar22 & 0x1f" (identifier "uVar22") (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1U")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);\n          iVar13 = (int)pbVar19 * 4;\n          pbVar19 = pbVar19 + (iVar17 != 0);\n          *(int *)(pbVar14 + iVar13) = iVar17;\n          iVar17 = 0;\n        }" ({ "{") (expression_statement "iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);" (assignment_expression "iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3)" (identifier "iVar17") (= "=") (call_expression "(*(code *)PTR___gmpn_mul_1_0009d0a4)\n                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_1_0009d0a4)" (( "(") (pointer_expression "*(code *)PTR___gmpn_mul_1_0009d0a4" (* "*") (cast_expression "(code *)PTR___gmpn_mul_1_0009d0a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_mul_1_0009d0a4"))) () ")")) (argument_list "(pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3)" (( "(") (identifier "pbVar14") (, ",") (binary_expression "pbVar14 + iVar17 * 4" (identifier "pbVar14") (+ "+") (binary_expression "iVar17 * 4" (identifier "iVar17") (* "*") (number_literal "4"))) (, ",") (identifier "pbVar19") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "iVar13 = (int)pbVar19 * 4;" (assignment_expression "iVar13 = (int)pbVar19 * 4" (identifier "iVar13") (= "=") (binary_expression "(int)pbVar19 * 4" (cast_expression "(int)pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar19")) (* "*") (number_literal "4"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (iVar17 != 0);" (assignment_expression "pbVar19 = pbVar19 + (iVar17 != 0)" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (iVar17 != 0)" (identifier "pbVar19") (+ "+") (parenthesized_expression "(iVar17 != 0)" (( "(") (binary_expression "iVar17 != 0" (identifier "iVar17") (!= "!=") (number_literal "0")) () ")")))) (; ";")) (expression_statement "*(int *)(pbVar14 + iVar13) = iVar17;" (assignment_expression "*(int *)(pbVar14 + iVar13) = iVar17" (pointer_expression "*(int *)(pbVar14 + iVar13)" (* "*") (cast_expression "(int *)(pbVar14 + iVar13)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar14 + iVar13)" (( "(") (binary_expression "pbVar14 + iVar13" (identifier "pbVar14") (+ "+") (identifier "iVar13")) () ")")))) (= "=") (identifier "iVar17")) (; ";")) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" (identifier "iVar17") (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (uVar22 == 0) break;" (if "if") (parenthesized_expression "(uVar22 == 0)" (( "(") (binary_expression "uVar22 == 0" (identifier "uVar22") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar22 = uVar22 - 1;" (assignment_expression "uVar22 = uVar22 - 1" (identifier "uVar22") (= "=") (binary_expression "uVar22 - 1" (identifier "uVar22") (- "-") (number_literal "1"))) (; ";")) (expression_statement "pbVar6 = pbVar14;" (assignment_expression "pbVar6 = pbVar14" (identifier "pbVar6") (= "=") (identifier "pbVar14")) (; ";")) (expression_statement "pbVar14 = pbVar8;" (assignment_expression "pbVar14 = pbVar8" (identifier "pbVar14") (= "=") (identifier "pbVar8")) (; ";")) (} "}"))) (if_statement "if ((int)param_2 < (int)pbVar19) {\nLAB_00018988:\n        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);\n        pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;\n        pbVar19 = param_2;\n      }" (if "if") (parenthesized_expression "((int)param_2 < (int)pbVar19)" (( "(") (binary_expression "(int)param_2 < (int)pbVar19" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (< "<") (cast_expression "(int)pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar19"))) () ")")) (compound_statement "{\nLAB_00018988:\n        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);\n        pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;\n        pbVar19 = param_2;\n      }" ({ "{") (labeled_statement "LAB_00018988:\n        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);" (statement_identifier "LAB_00018988") (: ":") (expression_statement "iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);" (assignment_expression "iVar10 = iVar10 + ((int)pbVar19 - (int)param_2)" (identifier "iVar10") (= "=") (binary_expression "iVar10 + ((int)pbVar19 - (int)param_2)" (identifier "iVar10") (+ "+") (parenthesized_expression "((int)pbVar19 - (int)param_2)" (( "(") (binary_expression "(int)pbVar19 - (int)param_2" (cast_expression "(int)pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar19")) (- "-") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")")))) (; ";"))) (expression_statement "pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;" (assignment_expression "pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + ((int)pbVar19 - (int)param_2) * 4" (identifier "pbVar14") (+ "+") (binary_expression "((int)pbVar19 - (int)param_2) * 4" (parenthesized_expression "((int)pbVar19 - (int)param_2)" (( "(") (binary_expression "(int)pbVar19 - (int)param_2" (cast_expression "(int)pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar19")) (- "-") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")")) (* "*") (number_literal "4")))) (; ";")) (expression_statement "pbVar19 = param_2;" (assignment_expression "pbVar19 = param_2" (identifier "pbVar19") (= "=") (identifier "param_2")) (; ";")) (} "}"))) (expression_statement "pbVar3 = pbVar19 + -1;" (assignment_expression "pbVar3 = pbVar19 + -1" (identifier "pbVar3") (= "=") (binary_expression "pbVar19 + -1" (identifier "pbVar19") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (pbVar19 != (byte *)0x0) {\n        uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);\n        if (pbVar3 == (byte *)0x0) {\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }\n        else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }\n      }" (if "if") (parenthesized_expression "(pbVar19 != (byte *)0x0)" (( "(") (binary_expression "pbVar19 != (byte *)0x0" (identifier "pbVar19") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);\n        if (pbVar3 == (byte *)0x0) {\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }\n        else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }\n      }" ({ "{") (expression_statement "uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);" (assignment_expression "uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4)" (identifier "uVar12") (= "=") (pointer_expression "*(undefined4 *)(pbVar14 + iVar17 * 4)" (* "*") (cast_expression "(undefined4 *)(pbVar14 + iVar17 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar14 + iVar17 * 4)" (( "(") (binary_expression "pbVar14 + iVar17 * 4" (identifier "pbVar14") (+ "+") (binary_expression "iVar17 * 4" (identifier "iVar17") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (pbVar3 == (byte *)0x0) {\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }\n        else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }" (if "if") (parenthesized_expression "(pbVar3 == (byte *)0x0)" (( "(") (binary_expression "pbVar3 == (byte *)0x0" (identifier "pbVar3") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          pbVar19 = (byte *)0x1;\n          *(undefined4 *)local_50 = uVar12;\n        }" ({ "{") (expression_statement "pbVar19 = (byte *)0x1;" (assignment_expression "pbVar19 = (byte *)0x1" (identifier "pbVar19") (= "=") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "*(undefined4 *)local_50 = uVar12;" (assignment_expression "*(undefined4 *)local_50 = uVar12" (pointer_expression "*(undefined4 *)local_50" (* "*") (cast_expression "(undefined4 *)local_50" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_50"))) (= "=") (identifier "uVar12")) (; ";")) (} "}")) (else_clause "else {\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }" (else "else") (compound_statement "{\n          pbVar14 = pbVar14 + iVar17 * 4 + 4;\n          pbVar6 = local_50;\n          do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);\n          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;\n        }" ({ "{") (expression_statement "pbVar14 = pbVar14 + iVar17 * 4 + 4;" (assignment_expression "pbVar14 = pbVar14 + iVar17 * 4 + 4" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + iVar17 * 4 + 4" (binary_expression "pbVar14 + iVar17 * 4" (identifier "pbVar14") (+ "+") (binary_expression "iVar17 * 4" (identifier "iVar17") (* "*") (number_literal "4"))) (+ "+") (number_literal "4"))) (; ";")) (expression_statement "pbVar6 = local_50;" (assignment_expression "pbVar6 = local_50" (identifier "pbVar6") (= "=") (identifier "local_50")) (; ";")) (do_statement "do {\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          } while (pbVar3 != (byte *)0x0);" (do "do") (compound_statement "{\n            *(undefined4 *)pbVar6 = uVar12;\n            pbVar3 = pbVar3 + -1;\n            uVar12 = *(undefined4 *)pbVar14;\n            pbVar14 = pbVar14 + 4;\n            pbVar6 = pbVar6 + 4;\n          }" ({ "{") (expression_statement "*(undefined4 *)pbVar6 = uVar12;" (assignment_expression "*(undefined4 *)pbVar6 = uVar12" (pointer_expression "*(undefined4 *)pbVar6" (* "*") (cast_expression "(undefined4 *)pbVar6" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar6"))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "pbVar3 = pbVar3 + -1;" (assignment_expression "pbVar3 = pbVar3 + -1" (identifier "pbVar3") (= "=") (binary_expression "pbVar3 + -1" (identifier "pbVar3") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar12 = *(undefined4 *)pbVar14;" (assignment_expression "uVar12 = *(undefined4 *)pbVar14" (identifier "uVar12") (= "=") (pointer_expression "*(undefined4 *)pbVar14" (* "*") (cast_expression "(undefined4 *)pbVar14" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar14 = pbVar14 + 4;" (assignment_expression "pbVar14 = pbVar14 + 4" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + 4" (identifier "pbVar14") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "pbVar6 = pbVar6 + 4;" (assignment_expression "pbVar6 = pbVar6 + 4" (identifier "pbVar6") (= "=") (binary_expression "pbVar6 + 4" (identifier "pbVar6") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar3 != (byte *)0x0)" (( "(") (binary_expression "pbVar3 != (byte *)0x0" (identifier "pbVar3") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "*(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;" (assignment_expression "*(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12" (pointer_expression "*(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4)" (* "*") (cast_expression "(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50 + (int)pbVar19 * 4 + -4)" (( "(") (binary_expression "local_50 + (int)pbVar19 * 4 + -4" (binary_expression "local_50 + (int)pbVar19 * 4" (identifier "local_50") (+ "+") (binary_expression "(int)pbVar19 * 4" (cast_expression "(int)pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar19")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (} "}")))) (} "}"))) (} "}")))) (expression_statement "pbVar3 = param_2;" (assignment_expression "pbVar3 = param_2" (identifier "pbVar3") (= "=") (identifier "param_2")) (; ";")) (if_statement "if ((int)local_44 < 0) {\n      if ((int)local_4c < (int)pbVar19) {\n        if ((uint)((int)(pbVar19 + 1) * 4) < 0x7f01) {\n          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);\n          puVar15 = puVar26 + iVar17 + 0x18;\n          puVar26 = puVar26 + iVar17;\n        }\n        else {\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }\n        iVar17 = ((int)pbVar19 - (int)local_4c) * 4;\n        pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17);\n        if (local_4c != (byte *)0x0) {\n          pbVar16 = local_4c + -1;\n          pbVar8 = pbVar14 + iVar17;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar6 = pbVar8;\n          if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }\n          *(undefined4 *)pbVar8 = uVar12;\n        }\n        local_54 = local_54 - ((int)pbVar19 - (int)local_4c);\n        local_4c = pbVar19;\n        local_3c = pbVar14;\n      }\n      uVar22 = *(uint *)(local_50 + (int)pbVar19 * 4 + -4);\n      if (-1 < (int)uVar22) {\n        if (uVar22 < 0x10000) {\n          iVar17 = 0x20;\n          if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }\n          iVar13 = 9;\n          if (0xff >= uVar22) {\n            iVar13 = 1;\n          }\n        }\n        else {\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }\n        bVar11 = puVar21[uVar22 >> iVar13];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11);\n        iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11);\n        if (iVar17 != 0) {\n          iVar13 = (int)local_4c * 4;\n          local_4c = local_4c + 1;\n          *(int *)(local_3c + iVar13) = iVar17;\n        }\n      }\n      if ((uint)(iVar4 * 4) < 0x7f01) {\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      }\n      iVar17 = (int)local_4c - (int)pbVar19;\n      *(byte **)(puVar26 + 0x14) = pbVar19;\n      *(byte **)(puVar26 + 0x10) = local_50;\n      iVar4 = (*(code *)PTR___gmpn_divrem_0009d0e4)(puVar20,(int)param_2 - iVar17);\n      pbVar14 = (byte *)((local_54 - iVar10) + iVar17 + iVar4);\n      if (iVar4 != 0) {\n        piVar5 = puVar20 + (int)param_2;\n        puVar20 = puVar20 + 1;\n        *piVar5 = iVar4;\n      }\n    }\n    else {\n      pbVar3 = pbVar19 + (int)local_4c;\n      uVar22 = (int)pbVar3 * 4;\n      if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      }\n      if ((int)local_4c < (int)pbVar19) {\n        *(byte **)(puVar26 + 0x10) = local_4c;\n        local_4c = local_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);\n        local_3c = pbVar19;\n      }\n      else {\n        *(byte **)(puVar26 + 0x10) = pbVar19;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);\n        local_3c = local_4c;\n        local_4c = local_50;\n      }\n      pbVar3 = pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0);\n      pbVar14 = pbVar3 + iVar10 + local_54;\n      if ((int)param_2 < (int)pbVar3) {\n        puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);\n        pbVar3 = param_2;\n      }\n    }" (if "if") (parenthesized_expression "((int)local_44 < 0)" (( "(") (binary_expression "(int)local_44 < 0" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      if ((int)local_4c < (int)pbVar19) {\n        if ((uint)((int)(pbVar19 + 1) * 4) < 0x7f01) {\n          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);\n          puVar15 = puVar26 + iVar17 + 0x18;\n          puVar26 = puVar26 + iVar17;\n        }\n        else {\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }\n        iVar17 = ((int)pbVar19 - (int)local_4c) * 4;\n        pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17);\n        if (local_4c != (byte *)0x0) {\n          pbVar16 = local_4c + -1;\n          pbVar8 = pbVar14 + iVar17;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar6 = pbVar8;\n          if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }\n          *(undefined4 *)pbVar8 = uVar12;\n        }\n        local_54 = local_54 - ((int)pbVar19 - (int)local_4c);\n        local_4c = pbVar19;\n        local_3c = pbVar14;\n      }\n      uVar22 = *(uint *)(local_50 + (int)pbVar19 * 4 + -4);\n      if (-1 < (int)uVar22) {\n        if (uVar22 < 0x10000) {\n          iVar17 = 0x20;\n          if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }\n          iVar13 = 9;\n          if (0xff >= uVar22) {\n            iVar13 = 1;\n          }\n        }\n        else {\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }\n        bVar11 = puVar21[uVar22 >> iVar13];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11);\n        iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11);\n        if (iVar17 != 0) {\n          iVar13 = (int)local_4c * 4;\n          local_4c = local_4c + 1;\n          *(int *)(local_3c + iVar13) = iVar17;\n        }\n      }\n      if ((uint)(iVar4 * 4) < 0x7f01) {\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      }\n      iVar17 = (int)local_4c - (int)pbVar19;\n      *(byte **)(puVar26 + 0x14) = pbVar19;\n      *(byte **)(puVar26 + 0x10) = local_50;\n      iVar4 = (*(code *)PTR___gmpn_divrem_0009d0e4)(puVar20,(int)param_2 - iVar17);\n      pbVar14 = (byte *)((local_54 - iVar10) + iVar17 + iVar4);\n      if (iVar4 != 0) {\n        piVar5 = puVar20 + (int)param_2;\n        puVar20 = puVar20 + 1;\n        *piVar5 = iVar4;\n      }\n    }" ({ "{") (if_statement "if ((int)local_4c < (int)pbVar19) {\n        if ((uint)((int)(pbVar19 + 1) * 4) < 0x7f01) {\n          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);\n          puVar15 = puVar26 + iVar17 + 0x18;\n          puVar26 = puVar26 + iVar17;\n        }\n        else {\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }\n        iVar17 = ((int)pbVar19 - (int)local_4c) * 4;\n        pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17);\n        if (local_4c != (byte *)0x0) {\n          pbVar16 = local_4c + -1;\n          pbVar8 = pbVar14 + iVar17;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar6 = pbVar8;\n          if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }\n          *(undefined4 *)pbVar8 = uVar12;\n        }\n        local_54 = local_54 - ((int)pbVar19 - (int)local_4c);\n        local_4c = pbVar19;\n        local_3c = pbVar14;\n      }" (if "if") (parenthesized_expression "((int)local_4c < (int)pbVar19)" (( "(") (binary_expression "(int)local_4c < (int)pbVar19" (cast_expression "(int)local_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c")) (< "<") (cast_expression "(int)pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar19"))) () ")")) (compound_statement "{\n        if ((uint)((int)(pbVar19 + 1) * 4) < 0x7f01) {\n          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);\n          puVar15 = puVar26 + iVar17 + 0x18;\n          puVar26 = puVar26 + iVar17;\n        }\n        else {\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }\n        iVar17 = ((int)pbVar19 - (int)local_4c) * 4;\n        pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17);\n        if (local_4c != (byte *)0x0) {\n          pbVar16 = local_4c + -1;\n          pbVar8 = pbVar14 + iVar17;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar6 = pbVar8;\n          if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }\n          *(undefined4 *)pbVar8 = uVar12;\n        }\n        local_54 = local_54 - ((int)pbVar19 - (int)local_4c);\n        local_4c = pbVar19;\n        local_3c = pbVar14;\n      }" ({ "{") (if_statement "if ((uint)((int)(pbVar19 + 1) * 4) < 0x7f01) {\n          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);\n          puVar15 = puVar26 + iVar17 + 0x18;\n          puVar26 = puVar26 + iVar17;\n        }\n        else {\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }" (if "if") (parenthesized_expression "((uint)((int)(pbVar19 + 1) * 4) < 0x7f01)" (( "(") (binary_expression "(uint)((int)(pbVar19 + 1) * 4) < 0x7f01" (call_expression "(uint)((int)(pbVar19 + 1) * 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)(pbVar19 + 1) * 4)" (( "(") (binary_expression "(int)(pbVar19 + 1) * 4" (cast_expression "(int)(pbVar19 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar19 + 1)" (( "(") (binary_expression "pbVar19 + 1" (identifier "pbVar19") (+ "+") (number_literal "1")) () ")"))) (* "*") (number_literal "4")) () ")"))) (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);\n          puVar15 = puVar26 + iVar17 + 0x18;\n          puVar26 = puVar26 + iVar17;\n        }" ({ "{") (expression_statement "iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);" (assignment_expression "iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8)" (identifier "iVar17") (= "=") (unary_expression "-((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8)" (- "-") (parenthesized_expression "((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8)" (( "(") (binary_expression "(int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8" (binary_expression "(int)(pbVar19 + 1) * 4 + 7U" (binary_expression "(int)(pbVar19 + 1) * 4" (cast_expression "(int)(pbVar19 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar19 + 1)" (( "(") (binary_expression "pbVar19 + 1" (identifier "pbVar19") (+ "+") (number_literal "1")) () ")"))) (* "*") (number_literal "4")) (+ "+") (number_literal "7U")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar15 = puVar26 + iVar17 + 0x18;" (assignment_expression "puVar15 = puVar26 + iVar17 + 0x18" (identifier "puVar15") (= "=") (binary_expression "puVar26 + iVar17 + 0x18" (binary_expression "puVar26 + iVar17" (identifier "puVar26") (+ "+") (identifier "iVar17")) (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "puVar26 = puVar26 + iVar17;" (assignment_expression "puVar26 = puVar26 + iVar17" (identifier "puVar26") (= "=") (binary_expression "puVar26 + iVar17" (identifier "puVar26") (+ "+") (identifier "iVar17"))) (; ";")) (} "}")) (else_clause "else {\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }" (else "else") (compound_statement "{\n          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n        }" ({ "{") (expression_statement "puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);" (assignment_expression "puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (identifier "puVar15") (= "=") (cast_expression "(undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" (( "(") (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" (* "*") (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmp_tmp_reentrant_alloc_0009d2f0"))) () ")")) (argument_list "(&local_30)" (( "(") (pointer_expression "&local_30" (& "&") (identifier "local_30")) () ")"))))) (; ";")) (} "}")))) (expression_statement "iVar17 = ((int)pbVar19 - (int)local_4c) * 4;" (assignment_expression "iVar17 = ((int)pbVar19 - (int)local_4c) * 4" (identifier "iVar17") (= "=") (binary_expression "((int)pbVar19 - (int)local_4c) * 4" (parenthesized_expression "((int)pbVar19 - (int)local_4c)" (( "(") (binary_expression "(int)pbVar19 - (int)local_4c" (cast_expression "(int)pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar19")) (- "-") (cast_expression "(int)local_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c"))) () ")")) (* "*") (number_literal "4"))) (; ";")) (expression_statement "pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17);" (assignment_expression "pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17)" (identifier "pbVar14") (= "=") (cast_expression "(byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17)" (parenthesized_expression "(*(code *)PTR_memset_0009d2e8)" (( "(") (pointer_expression "*(code *)PTR_memset_0009d2e8" (* "*") (cast_expression "(code *)PTR_memset_0009d2e8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memset_0009d2e8"))) () ")")) (argument_list "(puVar15,0,iVar17)" (( "(") (identifier "puVar15") (, ",") (number_literal "0") (, ",") (identifier "iVar17") () ")"))))) (; ";")) (if_statement "if (local_4c != (byte *)0x0) {\n          pbVar16 = local_4c + -1;\n          pbVar8 = pbVar14 + iVar17;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar6 = pbVar8;\n          if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }\n          *(undefined4 *)pbVar8 = uVar12;\n        }" (if "if") (parenthesized_expression "(local_4c != (byte *)0x0)" (( "(") (binary_expression "local_4c != (byte *)0x0" (identifier "local_4c") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          pbVar16 = local_4c + -1;\n          pbVar8 = pbVar14 + iVar17;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar6 = pbVar8;\n          if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }\n          *(undefined4 *)pbVar8 = uVar12;\n        }" ({ "{") (expression_statement "pbVar16 = local_4c + -1;" (assignment_expression "pbVar16 = local_4c + -1" (identifier "pbVar16") (= "=") (binary_expression "local_4c + -1" (identifier "local_4c") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pbVar8 = pbVar14 + iVar17;" (assignment_expression "pbVar8 = pbVar14 + iVar17" (identifier "pbVar8") (= "=") (binary_expression "pbVar14 + iVar17" (identifier "pbVar14") (+ "+") (identifier "iVar17"))) (; ";")) (expression_statement "uVar12 = *(undefined4 *)local_3c;" (assignment_expression "uVar12 = *(undefined4 *)local_3c" (identifier "uVar12") (= "=") (pointer_expression "*(undefined4 *)local_3c" (* "*") (cast_expression "(undefined4 *)local_3c" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c")))) (; ";")) (expression_statement "pbVar6 = pbVar8;" (assignment_expression "pbVar6 = pbVar8" (identifier "pbVar6") (= "=") (identifier "pbVar8")) (; ";")) (if_statement "if (pbVar16 != (byte *)0x0) {\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }" (if "if") (parenthesized_expression "(pbVar16 != (byte *)0x0)" (( "(") (binary_expression "pbVar16 != (byte *)0x0" (identifier "pbVar16") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);\n            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;\n          }" ({ "{") (do_statement "do {\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            } while (pbVar16 != (byte *)0x0);" (do "do") (compound_statement "{\n              local_3c = local_3c + 4;\n              *(undefined4 *)pbVar6 = uVar12;\n              pbVar16 = pbVar16 + -1;\n              uVar12 = *(undefined4 *)local_3c;\n              pbVar6 = pbVar6 + 4;\n            }" ({ "{") (expression_statement "local_3c = local_3c + 4;" (assignment_expression "local_3c = local_3c + 4" (identifier "local_3c") (= "=") (binary_expression "local_3c + 4" (identifier "local_3c") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "*(undefined4 *)pbVar6 = uVar12;" (assignment_expression "*(undefined4 *)pbVar6 = uVar12" (pointer_expression "*(undefined4 *)pbVar6" (* "*") (cast_expression "(undefined4 *)pbVar6" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar6"))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "pbVar16 = pbVar16 + -1;" (assignment_expression "pbVar16 = pbVar16 + -1" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + -1" (identifier "pbVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar12 = *(undefined4 *)local_3c;" (assignment_expression "uVar12 = *(undefined4 *)local_3c" (identifier "uVar12") (= "=") (pointer_expression "*(undefined4 *)local_3c" (* "*") (cast_expression "(undefined4 *)local_3c" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c")))) (; ";")) (expression_statement "pbVar6 = pbVar6 + 4;" (assignment_expression "pbVar6 = pbVar6 + 4" (identifier "pbVar6") (= "=") (binary_expression "pbVar6 + 4" (identifier "pbVar6") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar16 != (byte *)0x0)" (( "(") (binary_expression "pbVar16 != (byte *)0x0" (identifier "pbVar16") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "pbVar8 = pbVar8 + (int)local_4c * 4 + -4;" (assignment_expression "pbVar8 = pbVar8 + (int)local_4c * 4 + -4" (identifier "pbVar8") (= "=") (binary_expression "pbVar8 + (int)local_4c * 4 + -4" (binary_expression "pbVar8 + (int)local_4c * 4" (identifier "pbVar8") (+ "+") (binary_expression "(int)local_4c * 4" (cast_expression "(int)local_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-4"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)pbVar8 = uVar12;" (assignment_expression "*(undefined4 *)pbVar8 = uVar12" (pointer_expression "*(undefined4 *)pbVar8" (* "*") (cast_expression "(undefined4 *)pbVar8" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar8"))) (= "=") (identifier "uVar12")) (; ";")) (} "}"))) (expression_statement "local_54 = local_54 - ((int)pbVar19 - (int)local_4c);" (assignment_expression "local_54 = local_54 - ((int)pbVar19 - (int)local_4c)" (identifier "local_54") (= "=") (binary_expression "local_54 - ((int)pbVar19 - (int)local_4c)" (identifier "local_54") (- "-") (parenthesized_expression "((int)pbVar19 - (int)local_4c)" (( "(") (binary_expression "(int)pbVar19 - (int)local_4c" (cast_expression "(int)pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar19")) (- "-") (cast_expression "(int)local_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c"))) () ")")))) (; ";")) (expression_statement "local_4c = pbVar19;" (assignment_expression "local_4c = pbVar19" (identifier "local_4c") (= "=") (identifier "pbVar19")) (; ";")) (expression_statement "local_3c = pbVar14;" (assignment_expression "local_3c = pbVar14" (identifier "local_3c") (= "=") (identifier "pbVar14")) (; ";")) (} "}"))) (expression_statement "uVar22 = *(uint *)(local_50 + (int)pbVar19 * 4 + -4);" (assignment_expression "uVar22 = *(uint *)(local_50 + (int)pbVar19 * 4 + -4)" (identifier "uVar22") (= "=") (pointer_expression "*(uint *)(local_50 + (int)pbVar19 * 4 + -4)" (* "*") (cast_expression "(uint *)(local_50 + (int)pbVar19 * 4 + -4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50 + (int)pbVar19 * 4 + -4)" (( "(") (binary_expression "local_50 + (int)pbVar19 * 4 + -4" (binary_expression "local_50 + (int)pbVar19 * 4" (identifier "local_50") (+ "+") (binary_expression "(int)pbVar19 * 4" (cast_expression "(int)pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar19")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-4")) () ")"))))) (; ";")) (if_statement "if (-1 < (int)uVar22) {\n        if (uVar22 < 0x10000) {\n          iVar17 = 0x20;\n          if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }\n          iVar13 = 9;\n          if (0xff >= uVar22) {\n            iVar13 = 1;\n          }\n        }\n        else {\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }\n        bVar11 = puVar21[uVar22 >> iVar13];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11);\n        iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11);\n        if (iVar17 != 0) {\n          iVar13 = (int)local_4c * 4;\n          local_4c = local_4c + 1;\n          *(int *)(local_3c + iVar13) = iVar17;\n        }\n      }" (if "if") (parenthesized_expression "(-1 < (int)uVar22)" (( "(") (binary_expression "-1 < (int)uVar22" (number_literal "-1") (< "<") (cast_expression "(int)uVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar22"))) () ")")) (compound_statement "{\n        if (uVar22 < 0x10000) {\n          iVar17 = 0x20;\n          if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }\n          iVar13 = 9;\n          if (0xff >= uVar22) {\n            iVar13 = 1;\n          }\n        }\n        else {\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }\n        bVar11 = puVar21[uVar22 >> iVar13];\n        (*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11);\n        iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11);\n        if (iVar17 != 0) {\n          iVar13 = (int)local_4c * 4;\n          local_4c = local_4c + 1;\n          *(int *)(local_3c + iVar13) = iVar17;\n        }\n      }" ({ "{") (if_statement "if (uVar22 < 0x10000) {\n          iVar17 = 0x20;\n          if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }\n          iVar13 = 9;\n          if (0xff >= uVar22) {\n            iVar13 = 1;\n          }\n        }\n        else {\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }" (if "if") (parenthesized_expression "(uVar22 < 0x10000)" (( "(") (binary_expression "uVar22 < 0x10000" (identifier "uVar22") (< "<") (number_literal "0x10000")) () ")")) (compound_statement "{\n          iVar17 = 0x20;\n          if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }\n          iVar13 = 9;\n          if (0xff >= uVar22) {\n            iVar13 = 1;\n          }\n        }" ({ "{") (expression_statement "iVar17 = 0x20;" (assignment_expression "iVar17 = 0x20" (identifier "iVar17") (= "=") (number_literal "0x20")) (; ";")) (if_statement "if (0xff < uVar22) {\n            iVar17 = 0x18;\n          }" (if "if") (parenthesized_expression "(0xff < uVar22)" (( "(") (binary_expression "0xff < uVar22" (number_literal "0xff") (< "<") (identifier "uVar22")) () ")")) (compound_statement "{\n            iVar17 = 0x18;\n          }" ({ "{") (expression_statement "iVar17 = 0x18;" (assignment_expression "iVar17 = 0x18" (identifier "iVar17") (= "=") (number_literal "0x18")) (; ";")) (} "}"))) (expression_statement "iVar13 = 9;" (assignment_expression "iVar13 = 9" (identifier "iVar13") (= "=") (number_literal "9")) (; ";")) (if_statement "if (0xff >= uVar22) {\n            iVar13 = 1;\n          }" (if "if") (parenthesized_expression "(0xff >= uVar22)" (( "(") (binary_expression "0xff >= uVar22" (number_literal "0xff") (>= ">=") (identifier "uVar22")) () ")")) (compound_statement "{\n            iVar13 = 1;\n          }" ({ "{") (expression_statement "iVar13 = 1;" (assignment_expression "iVar13 = 1" (identifier "iVar13") (= "=") (number_literal "1")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }" (else "else") (compound_statement "{\n          iVar17 = 0x10;\n          if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }\n          iVar13 = 0x19;\n          if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }\n        }" ({ "{") (expression_statement "iVar17 = 0x10;" (assignment_expression "iVar17 = 0x10" (identifier "iVar17") (= "=") (number_literal "0x10")) (; ";")) (if_statement "if (0xffffff < uVar22) {\n            iVar17 = 8;\n          }" (if "if") (parenthesized_expression "(0xffffff < uVar22)" (( "(") (binary_expression "0xffffff < uVar22" (number_literal "0xffffff") (< "<") (identifier "uVar22")) () ")")) (compound_statement "{\n            iVar17 = 8;\n          }" ({ "{") (expression_statement "iVar17 = 8;" (assignment_expression "iVar17 = 8" (identifier "iVar17") (= "=") (number_literal "8")) (; ";")) (} "}"))) (expression_statement "iVar13 = 0x19;" (assignment_expression "iVar13 = 0x19" (identifier "iVar13") (= "=") (number_literal "0x19")) (; ";")) (if_statement "if (0xffffff >= uVar22) {\n            iVar13 = 0x11;\n          }" (if "if") (parenthesized_expression "(0xffffff >= uVar22)" (( "(") (binary_expression "0xffffff >= uVar22" (number_literal "0xffffff") (>= ">=") (identifier "uVar22")) () ")")) (compound_statement "{\n            iVar13 = 0x11;\n          }" ({ "{") (expression_statement "iVar13 = 0x11;" (assignment_expression "iVar13 = 0x11" (identifier "iVar13") (= "=") (number_literal "0x11")) (; ";")) (} "}"))) (} "}")))) (expression_statement "bVar11 = puVar21[uVar22 >> iVar13];" (assignment_expression "bVar11 = puVar21[uVar22 >> iVar13]" (identifier "bVar11") (= "=") (subscript_expression "puVar21[uVar22 >> iVar13]" (identifier "puVar21") ([ "[") (binary_expression "uVar22 >> iVar13" (identifier "uVar22") (>> ">>") (identifier "iVar13")) (] "]"))) (; ";")) (expression_statement "(*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11);" (call_expression "(*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009d56c)" (( "(") (pointer_expression "*(code *)PTR___gmpn_lshift_0009d56c" (* "*") (cast_expression "(code *)PTR___gmpn_lshift_0009d56c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_lshift_0009d56c"))) () ")")) (argument_list "(local_50,local_50,pbVar19,iVar17 - (uint)bVar11)" (( "(") (identifier "local_50") (, ",") (identifier "local_50") (, ",") (identifier "pbVar19") (, ",") (binary_expression "iVar17 - (uint)bVar11" (identifier "iVar17") (- "-") (cast_expression "(uint)bVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar11"))) () ")"))) (; ";")) (expression_statement "iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11);" (assignment_expression "iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11)" (identifier "iVar17") (= "=") (call_expression "(*(code *)PTR___gmpn_lshift_0009d56c)\n                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11)" (parenthesized_expression "(*(code *)PTR___gmpn_lshift_0009d56c)" (( "(") (pointer_expression "*(code *)PTR___gmpn_lshift_0009d56c" (* "*") (cast_expression "(code *)PTR___gmpn_lshift_0009d56c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_lshift_0009d56c"))) () ")")) (argument_list "(local_3c,local_3c,local_4c,iVar17 - (uint)bVar11)" (( "(") (identifier "local_3c") (, ",") (identifier "local_3c") (, ",") (identifier "local_4c") (, ",") (binary_expression "iVar17 - (uint)bVar11" (identifier "iVar17") (- "-") (cast_expression "(uint)bVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar11"))) () ")")))) (; ";")) (if_statement "if (iVar17 != 0) {\n          iVar13 = (int)local_4c * 4;\n          local_4c = local_4c + 1;\n          *(int *)(local_3c + iVar13) = iVar17;\n        }" (if "if") (parenthesized_expression "(iVar17 != 0)" (( "(") (binary_expression "iVar17 != 0" (identifier "iVar17") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar13 = (int)local_4c * 4;\n          local_4c = local_4c + 1;\n          *(int *)(local_3c + iVar13) = iVar17;\n        }" ({ "{") (expression_statement "iVar13 = (int)local_4c * 4;" (assignment_expression "iVar13 = (int)local_4c * 4" (identifier "iVar13") (= "=") (binary_expression "(int)local_4c * 4" (cast_expression "(int)local_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c")) (* "*") (number_literal "4"))) (; ";")) (expression_statement "local_4c = local_4c + 1;" (assignment_expression "local_4c = local_4c + 1" (identifier "local_4c") (= "=") (binary_expression "local_4c + 1" (identifier "local_4c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(local_3c + iVar13) = iVar17;" (assignment_expression "*(int *)(local_3c + iVar13) = iVar17" (pointer_expression "*(int *)(local_3c + iVar13)" (* "*") (cast_expression "(int *)(local_3c + iVar13)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_3c + iVar13)" (( "(") (binary_expression "local_3c + iVar13" (identifier "local_3c") (+ "+") (identifier "iVar13")) () ")")))) (= "=") (identifier "iVar17")) (; ";")) (} "}"))) (} "}"))) (if_statement "if ((uint)(iVar4 * 4) < 0x7f01) {\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      }" (if "if") (parenthesized_expression "((uint)(iVar4 * 4) < 0x7f01)" (( "(") (binary_expression "(uint)(iVar4 * 4) < 0x7f01" (call_expression "(uint)(iVar4 * 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar4 * 4)" (( "(") (binary_expression "iVar4 * 4" (identifier "iVar4") (* "*") (number_literal "4")) () ")"))) (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }" ({ "{") (expression_statement "iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);" (assignment_expression "iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8)" (identifier "iVar4") (= "=") (unary_expression "-(iVar4 * 4 + 7U & 0xfffffff8)" (- "-") (parenthesized_expression "(iVar4 * 4 + 7U & 0xfffffff8)" (( "(") (binary_expression "iVar4 * 4 + 7U & 0xfffffff8" (binary_expression "iVar4 * 4 + 7U" (binary_expression "iVar4 * 4" (identifier "iVar4") (* "*") (number_literal "4")) (+ "+") (number_literal "7U")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);" (assignment_expression "puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18)" (identifier "puVar20") (= "=") (cast_expression "(undefined4 *)(puVar26 + iVar4 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + iVar4 + 0x18)" (( "(") (binary_expression "puVar26 + iVar4 + 0x18" (binary_expression "puVar26 + iVar4" (identifier "puVar26") (+ "+") (identifier "iVar4")) (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "puVar26 = puVar26 + iVar4;" (assignment_expression "puVar26 = puVar26 + iVar4" (identifier "puVar26") (= "=") (binary_expression "puVar26 + iVar4" (identifier "puVar26") (+ "+") (identifier "iVar4"))) (; ";")) (} "}")) (else_clause "else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      }" (else "else") (compound_statement "{\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n      }" ({ "{") (expression_statement "puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);" (assignment_expression "puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (identifier "puVar20") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" (( "(") (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" (* "*") (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmp_tmp_reentrant_alloc_0009d2f0"))) () ")")) (argument_list "(&local_30)" (( "(") (pointer_expression "&local_30" (& "&") (identifier "local_30")) () ")"))))) (; ";")) (} "}")))) (expression_statement "iVar17 = (int)local_4c - (int)pbVar19;" (assignment_expression "iVar17 = (int)local_4c - (int)pbVar19" (identifier "iVar17") (= "=") (binary_expression "(int)local_4c - (int)pbVar19" (cast_expression "(int)local_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c")) (- "-") (cast_expression "(int)pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar19")))) (; ";")) (expression_statement "*(byte **)(puVar26 + 0x14) = pbVar19;" (assignment_expression "*(byte **)(puVar26 + 0x14) = pbVar19" (pointer_expression "*(byte **)(puVar26 + 0x14)" (* "*") (cast_expression "(byte **)(puVar26 + 0x14)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + 0x14)" (( "(") (binary_expression "puVar26 + 0x14" (identifier "puVar26") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "pbVar19")) (; ";")) (expression_statement "*(byte **)(puVar26 + 0x10) = local_50;" (assignment_expression "*(byte **)(puVar26 + 0x10) = local_50" (pointer_expression "*(byte **)(puVar26 + 0x10)" (* "*") (cast_expression "(byte **)(puVar26 + 0x10)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + 0x10)" (( "(") (binary_expression "puVar26 + 0x10" (identifier "puVar26") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (expression_statement "iVar4 = (*(code *)PTR___gmpn_divrem_0009d0e4)(puVar20,(int)param_2 - iVar17);" (assignment_expression "iVar4 = (*(code *)PTR___gmpn_divrem_0009d0e4)(puVar20,(int)param_2 - iVar17)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR___gmpn_divrem_0009d0e4)(puVar20,(int)param_2 - iVar17)" (parenthesized_expression "(*(code *)PTR___gmpn_divrem_0009d0e4)" (( "(") (pointer_expression "*(code *)PTR___gmpn_divrem_0009d0e4" (* "*") (cast_expression "(code *)PTR___gmpn_divrem_0009d0e4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_divrem_0009d0e4"))) () ")")) (argument_list "(puVar20,(int)param_2 - iVar17)" (( "(") (identifier "puVar20") (, ",") (binary_expression "(int)param_2 - iVar17" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (- "-") (identifier "iVar17")) () ")")))) (; ";")) (expression_statement "pbVar14 = (byte *)((local_54 - iVar10) + iVar17 + iVar4);" (assignment_expression "pbVar14 = (byte *)((local_54 - iVar10) + iVar17 + iVar4)" (identifier "pbVar14") (= "=") (cast_expression "(byte *)((local_54 - iVar10) + iVar17 + iVar4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((local_54 - iVar10) + iVar17 + iVar4)" (( "(") (binary_expression "(local_54 - iVar10) + iVar17 + iVar4" (binary_expression "(local_54 - iVar10) + iVar17" (parenthesized_expression "(local_54 - iVar10)" (( "(") (binary_expression "local_54 - iVar10" (identifier "local_54") (- "-") (identifier "iVar10")) () ")")) (+ "+") (identifier "iVar17")) (+ "+") (identifier "iVar4")) () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n        piVar5 = puVar20 + (int)param_2;\n        puVar20 = puVar20 + 1;\n        *piVar5 = iVar4;\n      }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        piVar5 = puVar20 + (int)param_2;\n        puVar20 = puVar20 + 1;\n        *piVar5 = iVar4;\n      }" ({ "{") (expression_statement "piVar5 = puVar20 + (int)param_2;" (assignment_expression "piVar5 = puVar20 + (int)param_2" (identifier "piVar5") (= "=") (binary_expression "puVar20 + (int)param_2" (identifier "puVar20") (+ "+") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")))) (; ";")) (expression_statement "puVar20 = puVar20 + 1;" (assignment_expression "puVar20 = puVar20 + 1" (identifier "puVar20") (= "=") (binary_expression "puVar20 + 1" (identifier "puVar20") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*piVar5 = iVar4;" (assignment_expression "*piVar5 = iVar4" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (= "=") (identifier "iVar4")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      pbVar3 = pbVar19 + (int)local_4c;\n      uVar22 = (int)pbVar3 * 4;\n      if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      }\n      if ((int)local_4c < (int)pbVar19) {\n        *(byte **)(puVar26 + 0x10) = local_4c;\n        local_4c = local_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);\n        local_3c = pbVar19;\n      }\n      else {\n        *(byte **)(puVar26 + 0x10) = pbVar19;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);\n        local_3c = local_4c;\n        local_4c = local_50;\n      }\n      pbVar3 = pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0);\n      pbVar14 = pbVar3 + iVar10 + local_54;\n      if ((int)param_2 < (int)pbVar3) {\n        puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);\n        pbVar3 = param_2;\n      }\n    }" (else "else") (compound_statement "{\n      pbVar3 = pbVar19 + (int)local_4c;\n      uVar22 = (int)pbVar3 * 4;\n      if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      }\n      if ((int)local_4c < (int)pbVar19) {\n        *(byte **)(puVar26 + 0x10) = local_4c;\n        local_4c = local_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);\n        local_3c = pbVar19;\n      }\n      else {\n        *(byte **)(puVar26 + 0x10) = pbVar19;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);\n        local_3c = local_4c;\n        local_4c = local_50;\n      }\n      pbVar3 = pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0);\n      pbVar14 = pbVar3 + iVar10 + local_54;\n      if ((int)param_2 < (int)pbVar3) {\n        puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);\n        pbVar3 = param_2;\n      }\n    }" ({ "{") (expression_statement "pbVar3 = pbVar19 + (int)local_4c;" (assignment_expression "pbVar3 = pbVar19 + (int)local_4c" (identifier "pbVar3") (= "=") (binary_expression "pbVar19 + (int)local_4c" (identifier "pbVar19") (+ "+") (cast_expression "(int)local_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c")))) (; ";")) (expression_statement "uVar22 = (int)pbVar3 * 4;" (assignment_expression "uVar22 = (int)pbVar3 * 4" (identifier "uVar22") (= "=") (binary_expression "(int)pbVar3 * 4" (cast_expression "(int)pbVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar3")) (* "*") (number_literal "4"))) (; ";")) (if_statement "if (uVar22 < 0x7f01) {\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }\n      else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      }" (if "if") (parenthesized_expression "(uVar22 < 0x7f01)" (( "(") (binary_expression "uVar22 < 0x7f01" (identifier "uVar22") (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n        iVar4 = -(uVar22 + 7 & 0xfffffff8);\n        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);\n        puVar26 = puVar26 + iVar4;\n      }" ({ "{") (expression_statement "iVar4 = -(uVar22 + 7 & 0xfffffff8);" (assignment_expression "iVar4 = -(uVar22 + 7 & 0xfffffff8)" (identifier "iVar4") (= "=") (unary_expression "-(uVar22 + 7 & 0xfffffff8)" (- "-") (parenthesized_expression "(uVar22 + 7 & 0xfffffff8)" (( "(") (binary_expression "uVar22 + 7 & 0xfffffff8" (binary_expression "uVar22 + 7" (identifier "uVar22") (+ "+") (number_literal "7")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);" (assignment_expression "puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18)" (identifier "puVar20") (= "=") (cast_expression "(undefined4 *)(puVar26 + iVar4 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + iVar4 + 0x18)" (( "(") (binary_expression "puVar26 + iVar4 + 0x18" (binary_expression "puVar26 + iVar4" (identifier "puVar26") (+ "+") (identifier "iVar4")) (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "puVar26 = puVar26 + iVar4;" (assignment_expression "puVar26 = puVar26 + iVar4" (identifier "puVar26") (= "=") (binary_expression "puVar26 + iVar4" (identifier "puVar26") (+ "+") (identifier "iVar4"))) (; ";")) (} "}")) (else_clause "else {\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      }" (else "else") (compound_statement "{\n        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);\n      }" ({ "{") (expression_statement "puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);" (assignment_expression "puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22)" (identifier "puVar20") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" (( "(") (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" (* "*") (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmp_tmp_reentrant_alloc_0009d2f0"))) () ")")) (argument_list "(&local_30,uVar22)" (( "(") (pointer_expression "&local_30" (& "&") (identifier "local_30")) (, ",") (identifier "uVar22") () ")"))))) (; ";")) (} "}")))) (if_statement "if ((int)local_4c < (int)pbVar19) {\n        *(byte **)(puVar26 + 0x10) = local_4c;\n        local_4c = local_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);\n        local_3c = pbVar19;\n      }\n      else {\n        *(byte **)(puVar26 + 0x10) = pbVar19;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);\n        local_3c = local_4c;\n        local_4c = local_50;\n      }" (if "if") (parenthesized_expression "((int)local_4c < (int)pbVar19)" (( "(") (binary_expression "(int)local_4c < (int)pbVar19" (cast_expression "(int)local_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c")) (< "<") (cast_expression "(int)pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar19"))) () ")")) (compound_statement "{\n        *(byte **)(puVar26 + 0x10) = local_4c;\n        local_4c = local_3c;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);\n        local_3c = pbVar19;\n      }" ({ "{") (expression_statement "*(byte **)(puVar26 + 0x10) = local_4c;" (assignment_expression "*(byte **)(puVar26 + 0x10) = local_4c" (pointer_expression "*(byte **)(puVar26 + 0x10)" (* "*") (cast_expression "(byte **)(puVar26 + 0x10)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + 0x10)" (( "(") (binary_expression "puVar26 + 0x10" (identifier "puVar26") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "local_4c")) (; ";")) (expression_statement "local_4c = local_3c;" (assignment_expression "local_4c = local_3c" (identifier "local_4c") (= "=") (identifier "local_3c")) (; ";")) (expression_statement "(*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);" (call_expression "(*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_0009d2b4)" (( "(") (pointer_expression "*(code *)PTR___gmpn_mul_0009d2b4" (* "*") (cast_expression "(code *)PTR___gmpn_mul_0009d2b4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_mul_0009d2b4"))) () ")")) (argument_list "(puVar20,local_50)" (( "(") (identifier "puVar20") (, ",") (identifier "local_50") () ")"))) (; ";")) (expression_statement "local_3c = pbVar19;" (assignment_expression "local_3c = pbVar19" (identifier "local_3c") (= "=") (identifier "pbVar19")) (; ";")) (} "}")) (else_clause "else {\n        *(byte **)(puVar26 + 0x10) = pbVar19;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);\n        local_3c = local_4c;\n        local_4c = local_50;\n      }" (else "else") (compound_statement "{\n        *(byte **)(puVar26 + 0x10) = pbVar19;\n        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);\n        local_3c = local_4c;\n        local_4c = local_50;\n      }" ({ "{") (expression_statement "*(byte **)(puVar26 + 0x10) = pbVar19;" (assignment_expression "*(byte **)(puVar26 + 0x10) = pbVar19" (pointer_expression "*(byte **)(puVar26 + 0x10)" (* "*") (cast_expression "(byte **)(puVar26 + 0x10)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + 0x10)" (( "(") (binary_expression "puVar26 + 0x10" (identifier "puVar26") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "pbVar19")) (; ";")) (expression_statement "(*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);" (call_expression "(*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c)" (parenthesized_expression "(*(code *)PTR___gmpn_mul_0009d2b4)" (( "(") (pointer_expression "*(code *)PTR___gmpn_mul_0009d2b4" (* "*") (cast_expression "(code *)PTR___gmpn_mul_0009d2b4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_mul_0009d2b4"))) () ")")) (argument_list "(puVar20,local_3c)" (( "(") (identifier "puVar20") (, ",") (identifier "local_3c") () ")"))) (; ";")) (expression_statement "local_3c = local_4c;" (assignment_expression "local_3c = local_4c" (identifier "local_3c") (= "=") (identifier "local_4c")) (; ";")) (expression_statement "local_4c = local_50;" (assignment_expression "local_4c = local_50" (identifier "local_4c") (= "=") (identifier "local_50")) (; ";")) (} "}")))) (expression_statement "pbVar3 = pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0);" (assignment_expression "pbVar3 = pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0)" (identifier "pbVar3") (= "=") (binary_expression "pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0)" (identifier "pbVar3") (+ "+") (unary_expression "-(uint)(puVar20[(int)(pbVar3 + -1)] == 0)" (- "-") (call_expression "(uint)(puVar20[(int)(pbVar3 + -1)] == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar20[(int)(pbVar3 + -1)] == 0)" (( "(") (binary_expression "puVar20[(int)(pbVar3 + -1)] == 0" (subscript_expression "puVar20[(int)(pbVar3 + -1)]" (identifier "puVar20") ([ "[") (cast_expression "(int)(pbVar3 + -1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar3 + -1)" (( "(") (binary_expression "pbVar3 + -1" (identifier "pbVar3") (+ "+") (number_literal "-1")) () ")"))) (] "]")) (== "==") (number_literal "0")) () ")")))))) (; ";")) (expression_statement "pbVar14 = pbVar3 + iVar10 + local_54;" (assignment_expression "pbVar14 = pbVar3 + iVar10 + local_54" (identifier "pbVar14") (= "=") (binary_expression "pbVar3 + iVar10 + local_54" (binary_expression "pbVar3 + iVar10" (identifier "pbVar3") (+ "+") (identifier "iVar10")) (+ "+") (identifier "local_54"))) (; ";")) (if_statement "if ((int)param_2 < (int)pbVar3) {\n        puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);\n        pbVar3 = param_2;\n      }" (if "if") (parenthesized_expression "((int)param_2 < (int)pbVar3)" (( "(") (binary_expression "(int)param_2 < (int)pbVar3" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (< "<") (cast_expression "(int)pbVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar3"))) () ")")) (compound_statement "{\n        puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);\n        pbVar3 = param_2;\n      }" ({ "{") (expression_statement "puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);" (assignment_expression "puVar20 = puVar20 + ((int)pbVar3 - (int)param_2)" (identifier "puVar20") (= "=") (binary_expression "puVar20 + ((int)pbVar3 - (int)param_2)" (identifier "puVar20") (+ "+") (parenthesized_expression "((int)pbVar3 - (int)param_2)" (( "(") (binary_expression "(int)pbVar3 - (int)param_2" (cast_expression "(int)pbVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar3")) (- "-") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")")))) (; ";")) (expression_statement "pbVar3 = param_2;" (assignment_expression "pbVar3 = param_2" (identifier "pbVar3") (= "=") (identifier "param_2")) (; ";")) (} "}"))) (} "}")))) (if_statement "if (pbVar3 != (byte *)0x0) {\n      pbVar6 = pbVar3 + -1;\n      uVar12 = *puVar20;\n      local_3c = (byte *)param_1[3];\n      pbVar19 = local_3c;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          puVar20 = puVar20 + 1;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *puVar20;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        local_3c = local_3c + (int)pbVar3 * 4 + -4;\n      }\n      *(undefined4 *)local_3c = uVar12;\n    }" (if "if") (parenthesized_expression "(pbVar3 != (byte *)0x0)" (( "(") (binary_expression "pbVar3 != (byte *)0x0" (identifier "pbVar3") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pbVar6 = pbVar3 + -1;\n      uVar12 = *puVar20;\n      local_3c = (byte *)param_1[3];\n      pbVar19 = local_3c;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          puVar20 = puVar20 + 1;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *puVar20;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        local_3c = local_3c + (int)pbVar3 * 4 + -4;\n      }\n      *(undefined4 *)local_3c = uVar12;\n    }" ({ "{") (expression_statement "pbVar6 = pbVar3 + -1;" (assignment_expression "pbVar6 = pbVar3 + -1" (identifier "pbVar6") (= "=") (binary_expression "pbVar3 + -1" (identifier "pbVar3") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar12 = *puVar20;" (assignment_expression "uVar12 = *puVar20" (identifier "uVar12") (= "=") (pointer_expression "*puVar20" (* "*") (identifier "puVar20"))) (; ";")) (expression_statement "local_3c = (byte *)param_1[3];" (assignment_expression "local_3c = (byte *)param_1[3]" (identifier "local_3c") (= "=") (cast_expression "(byte *)param_1[3]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "pbVar19 = local_3c;" (assignment_expression "pbVar19 = local_3c" (identifier "pbVar19") (= "=") (identifier "local_3c")) (; ";")) (if_statement "if (pbVar6 != (byte *)0x0) {\n        do {\n          puVar20 = puVar20 + 1;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *puVar20;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        local_3c = local_3c + (int)pbVar3 * 4 + -4;\n      }" (if "if") (parenthesized_expression "(pbVar6 != (byte *)0x0)" (( "(") (binary_expression "pbVar6 != (byte *)0x0" (identifier "pbVar6") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        do {\n          puVar20 = puVar20 + 1;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *puVar20;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        local_3c = local_3c + (int)pbVar3 * 4 + -4;\n      }" ({ "{") (do_statement "do {\n          puVar20 = puVar20 + 1;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *puVar20;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);" (do "do") (compound_statement "{\n          puVar20 = puVar20 + 1;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *puVar20;\n          pbVar19 = pbVar19 + 4;\n        }" ({ "{") (expression_statement "puVar20 = puVar20 + 1;" (assignment_expression "puVar20 = puVar20 + 1" (identifier "puVar20") (= "=") (binary_expression "puVar20 + 1" (identifier "puVar20") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined4 *)pbVar19 = uVar12;" (assignment_expression "*(undefined4 *)pbVar19 = uVar12" (pointer_expression "*(undefined4 *)pbVar19" (* "*") (cast_expression "(undefined4 *)pbVar19" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar19"))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "pbVar6 = pbVar6 + -1;" (assignment_expression "pbVar6 = pbVar6 + -1" (identifier "pbVar6") (= "=") (binary_expression "pbVar6 + -1" (identifier "pbVar6") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar12 = *puVar20;" (assignment_expression "uVar12 = *puVar20" (identifier "uVar12") (= "=") (pointer_expression "*puVar20" (* "*") (identifier "puVar20"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + 4;" (assignment_expression "pbVar19 = pbVar19 + 4" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + 4" (identifier "pbVar19") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar6 != (byte *)0x0)" (( "(") (binary_expression "pbVar6 != (byte *)0x0" (identifier "pbVar6") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "local_3c = local_3c + (int)pbVar3 * 4 + -4;" (assignment_expression "local_3c = local_3c + (int)pbVar3 * 4 + -4" (identifier "local_3c") (= "=") (binary_expression "local_3c + (int)pbVar3 * 4 + -4" (binary_expression "local_3c + (int)pbVar3 * 4" (identifier "local_3c") (+ "+") (binary_expression "(int)pbVar3 * 4" (cast_expression "(int)pbVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar3")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-4"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)local_3c = uVar12;" (assignment_expression "*(undefined4 *)local_3c = uVar12" (pointer_expression "*(undefined4 *)local_3c" (* "*") (cast_expression "(undefined4 *)local_3c" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c"))) (= "=") (identifier "uVar12")) (; ";")) (} "}"))) (if_statement "if (bVar1) {\n      pbVar3 = (byte *)-(int)pbVar3;\n    }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n      pbVar3 = (byte *)-(int)pbVar3;\n    }" ({ "{") (expression_statement "pbVar3 = (byte *)-(int)pbVar3;" (assignment_expression "pbVar3 = (byte *)-(int)pbVar3" (identifier "pbVar3") (= "=") (cast_expression "(byte *)-(int)pbVar3" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (unary_expression "-(int)pbVar3" (- "-") (cast_expression "(int)pbVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar3"))))) (; ";")) (} "}"))) (expression_statement "param_1[1] = (int)pbVar3;" (assignment_expression "param_1[1] = (int)pbVar3" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int)pbVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar3"))) (; ";")) (expression_statement "param_1[2] = (int)pbVar14;" (assignment_expression "param_1[2] = (int)pbVar14" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int)pbVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar14"))) (; ";")) (expression_statement "pbVar14 = local_3c;" (assignment_expression "pbVar14 = local_3c" (identifier "pbVar14") (= "=") (identifier "local_3c")) (; ";")) (expression_statement "param_4 = local_4c;" (assignment_expression "param_4 = local_4c" (identifier "param_4") (= "=") (identifier "local_4c")) (; ";")) (expression_statement "param_2 = pbVar3;" (assignment_expression "param_2 = pbVar3" (identifier "param_2") (= "=") (identifier "pbVar3")) (; ";")) (if_statement "if (local_30 == 0) {\n      uVar22 = 0;\n      goto LAB_00018714;\n    }" (if "if") (parenthesized_expression "(local_30 == 0)" (( "(") (binary_expression "local_30 == 0" (identifier "local_30") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar22 = 0;\n      goto LAB_00018714;\n    }" ({ "{") (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" (identifier "uVar22") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00018714;" (goto "goto") (statement_identifier "LAB_00018714") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    local_54 = 0;\n    local_4c = pbVar3;\n    if (pbVar16 != (byte *)0x0) goto LAB_000185a0;\nLAB_000187d0:\n    if (pbVar23 != (byte *)0x0) {\n      local_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }\nLAB_000187e0:\n    if (local_4c != (byte *)0x0) {\n      pbVar6 = local_4c + -1;\n      pbVar14 = (byte *)param_1[3];\n      uVar12 = *(undefined4 *)local_3c;\n      pbVar19 = pbVar14;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;\n      }\n      *(undefined4 *)pbVar14 = uVar12;\n    }\n    if (bVar1) {\n      local_4c = (byte *)-(int)local_4c;\n    }\n    param_1[1] = (int)local_4c;\n    param_1[2] = (int)pbVar3;\n    if (local_30 == 0) goto LAB_000187ac;\n  }" (else "else") (compound_statement "{\n    local_54 = 0;\n    local_4c = pbVar3;\n    if (pbVar16 != (byte *)0x0) goto LAB_000185a0;\nLAB_000187d0:\n    if (pbVar23 != (byte *)0x0) {\n      local_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }\nLAB_000187e0:\n    if (local_4c != (byte *)0x0) {\n      pbVar6 = local_4c + -1;\n      pbVar14 = (byte *)param_1[3];\n      uVar12 = *(undefined4 *)local_3c;\n      pbVar19 = pbVar14;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;\n      }\n      *(undefined4 *)pbVar14 = uVar12;\n    }\n    if (bVar1) {\n      local_4c = (byte *)-(int)local_4c;\n    }\n    param_1[1] = (int)local_4c;\n    param_1[2] = (int)pbVar3;\n    if (local_30 == 0) goto LAB_000187ac;\n  }" ({ "{") (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" (identifier "local_54") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_4c = pbVar3;" (assignment_expression "local_4c = pbVar3" (identifier "local_4c") (= "=") (identifier "pbVar3")) (; ";")) (if_statement "if (pbVar16 != (byte *)0x0) goto LAB_000185a0;" (if "if") (parenthesized_expression "(pbVar16 != (byte *)0x0)" (( "(") (binary_expression "pbVar16 != (byte *)0x0" (identifier "pbVar16") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000185a0;" (goto "goto") (statement_identifier "LAB_000185a0") (; ";"))) (labeled_statement "LAB_000187d0:\n    if (pbVar23 != (byte *)0x0) {\n      local_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }" (statement_identifier "LAB_000187d0") (: ":") (if_statement "if (pbVar23 != (byte *)0x0) {\n      local_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }" (if "if") (parenthesized_expression "(pbVar23 != (byte *)0x0)" (( "(") (binary_expression "pbVar23 != (byte *)0x0" (identifier "pbVar23") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      local_44 = (byte *)0x0;\n      goto LAB_00018628;\n    }" ({ "{") (expression_statement "local_44 = (byte *)0x0;" (assignment_expression "local_44 = (byte *)0x0" (identifier "local_44") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_00018628;" (goto "goto") (statement_identifier "LAB_00018628") (; ";")) (} "}")))) (labeled_statement "LAB_000187e0:\n    if (local_4c != (byte *)0x0) {\n      pbVar6 = local_4c + -1;\n      pbVar14 = (byte *)param_1[3];\n      uVar12 = *(undefined4 *)local_3c;\n      pbVar19 = pbVar14;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;\n      }\n      *(undefined4 *)pbVar14 = uVar12;\n    }" (statement_identifier "LAB_000187e0") (: ":") (if_statement "if (local_4c != (byte *)0x0) {\n      pbVar6 = local_4c + -1;\n      pbVar14 = (byte *)param_1[3];\n      uVar12 = *(undefined4 *)local_3c;\n      pbVar19 = pbVar14;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;\n      }\n      *(undefined4 *)pbVar14 = uVar12;\n    }" (if "if") (parenthesized_expression "(local_4c != (byte *)0x0)" (( "(") (binary_expression "local_4c != (byte *)0x0" (identifier "local_4c") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pbVar6 = local_4c + -1;\n      pbVar14 = (byte *)param_1[3];\n      uVar12 = *(undefined4 *)local_3c;\n      pbVar19 = pbVar14;\n      if (pbVar6 != (byte *)0x0) {\n        do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;\n      }\n      *(undefined4 *)pbVar14 = uVar12;\n    }" ({ "{") (expression_statement "pbVar6 = local_4c + -1;" (assignment_expression "pbVar6 = local_4c + -1" (identifier "pbVar6") (= "=") (binary_expression "local_4c + -1" (identifier "local_4c") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pbVar14 = (byte *)param_1[3];" (assignment_expression "pbVar14 = (byte *)param_1[3]" (identifier "pbVar14") (= "=") (cast_expression "(byte *)param_1[3]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "uVar12 = *(undefined4 *)local_3c;" (assignment_expression "uVar12 = *(undefined4 *)local_3c" (identifier "uVar12") (= "=") (pointer_expression "*(undefined4 *)local_3c" (* "*") (cast_expression "(undefined4 *)local_3c" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c")))) (; ";")) (expression_statement "pbVar19 = pbVar14;" (assignment_expression "pbVar19 = pbVar14" (identifier "pbVar19") (= "=") (identifier "pbVar14")) (; ";")) (if_statement "if (pbVar6 != (byte *)0x0) {\n        do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;\n      }" (if "if") (parenthesized_expression "(pbVar6 != (byte *)0x0)" (( "(") (binary_expression "pbVar6 != (byte *)0x0" (identifier "pbVar6") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);\n        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;\n      }" ({ "{") (do_statement "do {\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        } while (pbVar6 != (byte *)0x0);" (do "do") (compound_statement "{\n          local_3c = local_3c + 4;\n          *(undefined4 *)pbVar19 = uVar12;\n          pbVar6 = pbVar6 + -1;\n          uVar12 = *(undefined4 *)local_3c;\n          pbVar19 = pbVar19 + 4;\n        }" ({ "{") (expression_statement "local_3c = local_3c + 4;" (assignment_expression "local_3c = local_3c + 4" (identifier "local_3c") (= "=") (binary_expression "local_3c + 4" (identifier "local_3c") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "*(undefined4 *)pbVar19 = uVar12;" (assignment_expression "*(undefined4 *)pbVar19 = uVar12" (pointer_expression "*(undefined4 *)pbVar19" (* "*") (cast_expression "(undefined4 *)pbVar19" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar19"))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "pbVar6 = pbVar6 + -1;" (assignment_expression "pbVar6 = pbVar6 + -1" (identifier "pbVar6") (= "=") (binary_expression "pbVar6 + -1" (identifier "pbVar6") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar12 = *(undefined4 *)local_3c;" (assignment_expression "uVar12 = *(undefined4 *)local_3c" (identifier "uVar12") (= "=") (pointer_expression "*(undefined4 *)local_3c" (* "*") (cast_expression "(undefined4 *)local_3c" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c")))) (; ";")) (expression_statement "pbVar19 = pbVar19 + 4;" (assignment_expression "pbVar19 = pbVar19 + 4" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + 4" (identifier "pbVar19") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar6 != (byte *)0x0)" (( "(") (binary_expression "pbVar6 != (byte *)0x0" (identifier "pbVar6") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "pbVar14 = pbVar14 + (int)local_4c * 4 + -4;" (assignment_expression "pbVar14 = pbVar14 + (int)local_4c * 4 + -4" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (int)local_4c * 4 + -4" (binary_expression "pbVar14 + (int)local_4c * 4" (identifier "pbVar14") (+ "+") (binary_expression "(int)local_4c * 4" (cast_expression "(int)local_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-4"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)pbVar14 = uVar12;" (assignment_expression "*(undefined4 *)pbVar14 = uVar12" (pointer_expression "*(undefined4 *)pbVar14" (* "*") (cast_expression "(undefined4 *)pbVar14" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar14"))) (= "=") (identifier "uVar12")) (; ";")) (} "}")))) (if_statement "if (bVar1) {\n      local_4c = (byte *)-(int)local_4c;\n    }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n      local_4c = (byte *)-(int)local_4c;\n    }" ({ "{") (expression_statement "local_4c = (byte *)-(int)local_4c;" (assignment_expression "local_4c = (byte *)-(int)local_4c" (identifier "local_4c") (= "=") (cast_expression "(byte *)-(int)local_4c" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (unary_expression "-(int)local_4c" (- "-") (cast_expression "(int)local_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c"))))) (; ";")) (} "}"))) (expression_statement "param_1[1] = (int)local_4c;" (assignment_expression "param_1[1] = (int)local_4c" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int)local_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c"))) (; ";")) (expression_statement "param_1[2] = (int)pbVar3;" (assignment_expression "param_1[2] = (int)pbVar3" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int)pbVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar3"))) (; ";")) (if_statement "if (local_30 == 0) goto LAB_000187ac;" (if "if") (parenthesized_expression "(local_30 == 0)" (( "(") (binary_expression "local_30 == 0" (identifier "local_30") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000187ac;" (goto "goto") (statement_identifier "LAB_000187ac") (; ";"))) (} "}")))) (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)" (( "(") (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_0009d618" (* "*") (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_0009d618" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmp_tmp_reentrant_free_0009d618"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" (identifier "uVar22") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00018714:\n  if (local_2c == *(int *)puVar24) {\n    return uVar22;\n  }" (statement_identifier "LAB_00018714") (: ":") (if_statement "if (local_2c == *(int *)puVar24) {\n    return uVar22;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar24)" (( "(") (binary_expression "local_2c == *(int *)puVar24" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar24" (* "*") (cast_expression "(int *)puVar24" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar24")))) () ")")) (compound_statement "{\n    return uVar22;\n  }" ({ "{") (return_statement "return uVar22;" (return "return") (identifier "uVar22") (; ";")) (} "}")))) (expression_statement "pcVar27 = __gmpf_set_d;" (assignment_expression "pcVar27 = __gmpf_set_d" (identifier "pcVar27") (= "=") (identifier "__gmpf_set_d")) (; ";")) (expression_statement "iVar4 = local_2c;" (assignment_expression "iVar4 = local_2c" (identifier "iVar4") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar24 = PTR___stack_chk_fail_0009d4d0;" (assignment_expression "puVar24 = PTR___stack_chk_fail_0009d4d0" (identifier "puVar24") (= "=") (identifier "PTR___stack_chk_fail_0009d4d0")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0009d4d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0009d4d0" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0009d4d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0009d4d0"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(byte **)(puVar26 + 8) = pbVar14;" (assignment_expression "*(byte **)(puVar26 + 8) = pbVar14" (pointer_expression "*(byte **)(puVar26 + 8)" (* "*") (cast_expression "(byte **)(puVar26 + 8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + 8)" (( "(") (binary_expression "puVar26 + 8" (identifier "puVar26") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "pbVar14")) (; ";")) (expression_statement "*(undefined **)(puVar26 + -0x18) = puVar24 + 0x8c170;" (assignment_expression "*(undefined **)(puVar26 + -0x18) = puVar24 + 0x8c170" (pointer_expression "*(undefined **)(puVar26 + -0x18)" (* "*") (cast_expression "(undefined **)(puVar26 + -0x18)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + -0x18)" (( "(") (binary_expression "puVar26 + -0x18" (identifier "puVar26") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (binary_expression "puVar24 + 0x8c170" (identifier "puVar24") (+ "+") (number_literal "0x8c170"))) (; ";")) (expression_statement "*(code **)(puVar26 + -4) = pcVar27;" (assignment_expression "*(code **)(puVar26 + -4) = pcVar27" (pointer_expression "*(code **)(puVar26 + -4)" (* "*") (cast_expression "(code **)(puVar26 + -4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + -4)" (( "(") (binary_expression "puVar26 + -4" (identifier "puVar26") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "pcVar27")) (; ";")) (expression_statement "*(byte **)(puVar26 + -8) = param_2;" (assignment_expression "*(byte **)(puVar26 + -8) = param_2" (pointer_expression "*(byte **)(puVar26 + -8)" (* "*") (cast_expression "(byte **)(puVar26 + -8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + -8)" (( "(") (binary_expression "puVar26 + -8" (identifier "puVar26") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(byte **)(puVar26 + 0xc) = param_4;" (assignment_expression "*(byte **)(puVar26 + 0xc) = param_4" (pointer_expression "*(byte **)(puVar26 + 0xc)" (* "*") (cast_expression "(byte **)(puVar26 + 0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + 0xc)" (( "(") (binary_expression "puVar26 + 0xc" (identifier "puVar26") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "uVar22 = *(uint *)(puVar26 + 8) & 0x7ff00000;" (assignment_expression "uVar22 = *(uint *)(puVar26 + 8) & 0x7ff00000" (identifier "uVar22") (= "=") (binary_expression "*(uint *)(puVar26 + 8) & 0x7ff00000" (pointer_expression "*(uint *)(puVar26 + 8)" (* "*") (cast_expression "(uint *)(puVar26 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 8)" (( "(") (binary_expression "puVar26 + 8" (identifier "puVar26") (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "0x7ff00000"))) (; ";")) (if_statement "if (uVar22 == 0x7ff00000) {\n    uVar22 = (**(code **)(puVar24 + 0x8468c))();\n  }\n  else if ((double)CONCAT44(pbVar14,param_4) != 0.0) {\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      *(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4);\n    }\n    else {\n      *(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);\n    }\n    pcVar27 = *(code **)(puVar24 + 0x84254);\n    uVar12 = 0xfffffffd;\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      uVar12 = 3;\n    }\n    *(undefined4 *)(iVar4 + 4) = uVar12;\n    uVar22 = (*pcVar27)(*(undefined4 *)(iVar4 + 0xc));\n    *(uint *)(iVar4 + 8) = uVar22;\n    return uVar22;\n  }" (if "if") (parenthesized_expression "(uVar22 == 0x7ff00000)" (( "(") (binary_expression "uVar22 == 0x7ff00000" (identifier "uVar22") (== "==") (number_literal "0x7ff00000")) () ")")) (compound_statement "{\n    uVar22 = (**(code **)(puVar24 + 0x8468c))();\n  }" ({ "{") (expression_statement "uVar22 = (**(code **)(puVar24 + 0x8468c))();" (assignment_expression "uVar22 = (**(code **)(puVar24 + 0x8468c))()" (identifier "uVar22") (= "=") (call_expression "(**(code **)(puVar24 + 0x8468c))()" (parenthesized_expression "(**(code **)(puVar24 + 0x8468c))" (( "(") (pointer_expression "**(code **)(puVar24 + 0x8468c)" (* "*") (pointer_expression "*(code **)(puVar24 + 0x8468c)" (* "*") (cast_expression "(code **)(puVar24 + 0x8468c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x8468c)" (( "(") (binary_expression "puVar24 + 0x8468c" (identifier "puVar24") (+ "+") (number_literal "0x8468c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else if ((double)CONCAT44(pbVar14,param_4) != 0.0) {\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      *(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4);\n    }\n    else {\n      *(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);\n    }\n    pcVar27 = *(code **)(puVar24 + 0x84254);\n    uVar12 = 0xfffffffd;\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      uVar12 = 3;\n    }\n    *(undefined4 *)(iVar4 + 4) = uVar12;\n    uVar22 = (*pcVar27)(*(undefined4 *)(iVar4 + 0xc));\n    *(uint *)(iVar4 + 8) = uVar22;\n    return uVar22;\n  }" (else "else") (if_statement "if ((double)CONCAT44(pbVar14,param_4) != 0.0) {\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      *(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4);\n    }\n    else {\n      *(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);\n    }\n    pcVar27 = *(code **)(puVar24 + 0x84254);\n    uVar12 = 0xfffffffd;\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      uVar12 = 3;\n    }\n    *(undefined4 *)(iVar4 + 4) = uVar12;\n    uVar22 = (*pcVar27)(*(undefined4 *)(iVar4 + 0xc));\n    *(uint *)(iVar4 + 8) = uVar22;\n    return uVar22;\n  }" (if "if") (parenthesized_expression "((double)CONCAT44(pbVar14,param_4) != 0.0)" (( "(") (binary_expression "(double)CONCAT44(pbVar14,param_4) != 0.0" (cast_expression "(double)CONCAT44(pbVar14,param_4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(pbVar14,param_4)" (identifier "CONCAT44") (argument_list "(pbVar14,param_4)" (( "(") (identifier "pbVar14") (, ",") (identifier "param_4") () ")")))) (!= "!=") (number_literal "0.0")) () ")")) (compound_statement "{\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      *(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4);\n    }\n    else {\n      *(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);\n    }\n    pcVar27 = *(code **)(puVar24 + 0x84254);\n    uVar12 = 0xfffffffd;\n    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      uVar12 = 3;\n    }\n    *(undefined4 *)(iVar4 + 4) = uVar12;\n    uVar22 = (*pcVar27)(*(undefined4 *)(iVar4 + 0xc));\n    *(uint *)(iVar4 + 8) = uVar22;\n    return uVar22;\n  }" ({ "{") (if_statement "if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      *(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4);\n    }\n    else {\n      *(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);\n    }" (if "if") (parenthesized_expression "(0.0 <= (double)CONCAT44(pbVar14,param_4))" (( "(") (binary_expression "0.0 <= (double)CONCAT44(pbVar14,param_4)" (number_literal "0.0") (<= "<=") (cast_expression "(double)CONCAT44(pbVar14,param_4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(pbVar14,param_4)" (identifier "CONCAT44") (argument_list "(pbVar14,param_4)" (( "(") (identifier "pbVar14") (, ",") (identifier "param_4") () ")"))))) () ")")) (compound_statement "{\n      *(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4);\n    }" ({ "{") (expression_statement "*(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4);" (assignment_expression "*(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4)" (pointer_expression "*(ulonglong *)(puVar26 + -0x10)" (* "*") (cast_expression "(ulonglong *)(puVar26 + -0x10)" (( "(") (type_descriptor "ulonglong *" (type_identifier "ulonglong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + -0x10)" (( "(") (binary_expression "puVar26 + -0x10" (identifier "puVar26") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (call_expression "CONCAT44(pbVar14,param_4)" (identifier "CONCAT44") (argument_list "(pbVar14,param_4)" (( "(") (identifier "pbVar14") (, ",") (identifier "param_4") () ")")))) (; ";")) (} "}")) (else_clause "else {\n      *(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);\n    }" (else "else") (compound_statement "{\n      *(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;\n      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);\n    }" ({ "{") (expression_statement "*(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;" (assignment_expression "*(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000" (pointer_expression "*(uint *)(puVar26 + -0x10)" (* "*") (cast_expression "(uint *)(puVar26 + -0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + -0x10)" (( "(") (binary_expression "puVar26 + -0x10" (identifier "puVar26") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "*(uint *)(puVar26 + 8) ^ 0x80000000" (pointer_expression "*(uint *)(puVar26 + 8)" (* "*") (cast_expression "(uint *)(puVar26 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 8)" (( "(") (binary_expression "puVar26 + 8" (identifier "puVar26") (+ "+") (number_literal "8")) () ")")))) (^ "^") (number_literal "0x80000000"))) (; ";")) (expression_statement "*(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);" (assignment_expression "*(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc)" (pointer_expression "*(undefined4 *)(puVar26 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar26 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + -0xc)" (( "(") (binary_expression "puVar26 + -0xc" (identifier "puVar26") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar26 + 0xc)" (* "*") (cast_expression "(undefined4 *)(puVar26 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 0xc)" (( "(") (binary_expression "puVar26 + 0xc" (identifier "puVar26") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}")))) (expression_statement "pcVar27 = *(code **)(puVar24 + 0x84254);" (assignment_expression "pcVar27 = *(code **)(puVar24 + 0x84254)" (identifier "pcVar27") (= "=") (pointer_expression "*(code **)(puVar24 + 0x84254)" (* "*") (cast_expression "(code **)(puVar24 + 0x84254)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x84254)" (( "(") (binary_expression "puVar24 + 0x84254" (identifier "puVar24") (+ "+") (number_literal "0x84254")) () ")"))))) (; ";")) (expression_statement "uVar12 = 0xfffffffd;" (assignment_expression "uVar12 = 0xfffffffd" (identifier "uVar12") (= "=") (number_literal "0xfffffffd")) (; ";")) (if_statement "if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {\n      uVar12 = 3;\n    }" (if "if") (parenthesized_expression "(0.0 <= (double)CONCAT44(pbVar14,param_4))" (( "(") (binary_expression "0.0 <= (double)CONCAT44(pbVar14,param_4)" (number_literal "0.0") (<= "<=") (cast_expression "(double)CONCAT44(pbVar14,param_4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(pbVar14,param_4)" (identifier "CONCAT44") (argument_list "(pbVar14,param_4)" (( "(") (identifier "pbVar14") (, ",") (identifier "param_4") () ")"))))) () ")")) (compound_statement "{\n      uVar12 = 3;\n    }" ({ "{") (expression_statement "uVar12 = 3;" (assignment_expression "uVar12 = 3" (identifier "uVar12") (= "=") (number_literal "3")) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(iVar4 + 4) = uVar12;" (assignment_expression "*(undefined4 *)(iVar4 + 4) = uVar12" (pointer_expression "*(undefined4 *)(iVar4 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 4)" (( "(") (binary_expression "iVar4 + 4" (identifier "iVar4") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "uVar22 = (*pcVar27)(*(undefined4 *)(iVar4 + 0xc));" (assignment_expression "uVar22 = (*pcVar27)(*(undefined4 *)(iVar4 + 0xc))" (identifier "uVar22") (= "=") (call_expression "(*pcVar27)(*(undefined4 *)(iVar4 + 0xc))" (parenthesized_expression "(*pcVar27)" (( "(") (pointer_expression "*pcVar27" (* "*") (identifier "pcVar27")) () ")")) (argument_list "(*(undefined4 *)(iVar4 + 0xc))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")")))) () ")")))) (; ";")) (expression_statement "*(uint *)(iVar4 + 8) = uVar22;" (assignment_expression "*(uint *)(iVar4 + 8) = uVar22" (pointer_expression "*(uint *)(iVar4 + 8)" (* "*") (cast_expression "(uint *)(iVar4 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar22")) (; ";")) (return_statement "return uVar22;" (return "return") (identifier "uVar22") (; ";")) (} "}"))))) (expression_statement "*(undefined4 *)(iVar4 + 4) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 4) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 4)" (( "(") (binary_expression "iVar4 + 4" (identifier "iVar4") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar4 + 8) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 8) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (return_statement "return uVar22;" (return "return") (identifier "uVar22") (; ";")) (} "}")))

int function_1(type_1 x,char *var_1,int var_5)

{
  bool bVar1;
  type_2 var_4;
  type_3 *var_29;
  int var_7;
  int *piVar5;
  type_4 *var_10;
  int var_19;
  type_4 *var_13;
  type_4 *var_31;
  type_3 *pbVar10;
  type_5 uVar11;
  type_3 *var_8;
  type_3 var_11;
  type_3 *var_12;
  type_4 var_28;
  type_4 *var_27;
  type_4 *var_9;
  type_4 *in_a3;
  type_6 *puVar18;
  int var_2;
  type_3 *var_14;
  type_7 *puVar21;
  type_8 var_3;
  int var_24;
  type_3 *var_15;
  type_7 *var_33;
  type_6 *puVar26;
  type_6 *var_20;
  type_9 *pcVar28;
  type_6 auStack_88 [8];
  type_6 var_18 [16];
  type_3 abStack_70 [8];
  int var_23;
  type_4 *pmStack_50;
  type_4 *var_30;
  type_3 *var_25;
  type_4 *var_22;
  type_10 *var_21;
  int var_32;
  
  var_33 = PTR___stack_chk_guard_0009d540;
  var_20 = var_18;
  puVar26 = var_18;
  var_32 = *(int *)PTR___stack_chk_guard_0009d540;
  var_9 = (type_4 *)var_5;
  var_29 = (type_3 *)(*(type_9 *)PTR_nl_langinfo_0009d21c)(0x10000);
  var_7 = (*(type_9 *)PTR_strlen_0009d360)(var_29);
  var_3 = (type_8)(type_3)*var_1;
  piVar5 = (int *)(*(type_9 *)PTR___ctype_b_loc_0009d0ac)();
  var_2 = *piVar5;
  var_4 = *(type_2 *)(var_2 + var_3 * 2);
  while ((var_4 & 0x20) != 0) {
    var_1 = (char *)((int)var_1 + 1);
    var_3 = (type_8)(type_3)*var_1;
    var_4 = *(type_2 *)(var_2 + var_3 * 2);
  }
  bVar1 = var_3 == 0x2d;
  if (bVar1) {
    var_3 = (type_8)*(type_3 *)((int)var_1 + 1);
    var_1 = (char *)((int)var_1 + 1);
  }
  if (var_5 != 0) {
    if (var_5 < 0) {
      var_5 = -var_5;
      var_24 = 10;
      if (var_5 < 0x25) goto LAB_000183f8;
    }
    else {
      var_24 = var_5;
      if (var_5 < 0x25) goto LAB_000183f8;
    }
    puVar18 = var_18;
    if (var_5 < 0x3f) {
      puVar21 = var_6 + 0xd0;
      if (var_5 <= (int)(type_8)(type_3)puVar21[var_3]) goto LAB_00018310;
      goto LAB_00018368;
    }
LAB_00018710:
    var_20 = puVar18;
    var_19 = -1;
    goto LAB_00018714;
  }
  var_5 = (int)&DAT_0000000a;
  var_24 = 10;
LAB_000183f8:
  puVar21 = var_6;
  if (var_5 <= (int)(type_8)(type_3)var_6[var_3]) {
LAB_00018310:
    var_9 = (type_4 *)var_1;
    if (var_7 != 0) {
      puVar18 = var_18;
      if (*var_1 == *var_29) {
        var_9 = (type_4 *)((int)var_1 + var_7);
        var_10 = (type_4 *)var_1;
        var_8 = var_29;
        do {
          var_8 = var_8 + 1;
          var_10 = (type_4 *)((int)var_10 + 1);
          if (var_9 == var_10) goto LAB_0001834c;
          puVar18 = var_18;
        } while (*(type_3 *)var_10 == *var_8);
      }
      goto LAB_00018710;
    }
LAB_0001834c:
    var_19 = -1;
    if (var_5 <= (int)(type_8)(type_3)puVar21[*(type_3 *)var_9]) goto LAB_00018714;
  }
LAB_00018368:
  var_10 = (type_4 *)(*(type_9 *)PTR_strlen_0009d360)(var_1);
  var_9 = (type_4 *)((int)var_10 + -1);
  if (var_9 == (type_4 *)0x0) {
    puVar26 = auStack_88;
    var_21 = (type_10 *)0x0;
    var_8 = (type_3 *)0x0;
    pbVar10 = abStack_70;
    var_9 = (type_4 *)&DAT_00000001;
LAB_00018460:
    var_10 = (type_4 *)0x0;
    var_14 = pbVar10;
    var_15 = (type_3 *)0x0;
    do {
      while( true ) {
        var_11 = *var_1;
        var_20 = puVar26;
        if ((*(type_2 *)(var_2 + (type_8)var_11 * 2) & 0x20) == 0) break;
LAB_00018474:
        var_10 = (type_4 *)((int)var_10 + 1);
        var_1 = (char *)((int)var_1 + 1);
        if (var_9 <= var_10) goto LAB_00018500;
      }
      if (var_7 != 0) {
        if (*var_29 == var_11) {
          var_13 = (type_4 *)var_1;
          var_12 = var_29;
          do {
            var_12 = var_12 + 1;
            var_13 = (type_4 *)((int)var_13 + 1);
            if (var_13 == (type_4 *)((int)var_1 + var_7)) goto LAB_000184e0;
          } while (*(type_3 *)var_13 == *var_12);
        }
        if ((int)(type_8)(type_3)puVar21[var_11] < var_5) {
          *var_14 = puVar21[var_11];
          var_14 = var_14 + 1;
          goto LAB_00018474;
        }
        goto LAB_000186f8;
      }
LAB_000184e0:
      if (var_15 != (type_3 *)0x0) goto LAB_000186f8;
      var_10 = (type_4 *)((int)var_10 + var_7);
      var_1 = (char *)((int)var_1 + var_7);
      var_15 = var_14;
    } while (var_10 < var_9);
LAB_00018500:
    var_9 = (type_4 *)(var_14 + -(int)pbVar10);
    var_7 = x->_mp_prec;
    var_3 = (((type_8)((int)(var_16(var_9) *
                            (type_12)*(type_8 *)(var_17 + var_5 * 0x14 + 8) >>
                           0x20) << 3) >> 5) + 2) * 4;
    var_1 = (char *)(var_7 + 1);
    if (var_3 < 0x7f01) goto LAB_00018544;
    var_22 = (type_4 *)(*(type_9 *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&var_21);
  }
  else {
    var_11 = *(type_3 *)((int)var_1 + (int)var_9);
    if (var_11 == 0x40) {
      var_8 = (type_3 *)((int)var_1 + (int)var_10);
      var_13 = var_10;
    }
    else {
      var_13 = (type_4 *)((int)var_10 + -2);
      var_27 = var_9;
      if (var_5 < 0xb) {
        do {
          var_27 = var_9;
          var_9 = (type_4 *)((int)var_27 + -1);
          if ((var_11 & 0xdf) == 0x45) {
            var_8 = (type_3 *)((int)var_1 + (int)var_27 + 1);
            var_13 = (type_4 *)((int)var_27 + 1);
            var_9 = var_27;
            goto LAB_0001843c;
          }
          if (var_9 == (type_4 *)0x0) goto LAB_00018434;
          var_11 = *(type_3 *)((int)var_1 + (int)var_9);
        } while (var_11 != 0x40);
LAB_0001878c:
        var_8 = (type_3 *)((int)var_1 + (int)var_27);
        var_13 = var_27;
      }
      else {
        while (var_9 = var_13, var_9 != (type_4 *)0x0) {
          if (*(type_3 *)((int)var_1 + (int)var_9) == 0x40) goto LAB_0001878c;
          var_27 = var_9;
          var_13 = (type_4 *)((int)var_9 + -1);
        }
LAB_00018434:
        var_8 = (type_3 *)0x0;
        var_13 = (type_4 *)((int)var_10 + 1);
        var_9 = var_10;
      }
    }
LAB_0001843c:
    var_21 = (type_10 *)0x0;
    if ((type_4 *)0x7f00 < var_13) {
      pbVar10 = (type_3 *)(*(type_9 *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&var_21);
      var_2 = *piVar5;
      goto LAB_00018460;
    }
    var_19 = -((type_8)((int)var_13 + 7) & 0xfffffff8);
    puVar26 = var_18 + var_19;
    var_20 = var_18 + var_19;
    pbVar10 = &stack0xffffff98 + var_19;
    if (var_9 != (type_4 *)0x0) goto LAB_00018460;
    var_15 = (type_3 *)0x0;
    var_3 = 8;
    var_7 = x->_mp_prec;
    var_1 = (char *)(var_7 + 1);
    var_14 = pbVar10;
LAB_00018544:
    var_2 = -(var_3 + 7 & 0xfffffff8);
    var_22 = (type_4 *)(var_20 + var_2 + 0x18);
    var_20 = var_20 + var_2;
  }
  in_a3 = (type_4 *)var_5;
  var_10 = (type_4 *)(*(type_9 *)PTR___gmpn_set_str_0009d5b4)(var_22,pbVar10);
  if (var_10 == (type_4 *)0x0) {
    x->_mp_size = 0;
    x->_mp_exp = 0;
    if (var_21 != (type_10 *)0x0) {
      (*(type_9 *)PTR___gmp_tmp_reentrant_free_0009d618)();
      var_19 = 0;
      goto LAB_00018714;
    }
LAB_000187ac:
    var_19 = 0;
    goto LAB_00018714;
  }
  var_23 = (int)var_10 - (int)var_1;
  if ((int)var_1 < (int)var_10) {
    var_22 = var_22 + var_23;
    var_30 = (type_4 *)var_1;
    if (var_8 == (type_3 *)0x0) goto LAB_000187d0;
LAB_000185a0:
    var_11 = *var_8;
    in_a3 = (type_4 *)(type_8)(var_11 == 0x2d);
    var_8 = var_8 + (var_11 == 0x2b || var_11 == 0x2d);
    var_13 = (type_4 *)(type_8)(type_3)puVar21[*var_8];
    if (var_24 <= (int)var_13) {
LAB_000186f8:
      var_19 = -1;
      if (var_21 == (type_10 *)0x0) goto LAB_00018714;
      (*(type_9 *)PTR___gmp_tmp_reentrant_free_0009d618)();
      puVar18 = var_20;
      goto LAB_00018710;
    }
    var_9 = (type_4 *)(type_8)(type_3)puVar21[var_8[1]];
    if ((int)var_9 < var_24) {
      var_8 = var_8 + 3;
      do {
        var_13 = (type_4 *)((int)var_13 * var_24 + (int)var_9);
        var_9 = (type_4 *)(type_8)(type_3)puVar21[var_8[-1]];
        var_8 = var_8 + 1;
      } while ((int)var_9 < var_24);
    }
    var_25 = (type_3 *)((int)in_a3 + (-(int)in_a3 ^ (type_8)var_13));
    if (var_15 != (type_3 *)0x0) {
LAB_00018628:
      var_25 = var_25 + -((int)var_14 - (int)var_15);
    }
    if (var_25 == (type_3 *)0x0) goto LAB_000187e0;
    var_7 = var_7 + 2;
    var_3 = var_7 * 8;
    if (var_3 < 0x7f01) {
      pmStack_50 = (type_4 *)(var_20 + var_7 * -8 + 0x18);
      var_9 = (type_4 *)(var_20 + var_7 * -0x10 + 0x18);
      var_20 = var_20 + var_7 * -0x10;
    }
    else {
      pmStack_50 = (type_4 *)
                   (*(type_9 *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&var_21,var_3);
      var_9 = (type_4 *)(*(type_9 *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&var_21,var_3)
      ;
    }
    puVar21 = PTR___gmpn_clz_tab_0009d18c;
    var_29 = var_25;
    if ((int)var_25 < 0) {
      var_29 = (type_3 *)-(int)var_25;
    }
    *pmStack_50 = var_5;
    if ((int)var_29 < 0x10000) {
      if (0xff < (int)var_29) {
        var_7 = var_26();
        return var_7;
      }
      var_3 = (type_3)PTR___gmpn_clz_tab_0009d18c[(type_8)var_29 >> 1] - 2;
      if (-1 < (int)var_3) goto LAB_00018890;
      if ((int)var_1 < 1) {
        var_24 = 0;
        var_10 = (type_4 *)&DAT_00000001;
        var_2 = 0;
        var_9 = pmStack_50;
        goto LAB_00018988;
      }
      var_10 = (type_4 *)&DAT_00000001;
      var_24 = 0;
      *pmStack_50 = var_5;
    }
    else {
      var_2 = 0x19;
      if ((int)var_29 < 0x1000000) {
        var_2 = 0x11;
      }
      var_24 = 0x10;
      if ((int)var_29 >= 0x1000000) {
        var_24 = 8;
      }
      var_3 = ((type_8)(type_3)PTR___gmpn_clz_tab_0009d18c[(type_8)var_29 >> var_2] - var_24) + 0x1e;
LAB_00018890:
      var_24 = 0;
      var_10 = (type_4 *)&DAT_00000001;
      var_2 = 0;
      var_13 = pmStack_50;
      while( true ) {
        var_27 = var_13;
        (*(type_9 *)PTR___gmpn_sqr_0009d394)(var_9,var_27 + var_2,var_10);
        var_24 = var_24 * 2;
        var_10 = (type_4 *)((int)var_10 * 2 - (type_8)(var_9[(int)var_10 * 2 + 0x3fffffff] == 0))
        ;
        if ((int)var_1 < (int)var_10) {
          var_2 = (int)var_10 - (int)var_1;
          var_24 = var_24 + var_2;
          var_10 = (type_4 *)var_1;
        }
        else {
          var_2 = 0;
        }
        if (((int)var_29 >> (var_3 & 0x1f) & 1U) != 0) {
          var_28 = (*(type_9 *)PTR___gmpn_mul_1_0009d0a4)(var_9,var_9 + var_2,var_10,var_5);
          var_13 = var_9 + (int)var_10;
          var_10 = (type_4 *)((int)var_10 + (type_8)(var_28 != 0));
          *var_13 = var_28;
          var_2 = 0;
        }
        if (var_3 == 0) break;
        var_3 = var_3 - 1;
        var_13 = var_9;
        var_9 = var_27;
      }
      if ((int)var_1 < (int)var_10) {
LAB_00018988:
        var_24 = var_24 + ((int)var_10 - (int)var_1);
        var_9 = var_9 + ((int)var_10 - (int)var_1);
        var_10 = (type_4 *)var_1;
      }
      var_29 = (type_3 *)((int)var_10 + -1);
      if (var_10 != (type_4 *)0x0) {
        var_28 = var_9[var_2];
        if (var_29 == (type_3 *)0x0) {
          var_10 = (type_4 *)&DAT_00000001;
          *pmStack_50 = var_28;
        }
        else {
          var_9 = var_9 + var_2 + 1;
          var_13 = pmStack_50;
          do {
            *var_13 = var_28;
            var_29 = var_29 + -1;
            var_28 = *var_9;
            var_9 = var_9 + 1;
            var_13 = var_13 + 1;
          } while (var_29 != (type_3 *)0x0);
          pmStack_50[(int)((int)var_10 + -1)] = var_28;
        }
      }
    }
    var_13 = (type_4 *)var_1;
    if ((int)var_25 < 0) {
      if ((int)var_30 < (int)var_10) {
        var_3 = (int)((int)var_10 + 1) * 4;
        if (var_3 < 0x7f01) {
          var_2 = -(var_3 + 7 & 0xfffffff8);
          puVar18 = var_20 + var_2 + 0x18;
          var_20 = var_20 + var_2;
        }
        else {
          puVar18 = (type_6 *)(*(type_9 *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&var_21);
        }
        var_2 = (int)var_10 - (int)var_30;
        var_9 = (type_4 *)(*(type_9 *)PTR_memset_0009d2e8)(puVar18,0,var_2 * 4);
        if (var_30 != (type_4 *)0x0) {
          var_29 = (type_3 *)((int)var_30 + -1);
          var_31 = var_9 + var_2;
          var_28 = *var_22;
          var_27 = var_31;
          if (var_29 != (type_3 *)0x0) {
            do {
              var_22 = var_22 + 1;
              *var_27 = var_28;
              var_29 = var_29 + -1;
              var_28 = *var_22;
              var_27 = var_27 + 1;
            } while (var_29 != (type_3 *)0x0);
            var_31 = var_31 + (int)((int)var_30 + -1);
          }
          *var_31 = var_28;
        }
        var_23 = var_23 - var_2;
        var_30 = var_10;
        var_22 = var_9;
      }
      var_3 = pmStack_50[(int)((int)var_10 + -1)];
      if (-1 < (int)var_3) {
        if (var_3 < 0x10000) {
          var_2 = 0x20;
          if (0xff < var_3) {
            var_2 = 0x18;
          }
          var_19 = 9;
          if (0xff >= var_3) {
            var_19 = 1;
          }
        }
        else {
          var_2 = 0x10;
          if (0xffffff < var_3) {
            var_2 = 8;
          }
          var_19 = 0x19;
          if (0xffffff >= var_3) {
            var_19 = 0x11;
          }
        }
        var_11 = puVar21[var_3 >> var_19];
        (*(type_9 *)PTR___gmpn_lshift_0009d56c)(pmStack_50,pmStack_50,var_10,var_2 - (type_8)var_11);
        var_28 = (*(type_9 *)PTR___gmpn_lshift_0009d56c)
                           (var_22,var_22,var_30,var_2 - (type_8)var_11);
        if (var_28 != 0) {
          var_22[(int)var_30] = var_28;
          var_30 = (type_4 *)((int)var_30 + 1);
        }
      }
      if ((type_8)(var_7 * 4) < 0x7f01) {
        var_7 = -(var_7 * 4 + 7U & 0xfffffff8);
        var_9 = (type_4 *)(var_20 + var_7 + 0x18);
        var_20 = var_20 + var_7;
      }
      else {
        var_9 = (type_4 *)(*(type_9 *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&var_21);
      }
      var_7 = (int)var_30 - (int)var_10;
      *(type_4 **)(var_20 + 0x14) = var_10;
      *(type_4 **)(var_20 + 0x10) = pmStack_50;
      var_28 = (*(type_9 *)PTR___gmpn_divrem_0009d0e4)(var_9,(int)var_1 - var_7);
      var_29 = (type_3 *)((var_23 - var_24) + var_7 + var_28);
      if (var_28 != 0) {
        var_10 = var_9 + (int)var_1;
        var_9 = var_9 + 1;
        *var_10 = var_28;
      }
    }
    else {
      var_29 = (type_3 *)((int)var_10 + (int)var_30);
      var_3 = (int)var_29 * 4;
      if (var_3 < 0x7f01) {
        var_7 = -(var_3 + 7 & 0xfffffff8);
        var_9 = (type_4 *)(var_20 + var_7 + 0x18);
        var_20 = var_20 + var_7;
      }
      else {
        var_9 = (type_4 *)
                  (*(type_9 *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&var_21,var_3);
      }
      if ((int)var_30 < (int)var_10) {
        *(type_4 **)(var_20 + 0x10) = var_30;
        var_30 = var_22;
        (*(type_9 *)PTR___gmpn_mul_0009d2b4)(var_9,pmStack_50);
        var_22 = var_10;
      }
      else {
        *(type_4 **)(var_20 + 0x10) = var_10;
        (*(type_9 *)PTR___gmpn_mul_0009d2b4)(var_9,var_22);
        var_22 = var_30;
        var_30 = pmStack_50;
      }
      var_13 = (type_4 *)(var_29 + -(type_8)(var_9[(int)(var_29 + -1)] == 0));
      var_29 = (type_3 *)((int)var_13 + var_24 + var_23);
      if ((int)var_1 < (int)var_13) {
        var_9 = var_9 + ((int)var_13 - (int)var_1);
        var_13 = (type_4 *)var_1;
      }
    }
    if (var_13 != (type_4 *)0x0) {
      var_8 = (type_3 *)((int)var_13 + -1);
      var_28 = *var_9;
      var_22 = x->_mp_d;
      var_10 = var_22;
      if (var_8 != (type_3 *)0x0) {
        do {
          var_9 = var_9 + 1;
          *var_10 = var_28;
          var_8 = var_8 + -1;
          var_28 = *var_9;
          var_10 = var_10 + 1;
        } while (var_8 != (type_3 *)0x0);
        var_22 = var_22 + (int)((int)var_13 + -1);
      }
      *var_22 = var_28;
    }
    if (bVar1) {
      var_13 = (type_4 *)-(int)var_13;
    }
    x->_mp_size = (int)var_13;
    x->_mp_exp = (type_11)var_29;
    var_9 = var_22;
    in_a3 = var_30;
    var_1 = (char *)var_13;
    if (var_21 == (type_10 *)0x0) {
      var_19 = 0;
      goto LAB_00018714;
    }
  }
  else {
    var_23 = 0;
    var_30 = var_10;
    if (var_8 != (type_3 *)0x0) goto LAB_000185a0;
LAB_000187d0:
    if (var_15 != (type_3 *)0x0) {
      var_25 = (type_3 *)0x0;
      goto LAB_00018628;
    }
LAB_000187e0:
    if (var_30 != (type_4 *)0x0) {
      var_29 = (type_3 *)((int)var_30 + -1);
      var_9 = x->_mp_d;
      var_28 = *var_22;
      var_13 = var_9;
      if (var_29 != (type_3 *)0x0) {
        do {
          var_22 = var_22 + 1;
          *var_13 = var_28;
          var_29 = var_29 + -1;
          var_28 = *var_22;
          var_13 = var_13 + 1;
        } while (var_29 != (type_3 *)0x0);
        var_9 = var_9 + (int)((int)var_30 + -1);
      }
      *var_9 = var_28;
    }
    if (bVar1) {
      var_30 = (type_4 *)-(int)var_30;
    }
    x->_mp_size = (int)var_30;
    x->_mp_exp = (type_11)var_10;
    if (var_21 == (type_10 *)0x0) goto LAB_000187ac;
  }
  (*(type_9 *)PTR___gmp_tmp_reentrant_free_0009d618)();
  var_19 = 0;
LAB_00018714:
  if (var_32 == *(int *)var_33) {
    return var_19;
  }
  pcVar28 = __gmpf_set_d;
  var_7 = var_32;
  var_33 = PTR___stack_chk_fail_0009d4d0;
  (*(type_9 *)PTR___stack_chk_fail_0009d4d0)();
  *(type_4 **)(var_20 + 8) = var_9;
  *(type_7 **)(var_20 + -0x18) = var_33 + 0x8c170;
  *(type_9 **)(var_20 + -4) = pcVar28;
  *(char **)(var_20 + -8) = var_1;
  *(type_4 **)(var_20 + 0xc) = in_a3;
  var_3 = *(type_8 *)(var_20 + 8) & 0x7ff00000;
  if (var_3 == 0x7ff00000) {
    var_3 = (**(type_9 **)(var_33 + 0x8468c))();
  }
  else if ((double)var_34(var_9,in_a3) != 0.0) {
    if (0.0 <= (double)var_34(var_9,in_a3)) {
      *(type_12 *)(var_20 + -0x10) = var_34(var_9,in_a3);
    }
    else {
      *(type_8 *)(var_20 + -0x10) = *(type_8 *)(var_20 + 8) ^ 0x80000000;
      *(type_5 *)(var_20 + -0xc) = *(type_5 *)(var_20 + 0xc);
    }
    pcVar28 = *(type_9 **)(var_33 + 0x84254);
    uVar11 = 0xfffffffd;
    if (0.0 <= (double)var_34(var_9,in_a3)) {
      uVar11 = 3;
    }
    *(type_5 *)(var_7 + 4) = uVar11;
    var_2 = (*pcVar28)(*(type_5 *)(var_7 + 0xc));
    *(int *)(var_7 + 8) = var_2;
    return var_2;
  }
  *(type_5 *)(var_7 + 4) = 0;
  *(type_5 *)(var_7 + 8) = 0;
  return var_3;
}


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

uint MASKED(int *param_1,byte *param_2,byte *param_3,byte *param_4)

{
  bool bVar1;
  ushort uVar2;
  byte *pbVar3;
  int iVar4;
  int *piVar5;
  byte *pbVar6;
  byte *pbVar7;
  byte *pbVar8;
  byte bVar11;
  byte *pbVar9;
  int iVar10;
  undefined4 uVar12;
  int iVar13;
  byte *pbVar14;
  undefined1 *puVar15;
  byte *pbVar16;
  int iVar17;
  byte *pbVar18;
  byte *pbVar19;
  undefined4 *puVar20;
  undefined *puVar21;
  uint uVar22;
  byte *pbVar23;
  undefined *puVar24;
  undefined1 *puVar25;
  undefined1 *puVar26;
  code *pcVar27;
  undefined1 auStack_88 [8];
  undefined1 auStack_80 [16];
  byte abStack_70 [8];
  int local_54;
  byte *local_50;
  byte *local_4c;
  byte *local_44;
  byte *local_3c;
  int local_30;
  int local_2c;
  
  puVar24 = PTR___stack_chk_guard_0009d540;
  puVar26 = auStack_80;
  puVar25 = auStack_80;
  local_2c = *(int *)PTR___stack_chk_guard_0009d540;
  pbVar14 = param_3;
  pbVar3 = (byte *)(*(code *)PTR_nl_langinfo_0009d21c)(0x10000);
  iVar4 = (*(code *)PTR_strlen_0009d360)(pbVar3);
  uVar22 = (uint)*param_2;
  piVar5 = (int *)(*(code *)PTR___ctype_b_loc_0009d0ac)();
  iVar17 = *piVar5;
  uVar2 = *(ushort *)(iVar17 + uVar22 * 2);
  while ((uVar2 & 0x20) != 0) {
    param_2 = param_2 + 1;
    uVar22 = (uint)*param_2;
    uVar2 = *(ushort *)(iVar17 + uVar22 * 2);
  }
  bVar1 = uVar22 == 0x2d;
  if (bVar1) {
    uVar22 = (uint)param_2[1];
    param_2 = param_2 + 1;
  }
  if (param_3 != (byte *)0x0) {
    if ((int)param_3 < 0) {
      param_3 = (byte *)-(int)param_3;
      pbVar19 = &DAT_0000000a;
      if ((int)param_3 < 0x25) goto LAB_000183f8;
    }
    else {
      pbVar19 = param_3;
      if ((int)param_3 < 0x25) goto LAB_000183f8;
    }
    puVar15 = auStack_80;
    if ((int)param_3 < 0x3f) {
      puVar21 = PTR___gmp_digit_value_tab_0009d388 + 0xd0;
      if ((int)param_3 <= (int)(uint)(byte)puVar21[uVar22]) goto LAB_00018310;
      goto LAB_00018368;
    }
LAB_00018710:
    puVar26 = puVar15;
    uVar22 = 0xffffffff;
    goto LAB_00018714;
  }
  param_3 = &DAT_0000000a;
  pbVar19 = &DAT_0000000a;
LAB_000183f8:
  puVar21 = PTR___gmp_digit_value_tab_0009d388;
  if ((int)param_3 <= (int)(uint)(byte)PTR___gmp_digit_value_tab_0009d388[uVar22]) {
LAB_00018310:
    pbVar14 = param_2;
    if (iVar4 != 0) {
      puVar15 = auStack_80;
      if (*param_2 == *pbVar3) {
        pbVar14 = param_2 + iVar4;
        pbVar6 = param_2;
        pbVar8 = pbVar3;
        do {
          pbVar8 = pbVar8 + 1;
          pbVar6 = pbVar6 + 1;
          if (pbVar14 == pbVar6) goto LAB_0001834c;
          puVar15 = auStack_80;
        } while (*pbVar6 == *pbVar8);
      }
      goto LAB_00018710;
    }
LAB_0001834c:
    uVar22 = 0xffffffff;
    if ((int)param_3 <= (int)(uint)(byte)puVar21[*pbVar14]) goto LAB_00018714;
  }
LAB_00018368:
  pbVar6 = (byte *)(*(code *)PTR_strlen_0009d360)(param_2);
  pbVar14 = pbVar6 + -1;
  if (pbVar14 == (byte *)0x0) {
    puVar25 = auStack_88;
    local_30 = 0;
    pbVar16 = (byte *)0x0;
    pbVar6 = abStack_70;
    pbVar14 = (byte *)0x1;
LAB_00018460:
    pbVar18 = (byte *)0x0;
    pbVar8 = pbVar6;
    pbVar23 = (byte *)0x0;
    do {
      while( true ) {
        bVar11 = *param_2;
        puVar26 = puVar25;
        if ((*(ushort *)(iVar17 + (uint)bVar11 * 2) & 0x20) == 0) break;
LAB_00018474:
        pbVar18 = pbVar18 + 1;
        param_2 = param_2 + 1;
        if (pbVar14 <= pbVar18) goto LAB_00018500;
      }
      if (iVar4 != 0) {
        if (*pbVar3 == bVar11) {
          pbVar7 = param_2;
          pbVar9 = pbVar3;
          do {
            pbVar9 = pbVar9 + 1;
            pbVar7 = pbVar7 + 1;
            if (pbVar7 == param_2 + iVar4) goto LAB_000184e0;
          } while (*pbVar7 == *pbVar9);
        }
        if ((int)(uint)(byte)puVar21[bVar11] < (int)param_3) {
          *pbVar8 = puVar21[bVar11];
          pbVar8 = pbVar8 + 1;
          goto LAB_00018474;
        }
        goto LAB_000186f8;
      }
LAB_000184e0:
      if (pbVar23 != (byte *)0x0) goto LAB_000186f8;
      pbVar18 = pbVar18 + iVar4;
      param_2 = param_2 + iVar4;
      pbVar23 = pbVar8;
    } while (pbVar18 < pbVar14);
LAB_00018500:
    pbVar14 = pbVar8 + -(int)pbVar6;
    iVar4 = *param_1;
    uVar22 = (((uint)((int)(ZEXT48(pbVar14) *
                            (ulonglong)
                            *(uint *)(PTR___gmpn_bases_0009d338 + (int)param_3 * 0x14 + 8) >> 0x20)
                     << 3) >> 5) + 2) * 4;
    param_2 = (byte *)(iVar4 + 1);
    if (uVar22 < 0x7f01) goto LAB_00018544;
    local_3c = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);
  }
  else {
    bVar11 = param_2[(int)pbVar14];
    if (bVar11 == 0x40) {
      pbVar16 = param_2 + (int)pbVar6;
      pbVar8 = pbVar6;
    }
    else {
      pbVar8 = pbVar6 + -2;
      pbVar23 = pbVar14;
      if ((int)param_3 < 0xb) {
        do {
          pbVar23 = pbVar14;
          pbVar14 = pbVar23 + -1;
          if ((bVar11 & 0xdf) == 0x45) {
            pbVar16 = param_2 + (int)(pbVar23 + 1);
            pbVar8 = pbVar23 + 1;
            pbVar14 = pbVar23;
            goto LAB_0001843c;
          }
          if (pbVar14 == (byte *)0x0) goto LAB_00018434;
          bVar11 = param_2[(int)pbVar14];
        } while (bVar11 != 0x40);
LAB_0001878c:
        pbVar16 = param_2 + (int)pbVar23;
        pbVar8 = pbVar23;
      }
      else {
        while (pbVar14 = pbVar8, pbVar14 != (byte *)0x0) {
          if (param_2[(int)pbVar14] == 0x40) goto LAB_0001878c;
          pbVar23 = pbVar14;
          pbVar8 = pbVar14 + -1;
        }
LAB_00018434:
        pbVar16 = (byte *)0x0;
        pbVar8 = pbVar6 + 1;
        pbVar14 = pbVar6;
      }
    }
LAB_0001843c:
    local_30 = 0;
    if ((byte *)0x7f00 < pbVar8) {
      pbVar6 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);
      iVar17 = *piVar5;
      goto LAB_00018460;
    }
    iVar10 = -((uint)(pbVar8 + 7) & 0xfffffff8);
    puVar25 = auStack_80 + iVar10;
    puVar26 = auStack_80 + iVar10;
    pbVar6 = &stack0xffffff98 + iVar10;
    if (pbVar14 != (byte *)0x0) goto LAB_00018460;
    pbVar23 = (byte *)0x0;
    uVar22 = 8;
    iVar4 = *param_1;
    param_2 = (byte *)(iVar4 + 1);
    pbVar8 = pbVar6;
LAB_00018544:
    iVar17 = -(uVar22 + 7 & 0xfffffff8);
    local_3c = puVar26 + iVar17 + 0x18;
    puVar26 = puVar26 + iVar17;
  }
  param_4 = param_3;
  pbVar3 = (byte *)(*(code *)PTR___gmpn_set_str_0009d5b4)(local_3c,pbVar6);
  if (pbVar3 == (byte *)0x0) {
    param_1[1] = 0;
    param_1[2] = 0;
    if (local_30 != 0) {
      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();
      uVar22 = 0;
      goto LAB_00018714;
    }
LAB_000187ac:
    uVar22 = 0;
    goto LAB_00018714;
  }
  local_54 = (int)pbVar3 - (int)param_2;
  if ((int)param_2 < (int)pbVar3) {
    local_3c = local_3c + local_54 * 4;
    local_4c = param_2;
    if (pbVar16 == (byte *)0x0) goto LAB_000187d0;
LAB_000185a0:
    bVar11 = *pbVar16;
    param_4 = (byte *)(uint)(bVar11 == 0x2d);
    pbVar16 = pbVar16 + (bVar11 == 0x2b || bVar11 == 0x2d);
    pbVar6 = (byte *)(uint)(byte)puVar21[*pbVar16];
    if ((int)pbVar19 <= (int)pbVar6) {
LAB_000186f8:
      uVar22 = 0xffffffff;
      if (local_30 == 0) goto LAB_00018714;
      (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();
      puVar15 = puVar26;
      goto LAB_00018710;
    }
    pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[1]];
    if ((int)pbVar14 < (int)pbVar19) {
      pbVar16 = pbVar16 + 3;
      do {
        pbVar6 = pbVar14 + (int)pbVar6 * (int)pbVar19;
        pbVar14 = (byte *)(uint)(byte)puVar21[pbVar16[-1]];
        pbVar16 = pbVar16 + 1;
      } while ((int)pbVar14 < (int)pbVar19);
    }
    local_44 = param_4 + (-(int)param_4 ^ (uint)pbVar6);
    if (pbVar23 != (byte *)0x0) {
LAB_00018628:
      local_44 = local_44 + -((int)pbVar8 - (int)pbVar23);
    }
    if (local_44 == (byte *)0x0) goto LAB_000187e0;
    iVar4 = iVar4 + 2;
    uVar22 = iVar4 * 8;
    if (uVar22 < 0x7f01) {
      local_50 = puVar26 + iVar4 * -8 + 0x18;
      pbVar14 = puVar26 + iVar4 * -0x10 + 0x18;
      puVar26 = puVar26 + iVar4 * -0x10;
    }
    else {
      local_50 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);
      pbVar14 = (byte *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);
    }
    puVar21 = PTR___gmpn_clz_tab_0009d18c;
    pbVar3 = local_44;
    if ((int)local_44 < 0) {
      pbVar3 = (byte *)-(int)local_44;
    }
    *(byte **)local_50 = param_3;
    if ((int)pbVar3 < 0x10000) {
      iVar10 = 0x18;
      if (0xff < (int)pbVar3) {
        iVar17 = 9;
        goto LAB_00018870;
      }
      uVar22 = (byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> 1] - 2;
      if (-1 < (int)uVar22) goto LAB_00018890;
      if ((int)param_2 < 1) {
        iVar10 = 0;
        pbVar19 = (byte *)0x1;
        iVar17 = 0;
        pbVar14 = local_50;
        goto LAB_00018988;
      }
      pbVar19 = (byte *)0x1;
      iVar10 = 0;
      *(byte **)local_50 = param_3;
    }
    else {
      iVar17 = 0x19;
      if ((int)pbVar3 < 0x1000000) {
        iVar17 = 0x11;
      }
      iVar10 = 0x10;
      if ((int)pbVar3 >= 0x1000000) {
        iVar10 = 8;
      }
LAB_00018870:
      uVar22 = ((uint)(byte)PTR___gmpn_clz_tab_0009d18c[(uint)pbVar3 >> iVar17] - iVar10) + 0x1e;
LAB_00018890:
      iVar10 = 0;
      pbVar19 = (byte *)0x1;
      iVar17 = 0;
      pbVar6 = local_50;
      while( true ) {
        pbVar8 = pbVar6;
        (*(code *)PTR___gmpn_sqr_0009d394)(pbVar14,pbVar8 + iVar17 * 4,pbVar19);
        iVar10 = iVar10 * 2;
        pbVar19 = (byte *)((int)pbVar19 * 2 -
                          (uint)(*(int *)(pbVar14 + ((int)pbVar19 * 2 + 0x3fffffff) * 4) == 0));
        if ((int)param_2 < (int)pbVar19) {
          iVar17 = (int)pbVar19 - (int)param_2;
          iVar10 = iVar10 + iVar17;
          pbVar19 = param_2;
        }
        else {
          iVar17 = 0;
        }
        if (((int)pbVar3 >> (uVar22 & 0x1f) & 1U) != 0) {
          iVar17 = (*(code *)PTR___gmpn_mul_1_0009d0a4)
                             (pbVar14,pbVar14 + iVar17 * 4,pbVar19,param_3);
          iVar13 = (int)pbVar19 * 4;
          pbVar19 = pbVar19 + (iVar17 != 0);
          *(int *)(pbVar14 + iVar13) = iVar17;
          iVar17 = 0;
        }
        if (uVar22 == 0) break;
        uVar22 = uVar22 - 1;
        pbVar6 = pbVar14;
        pbVar14 = pbVar8;
      }
      if ((int)param_2 < (int)pbVar19) {
LAB_00018988:
        iVar10 = iVar10 + ((int)pbVar19 - (int)param_2);
        pbVar14 = pbVar14 + ((int)pbVar19 - (int)param_2) * 4;
        pbVar19 = param_2;
      }
      pbVar3 = pbVar19 + -1;
      if (pbVar19 != (byte *)0x0) {
        uVar12 = *(undefined4 *)(pbVar14 + iVar17 * 4);
        if (pbVar3 == (byte *)0x0) {
          pbVar19 = (byte *)0x1;
          *(undefined4 *)local_50 = uVar12;
        }
        else {
          pbVar14 = pbVar14 + iVar17 * 4 + 4;
          pbVar6 = local_50;
          do {
            *(undefined4 *)pbVar6 = uVar12;
            pbVar3 = pbVar3 + -1;
            uVar12 = *(undefined4 *)pbVar14;
            pbVar14 = pbVar14 + 4;
            pbVar6 = pbVar6 + 4;
          } while (pbVar3 != (byte *)0x0);
          *(undefined4 *)(local_50 + (int)pbVar19 * 4 + -4) = uVar12;
        }
      }
    }
    pbVar3 = param_2;
    if ((int)local_44 < 0) {
      if ((int)local_4c < (int)pbVar19) {
        if ((uint)((int)(pbVar19 + 1) * 4) < 0x7f01) {
          iVar17 = -((int)(pbVar19 + 1) * 4 + 7U & 0xfffffff8);
          puVar15 = puVar26 + iVar17 + 0x18;
          puVar26 = puVar26 + iVar17;
        }
        else {
          puVar15 = (undefined1 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);
        }
        iVar17 = ((int)pbVar19 - (int)local_4c) * 4;
        pbVar14 = (byte *)(*(code *)PTR_memset_0009d2e8)(puVar15,0,iVar17);
        if (local_4c != (byte *)0x0) {
          pbVar16 = local_4c + -1;
          pbVar8 = pbVar14 + iVar17;
          uVar12 = *(undefined4 *)local_3c;
          pbVar6 = pbVar8;
          if (pbVar16 != (byte *)0x0) {
            do {
              local_3c = local_3c + 4;
              *(undefined4 *)pbVar6 = uVar12;
              pbVar16 = pbVar16 + -1;
              uVar12 = *(undefined4 *)local_3c;
              pbVar6 = pbVar6 + 4;
            } while (pbVar16 != (byte *)0x0);
            pbVar8 = pbVar8 + (int)local_4c * 4 + -4;
          }
          *(undefined4 *)pbVar8 = uVar12;
        }
        local_54 = local_54 - ((int)pbVar19 - (int)local_4c);
        local_4c = pbVar19;
        local_3c = pbVar14;
      }
      uVar22 = *(uint *)(local_50 + (int)pbVar19 * 4 + -4);
      if (-1 < (int)uVar22) {
        if (uVar22 < 0x10000) {
          iVar17 = 0x20;
          if (0xff < uVar22) {
            iVar17 = 0x18;
          }
          iVar13 = 9;
          if (0xff >= uVar22) {
            iVar13 = 1;
          }
        }
        else {
          iVar17 = 0x10;
          if (0xffffff < uVar22) {
            iVar17 = 8;
          }
          iVar13 = 0x19;
          if (0xffffff >= uVar22) {
            iVar13 = 0x11;
          }
        }
        bVar11 = puVar21[uVar22 >> iVar13];
        (*(code *)PTR___gmpn_lshift_0009d56c)(local_50,local_50,pbVar19,iVar17 - (uint)bVar11);
        iVar17 = (*(code *)PTR___gmpn_lshift_0009d56c)
                           (local_3c,local_3c,local_4c,iVar17 - (uint)bVar11);
        if (iVar17 != 0) {
          iVar13 = (int)local_4c * 4;
          local_4c = local_4c + 1;
          *(int *)(local_3c + iVar13) = iVar17;
        }
      }
      if ((uint)(iVar4 * 4) < 0x7f01) {
        iVar4 = -(iVar4 * 4 + 7U & 0xfffffff8);
        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);
        puVar26 = puVar26 + iVar4;
      }
      else {
        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);
      }
      iVar17 = (int)local_4c - (int)pbVar19;
      *(byte **)(puVar26 + 0x14) = pbVar19;
      *(byte **)(puVar26 + 0x10) = local_50;
      iVar4 = (*(code *)PTR___gmpn_divrem_0009d0e4)(puVar20,(int)param_2 - iVar17);
      pbVar14 = (byte *)((local_54 - iVar10) + iVar17 + iVar4);
      if (iVar4 != 0) {
        piVar5 = puVar20 + (int)param_2;
        puVar20 = puVar20 + 1;
        *piVar5 = iVar4;
      }
    }
    else {
      pbVar3 = pbVar19 + (int)local_4c;
      uVar22 = (int)pbVar3 * 4;
      if (uVar22 < 0x7f01) {
        iVar4 = -(uVar22 + 7 & 0xfffffff8);
        puVar20 = (undefined4 *)(puVar26 + iVar4 + 0x18);
        puVar26 = puVar26 + iVar4;
      }
      else {
        puVar20 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30,uVar22);
      }
      if ((int)local_4c < (int)pbVar19) {
        *(byte **)(puVar26 + 0x10) = local_4c;
        local_4c = local_3c;
        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_50);
        local_3c = pbVar19;
      }
      else {
        *(byte **)(puVar26 + 0x10) = pbVar19;
        (*(code *)PTR___gmpn_mul_0009d2b4)(puVar20,local_3c);
        local_3c = local_4c;
        local_4c = local_50;
      }
      pbVar3 = pbVar3 + -(uint)(puVar20[(int)(pbVar3 + -1)] == 0);
      pbVar14 = pbVar3 + iVar10 + local_54;
      if ((int)param_2 < (int)pbVar3) {
        puVar20 = puVar20 + ((int)pbVar3 - (int)param_2);
        pbVar3 = param_2;
      }
    }
    if (pbVar3 != (byte *)0x0) {
      pbVar6 = pbVar3 + -1;
      uVar12 = *puVar20;
      local_3c = (byte *)param_1[3];
      pbVar19 = local_3c;
      if (pbVar6 != (byte *)0x0) {
        do {
          puVar20 = puVar20 + 1;
          *(undefined4 *)pbVar19 = uVar12;
          pbVar6 = pbVar6 + -1;
          uVar12 = *puVar20;
          pbVar19 = pbVar19 + 4;
        } while (pbVar6 != (byte *)0x0);
        local_3c = local_3c + (int)pbVar3 * 4 + -4;
      }
      *(undefined4 *)local_3c = uVar12;
    }
    if (bVar1) {
      pbVar3 = (byte *)-(int)pbVar3;
    }
    param_1[1] = (int)pbVar3;
    param_1[2] = (int)pbVar14;
    pbVar14 = local_3c;
    param_4 = local_4c;
    param_2 = pbVar3;
    if (local_30 == 0) {
      uVar22 = 0;
      goto LAB_00018714;
    }
  }
  else {
    local_54 = 0;
    local_4c = pbVar3;
    if (pbVar16 != (byte *)0x0) goto LAB_000185a0;
LAB_000187d0:
    if (pbVar23 != (byte *)0x0) {
      local_44 = (byte *)0x0;
      goto LAB_00018628;
    }
LAB_000187e0:
    if (local_4c != (byte *)0x0) {
      pbVar6 = local_4c + -1;
      pbVar14 = (byte *)param_1[3];
      uVar12 = *(undefined4 *)local_3c;
      pbVar19 = pbVar14;
      if (pbVar6 != (byte *)0x0) {
        do {
          local_3c = local_3c + 4;
          *(undefined4 *)pbVar19 = uVar12;
          pbVar6 = pbVar6 + -1;
          uVar12 = *(undefined4 *)local_3c;
          pbVar19 = pbVar19 + 4;
        } while (pbVar6 != (byte *)0x0);
        pbVar14 = pbVar14 + (int)local_4c * 4 + -4;
      }
      *(undefined4 *)pbVar14 = uVar12;
    }
    if (bVar1) {
      local_4c = (byte *)-(int)local_4c;
    }
    param_1[1] = (int)local_4c;
    param_1[2] = (int)pbVar3;
    if (local_30 == 0) goto LAB_000187ac;
  }
  (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();
  uVar22 = 0;
LAB_00018714:
  if (local_2c == *(int *)puVar24) {
    return uVar22;
  }
  pcVar27 = __gmpf_set_d;
  iVar4 = local_2c;
  puVar24 = PTR___stack_chk_fail_0009d4d0;
  (*(code *)PTR___stack_chk_fail_0009d4d0)();
  *(byte **)(puVar26 + 8) = pbVar14;
  *(undefined **)(puVar26 + -0x18) = puVar24 + 0x8c170;
  *(code **)(puVar26 + -4) = pcVar27;
  *(byte **)(puVar26 + -8) = param_2;
  *(byte **)(puVar26 + 0xc) = param_4;
  uVar22 = *(uint *)(puVar26 + 8) & 0x7ff00000;
  if (uVar22 == 0x7ff00000) {
    uVar22 = (**(code **)(puVar24 + 0x8468c))();
  }
  else if ((double)CONCAT44(pbVar14,param_4) != 0.0) {
    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {
      *(ulonglong *)(puVar26 + -0x10) = CONCAT44(pbVar14,param_4);
    }
    else {
      *(uint *)(puVar26 + -0x10) = *(uint *)(puVar26 + 8) ^ 0x80000000;
      *(undefined4 *)(puVar26 + -0xc) = *(undefined4 *)(puVar26 + 0xc);
    }
    pcVar27 = *(code **)(puVar24 + 0x84254);
    uVar12 = 0xfffffffd;
    if (0.0 <= (double)CONCAT44(pbVar14,param_4)) {
      uVar12 = 3;
    }
    *(undefined4 *)(iVar4 + 4) = uVar12;
    uVar22 = (*pcVar27)(*(undefined4 *)(iVar4 + 0xc));
    *(uint *)(iVar4 + 8) = uVar22;
    return uVar22;
  }
  *(undefined4 *)(iVar4 + 4) = 0;
  *(undefined4 *)(iVar4 + 8) = 0;
  return uVar22;
}

