
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Switch with 1 destination removed at 0x0001be40 */
/* WARNING: Unknown calling convention */

void __gmpz_gcd(mpz_ptr g,mpz_srcptr u,mpz_srcptr v)

{
  uint uVar1;
  undefined *puVar2;
  code *pcVar3;
  mpz_srcptr p_Var4;
  uint *puVar5;
  undefined **ppuVar6;
  mp_limb_t *pmVar7;
  int iVar8;
  mp_limb_t mVar9;
  mp_limb_t *pmVar10;
  uint *puVar11;
  uint *puVar12;
  mp_limb_t *pmVar13;
  undefined1 *puVar14;
  uint *puVar15;
  uint uVar16;
  int iVar17;
  int in_GS_OFFSET;
  undefined1 auStack_6c [8];
  uint *puStack_64;
  uint *puStack_60;
  mpz_srcptr p_Stack_5c;
  int iStack_58;
  int iStack_54;
  uint *puStack_50;
  uint *puStack_4c;
  uint *puStack_48;
  void *pvStack_44;
  uint *puStack_40;
  mpz_srcptr p_Stack_3c;
  mpz_srcptr p_Stack_38;
  uint *puStack_34;
  undefined **ppuStack_30;
  tmp_reentrant_t *ptStack_24;
  int iStack_20;
  undefined **ppuStack_10;
  
  ppuStack_10 = &_GLOBAL_OFFSET_TABLE_;
  puVar14 = auStack_6c;
  ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;
  p_Stack_38 = u;
  uVar16 = u->_mp_size;
  iStack_20 = *(int *)(in_GS_OFFSET + 0x14);
  puVar11 = v->_mp_d;
  p_Stack_3c = v;
  uVar1 = v->_mp_size;
  puVar15 = (uint *)(((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f));
  if (uVar16 == 0) {
    g->_mp_size = (int)puVar15;
    puVar14 = auStack_6c;
    ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;
    if (v == g) goto LAB_00029590;
    if (g->_mp_alloc < (int)puVar15) {
      puStack_34 = puVar11;
      __gmpz_realloc(g,(mp_size_t)puVar15);
      puVar11 = puStack_34;
    }
  }
  else {
    puStack_40 = u->_mp_d;
    puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f));
    if (uVar1 != 0) {
      if (puStack_34 == (uint *)0x1) {
        pmVar13 = g->_mp_d;
        g->_mp_size = 1;
        uVar16 = *puStack_40;
      }
      else {
        if (puVar15 != (uint *)0x1) {
          ptStack_24 = (tmp_reentrant_t *)0x0;
          uVar16 = *puStack_40;
          puVar12 = puStack_40;
          if (uVar16 == 0) {
            do {
              puVar12 = puVar12 + 1;
              uVar16 = *puVar12;
            } while (uVar16 == 0);
            iStack_58 = (int)puVar12 - (int)puStack_40;
            p_Stack_5c = (mpz_srcptr)(iStack_58 >> 2);
            puStack_34 = (uint *)((int)puStack_34 - (int)p_Stack_5c);
          }
          else {
            p_Stack_5c = (mpz_srcptr)0x0;
            iStack_58 = 0;
          }
          puStack_50 = (uint *)0x0;
          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {
            puStack_50 = (uint *)((int)puStack_50 + 1);
          }
          p_Stack_38 = (mpz_srcptr)((int)puStack_34 * 4);
          if (p_Stack_38 < (uint *)0x7f01) {
            iVar17 = -((int)p_Stack_38 + 0x1bU & 0xfffffff0);
            puVar14 = auStack_6c + iVar17;
            pvStack_44 = (void *)((int)&puStack_60 + iVar17);
            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;
          }
          else {
            puStack_48 = puVar11;
            puStack_40 = puVar12;
            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;
            pvStack_44 = __gmp_tmp_reentrant_alloc(&ptStack_24,(size_t)p_Stack_38);
            puVar14 = auStack_6c;
            puVar11 = puStack_48;
            puVar12 = puStack_40;
          }
          ppuVar6 = ppuStack_30;
          puVar5 = puStack_34;
          if (puStack_50 == (uint *)0x0) {
            *(uint **)(puVar14 + -8) = puStack_34;
            *(uint **)(puVar14 + -0xc) = puVar12;
            *(void **)(puVar14 + -0x10) = pvStack_44;
            puStack_48 = (uint *)ppuVar6[-0x9b];
            pcVar3 = *(code **)((int)puStack_48 + 0x28);
            p_Stack_38 = (mpz_srcptr)puVar11;
            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;
            (*pcVar3)();
            puStack_40 = (uint *)p_Stack_38;
          }
          else {
            puStack_40 = puVar11;
            *(uint **)(puVar14 + -4) = puStack_50;
            puVar2 = ppuVar6[-0x9b];
            *(uint **)(puVar14 + -8) = puVar5;
            puStack_48 = (uint *)puVar2;
            *(uint **)(puVar14 + -0xc) = puVar12;
            *(void **)(puVar14 + -0x10) = pvStack_44;
            pcVar3 = *(code **)(puVar2 + 0x80);
            *(undefined4 *)(puVar14 + -0x14) = 0x29680;
            (*pcVar3)();
            puStack_34 = (uint *)((int)puVar5 -
                                 (uint)(*(int *)((int)pvStack_44 + -4 + (int)p_Stack_38) == 0));
          }
          uVar16 = *puStack_40;
          puVar11 = puStack_40;
          while (uVar16 == 0) {
            puVar11 = puVar11 + 1;
            uVar16 = *puVar11;
          }
          puStack_4c = (uint *)0x0;
          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {
            puStack_4c = (uint *)((int)puStack_4c + 1);
          }
          iStack_54 = (int)puVar11 - (int)p_Stack_3c->_mp_d;
          p_Stack_3c = (mpz_srcptr)(iStack_54 >> 2);
          puStack_40 = (uint *)((int)puVar15 - (int)p_Stack_3c);
          uVar16 = (int)puStack_40 * 4;
          if (uVar16 < 0x7f01) {
            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);
            p_Stack_38 = (mpz_srcptr)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);
            puStack_60 = puStack_4c;
            puVar14 = puVar14 + iVar17;
          }
          else {
            puStack_64 = puStack_4c;
            *(uint *)(puVar14 + -0xc) = uVar16;
            *(tmp_reentrant_t ***)(puVar14 + -0x10) = &ptStack_24;
            puStack_60 = puVar11;
            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;
            p_Stack_38 = (mpz_srcptr)
                         __gmp_tmp_reentrant_alloc
                                   (*(tmp_reentrant_t ***)(puVar14 + -0x10),
                                    *(size_t *)(puVar14 + -0xc));
            puVar11 = puStack_60;
            puStack_60 = puStack_64;
          }
          puVar15 = puStack_40;
          if (puStack_60 == (uint *)0x0) {
            *(uint **)(puVar14 + -8) = puStack_40;
            puVar15 = puStack_48;
            *(uint **)(puVar14 + -0xc) = puVar11;
            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;
            pcVar3 = *(code **)((int)puVar15 + 0x28);
            *(undefined4 *)(puVar14 + -0x14) = 0x29913;
            (*pcVar3)();
          }
          else {
            *(uint **)(puVar14 + -4) = puStack_60;
            *(uint **)(puVar14 + -8) = puVar15;
            *(uint **)(puVar14 + -0xc) = puVar11;
            puVar11 = puStack_48;
            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;
            pcVar3 = *(code **)((int)puVar11 + 0x80);
            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;
            (*pcVar3)();
            puStack_40 = (uint *)((int)puVar15 -
                                 (uint)(*(int *)((int)p_Stack_38 + (uVar16 - 4)) == 0));
          }
          p_Var4 = p_Stack_38;
          if (iStack_58 <= iStack_54) {
            if (iStack_58 < iStack_54) {
              p_Stack_3c = p_Stack_5c;
              puStack_4c = puStack_50;
            }
            else {
              puStack_4c = puStack_60;
              if (puStack_50 < puStack_60) {
                puStack_4c = puStack_50;
              }
              p_Stack_3c = p_Stack_5c;
            }
          }
          if (((int)puStack_34 < (int)puStack_40) ||
             ((puStack_40 == puStack_34 &&
              (*(uint *)((int)pvStack_44 + (int)puStack_40 * 4 + -4) <
               *(uint *)((int)p_Stack_38 + (int)puStack_40 * 4 + -4))))) {
            *(uint **)(puVar14 + -0x10) = puStack_34;
            *(void **)(puVar14 + -0x14) = pvStack_44;
            *(uint **)(puVar14 + -0x18) = puStack_40;
            *(mpz_srcptr *)(puVar14 + -0x1c) = p_Var4;
          }
          else {
            *(uint **)(puVar14 + -0x10) = puStack_40;
            *(mpz_srcptr *)(puVar14 + -0x14) = p_Var4;
            *(uint **)(puVar14 + -0x18) = puStack_34;
            *(void **)(puVar14 + -0x1c) = pvStack_44;
          }
          *(mpz_srcptr *)(puVar14 + -0x20) = p_Var4;
          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;
          puStack_34 = (uint *)__gmpn_gcd(*(mp_ptr *)(puVar14 + -0x20),*(mp_ptr *)(puVar14 + -0x1c),
                                          *(mp_size_t *)(puVar14 + -0x18),
                                          *(mp_ptr *)(puVar14 + -0x14),
                                          *(mp_size_t *)(puVar14 + -0x10));
          iVar17 = (int)&p_Stack_3c->_mp_alloc + (int)puStack_34;
          if (puStack_4c == (uint *)0x0) {
            if (g->_mp_alloc < iVar17) {
              *(int *)(puVar14 + -0xc) = iVar17;
              *(mpz_ptr *)(puVar14 + -0x10) = g;
              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;
              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));
            }
            p_Var4 = p_Stack_3c;
            pmVar13 = g->_mp_d;
            if (p_Stack_3c != (mpz_srcptr)0x0) {
              pmVar10 = pmVar13;
              do {
                pmVar7 = pmVar10 + 1;
                *pmVar10 = 0;
                pmVar10 = pmVar7;
              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);
            }
            *(uint **)(puVar14 + -8) = puStack_34;
            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;
            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;
            pcVar3 = *(code **)((int)puStack_48 + 0x28);
            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;
            (*pcVar3)();
          }
          else {
            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);
            iVar17 = iVar17 + (uint)(*(uint *)((int)p_Stack_38 + ((int)puStack_34 + 0x3fffffff) * 4)
                                     >> (0x20U - (char)puStack_4c & 0x1f) != 0);
            if (g->_mp_alloc < iVar17) {
              *(int *)(puVar14 + -0xc) = iVar17;
              *(mpz_ptr *)(puVar14 + -0x10) = g;
              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;
              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));
            }
            p_Var4 = p_Stack_3c;
            pmVar13 = g->_mp_d;
            if (p_Stack_3c != (mpz_srcptr)0x0) {
              pmVar10 = pmVar13;
              do {
                pmVar7 = pmVar10 + 1;
                *pmVar10 = 0;
                pmVar10 = pmVar7;
              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);
            }
            *(uint **)(puVar14 + -4) = puStack_4c;
            *(uint **)(puVar14 + -8) = puStack_34;
            puVar11 = puStack_48;
            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;
            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;
            pcVar3 = *(code **)((int)puVar11 + 0x38);
            *(undefined4 *)(puVar14 + -0x14) = 0x29804;
            iVar8 = (*pcVar3)();
            if (iVar8 != 0) {
              *(int *)((int)(pmVar13 + (int)p_Var4 + 1) + (int)puStack_40) = iVar8;
            }
          }
          g->_mp_size = iVar17;
          if (ptStack_24 != (tmp_reentrant_t *)0x0) {
            *(tmp_reentrant_t **)(puVar14 + -0x10) = ptStack_24;
            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;
            __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar14 + -0x10));
          }
          goto LAB_00029590;
        }
        g->_mp_size = 1;
        pmVar13 = g->_mp_d;
        uVar16 = *puVar11;
        puVar11 = puStack_40;
        puVar15 = puStack_34;
      }
      ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;
      mVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);
      puVar14 = auStack_6c;
      *pmVar13 = mVar9;
      goto LAB_00029590;
    }
    g->_mp_size = (int)puStack_34;
    if (u == g) goto LAB_00029590;
    puVar11 = puStack_40;
    puVar15 = puStack_34;
    ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;
    if (g->_mp_alloc < (int)puStack_34) {
      __gmpz_realloc(g,(mp_size_t)puStack_34);
      puVar11 = puStack_40;
      puVar15 = puStack_34;
    }
  }
  (**(code **)(ppuStack_30[-0x9b] + 0x28))(g->_mp_d,puVar11,puVar15);
  puVar14 = auStack_6c;
LAB_00029590:
  if (iStack_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  *(undefined4 *)(puVar14 + -4) = 0x29a36;
  __stack_chk_fail_local();
}



/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Switch with 1 destination removed at 0x0001be40 */

void __gmpz_gcd(int *param_1,int *param_2,int *param_3)

{
  uint uVar1;
  undefined *puVar2;
  code *pcVar3;
  int *piVar4;
  uint *puVar5;
  undefined **ppuVar6;
  undefined4 *puVar7;
  int iVar8;
  undefined4 uVar9;
  undefined4 *puVar10;
  uint *puVar11;
  uint *puVar12;
  undefined4 *puVar13;
  undefined1 *puVar14;
  uint *puVar15;
  uint uVar16;
  int iVar17;
  int in_GS_OFFSET;
  undefined1 auStack_6c [8];
  uint *puStack_64;
  uint *puStack_60;
  int *piStack_5c;
  int iStack_58;
  int iStack_54;
  uint *puStack_50;
  uint *puStack_4c;
  uint *puStack_48;
  int iStack_44;
  uint *puStack_40;
  int *piStack_3c;
  uint *puStack_38;
  uint *puStack_34;
  undefined **ppuStack_30;
  int iStack_24;
  int iStack_20;
  undefined **ppuStack_10;
  
  ppuStack_10 = &__DT_PLTGOT;
  puVar14 = auStack_6c;
  ppuStack_30 = &__DT_PLTGOT;
  puStack_38 = (uint *)param_2;
  uVar16 = param_2[1];
  iStack_20 = *(int *)(in_GS_OFFSET + 0x14);
  puVar11 = (uint *)param_3[2];
  piStack_3c = param_3;
  uVar1 = param_3[1];
  puVar15 = (uint *)(((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f));
  if (uVar16 == 0) {
    param_1[1] = (int)puVar15;
    puVar14 = auStack_6c;
    ppuStack_30 = &__DT_PLTGOT;
    if (param_3 == param_1) goto LAB_00029590;
    if (*param_1 < (int)puVar15) {
      puStack_34 = puVar11;
      __gmpz_realloc(param_1,puVar15);
      puVar11 = puStack_34;
    }
  }
  else {
    puStack_40 = (uint *)param_2[2];
    puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f));
    if (uVar1 != 0) {
      if (puStack_34 == (uint *)0x1) {
        puVar13 = (undefined4 *)param_1[2];
        param_1[1] = 1;
        uVar16 = *puStack_40;
      }
      else {
        if (puVar15 != (uint *)0x1) {
          iStack_24 = 0;
          uVar16 = *puStack_40;
          puVar12 = puStack_40;
          if (uVar16 == 0) {
            do {
              puVar12 = puVar12 + 1;
              uVar16 = *puVar12;
            } while (uVar16 == 0);
            iStack_58 = (int)puVar12 - (int)puStack_40;
            piStack_5c = (int *)(iStack_58 >> 2);
            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);
          }
          else {
            piStack_5c = (int *)0x0;
            iStack_58 = 0;
          }
          puStack_50 = (uint *)0x0;
          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {
            puStack_50 = (uint *)((int)puStack_50 + 1);
          }
          puStack_38 = (uint *)((int)puStack_34 * 4);
          if (puStack_38 < (uint *)0x7f01) {
            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);
            puVar14 = auStack_6c + iStack_44;
            iStack_44 = (int)&puStack_60 + iStack_44;
            ppuStack_30 = &__DT_PLTGOT;
          }
          else {
            puStack_48 = puVar11;
            puStack_40 = puVar12;
            ppuStack_30 = &__DT_PLTGOT;
            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);
            puVar14 = auStack_6c;
            puVar11 = puStack_48;
            puVar12 = puStack_40;
          }
          ppuVar6 = ppuStack_30;
          puVar5 = puStack_34;
          if (puStack_50 == (uint *)0x0) {
            *(uint **)(puVar14 + -8) = puStack_34;
            *(uint **)(puVar14 + -0xc) = puVar12;
            *(int *)(puVar14 + -0x10) = iStack_44;
            puStack_48 = (uint *)ppuVar6[-0x9b];
            pcVar3 = *(code **)((int)puStack_48 + 0x28);
            puStack_38 = puVar11;
            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;
            (*pcVar3)();
            puStack_40 = puStack_38;
          }
          else {
            puStack_40 = puVar11;
            *(uint **)(puVar14 + -4) = puStack_50;
            puVar2 = ppuVar6[-0x9b];
            *(uint **)(puVar14 + -8) = puVar5;
            puStack_48 = (uint *)puVar2;
            *(uint **)(puVar14 + -0xc) = puVar12;
            *(int *)(puVar14 + -0x10) = iStack_44;
            pcVar3 = *(code **)(puVar2 + 0x80);
            *(undefined4 *)(puVar14 + -0x14) = 0x29680;
            (*pcVar3)();
            puStack_34 = (uint *)((int)puVar5 -
                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));
          }
          uVar16 = *puStack_40;
          puVar11 = puStack_40;
          while (uVar16 == 0) {
            puVar11 = puVar11 + 1;
            uVar16 = *puVar11;
          }
          puStack_4c = (uint *)0x0;
          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {
            puStack_4c = (uint *)((int)puStack_4c + 1);
          }
          iStack_54 = (int)puVar11 - piStack_3c[2];
          piStack_3c = (int *)(iStack_54 >> 2);
          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);
          uVar16 = (int)puVar15 * 4;
          puStack_40 = puVar15;
          if (uVar16 < 0x7f01) {
            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);
            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);
            puStack_60 = puStack_4c;
            puVar14 = puVar14 + iVar17;
          }
          else {
            puStack_64 = puStack_4c;
            *(uint *)(puVar14 + -0xc) = uVar16;
            *(int **)(puVar14 + -0x10) = &iStack_24;
            puStack_60 = puVar11;
            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;
            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();
            puVar11 = puStack_60;
            puStack_60 = puStack_64;
          }
          puVar12 = puStack_40;
          if (puStack_60 == (uint *)0x0) {
            *(uint **)(puVar14 + -8) = puStack_40;
            puVar15 = puStack_48;
            *(uint **)(puVar14 + -0xc) = puVar11;
            *(uint **)(puVar14 + -0x10) = puStack_38;
            pcVar3 = *(code **)((int)puVar15 + 0x28);
            *(undefined4 *)(puVar14 + -0x14) = 0x29913;
            (*pcVar3)();
          }
          else {
            *(uint **)(puVar14 + -4) = puStack_60;
            *(uint **)(puVar14 + -8) = puVar12;
            *(uint **)(puVar14 + -0xc) = puVar11;
            puVar11 = puStack_48;
            *(uint **)(puVar14 + -0x10) = puStack_38;
            pcVar3 = *(code **)((int)puVar11 + 0x80);
            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;
            (*pcVar3)();
            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));
          }
          puVar11 = puStack_38;
          if (iStack_58 <= iStack_54) {
            if (iStack_58 < iStack_54) {
              piStack_3c = piStack_5c;
              puStack_4c = puStack_50;
            }
            else {
              puStack_4c = puStack_60;
              if (puStack_50 < puStack_60) {
                puStack_4c = puStack_50;
              }
              piStack_3c = piStack_5c;
            }
          }
          if (((int)puStack_34 < (int)puStack_40) ||
             ((puStack_40 == puStack_34 &&
              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))
             ) {
            *(uint **)(puVar14 + -0x10) = puStack_34;
            *(int *)(puVar14 + -0x14) = iStack_44;
            *(uint **)(puVar14 + -0x18) = puStack_40;
            *(uint **)(puVar14 + -0x1c) = puVar11;
          }
          else {
            *(uint **)(puVar14 + -0x10) = puStack_40;
            *(uint **)(puVar14 + -0x14) = puVar11;
            *(uint **)(puVar14 + -0x18) = puStack_34;
            *(int *)(puVar14 + -0x1c) = iStack_44;
          }
          *(uint **)(puVar14 + -0x20) = puVar11;
          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;
          puStack_34 = (uint *)__gmpn_gcd();
          iVar17 = (int)piStack_3c + (int)puStack_34;
          if (puStack_4c == (uint *)0x0) {
            if (*param_1 < iVar17) {
              *(int *)(puVar14 + -0xc) = iVar17;
              *(int **)(puVar14 + -0x10) = param_1;
              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;
              __gmpz_realloc();
            }
            piVar4 = piStack_3c;
            puVar13 = (undefined4 *)param_1[2];
            if (piStack_3c != (int *)0x0) {
              puVar10 = puVar13;
              do {
                puVar7 = puVar10 + 1;
                *puVar10 = 0;
                puVar10 = puVar7;
              } while (puVar7 != puVar13 + (int)piStack_3c);
            }
            *(uint **)(puVar14 + -8) = puStack_34;
            *(uint **)(puVar14 + -0xc) = puStack_38;
            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;
            pcVar3 = *(code **)((int)puStack_48 + 0x28);
            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;
            (*pcVar3)();
          }
          else {
            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);
            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>
                                     (0x20U - (char)puStack_4c & 0x1f) != 0);
            if (*param_1 < iVar17) {
              *(int *)(puVar14 + -0xc) = iVar17;
              *(int **)(puVar14 + -0x10) = param_1;
              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;
              __gmpz_realloc();
            }
            piVar4 = piStack_3c;
            puVar13 = (undefined4 *)param_1[2];
            if (piStack_3c != (int *)0x0) {
              puVar10 = puVar13;
              do {
                puVar7 = puVar10 + 1;
                *puVar10 = 0;
                puVar10 = puVar7;
              } while (puVar7 != puVar13 + (int)piStack_3c);
            }
            *(uint **)(puVar14 + -4) = puStack_4c;
            *(uint **)(puVar14 + -8) = puStack_34;
            puVar11 = puStack_48;
            *(uint **)(puVar14 + -0xc) = puStack_38;
            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;
            pcVar3 = *(code **)((int)puVar11 + 0x38);
            *(undefined4 *)(puVar14 + -0x14) = 0x29804;
            iVar8 = (*pcVar3)();
            if (iVar8 != 0) {
              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;
            }
          }
          param_1[1] = iVar17;
          if (iStack_24 != 0) {
            *(int *)(puVar14 + -0x10) = iStack_24;
            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;
            __gmp_tmp_reentrant_free();
          }
          goto LAB_00029590;
        }
        param_1[1] = 1;
        puVar13 = (undefined4 *)param_1[2];
        uVar16 = *puVar11;
        puVar11 = puStack_40;
        puVar15 = puStack_34;
      }
      ppuStack_30 = &__DT_PLTGOT;
      uVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);
      puVar14 = auStack_6c;
      *puVar13 = uVar9;
      goto LAB_00029590;
    }
    param_1[1] = (int)puStack_34;
    if (param_2 == param_1) goto LAB_00029590;
    puVar11 = puStack_40;
    puVar15 = puStack_34;
    ppuStack_30 = &__DT_PLTGOT;
    if (*param_1 < (int)puStack_34) {
      __gmpz_realloc(param_1,puStack_34);
      puVar11 = puStack_40;
      puVar15 = puStack_34;
    }
  }
  (**(code **)(ppuStack_30[-0x9b] + 0x28))(param_1[2],puVar11,puVar15);
  puVar14 = auStack_6c;
LAB_00029590:
  if (iStack_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  *(undefined4 *)(puVar14 + -4) = 0x29a36;
  FUN_00079d30();
}


JMP dword ptr [EBX + 0x38c]
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Switch with 1 destination removed at 0x0001be40 */\n\nvoid __gmpz_gcd(int *param_1,int *param_2,int *param_3)\n\n{\n  uint uVar1;\n  undefined *puVar2;\n  code *pcVar3;\n  int *piVar4;\n  uint *puVar5;\n  undefined **ppuVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined4 *puVar10;\n  uint *puVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  undefined1 *puVar14;\n  uint *puVar15;\n  uint uVar16;\n  int iVar17;\n  int in_GS_OFFSET;\n  undefined1 auStack_6c [8];\n  uint *puStack_64;\n  uint *puStack_60;\n  int *piStack_5c;\n  int iStack_58;\n  int iStack_54;\n  uint *puStack_50;\n  uint *puStack_4c;\n  uint *puStack_48;\n  int iStack_44;\n  uint *puStack_40;\n  int *piStack_3c;\n  uint *puStack_38;\n  uint *puStack_34;\n  undefined **ppuStack_30;\n  int iStack_24;\n  int iStack_20;\n  undefined **ppuStack_10;\n  \n  ppuStack_10 = &__DT_PLTGOT;\n  puVar14 = auStack_6c;\n  ppuStack_30 = &__DT_PLTGOT;\n  puStack_38 = (uint *)param_2;\n  uVar16 = param_2[1];\n  iStack_20 = *(int *)(in_GS_OFFSET + 0x14);\n  puVar11 = (uint *)param_3[2];\n  piStack_3c = param_3;\n  uVar1 = param_3[1];\n  puVar15 = (uint *)(((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f));\n  if (uVar16 == 0) {\n    param_1[1] = (int)puVar15;\n    puVar14 = auStack_6c;\n    ppuStack_30 = &__DT_PLTGOT;\n    if (param_3 == param_1) goto LAB_00029590;\n    if (*param_1 < (int)puVar15) {\n      puStack_34 = puVar11;\n      __gmpz_realloc(param_1,puVar15);\n      puVar11 = puStack_34;\n    }\n  }\n  else {\n    puStack_40 = (uint *)param_2[2];\n    puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f));\n    if (uVar1 != 0) {\n      if (puStack_34 == (uint *)0x1) {\n        puVar13 = (undefined4 *)param_1[2];\n        param_1[1] = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }\n        param_1[1] = 1;\n        puVar13 = (undefined4 *)param_1[2];\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }\n      ppuStack_30 = &__DT_PLTGOT;\n      uVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);\n      puVar14 = auStack_6c;\n      *puVar13 = uVar9;\n      goto LAB_00029590;\n    }\n    param_1[1] = (int)puStack_34;\n    if (param_2 == param_1) goto LAB_00029590;\n    puVar11 = puStack_40;\n    puVar15 = puStack_34;\n    ppuStack_30 = &__DT_PLTGOT;\n    if (*param_1 < (int)puStack_34) {\n      __gmpz_realloc(param_1,puStack_34);\n      puVar11 = puStack_40;\n      puVar15 = puStack_34;\n    }\n  }\n  (**(code **)(ppuStack_30[-0x9b] + 0x28))(param_1[2],puVar11,puVar15);\n  puVar14 = auStack_6c;\nLAB_00029590:\n  if (iStack_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)(puVar14 + -4) = 0x29a36;\n  FUN_00079d30();\n}\n\n" comment comment (function_definition "void __gmpz_gcd(int *param_1,int *param_2,int *param_3)\n\n{\n  uint uVar1;\n  undefined *puVar2;\n  code *pcVar3;\n  int *piVar4;\n  uint *puVar5;\n  undefined **ppuVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined4 *puVar10;\n  uint *puVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  undefined1 *puVar14;\n  uint *puVar15;\n  uint uVar16;\n  int iVar17;\n  int in_GS_OFFSET;\n  undefined1 auStack_6c [8];\n  uint *puStack_64;\n  uint *puStack_60;\n  int *piStack_5c;\n  int iStack_58;\n  int iStack_54;\n  uint *puStack_50;\n  uint *puStack_4c;\n  uint *puStack_48;\n  int iStack_44;\n  uint *puStack_40;\n  int *piStack_3c;\n  uint *puStack_38;\n  uint *puStack_34;\n  undefined **ppuStack_30;\n  int iStack_24;\n  int iStack_20;\n  undefined **ppuStack_10;\n  \n  ppuStack_10 = &__DT_PLTGOT;\n  puVar14 = auStack_6c;\n  ppuStack_30 = &__DT_PLTGOT;\n  puStack_38 = (uint *)param_2;\n  uVar16 = param_2[1];\n  iStack_20 = *(int *)(in_GS_OFFSET + 0x14);\n  puVar11 = (uint *)param_3[2];\n  piStack_3c = param_3;\n  uVar1 = param_3[1];\n  puVar15 = (uint *)(((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f));\n  if (uVar16 == 0) {\n    param_1[1] = (int)puVar15;\n    puVar14 = auStack_6c;\n    ppuStack_30 = &__DT_PLTGOT;\n    if (param_3 == param_1) goto LAB_00029590;\n    if (*param_1 < (int)puVar15) {\n      puStack_34 = puVar11;\n      __gmpz_realloc(param_1,puVar15);\n      puVar11 = puStack_34;\n    }\n  }\n  else {\n    puStack_40 = (uint *)param_2[2];\n    puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f));\n    if (uVar1 != 0) {\n      if (puStack_34 == (uint *)0x1) {\n        puVar13 = (undefined4 *)param_1[2];\n        param_1[1] = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }\n        param_1[1] = 1;\n        puVar13 = (undefined4 *)param_1[2];\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }\n      ppuStack_30 = &__DT_PLTGOT;\n      uVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);\n      puVar14 = auStack_6c;\n      *puVar13 = uVar9;\n      goto LAB_00029590;\n    }\n    param_1[1] = (int)puStack_34;\n    if (param_2 == param_1) goto LAB_00029590;\n    puVar11 = puStack_40;\n    puVar15 = puStack_34;\n    ppuStack_30 = &__DT_PLTGOT;\n    if (*param_1 < (int)puStack_34) {\n      __gmpz_realloc(param_1,puStack_34);\n      puVar11 = puStack_40;\n      puVar15 = puStack_34;\n    }\n  }\n  (**(code **)(ppuStack_30[-0x9b] + 0x28))(param_1[2],puVar11,puVar15);\n  puVar14 = auStack_6c;\nLAB_00029590:\n  if (iStack_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)(puVar14 + -4) = 0x29a36;\n  FUN_00079d30();\n}" primitive_type (function_declarator "__gmpz_gcd(int *param_1,int *param_2,int *param_3)" identifier (parameter_list "(int *param_1,int *param_2,int *param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  undefined *puVar2;\n  code *pcVar3;\n  int *piVar4;\n  uint *puVar5;\n  undefined **ppuVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined4 *puVar10;\n  uint *puVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  undefined1 *puVar14;\n  uint *puVar15;\n  uint uVar16;\n  int iVar17;\n  int in_GS_OFFSET;\n  undefined1 auStack_6c [8];\n  uint *puStack_64;\n  uint *puStack_60;\n  int *piStack_5c;\n  int iStack_58;\n  int iStack_54;\n  uint *puStack_50;\n  uint *puStack_4c;\n  uint *puStack_48;\n  int iStack_44;\n  uint *puStack_40;\n  int *piStack_3c;\n  uint *puStack_38;\n  uint *puStack_34;\n  undefined **ppuStack_30;\n  int iStack_24;\n  int iStack_20;\n  undefined **ppuStack_10;\n  \n  ppuStack_10 = &__DT_PLTGOT;\n  puVar14 = auStack_6c;\n  ppuStack_30 = &__DT_PLTGOT;\n  puStack_38 = (uint *)param_2;\n  uVar16 = param_2[1];\n  iStack_20 = *(int *)(in_GS_OFFSET + 0x14);\n  puVar11 = (uint *)param_3[2];\n  piStack_3c = param_3;\n  uVar1 = param_3[1];\n  puVar15 = (uint *)(((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f));\n  if (uVar16 == 0) {\n    param_1[1] = (int)puVar15;\n    puVar14 = auStack_6c;\n    ppuStack_30 = &__DT_PLTGOT;\n    if (param_3 == param_1) goto LAB_00029590;\n    if (*param_1 < (int)puVar15) {\n      puStack_34 = puVar11;\n      __gmpz_realloc(param_1,puVar15);\n      puVar11 = puStack_34;\n    }\n  }\n  else {\n    puStack_40 = (uint *)param_2[2];\n    puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f));\n    if (uVar1 != 0) {\n      if (puStack_34 == (uint *)0x1) {\n        puVar13 = (undefined4 *)param_1[2];\n        param_1[1] = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }\n        param_1[1] = 1;\n        puVar13 = (undefined4 *)param_1[2];\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }\n      ppuStack_30 = &__DT_PLTGOT;\n      uVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);\n      puVar14 = auStack_6c;\n      *puVar13 = uVar9;\n      goto LAB_00029590;\n    }\n    param_1[1] = (int)puStack_34;\n    if (param_2 == param_1) goto LAB_00029590;\n    puVar11 = puStack_40;\n    puVar15 = puStack_34;\n    ppuStack_30 = &__DT_PLTGOT;\n    if (*param_1 < (int)puStack_34) {\n      __gmpz_realloc(param_1,puStack_34);\n      puVar11 = puStack_40;\n      puVar15 = puStack_34;\n    }\n  }\n  (**(code **)(ppuStack_30[-0x9b] + 0x28))(param_1[2],puVar11,puVar15);\n  puVar14 = auStack_6c;\nLAB_00029590:\n  if (iStack_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)(puVar14 + -4) = 0x29a36;\n  FUN_00079d30();\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined **ppuVar6;" type_identifier (pointer_declarator "**ppuVar6" * (pointer_declarator "*ppuVar6" * identifier)) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "uint *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined1 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined1 auStack_6c [8];" type_identifier (array_declarator "auStack_6c [8]" identifier [ number_literal ]) ;) (declaration "uint *puStack_64;" type_identifier (pointer_declarator "*puStack_64" * identifier) ;) (declaration "uint *puStack_60;" type_identifier (pointer_declarator "*puStack_60" * identifier) ;) (declaration "int *piStack_5c;" primitive_type (pointer_declarator "*piStack_5c" * identifier) ;) (declaration "int iStack_58;" primitive_type identifier ;) (declaration "int iStack_54;" primitive_type identifier ;) (declaration "uint *puStack_50;" type_identifier (pointer_declarator "*puStack_50" * identifier) ;) (declaration "uint *puStack_4c;" type_identifier (pointer_declarator "*puStack_4c" * identifier) ;) (declaration "uint *puStack_48;" type_identifier (pointer_declarator "*puStack_48" * identifier) ;) (declaration "int iStack_44;" primitive_type identifier ;) (declaration "uint *puStack_40;" type_identifier (pointer_declarator "*puStack_40" * identifier) ;) (declaration "int *piStack_3c;" primitive_type (pointer_declarator "*piStack_3c" * identifier) ;) (declaration "uint *puStack_38;" type_identifier (pointer_declarator "*puStack_38" * identifier) ;) (declaration "uint *puStack_34;" type_identifier (pointer_declarator "*puStack_34" * identifier) ;) (declaration "undefined **ppuStack_30;" type_identifier (pointer_declarator "**ppuStack_30" * (pointer_declarator "*ppuStack_30" * identifier)) ;) (declaration "int iStack_24;" primitive_type identifier ;) (declaration "int iStack_20;" primitive_type identifier ;) (declaration "undefined **ppuStack_10;" type_identifier (pointer_declarator "**ppuStack_10" * (pointer_declarator "*ppuStack_10" * identifier)) ;) (expression_statement "ppuStack_10 = &__DT_PLTGOT;" (assignment_expression "ppuStack_10 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "puVar14 = auStack_6c;" (assignment_expression "puVar14 = auStack_6c" identifier = identifier) ;) (expression_statement "ppuStack_30 = &__DT_PLTGOT;" (assignment_expression "ppuStack_30 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "puStack_38 = (uint *)param_2;" (assignment_expression "puStack_38 = (uint *)param_2" identifier = (cast_expression "(uint *)param_2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uVar16 = param_2[1];" (assignment_expression "uVar16 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "iStack_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iStack_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "puVar11 = (uint *)param_3[2];" (assignment_expression "puVar11 = (uint *)param_3[2]" identifier = (cast_expression "(uint *)param_3[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) ;) (expression_statement "piStack_3c = param_3;" (assignment_expression "piStack_3c = param_3" identifier = identifier) ;) (expression_statement "uVar1 = param_3[1];" (assignment_expression "uVar1 = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) (expression_statement "puVar15 = (uint *)(((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f));" (assignment_expression "puVar15 = (uint *)(((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f))" identifier = (cast_expression "(uint *)(((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f))" ( (binary_expression "((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f)" (parenthesized_expression "((int)uVar1 >> 0x1f ^ uVar1)" ( (binary_expression "(int)uVar1 >> 0x1f ^ uVar1" (binary_expression "(int)uVar1 >> 0x1f" (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ^ identifier) )) - (parenthesized_expression "((int)uVar1 >> 0x1f)" ( (binary_expression "(int)uVar1 >> 0x1f" (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) )))) ;) (if_statement "if (uVar16 == 0) {\n    param_1[1] = (int)puVar15;\n    puVar14 = auStack_6c;\n    ppuStack_30 = &__DT_PLTGOT;\n    if (param_3 == param_1) goto LAB_00029590;\n    if (*param_1 < (int)puVar15) {\n      puStack_34 = puVar11;\n      __gmpz_realloc(param_1,puVar15);\n      puVar11 = puStack_34;\n    }\n  }\n  else {\n    puStack_40 = (uint *)param_2[2];\n    puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f));\n    if (uVar1 != 0) {\n      if (puStack_34 == (uint *)0x1) {\n        puVar13 = (undefined4 *)param_1[2];\n        param_1[1] = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }\n        param_1[1] = 1;\n        puVar13 = (undefined4 *)param_1[2];\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }\n      ppuStack_30 = &__DT_PLTGOT;\n      uVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);\n      puVar14 = auStack_6c;\n      *puVar13 = uVar9;\n      goto LAB_00029590;\n    }\n    param_1[1] = (int)puStack_34;\n    if (param_2 == param_1) goto LAB_00029590;\n    puVar11 = puStack_40;\n    puVar15 = puStack_34;\n    ppuStack_30 = &__DT_PLTGOT;\n    if (*param_1 < (int)puStack_34) {\n      __gmpz_realloc(param_1,puStack_34);\n      puVar11 = puStack_40;\n      puVar15 = puStack_34;\n    }\n  }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n    param_1[1] = (int)puVar15;\n    puVar14 = auStack_6c;\n    ppuStack_30 = &__DT_PLTGOT;\n    if (param_3 == param_1) goto LAB_00029590;\n    if (*param_1 < (int)puVar15) {\n      puStack_34 = puVar11;\n      __gmpz_realloc(param_1,puVar15);\n      puVar11 = puStack_34;\n    }\n  }" { (expression_statement "param_1[1] = (int)puVar15;" (assignment_expression "param_1[1] = (int)puVar15" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar14 = auStack_6c;" (assignment_expression "puVar14 = auStack_6c" identifier = identifier) ;) (expression_statement "ppuStack_30 = &__DT_PLTGOT;" (assignment_expression "ppuStack_30 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (if_statement "if (param_3 == param_1) goto LAB_00029590;" if (parenthesized_expression "(param_3 == param_1)" ( (binary_expression "param_3 == param_1" identifier == identifier) )) (goto_statement "goto LAB_00029590;" goto statement_identifier ;)) (if_statement "if (*param_1 < (int)puVar15) {\n      puStack_34 = puVar11;\n      __gmpz_realloc(param_1,puVar15);\n      puVar11 = puStack_34;\n    }" if (parenthesized_expression "(*param_1 < (int)puVar15)" ( (binary_expression "*param_1 < (int)puVar15" (pointer_expression "*param_1" * identifier) < (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      puStack_34 = puVar11;\n      __gmpz_realloc(param_1,puVar15);\n      puVar11 = puStack_34;\n    }" { (expression_statement "puStack_34 = puVar11;" (assignment_expression "puStack_34 = puVar11" identifier = identifier) ;) (expression_statement "__gmpz_realloc(param_1,puVar15);" (call_expression "__gmpz_realloc(param_1,puVar15)" identifier (argument_list "(param_1,puVar15)" ( identifier , identifier ))) ;) (expression_statement "puVar11 = puStack_34;" (assignment_expression "puVar11 = puStack_34" identifier = identifier) ;) })) }) (else_clause "else {\n    puStack_40 = (uint *)param_2[2];\n    puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f));\n    if (uVar1 != 0) {\n      if (puStack_34 == (uint *)0x1) {\n        puVar13 = (undefined4 *)param_1[2];\n        param_1[1] = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }\n        param_1[1] = 1;\n        puVar13 = (undefined4 *)param_1[2];\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }\n      ppuStack_30 = &__DT_PLTGOT;\n      uVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);\n      puVar14 = auStack_6c;\n      *puVar13 = uVar9;\n      goto LAB_00029590;\n    }\n    param_1[1] = (int)puStack_34;\n    if (param_2 == param_1) goto LAB_00029590;\n    puVar11 = puStack_40;\n    puVar15 = puStack_34;\n    ppuStack_30 = &__DT_PLTGOT;\n    if (*param_1 < (int)puStack_34) {\n      __gmpz_realloc(param_1,puStack_34);\n      puVar11 = puStack_40;\n      puVar15 = puStack_34;\n    }\n  }" else (compound_statement "{\n    puStack_40 = (uint *)param_2[2];\n    puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f));\n    if (uVar1 != 0) {\n      if (puStack_34 == (uint *)0x1) {\n        puVar13 = (undefined4 *)param_1[2];\n        param_1[1] = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }\n        param_1[1] = 1;\n        puVar13 = (undefined4 *)param_1[2];\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }\n      ppuStack_30 = &__DT_PLTGOT;\n      uVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);\n      puVar14 = auStack_6c;\n      *puVar13 = uVar9;\n      goto LAB_00029590;\n    }\n    param_1[1] = (int)puStack_34;\n    if (param_2 == param_1) goto LAB_00029590;\n    puVar11 = puStack_40;\n    puVar15 = puStack_34;\n    ppuStack_30 = &__DT_PLTGOT;\n    if (*param_1 < (int)puStack_34) {\n      __gmpz_realloc(param_1,puStack_34);\n      puVar11 = puStack_40;\n      puVar15 = puStack_34;\n    }\n  }" { (expression_statement "puStack_40 = (uint *)param_2[2];" (assignment_expression "puStack_40 = (uint *)param_2[2]" identifier = (cast_expression "(uint *)param_2[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[2]" identifier [ number_literal ]))) ;) (expression_statement "puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f));" (assignment_expression "puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f))" identifier = (cast_expression "(uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f))" ( (binary_expression "(uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f)" (parenthesized_expression "(uVar16 ^ (int)uVar16 >> 0x1f)" ( (binary_expression "uVar16 ^ (int)uVar16 >> 0x1f" identifier ^ (binary_expression "(int)uVar16 >> 0x1f" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) )) - (parenthesized_expression "((int)uVar16 >> 0x1f)" ( (binary_expression "(int)uVar16 >> 0x1f" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) )))) ;) (if_statement "if (uVar1 != 0) {\n      if (puStack_34 == (uint *)0x1) {\n        puVar13 = (undefined4 *)param_1[2];\n        param_1[1] = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }\n        param_1[1] = 1;\n        puVar13 = (undefined4 *)param_1[2];\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }\n      ppuStack_30 = &__DT_PLTGOT;\n      uVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);\n      puVar14 = auStack_6c;\n      *puVar13 = uVar9;\n      goto LAB_00029590;\n    }" if (parenthesized_expression "(uVar1 != 0)" ( (binary_expression "uVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      if (puStack_34 == (uint *)0x1) {\n        puVar13 = (undefined4 *)param_1[2];\n        param_1[1] = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }\n        param_1[1] = 1;\n        puVar13 = (undefined4 *)param_1[2];\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }\n      ppuStack_30 = &__DT_PLTGOT;\n      uVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);\n      puVar14 = auStack_6c;\n      *puVar13 = uVar9;\n      goto LAB_00029590;\n    }" { (if_statement "if (puStack_34 == (uint *)0x1) {\n        puVar13 = (undefined4 *)param_1[2];\n        param_1[1] = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }\n        param_1[1] = 1;\n        puVar13 = (undefined4 *)param_1[2];\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }" if (parenthesized_expression "(puStack_34 == (uint *)0x1)" ( (binary_expression "puStack_34 == (uint *)0x1" identifier == (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar13 = (undefined4 *)param_1[2];\n        param_1[1] = 1;\n        uVar16 = *puStack_40;\n      }" { (expression_statement "puVar13 = (undefined4 *)param_1[2];" (assignment_expression "puVar13 = (undefined4 *)param_1[2]" identifier = (cast_expression "(undefined4 *)param_1[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "param_1[1] = 1;" (assignment_expression "param_1[1] = 1" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar16 = *puStack_40;" (assignment_expression "uVar16 = *puStack_40" identifier = (pointer_expression "*puStack_40" * identifier)) ;) }) (else_clause "else {\n        if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }\n        param_1[1] = 1;\n        puVar13 = (undefined4 *)param_1[2];\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }" else (compound_statement "{\n        if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }\n        param_1[1] = 1;\n        puVar13 = (undefined4 *)param_1[2];\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }" { (if_statement "if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }" if (parenthesized_expression "(puVar15 != (uint *)0x1)" ( (binary_expression "puVar15 != (uint *)0x1" identifier != (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }" { (expression_statement "iStack_24 = 0;" (assignment_expression "iStack_24 = 0" identifier = number_literal) ;) (expression_statement "uVar16 = *puStack_40;" (assignment_expression "uVar16 = *puStack_40" identifier = (pointer_expression "*puStack_40" * identifier)) ;) (expression_statement "puVar12 = puStack_40;" (assignment_expression "puVar12 = puStack_40" identifier = identifier) ;) (if_statement "if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }" { (do_statement "do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);" do (compound_statement "{\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            }" { (expression_statement "puVar12 = puVar12 + 1;" (assignment_expression "puVar12 = puVar12 + 1" identifier = (binary_expression "puVar12 + 1" identifier + number_literal)) ;) (expression_statement "uVar16 = *puVar12;" (assignment_expression "uVar16 = *puVar12" identifier = (pointer_expression "*puVar12" * identifier)) ;) }) while (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) ;) (expression_statement "iStack_58 = (int)puVar12 - (int)puStack_40;" (assignment_expression "iStack_58 = (int)puVar12 - (int)puStack_40" identifier = (binary_expression "(int)puVar12 - (int)puStack_40" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puStack_40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "piStack_5c = (int *)(iStack_58 >> 2);" (assignment_expression "piStack_5c = (int *)(iStack_58 >> 2)" identifier = (cast_expression "(int *)(iStack_58 >> 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_58 >> 2)" ( (binary_expression "iStack_58 >> 2" identifier >> number_literal) )))) ;) (expression_statement "puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);" (assignment_expression "puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c)" identifier = (cast_expression "(uint *)((int)puStack_34 - (int)piStack_5c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puStack_34 - (int)piStack_5c)" ( (binary_expression "(int)puStack_34 - (int)piStack_5c" (cast_expression "(int)puStack_34" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piStack_5c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }) (else_clause "else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }" else (compound_statement "{\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }" { (expression_statement "piStack_5c = (int *)0x0;" (assignment_expression "piStack_5c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iStack_58 = 0;" (assignment_expression "iStack_58 = 0" identifier = number_literal) ;) }))) (expression_statement "puStack_50 = (uint *)0x0;" (assignment_expression "puStack_50 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (for_statement "for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }" for ( ; (binary_expression "(uVar16 & 1) == 0" (parenthesized_expression "(uVar16 & 1)" ( (binary_expression "uVar16 & 1" identifier & number_literal) )) == number_literal) ; (assignment_expression "uVar16 = uVar16 >> 1 | 0x80000000" identifier = (binary_expression "uVar16 >> 1 | 0x80000000" (binary_expression "uVar16 >> 1" identifier >> number_literal) | number_literal)) ) (compound_statement "{\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }" { (expression_statement "puStack_50 = (uint *)((int)puStack_50 + 1);" (assignment_expression "puStack_50 = (uint *)((int)puStack_50 + 1)" identifier = (cast_expression "(uint *)((int)puStack_50 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puStack_50 + 1)" ( (binary_expression "(int)puStack_50 + 1" (cast_expression "(int)puStack_50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "puStack_38 = (uint *)((int)puStack_34 * 4);" (assignment_expression "puStack_38 = (uint *)((int)puStack_34 * 4)" identifier = (cast_expression "(uint *)((int)puStack_34 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puStack_34 * 4)" ( (binary_expression "(int)puStack_34 * 4" (cast_expression "(int)puStack_34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }" if (parenthesized_expression "(puStack_38 < (uint *)0x7f01)" ( (binary_expression "puStack_38 < (uint *)0x7f01" identifier < (cast_expression "(uint *)0x7f01" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }" { (expression_statement "iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);" (assignment_expression "iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0)" identifier = (unary_expression "-((int)puStack_38 + 0x1bU & 0xfffffff0)" - (parenthesized_expression "((int)puStack_38 + 0x1bU & 0xfffffff0)" ( (binary_expression "(int)puStack_38 + 0x1bU & 0xfffffff0" (binary_expression "(int)puStack_38 + 0x1bU" (cast_expression "(int)puStack_38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal) )))) ;) (expression_statement "puVar14 = auStack_6c + iStack_44;" (assignment_expression "puVar14 = auStack_6c + iStack_44" identifier = (binary_expression "auStack_6c + iStack_44" identifier + identifier)) ;) (expression_statement "iStack_44 = (int)&puStack_60 + iStack_44;" (assignment_expression "iStack_44 = (int)&puStack_60 + iStack_44" identifier = (binary_expression "(int)&puStack_60 + iStack_44" (cast_expression "(int)&puStack_60" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&puStack_60" & identifier)) + identifier)) ;) (expression_statement "ppuStack_30 = &__DT_PLTGOT;" (assignment_expression "ppuStack_30 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) }) (else_clause "else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }" else (compound_statement "{\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }" { (expression_statement "puStack_48 = puVar11;" (assignment_expression "puStack_48 = puVar11" identifier = identifier) ;) (expression_statement "puStack_40 = puVar12;" (assignment_expression "puStack_40 = puVar12" identifier = identifier) ;) (expression_statement "ppuStack_30 = &__DT_PLTGOT;" (assignment_expression "ppuStack_30 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);" (assignment_expression "iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38)" identifier = (call_expression "__gmp_tmp_reentrant_alloc(&iStack_24,puStack_38)" identifier (argument_list "(&iStack_24,puStack_38)" ( (pointer_expression "&iStack_24" & identifier) , identifier )))) ;) (expression_statement "puVar14 = auStack_6c;" (assignment_expression "puVar14 = auStack_6c" identifier = identifier) ;) (expression_statement "puVar11 = puStack_48;" (assignment_expression "puVar11 = puStack_48" identifier = identifier) ;) (expression_statement "puVar12 = puStack_40;" (assignment_expression "puVar12 = puStack_40" identifier = identifier) ;) }))) (expression_statement "ppuVar6 = ppuStack_30;" (assignment_expression "ppuVar6 = ppuStack_30" identifier = identifier) ;) (expression_statement "puVar5 = puStack_34;" (assignment_expression "puVar5 = puStack_34" identifier = identifier) ;) (if_statement "if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }" if (parenthesized_expression "(puStack_50 == (uint *)0x0)" ( (binary_expression "puStack_50 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }" { (expression_statement "*(uint **)(puVar14 + -8) = puStack_34;" (assignment_expression "*(uint **)(puVar14 + -8) = puStack_34" (pointer_expression "*(uint **)(puVar14 + -8)" * (cast_expression "(uint **)(puVar14 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -8)" ( (binary_expression "puVar14 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar14 + -0xc) = puVar12;" (assignment_expression "*(uint **)(puVar14 + -0xc) = puVar12" (pointer_expression "*(uint **)(puVar14 + -0xc)" * (cast_expression "(uint **)(puVar14 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0xc)" ( (binary_expression "puVar14 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar14 + -0x10) = iStack_44;" (assignment_expression "*(int *)(puVar14 + -0x10) = iStack_44" (pointer_expression "*(int *)(puVar14 + -0x10)" * (cast_expression "(int *)(puVar14 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "puStack_48 = (uint *)ppuVar6[-0x9b];" (assignment_expression "puStack_48 = (uint *)ppuVar6[-0x9b]" identifier = (cast_expression "(uint *)ppuVar6[-0x9b]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppuVar6[-0x9b]" identifier [ number_literal ]))) ;) (expression_statement "pcVar3 = *(code **)((int)puStack_48 + 0x28);" (assignment_expression "pcVar3 = *(code **)((int)puStack_48 + 0x28)" identifier = (pointer_expression "*(code **)((int)puStack_48 + 0x28)" * (cast_expression "(code **)((int)puStack_48 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puStack_48 + 0x28)" ( (binary_expression "(int)puStack_48 + 0x28" (cast_expression "(int)puStack_48" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puStack_38 = puVar11;" (assignment_expression "puStack_38 = puVar11" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x298ec;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x298ec" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" * (cast_expression "(undefined4 *)(puVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_40 = puStack_38;" (assignment_expression "puStack_40 = puStack_38" identifier = identifier) ;) }) (else_clause "else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }" else (compound_statement "{\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }" { (expression_statement "puStack_40 = puVar11;" (assignment_expression "puStack_40 = puVar11" identifier = identifier) ;) (expression_statement "*(uint **)(puVar14 + -4) = puStack_50;" (assignment_expression "*(uint **)(puVar14 + -4) = puStack_50" (pointer_expression "*(uint **)(puVar14 + -4)" * (cast_expression "(uint **)(puVar14 + -4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -4)" ( (binary_expression "puVar14 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar2 = ppuVar6[-0x9b];" (assignment_expression "puVar2 = ppuVar6[-0x9b]" identifier = (subscript_expression "ppuVar6[-0x9b]" identifier [ number_literal ])) ;) (expression_statement "*(uint **)(puVar14 + -8) = puVar5;" (assignment_expression "*(uint **)(puVar14 + -8) = puVar5" (pointer_expression "*(uint **)(puVar14 + -8)" * (cast_expression "(uint **)(puVar14 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -8)" ( (binary_expression "puVar14 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "puStack_48 = (uint *)puVar2;" (assignment_expression "puStack_48 = (uint *)puVar2" identifier = (cast_expression "(uint *)puVar2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "*(uint **)(puVar14 + -0xc) = puVar12;" (assignment_expression "*(uint **)(puVar14 + -0xc) = puVar12" (pointer_expression "*(uint **)(puVar14 + -0xc)" * (cast_expression "(uint **)(puVar14 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0xc)" ( (binary_expression "puVar14 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar14 + -0x10) = iStack_44;" (assignment_expression "*(int *)(puVar14 + -0x10) = iStack_44" (pointer_expression "*(int *)(puVar14 + -0x10)" * (cast_expression "(int *)(puVar14 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar3 = *(code **)(puVar2 + 0x80);" (assignment_expression "pcVar3 = *(code **)(puVar2 + 0x80)" identifier = (pointer_expression "*(code **)(puVar2 + 0x80)" * (cast_expression "(code **)(puVar2 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0x80)" ( (binary_expression "puVar2 + 0x80" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x29680;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x29680" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" * (cast_expression "(undefined4 *)(puVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));" (assignment_expression "puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0))" identifier = (cast_expression "(uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0))" ( (binary_expression "(int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0)" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) - (call_expression "(uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0)" ( (binary_expression "*(int *)(iStack_44 + -4 + (int)puStack_38) == 0" (pointer_expression "*(int *)(iStack_44 + -4 + (int)puStack_38)" * (cast_expression "(int *)(iStack_44 + -4 + (int)puStack_38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_44 + -4 + (int)puStack_38)" ( (binary_expression "iStack_44 + -4 + (int)puStack_38" (binary_expression "iStack_44 + -4" identifier + number_literal) + (cast_expression "(int)puStack_38" ( (type_descriptor "int" primitive_type) ) identifier)) )))) == number_literal) )))) )))) ;) }))) (expression_statement "uVar16 = *puStack_40;" (assignment_expression "uVar16 = *puStack_40" identifier = (pointer_expression "*puStack_40" * identifier)) ;) (expression_statement "puVar11 = puStack_40;" (assignment_expression "puVar11 = puStack_40" identifier = identifier) ;) (while_statement "while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }" while (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }" { (expression_statement "puVar11 = puVar11 + 1;" (assignment_expression "puVar11 = puVar11 + 1" identifier = (binary_expression "puVar11 + 1" identifier + number_literal)) ;) (expression_statement "uVar16 = *puVar11;" (assignment_expression "uVar16 = *puVar11" identifier = (pointer_expression "*puVar11" * identifier)) ;) })) (expression_statement "puStack_4c = (uint *)0x0;" (assignment_expression "puStack_4c = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (for_statement "for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }" for ( ; (binary_expression "(uVar16 & 1) == 0" (parenthesized_expression "(uVar16 & 1)" ( (binary_expression "uVar16 & 1" identifier & number_literal) )) == number_literal) ; (assignment_expression "uVar16 = uVar16 >> 1 | 0x80000000" identifier = (binary_expression "uVar16 >> 1 | 0x80000000" (binary_expression "uVar16 >> 1" identifier >> number_literal) | number_literal)) ) (compound_statement "{\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }" { (expression_statement "puStack_4c = (uint *)((int)puStack_4c + 1);" (assignment_expression "puStack_4c = (uint *)((int)puStack_4c + 1)" identifier = (cast_expression "(uint *)((int)puStack_4c + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puStack_4c + 1)" ( (binary_expression "(int)puStack_4c + 1" (cast_expression "(int)puStack_4c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "iStack_54 = (int)puVar11 - piStack_3c[2];" (assignment_expression "iStack_54 = (int)puVar11 - piStack_3c[2]" identifier = (binary_expression "(int)puVar11 - piStack_3c[2]" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (subscript_expression "piStack_3c[2]" identifier [ number_literal ]))) ;) (expression_statement "piStack_3c = (int *)(iStack_54 >> 2);" (assignment_expression "piStack_3c = (int *)(iStack_54 >> 2)" identifier = (cast_expression "(int *)(iStack_54 >> 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_54 >> 2)" ( (binary_expression "iStack_54 >> 2" identifier >> number_literal) )))) ;) (expression_statement "puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);" (assignment_expression "puVar15 = (uint *)((int)puVar15 - (int)piStack_3c)" identifier = (cast_expression "(uint *)((int)puVar15 - (int)piStack_3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar15 - (int)piStack_3c)" ( (binary_expression "(int)puVar15 - (int)piStack_3c" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piStack_3c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "uVar16 = (int)puVar15 * 4;" (assignment_expression "uVar16 = (int)puVar15 * 4" identifier = (binary_expression "(int)puVar15 * 4" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "puStack_40 = puVar15;" (assignment_expression "puStack_40 = puVar15" identifier = identifier) ;) (if_statement "if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }" if (parenthesized_expression "(uVar16 < 0x7f01)" ( (binary_expression "uVar16 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }" { (expression_statement "iVar17 = -(uVar16 + 0x1b & 0xfffffff0);" (assignment_expression "iVar17 = -(uVar16 + 0x1b & 0xfffffff0)" identifier = (unary_expression "-(uVar16 + 0x1b & 0xfffffff0)" - (parenthesized_expression "(uVar16 + 0x1b & 0xfffffff0)" ( (binary_expression "uVar16 + 0x1b & 0xfffffff0" (binary_expression "uVar16 + 0x1b" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);" (assignment_expression "puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0)" identifier = (cast_expression "(uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0)" ( (binary_expression "(uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0" (call_expression "(uint)(puVar14 + iVar17 + 0xf)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar14 + iVar17 + 0xf)" ( (binary_expression "puVar14 + iVar17 + 0xf" (binary_expression "puVar14 + iVar17" identifier + identifier) + number_literal) ))) & number_literal) )))) ;) (expression_statement "puStack_60 = puStack_4c;" (assignment_expression "puStack_60 = puStack_4c" identifier = identifier) ;) (expression_statement "puVar14 = puVar14 + iVar17;" (assignment_expression "puVar14 = puVar14 + iVar17" identifier = (binary_expression "puVar14 + iVar17" identifier + identifier)) ;) }) (else_clause "else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }" else (compound_statement "{\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }" { (expression_statement "puStack_64 = puStack_4c;" (assignment_expression "puStack_64 = puStack_4c" identifier = identifier) ;) (expression_statement "*(uint *)(puVar14 + -0xc) = uVar16;" (assignment_expression "*(uint *)(puVar14 + -0xc) = uVar16" (pointer_expression "*(uint *)(puVar14 + -0xc)" * (cast_expression "(uint *)(puVar14 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0xc)" ( (binary_expression "puVar14 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar14 + -0x10) = &iStack_24;" (assignment_expression "*(int **)(puVar14 + -0x10) = &iStack_24" (pointer_expression "*(int **)(puVar14 + -0x10)" * (cast_expression "(int **)(puVar14 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = (pointer_expression "&iStack_24" & identifier)) ;) (expression_statement "puStack_60 = puVar11;" (assignment_expression "puStack_60 = puVar11" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x299f6;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x299f6" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" * (cast_expression "(undefined4 *)(puVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();" (assignment_expression "puStack_38 = (uint *)__gmp_tmp_reentrant_alloc()" identifier = (cast_expression "(uint *)__gmp_tmp_reentrant_alloc()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__gmp_tmp_reentrant_alloc()" identifier (argument_list "()" ( ))))) ;) (expression_statement "puVar11 = puStack_60;" (assignment_expression "puVar11 = puStack_60" identifier = identifier) ;) (expression_statement "puStack_60 = puStack_64;" (assignment_expression "puStack_60 = puStack_64" identifier = identifier) ;) }))) (expression_statement "puVar12 = puStack_40;" (assignment_expression "puVar12 = puStack_40" identifier = identifier) ;) (if_statement "if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }" if (parenthesized_expression "(puStack_60 == (uint *)0x0)" ( (binary_expression "puStack_60 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }" { (expression_statement "*(uint **)(puVar14 + -8) = puStack_40;" (assignment_expression "*(uint **)(puVar14 + -8) = puStack_40" (pointer_expression "*(uint **)(puVar14 + -8)" * (cast_expression "(uint **)(puVar14 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -8)" ( (binary_expression "puVar14 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar15 = puStack_48;" (assignment_expression "puVar15 = puStack_48" identifier = identifier) ;) (expression_statement "*(uint **)(puVar14 + -0xc) = puVar11;" (assignment_expression "*(uint **)(puVar14 + -0xc) = puVar11" (pointer_expression "*(uint **)(puVar14 + -0xc)" * (cast_expression "(uint **)(puVar14 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0xc)" ( (binary_expression "puVar14 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar14 + -0x10) = puStack_38;" (assignment_expression "*(uint **)(puVar14 + -0x10) = puStack_38" (pointer_expression "*(uint **)(puVar14 + -0x10)" * (cast_expression "(uint **)(puVar14 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar3 = *(code **)((int)puVar15 + 0x28);" (assignment_expression "pcVar3 = *(code **)((int)puVar15 + 0x28)" identifier = (pointer_expression "*(code **)((int)puVar15 + 0x28)" * (cast_expression "(code **)((int)puVar15 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar15 + 0x28)" ( (binary_expression "(int)puVar15 + 0x28" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x29913;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x29913" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" * (cast_expression "(undefined4 *)(puVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }" else (compound_statement "{\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }" { (expression_statement "*(uint **)(puVar14 + -4) = puStack_60;" (assignment_expression "*(uint **)(puVar14 + -4) = puStack_60" (pointer_expression "*(uint **)(puVar14 + -4)" * (cast_expression "(uint **)(puVar14 + -4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -4)" ( (binary_expression "puVar14 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar14 + -8) = puVar12;" (assignment_expression "*(uint **)(puVar14 + -8) = puVar12" (pointer_expression "*(uint **)(puVar14 + -8)" * (cast_expression "(uint **)(puVar14 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -8)" ( (binary_expression "puVar14 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar14 + -0xc) = puVar11;" (assignment_expression "*(uint **)(puVar14 + -0xc) = puVar11" (pointer_expression "*(uint **)(puVar14 + -0xc)" * (cast_expression "(uint **)(puVar14 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0xc)" ( (binary_expression "puVar14 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar11 = puStack_48;" (assignment_expression "puVar11 = puStack_48" identifier = identifier) ;) (expression_statement "*(uint **)(puVar14 + -0x10) = puStack_38;" (assignment_expression "*(uint **)(puVar14 + -0x10) = puStack_38" (pointer_expression "*(uint **)(puVar14 + -0x10)" * (cast_expression "(uint **)(puVar14 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar3 = *(code **)((int)puVar11 + 0x80);" (assignment_expression "pcVar3 = *(code **)((int)puVar11 + 0x80)" identifier = (pointer_expression "*(code **)((int)puVar11 + 0x80)" * (cast_expression "(code **)((int)puVar11 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar11 + 0x80)" ( (binary_expression "(int)puVar11 + 0x80" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x2970c;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x2970c" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" * (cast_expression "(undefined4 *)(puVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));" (assignment_expression "puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0))" identifier = (cast_expression "(uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0))" ( (binary_expression "(int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0)" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) - (call_expression "(uint)(puStack_38[(int)puVar15 + -1] == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puStack_38[(int)puVar15 + -1] == 0)" ( (binary_expression "puStack_38[(int)puVar15 + -1] == 0" (subscript_expression "puStack_38[(int)puVar15 + -1]" identifier [ (binary_expression "(int)puVar15 + -1" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ]) == number_literal) )))) )))) ;) }))) (expression_statement "puVar11 = puStack_38;" (assignment_expression "puVar11 = puStack_38" identifier = identifier) ;) (if_statement "if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }" if (parenthesized_expression "(iStack_58 <= iStack_54)" ( (binary_expression "iStack_58 <= iStack_54" identifier <= identifier) )) (compound_statement "{\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }" { (if_statement "if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }" if (parenthesized_expression "(iStack_58 < iStack_54)" ( (binary_expression "iStack_58 < iStack_54" identifier < identifier) )) (compound_statement "{\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }" { (expression_statement "piStack_3c = piStack_5c;" (assignment_expression "piStack_3c = piStack_5c" identifier = identifier) ;) (expression_statement "puStack_4c = puStack_50;" (assignment_expression "puStack_4c = puStack_50" identifier = identifier) ;) }) (else_clause "else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }" else (compound_statement "{\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }" { (expression_statement "puStack_4c = puStack_60;" (assignment_expression "puStack_4c = puStack_60" identifier = identifier) ;) (if_statement "if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }" if (parenthesized_expression "(puStack_50 < puStack_60)" ( (binary_expression "puStack_50 < puStack_60" identifier < identifier) )) (compound_statement "{\n                puStack_4c = puStack_50;\n              }" { (expression_statement "puStack_4c = puStack_50;" (assignment_expression "puStack_4c = puStack_50" identifier = identifier) ;) })) (expression_statement "piStack_3c = piStack_5c;" (assignment_expression "piStack_3c = piStack_5c" identifier = identifier) ;) }))) })) (if_statement "if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }" if (parenthesized_expression "(((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             )" ( (binary_expression "((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))" (parenthesized_expression "((int)puStack_34 < (int)puStack_40)" ( (binary_expression "(int)puStack_34 < (int)puStack_40" (cast_expression "(int)puStack_34" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puStack_40" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))" ( (parenthesized_expression "(puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1]))" ( (binary_expression "puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])" (binary_expression "puStack_40 == puStack_34" identifier == identifier) && (parenthesized_expression "(*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])" ( (binary_expression "*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1]" (pointer_expression "*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4)" * (cast_expression "(uint *)(iStack_44 + -4 + (int)puStack_40 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_44 + -4 + (int)puStack_40 * 4)" ( (binary_expression "iStack_44 + -4 + (int)puStack_40 * 4" (binary_expression "iStack_44 + -4" identifier + number_literal) + (binary_expression "(int)puStack_40 * 4" (cast_expression "(int)puStack_40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) < (subscript_expression "puStack_38[(int)puStack_40 + -1]" identifier [ (binary_expression "(int)puStack_40 + -1" (cast_expression "(int)puStack_40" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ])) ))) )) ))) )) (compound_statement "{\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }" { (expression_statement "*(uint **)(puVar14 + -0x10) = puStack_34;" (assignment_expression "*(uint **)(puVar14 + -0x10) = puStack_34" (pointer_expression "*(uint **)(puVar14 + -0x10)" * (cast_expression "(uint **)(puVar14 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar14 + -0x14) = iStack_44;" (assignment_expression "*(int *)(puVar14 + -0x14) = iStack_44" (pointer_expression "*(int *)(puVar14 + -0x14)" * (cast_expression "(int *)(puVar14 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar14 + -0x18) = puStack_40;" (assignment_expression "*(uint **)(puVar14 + -0x18) = puStack_40" (pointer_expression "*(uint **)(puVar14 + -0x18)" * (cast_expression "(uint **)(puVar14 + -0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x18)" ( (binary_expression "puVar14 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar14 + -0x1c) = puVar11;" (assignment_expression "*(uint **)(puVar14 + -0x1c) = puVar11" (pointer_expression "*(uint **)(puVar14 + -0x1c)" * (cast_expression "(uint **)(puVar14 + -0x1c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x1c)" ( (binary_expression "puVar14 + -0x1c" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }" else (compound_statement "{\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }" { (expression_statement "*(uint **)(puVar14 + -0x10) = puStack_40;" (assignment_expression "*(uint **)(puVar14 + -0x10) = puStack_40" (pointer_expression "*(uint **)(puVar14 + -0x10)" * (cast_expression "(uint **)(puVar14 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar14 + -0x14) = puVar11;" (assignment_expression "*(uint **)(puVar14 + -0x14) = puVar11" (pointer_expression "*(uint **)(puVar14 + -0x14)" * (cast_expression "(uint **)(puVar14 + -0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar14 + -0x18) = puStack_34;" (assignment_expression "*(uint **)(puVar14 + -0x18) = puStack_34" (pointer_expression "*(uint **)(puVar14 + -0x18)" * (cast_expression "(uint **)(puVar14 + -0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x18)" ( (binary_expression "puVar14 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar14 + -0x1c) = iStack_44;" (assignment_expression "*(int *)(puVar14 + -0x1c) = iStack_44" (pointer_expression "*(int *)(puVar14 + -0x1c)" * (cast_expression "(int *)(puVar14 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x1c)" ( (binary_expression "puVar14 + -0x1c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "*(uint **)(puVar14 + -0x20) = puVar11;" (assignment_expression "*(uint **)(puVar14 + -0x20) = puVar11" (pointer_expression "*(uint **)(puVar14 + -0x20)" * (cast_expression "(uint **)(puVar14 + -0x20)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x20)" ( (binary_expression "puVar14 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x24) = 0x2977c;" (assignment_expression "*(undefined4 *)(puVar14 + -0x24) = 0x2977c" (pointer_expression "*(undefined4 *)(puVar14 + -0x24)" * (cast_expression "(undefined4 *)(puVar14 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x24)" ( (binary_expression "puVar14 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puStack_34 = (uint *)__gmpn_gcd();" (assignment_expression "puStack_34 = (uint *)__gmpn_gcd()" identifier = (cast_expression "(uint *)__gmpn_gcd()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__gmpn_gcd()" identifier (argument_list "()" ( ))))) ;) (expression_statement "iVar17 = (int)piStack_3c + (int)puStack_34;" (assignment_expression "iVar17 = (int)piStack_3c + (int)puStack_34" identifier = (binary_expression "(int)piStack_3c + (int)puStack_34" (cast_expression "(int)piStack_3c" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puStack_34" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }" if (parenthesized_expression "(puStack_4c == (uint *)0x0)" ( (binary_expression "puStack_4c == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }" { (if_statement "if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }" if (parenthesized_expression "(*param_1 < iVar17)" ( (binary_expression "*param_1 < iVar17" (pointer_expression "*param_1" * identifier) < identifier) )) (compound_statement "{\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }" { (expression_statement "*(int *)(puVar14 + -0xc) = iVar17;" (assignment_expression "*(int *)(puVar14 + -0xc) = iVar17" (pointer_expression "*(int *)(puVar14 + -0xc)" * (cast_expression "(int *)(puVar14 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0xc)" ( (binary_expression "puVar14 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar14 + -0x10) = param_1;" (assignment_expression "*(int **)(puVar14 + -0x10) = param_1" (pointer_expression "*(int **)(puVar14 + -0x10)" * (cast_expression "(int **)(puVar14 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x29a29;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x29a29" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" * (cast_expression "(undefined4 *)(puVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpz_realloc();" (call_expression "__gmpz_realloc()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "piVar4 = piStack_3c;" (assignment_expression "piVar4 = piStack_3c" identifier = identifier) ;) (expression_statement "puVar13 = (undefined4 *)param_1[2];" (assignment_expression "puVar13 = (undefined4 *)param_1[2]" identifier = (cast_expression "(undefined4 *)param_1[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (if_statement "if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }" if (parenthesized_expression "(piStack_3c != (int *)0x0)" ( (binary_expression "piStack_3c != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }" { (expression_statement "puVar10 = puVar13;" (assignment_expression "puVar10 = puVar13" identifier = identifier) ;) (do_statement "do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);" do (compound_statement "{\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              }" { (expression_statement "puVar7 = puVar10 + 1;" (assignment_expression "puVar7 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) (expression_statement "*puVar10 = 0;" (assignment_expression "*puVar10 = 0" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (expression_statement "puVar10 = puVar7;" (assignment_expression "puVar10 = puVar7" identifier = identifier) ;) }) while (parenthesized_expression "(puVar7 != puVar13 + (int)piStack_3c)" ( (binary_expression "puVar7 != puVar13 + (int)piStack_3c" identifier != (binary_expression "puVar13 + (int)piStack_3c" identifier + (cast_expression "(int)piStack_3c" ( (type_descriptor "int" primitive_type) ) identifier))) )) ;) })) (expression_statement "*(uint **)(puVar14 + -8) = puStack_34;" (assignment_expression "*(uint **)(puVar14 + -8) = puStack_34" (pointer_expression "*(uint **)(puVar14 + -8)" * (cast_expression "(uint **)(puVar14 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -8)" ( (binary_expression "puVar14 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar14 + -0xc) = puStack_38;" (assignment_expression "*(uint **)(puVar14 + -0xc) = puStack_38" (pointer_expression "*(uint **)(puVar14 + -0xc)" * (cast_expression "(uint **)(puVar14 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0xc)" ( (binary_expression "puVar14 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;" (assignment_expression "*(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4" (pointer_expression "*(undefined4 **)(puVar14 + -0x10)" * (cast_expression "(undefined4 **)(puVar14 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = (binary_expression "puVar13 + (int)piVar4" identifier + (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar3 = *(code **)((int)puStack_48 + 0x28);" (assignment_expression "pcVar3 = *(code **)((int)puStack_48 + 0x28)" identifier = (pointer_expression "*(code **)((int)puStack_48 + 0x28)" * (cast_expression "(code **)((int)puStack_48 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puStack_48 + 0x28)" ( (binary_expression "(int)puStack_48 + 0x28" (cast_expression "(int)puStack_48" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x298c4;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x298c4" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" * (cast_expression "(undefined4 *)(puVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }" else (compound_statement "{\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }" { (expression_statement "puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);" (assignment_expression "puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4)" identifier = (cast_expression "(uint *)(((int)puStack_34 + 0x3fffffff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)puStack_34 + 0x3fffffff) * 4)" ( (binary_expression "((int)puStack_34 + 0x3fffffff) * 4" (parenthesized_expression "((int)puStack_34 + 0x3fffffff)" ( (binary_expression "(int)puStack_34 + 0x3fffffff" (cast_expression "(int)puStack_34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) * number_literal) )))) ;) (expression_statement "iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);" (assignment_expression "iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0)" identifier = (binary_expression "iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0)" identifier + (call_expression "(uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0)" ( (binary_expression "puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0" (binary_expression "puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f)" (subscript_expression "puStack_38[(int)puStack_34 + 0x3fffffff]" identifier [ (binary_expression "(int)puStack_34 + 0x3fffffff" (cast_expression "(int)puStack_34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ]) >> (parenthesized_expression "(0x20U - (char)puStack_4c & 0x1f)" ( (binary_expression "0x20U - (char)puStack_4c & 0x1f" (binary_expression "0x20U - (char)puStack_4c" number_literal - (cast_expression "(char)puStack_4c" ( (type_descriptor "char" primitive_type) ) identifier)) & number_literal) ))) != number_literal) ))))) ;) (if_statement "if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }" if (parenthesized_expression "(*param_1 < iVar17)" ( (binary_expression "*param_1 < iVar17" (pointer_expression "*param_1" * identifier) < identifier) )) (compound_statement "{\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }" { (expression_statement "*(int *)(puVar14 + -0xc) = iVar17;" (assignment_expression "*(int *)(puVar14 + -0xc) = iVar17" (pointer_expression "*(int *)(puVar14 + -0xc)" * (cast_expression "(int *)(puVar14 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0xc)" ( (binary_expression "puVar14 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar14 + -0x10) = param_1;" (assignment_expression "*(int **)(puVar14 + -0x10) = param_1" (pointer_expression "*(int **)(puVar14 + -0x10)" * (cast_expression "(int **)(puVar14 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x29a14;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x29a14" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" * (cast_expression "(undefined4 *)(puVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpz_realloc();" (call_expression "__gmpz_realloc()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "piVar4 = piStack_3c;" (assignment_expression "piVar4 = piStack_3c" identifier = identifier) ;) (expression_statement "puVar13 = (undefined4 *)param_1[2];" (assignment_expression "puVar13 = (undefined4 *)param_1[2]" identifier = (cast_expression "(undefined4 *)param_1[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (if_statement "if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }" if (parenthesized_expression "(piStack_3c != (int *)0x0)" ( (binary_expression "piStack_3c != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }" { (expression_statement "puVar10 = puVar13;" (assignment_expression "puVar10 = puVar13" identifier = identifier) ;) (do_statement "do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);" do (compound_statement "{\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              }" { (expression_statement "puVar7 = puVar10 + 1;" (assignment_expression "puVar7 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) (expression_statement "*puVar10 = 0;" (assignment_expression "*puVar10 = 0" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (expression_statement "puVar10 = puVar7;" (assignment_expression "puVar10 = puVar7" identifier = identifier) ;) }) while (parenthesized_expression "(puVar7 != puVar13 + (int)piStack_3c)" ( (binary_expression "puVar7 != puVar13 + (int)piStack_3c" identifier != (binary_expression "puVar13 + (int)piStack_3c" identifier + (cast_expression "(int)piStack_3c" ( (type_descriptor "int" primitive_type) ) identifier))) )) ;) })) (expression_statement "*(uint **)(puVar14 + -4) = puStack_4c;" (assignment_expression "*(uint **)(puVar14 + -4) = puStack_4c" (pointer_expression "*(uint **)(puVar14 + -4)" * (cast_expression "(uint **)(puVar14 + -4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -4)" ( (binary_expression "puVar14 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar14 + -8) = puStack_34;" (assignment_expression "*(uint **)(puVar14 + -8) = puStack_34" (pointer_expression "*(uint **)(puVar14 + -8)" * (cast_expression "(uint **)(puVar14 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -8)" ( (binary_expression "puVar14 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar11 = puStack_48;" (assignment_expression "puVar11 = puStack_48" identifier = identifier) ;) (expression_statement "*(uint **)(puVar14 + -0xc) = puStack_38;" (assignment_expression "*(uint **)(puVar14 + -0xc) = puStack_38" (pointer_expression "*(uint **)(puVar14 + -0xc)" * (cast_expression "(uint **)(puVar14 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0xc)" ( (binary_expression "puVar14 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;" (assignment_expression "*(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4" (pointer_expression "*(undefined4 **)(puVar14 + -0x10)" * (cast_expression "(undefined4 **)(puVar14 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = (binary_expression "puVar13 + (int)piVar4" identifier + (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar3 = *(code **)((int)puVar11 + 0x38);" (assignment_expression "pcVar3 = *(code **)((int)puVar11 + 0x38)" identifier = (pointer_expression "*(code **)((int)puVar11 + 0x38)" * (cast_expression "(code **)((int)puVar11 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar11 + 0x38)" ( (binary_expression "(int)puVar11 + 0x38" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x29804;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x29804" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" * (cast_expression "(undefined4 *)(puVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar8 = (*pcVar3)();" (assignment_expression "iVar8 = (*pcVar3)()" identifier = (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }" { (expression_statement "*(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;" (assignment_expression "*(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8" (pointer_expression "*(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40)" * (cast_expression "(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40)" ( (binary_expression "(int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40" (cast_expression "(int)(puVar13 + (int)piVar4 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar13 + (int)piVar4 + 1)" ( (binary_expression "puVar13 + (int)piVar4 + 1" (binary_expression "puVar13 + (int)piVar4" identifier + (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) ))) + (cast_expression "(int)puStack_40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = identifier) ;) })) }))) (expression_statement "param_1[1] = iVar17;" (assignment_expression "param_1[1] = iVar17" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }" if (parenthesized_expression "(iStack_24 != 0)" ( (binary_expression "iStack_24 != 0" identifier != number_literal) )) (compound_statement "{\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }" { (expression_statement "*(int *)(puVar14 + -0x10) = iStack_24;" (assignment_expression "*(int *)(puVar14 + -0x10) = iStack_24" (pointer_expression "*(int *)(puVar14 + -0x10)" * (cast_expression "(int *)(puVar14 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x2982c;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x2982c" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" * (cast_expression "(undefined4 *)(puVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmp_tmp_reentrant_free();" (call_expression "__gmp_tmp_reentrant_free()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto LAB_00029590;" goto statement_identifier ;) })) (expression_statement "param_1[1] = 1;" (assignment_expression "param_1[1] = 1" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar13 = (undefined4 *)param_1[2];" (assignment_expression "puVar13 = (undefined4 *)param_1[2]" identifier = (cast_expression "(undefined4 *)param_1[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar16 = *puVar11;" (assignment_expression "uVar16 = *puVar11" identifier = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "puVar11 = puStack_40;" (assignment_expression "puVar11 = puStack_40" identifier = identifier) ;) (expression_statement "puVar15 = puStack_34;" (assignment_expression "puVar15 = puStack_34" identifier = identifier) ;) }))) (expression_statement "ppuStack_30 = &__DT_PLTGOT;" (assignment_expression "ppuStack_30 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "uVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);" (assignment_expression "uVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16)" identifier = (call_expression "(**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16)" (parenthesized_expression "(**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))" ( (pointer_expression "**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34)" * (pointer_expression "*(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34)" * (cast_expression "(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR___gmpn_cpuvec_00098d94 + 0x34)" ( (binary_expression "PTR___gmpn_cpuvec_00098d94 + 0x34" identifier + number_literal) ))))) )) (argument_list "(puVar11,puVar15,uVar16)" ( identifier , identifier , identifier )))) ;) (expression_statement "puVar14 = auStack_6c;" (assignment_expression "puVar14 = auStack_6c" identifier = identifier) ;) (expression_statement "*puVar13 = uVar9;" (assignment_expression "*puVar13 = uVar9" (pointer_expression "*puVar13" * identifier) = identifier) ;) (goto_statement "goto LAB_00029590;" goto statement_identifier ;) })) (expression_statement "param_1[1] = (int)puStack_34;" (assignment_expression "param_1[1] = (int)puStack_34" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (cast_expression "(int)puStack_34" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (param_2 == param_1) goto LAB_00029590;" if (parenthesized_expression "(param_2 == param_1)" ( (binary_expression "param_2 == param_1" identifier == identifier) )) (goto_statement "goto LAB_00029590;" goto statement_identifier ;)) (expression_statement "puVar11 = puStack_40;" (assignment_expression "puVar11 = puStack_40" identifier = identifier) ;) (expression_statement "puVar15 = puStack_34;" (assignment_expression "puVar15 = puStack_34" identifier = identifier) ;) (expression_statement "ppuStack_30 = &__DT_PLTGOT;" (assignment_expression "ppuStack_30 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (if_statement "if (*param_1 < (int)puStack_34) {\n      __gmpz_realloc(param_1,puStack_34);\n      puVar11 = puStack_40;\n      puVar15 = puStack_34;\n    }" if (parenthesized_expression "(*param_1 < (int)puStack_34)" ( (binary_expression "*param_1 < (int)puStack_34" (pointer_expression "*param_1" * identifier) < (cast_expression "(int)puStack_34" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      __gmpz_realloc(param_1,puStack_34);\n      puVar11 = puStack_40;\n      puVar15 = puStack_34;\n    }" { (expression_statement "__gmpz_realloc(param_1,puStack_34);" (call_expression "__gmpz_realloc(param_1,puStack_34)" identifier (argument_list "(param_1,puStack_34)" ( identifier , identifier ))) ;) (expression_statement "puVar11 = puStack_40;" (assignment_expression "puVar11 = puStack_40" identifier = identifier) ;) (expression_statement "puVar15 = puStack_34;" (assignment_expression "puVar15 = puStack_34" identifier = identifier) ;) })) }))) (expression_statement "(**(code **)(ppuStack_30[-0x9b] + 0x28))(param_1[2],puVar11,puVar15);" (call_expression "(**(code **)(ppuStack_30[-0x9b] + 0x28))(param_1[2],puVar11,puVar15)" (parenthesized_expression "(**(code **)(ppuStack_30[-0x9b] + 0x28))" ( (pointer_expression "**(code **)(ppuStack_30[-0x9b] + 0x28)" * (pointer_expression "*(code **)(ppuStack_30[-0x9b] + 0x28)" * (cast_expression "(code **)(ppuStack_30[-0x9b] + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(ppuStack_30[-0x9b] + 0x28)" ( (binary_expression "ppuStack_30[-0x9b] + 0x28" (subscript_expression "ppuStack_30[-0x9b]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1[2],puVar11,puVar15)" ( (subscript_expression "param_1[2]" identifier [ number_literal ]) , identifier , identifier ))) ;) (expression_statement "puVar14 = auStack_6c;" (assignment_expression "puVar14 = auStack_6c" identifier = identifier) ;) (labeled_statement "LAB_00029590:\n  if (iStack_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" statement_identifier : (if_statement "if (iStack_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(iStack_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iStack_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) comment (expression_statement "*(undefined4 *)(puVar14 + -4) = 0x29a36;" (assignment_expression "*(undefined4 *)(puVar14 + -4) = 0x29a36" (pointer_expression "*(undefined4 *)(puVar14 + -4)" * (cast_expression "(undefined4 *)(puVar14 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -4)" ( (binary_expression "puVar14 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00079d30();" (call_expression "FUN_00079d30()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Switch with 1 destination removed at 0x0001be40 */\n/* WARNING: Unknown calling convention */\n\nvoid __gmpz_gcd(mpz_ptr g,mpz_srcptr u,mpz_srcptr v)\n\n{\n  uint uVar1;\n  undefined *puVar2;\n  code *pcVar3;\n  mpz_srcptr p_Var4;\n  uint *puVar5;\n  undefined **ppuVar6;\n  mp_limb_t *pmVar7;\n  int iVar8;\n  mp_limb_t mVar9;\n  mp_limb_t *pmVar10;\n  uint *puVar11;\n  uint *puVar12;\n  mp_limb_t *pmVar13;\n  undefined1 *puVar14;\n  uint *puVar15;\n  uint uVar16;\n  int iVar17;\n  int in_GS_OFFSET;\n  undefined1 auStack_6c [8];\n  uint *puStack_64;\n  uint *puStack_60;\n  mpz_srcptr p_Stack_5c;\n  int iStack_58;\n  int iStack_54;\n  uint *puStack_50;\n  uint *puStack_4c;\n  uint *puStack_48;\n  void *pvStack_44;\n  uint *puStack_40;\n  mpz_srcptr p_Stack_3c;\n  mpz_srcptr p_Stack_38;\n  uint *puStack_34;\n  undefined **ppuStack_30;\n  tmp_reentrant_t *ptStack_24;\n  int iStack_20;\n  undefined **ppuStack_10;\n  \n  ppuStack_10 = &_GLOBAL_OFFSET_TABLE_;\n  puVar14 = auStack_6c;\n  ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n  p_Stack_38 = u;\n  uVar16 = u->_mp_size;\n  iStack_20 = *(int *)(in_GS_OFFSET + 0x14);\n  puVar11 = v->_mp_d;\n  p_Stack_3c = v;\n  uVar1 = v->_mp_size;\n  puVar15 = (uint *)(((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f));\n  if (uVar16 == 0) {\n    g->_mp_size = (int)puVar15;\n    puVar14 = auStack_6c;\n    ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n    if (v == g) goto LAB_00029590;\n    if (g->_mp_alloc < (int)puVar15) {\n      puStack_34 = puVar11;\n      __gmpz_realloc(g,(mp_size_t)puVar15);\n      puVar11 = puStack_34;\n    }\n  }\n  else {\n    puStack_40 = u->_mp_d;\n    puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f));\n    if (uVar1 != 0) {\n      if (puStack_34 == (uint *)0x1) {\n        pmVar13 = g->_mp_d;\n        g->_mp_size = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          ptStack_24 = (tmp_reentrant_t *)0x0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            p_Stack_5c = (mpz_srcptr)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)p_Stack_5c);\n          }\n          else {\n            p_Stack_5c = (mpz_srcptr)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          p_Stack_38 = (mpz_srcptr)((int)puStack_34 * 4);\n          if (p_Stack_38 < (uint *)0x7f01) {\n            iVar17 = -((int)p_Stack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iVar17;\n            pvStack_44 = (void *)((int)&puStack_60 + iVar17);\n            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n            pvStack_44 = __gmp_tmp_reentrant_alloc(&ptStack_24,(size_t)p_Stack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(void **)(puVar14 + -0x10) = pvStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            p_Stack_38 = (mpz_srcptr)puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = (uint *)p_Stack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(void **)(puVar14 + -0x10) = pvStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)((int)pvStack_44 + -4 + (int)p_Stack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - (int)p_Stack_3c->_mp_d;\n          p_Stack_3c = (mpz_srcptr)(iStack_54 >> 2);\n          puStack_40 = (uint *)((int)puVar15 - (int)p_Stack_3c);\n          uVar16 = (int)puStack_40 * 4;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            p_Stack_38 = (mpz_srcptr)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(tmp_reentrant_t ***)(puVar14 + -0x10) = &ptStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            p_Stack_38 = (mpz_srcptr)\n                         __gmp_tmp_reentrant_alloc\n                                   (*(tmp_reentrant_t ***)(puVar14 + -0x10),\n                                    *(size_t *)(puVar14 + -0xc));\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar15 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar15;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar15 -\n                                 (uint)(*(int *)((int)p_Stack_38 + (uVar16 - 4)) == 0));\n          }\n          p_Var4 = p_Stack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              p_Stack_3c = p_Stack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              p_Stack_3c = p_Stack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)((int)pvStack_44 + (int)puStack_40 * 4 + -4) <\n               *(uint *)((int)p_Stack_38 + (int)puStack_40 * 4 + -4))))) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(void **)(puVar14 + -0x14) = pvStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(mpz_srcptr *)(puVar14 + -0x1c) = p_Var4;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(mpz_srcptr *)(puVar14 + -0x14) = p_Var4;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(void **)(puVar14 + -0x1c) = pvStack_44;\n          }\n          *(mpz_srcptr *)(puVar14 + -0x20) = p_Var4;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd(*(mp_ptr *)(puVar14 + -0x20),*(mp_ptr *)(puVar14 + -0x1c),\n                                          *(mp_size_t *)(puVar14 + -0x18),\n                                          *(mp_ptr *)(puVar14 + -0x14),\n                                          *(mp_size_t *)(puVar14 + -0x10));\n          iVar17 = (int)&p_Stack_3c->_mp_alloc + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }\n            p_Var4 = p_Stack_3c;\n            pmVar13 = g->_mp_d;\n            if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;\n            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(*(uint *)((int)p_Stack_38 + ((int)puStack_34 + 0x3fffffff) * 4)\n                                     >> (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }\n            p_Var4 = p_Stack_3c;\n            pmVar13 = g->_mp_d;\n            if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;\n            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(pmVar13 + (int)p_Var4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          g->_mp_size = iVar17;\n          if (ptStack_24 != (tmp_reentrant_t *)0x0) {\n            *(tmp_reentrant_t **)(puVar14 + -0x10) = ptStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar14 + -0x10));\n          }\n          goto LAB_00029590;\n        }\n        g->_mp_size = 1;\n        pmVar13 = g->_mp_d;\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }\n      ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n      mVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);\n      puVar14 = auStack_6c;\n      *pmVar13 = mVar9;\n      goto LAB_00029590;\n    }\n    g->_mp_size = (int)puStack_34;\n    if (u == g) goto LAB_00029590;\n    puVar11 = puStack_40;\n    puVar15 = puStack_34;\n    ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n    if (g->_mp_alloc < (int)puStack_34) {\n      __gmpz_realloc(g,(mp_size_t)puStack_34);\n      puVar11 = puStack_40;\n      puVar15 = puStack_34;\n    }\n  }\n  (**(code **)(ppuStack_30[-0x9b] + 0x28))(g->_mp_d,puVar11,puVar15);\n  puVar14 = auStack_6c;\nLAB_00029590:\n  if (iStack_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)(puVar14 + -4) = 0x29a36;\n  __stack_chk_fail_local();\n}\n\n" comment comment comment (function_definition "void __gmpz_gcd(mpz_ptr g,mpz_srcptr u,mpz_srcptr v)\n\n{\n  uint uVar1;\n  undefined *puVar2;\n  code *pcVar3;\n  mpz_srcptr p_Var4;\n  uint *puVar5;\n  undefined **ppuVar6;\n  mp_limb_t *pmVar7;\n  int iVar8;\n  mp_limb_t mVar9;\n  mp_limb_t *pmVar10;\n  uint *puVar11;\n  uint *puVar12;\n  mp_limb_t *pmVar13;\n  undefined1 *puVar14;\n  uint *puVar15;\n  uint uVar16;\n  int iVar17;\n  int in_GS_OFFSET;\n  undefined1 auStack_6c [8];\n  uint *puStack_64;\n  uint *puStack_60;\n  mpz_srcptr p_Stack_5c;\n  int iStack_58;\n  int iStack_54;\n  uint *puStack_50;\n  uint *puStack_4c;\n  uint *puStack_48;\n  void *pvStack_44;\n  uint *puStack_40;\n  mpz_srcptr p_Stack_3c;\n  mpz_srcptr p_Stack_38;\n  uint *puStack_34;\n  undefined **ppuStack_30;\n  tmp_reentrant_t *ptStack_24;\n  int iStack_20;\n  undefined **ppuStack_10;\n  \n  ppuStack_10 = &_GLOBAL_OFFSET_TABLE_;\n  puVar14 = auStack_6c;\n  ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n  p_Stack_38 = u;\n  uVar16 = u->_mp_size;\n  iStack_20 = *(int *)(in_GS_OFFSET + 0x14);\n  puVar11 = v->_mp_d;\n  p_Stack_3c = v;\n  uVar1 = v->_mp_size;\n  puVar15 = (uint *)(((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f));\n  if (uVar16 == 0) {\n    g->_mp_size = (int)puVar15;\n    puVar14 = auStack_6c;\n    ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n    if (v == g) goto LAB_00029590;\n    if (g->_mp_alloc < (int)puVar15) {\n      puStack_34 = puVar11;\n      __gmpz_realloc(g,(mp_size_t)puVar15);\n      puVar11 = puStack_34;\n    }\n  }\n  else {\n    puStack_40 = u->_mp_d;\n    puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f));\n    if (uVar1 != 0) {\n      if (puStack_34 == (uint *)0x1) {\n        pmVar13 = g->_mp_d;\n        g->_mp_size = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          ptStack_24 = (tmp_reentrant_t *)0x0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            p_Stack_5c = (mpz_srcptr)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)p_Stack_5c);\n          }\n          else {\n            p_Stack_5c = (mpz_srcptr)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          p_Stack_38 = (mpz_srcptr)((int)puStack_34 * 4);\n          if (p_Stack_38 < (uint *)0x7f01) {\n            iVar17 = -((int)p_Stack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iVar17;\n            pvStack_44 = (void *)((int)&puStack_60 + iVar17);\n            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n            pvStack_44 = __gmp_tmp_reentrant_alloc(&ptStack_24,(size_t)p_Stack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(void **)(puVar14 + -0x10) = pvStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            p_Stack_38 = (mpz_srcptr)puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = (uint *)p_Stack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(void **)(puVar14 + -0x10) = pvStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)((int)pvStack_44 + -4 + (int)p_Stack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - (int)p_Stack_3c->_mp_d;\n          p_Stack_3c = (mpz_srcptr)(iStack_54 >> 2);\n          puStack_40 = (uint *)((int)puVar15 - (int)p_Stack_3c);\n          uVar16 = (int)puStack_40 * 4;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            p_Stack_38 = (mpz_srcptr)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(tmp_reentrant_t ***)(puVar14 + -0x10) = &ptStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            p_Stack_38 = (mpz_srcptr)\n                         __gmp_tmp_reentrant_alloc\n                                   (*(tmp_reentrant_t ***)(puVar14 + -0x10),\n                                    *(size_t *)(puVar14 + -0xc));\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar15 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar15;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar15 -\n                                 (uint)(*(int *)((int)p_Stack_38 + (uVar16 - 4)) == 0));\n          }\n          p_Var4 = p_Stack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              p_Stack_3c = p_Stack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              p_Stack_3c = p_Stack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)((int)pvStack_44 + (int)puStack_40 * 4 + -4) <\n               *(uint *)((int)p_Stack_38 + (int)puStack_40 * 4 + -4))))) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(void **)(puVar14 + -0x14) = pvStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(mpz_srcptr *)(puVar14 + -0x1c) = p_Var4;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(mpz_srcptr *)(puVar14 + -0x14) = p_Var4;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(void **)(puVar14 + -0x1c) = pvStack_44;\n          }\n          *(mpz_srcptr *)(puVar14 + -0x20) = p_Var4;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd(*(mp_ptr *)(puVar14 + -0x20),*(mp_ptr *)(puVar14 + -0x1c),\n                                          *(mp_size_t *)(puVar14 + -0x18),\n                                          *(mp_ptr *)(puVar14 + -0x14),\n                                          *(mp_size_t *)(puVar14 + -0x10));\n          iVar17 = (int)&p_Stack_3c->_mp_alloc + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }\n            p_Var4 = p_Stack_3c;\n            pmVar13 = g->_mp_d;\n            if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;\n            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(*(uint *)((int)p_Stack_38 + ((int)puStack_34 + 0x3fffffff) * 4)\n                                     >> (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }\n            p_Var4 = p_Stack_3c;\n            pmVar13 = g->_mp_d;\n            if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;\n            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(pmVar13 + (int)p_Var4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          g->_mp_size = iVar17;\n          if (ptStack_24 != (tmp_reentrant_t *)0x0) {\n            *(tmp_reentrant_t **)(puVar14 + -0x10) = ptStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar14 + -0x10));\n          }\n          goto LAB_00029590;\n        }\n        g->_mp_size = 1;\n        pmVar13 = g->_mp_d;\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }\n      ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n      mVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);\n      puVar14 = auStack_6c;\n      *pmVar13 = mVar9;\n      goto LAB_00029590;\n    }\n    g->_mp_size = (int)puStack_34;\n    if (u == g) goto LAB_00029590;\n    puVar11 = puStack_40;\n    puVar15 = puStack_34;\n    ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n    if (g->_mp_alloc < (int)puStack_34) {\n      __gmpz_realloc(g,(mp_size_t)puStack_34);\n      puVar11 = puStack_40;\n      puVar15 = puStack_34;\n    }\n  }\n  (**(code **)(ppuStack_30[-0x9b] + 0x28))(g->_mp_d,puVar11,puVar15);\n  puVar14 = auStack_6c;\nLAB_00029590:\n  if (iStack_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)(puVar14 + -4) = 0x29a36;\n  __stack_chk_fail_local();\n}" primitive_type (function_declarator "__gmpz_gcd(mpz_ptr g,mpz_srcptr u,mpz_srcptr v)" identifier (parameter_list "(mpz_ptr g,mpz_srcptr u,mpz_srcptr v)" ( (parameter_declaration "mpz_ptr g" type_identifier identifier) , (parameter_declaration "mpz_srcptr u" type_identifier identifier) , (parameter_declaration "mpz_srcptr v" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  undefined *puVar2;\n  code *pcVar3;\n  mpz_srcptr p_Var4;\n  uint *puVar5;\n  undefined **ppuVar6;\n  mp_limb_t *pmVar7;\n  int iVar8;\n  mp_limb_t mVar9;\n  mp_limb_t *pmVar10;\n  uint *puVar11;\n  uint *puVar12;\n  mp_limb_t *pmVar13;\n  undefined1 *puVar14;\n  uint *puVar15;\n  uint uVar16;\n  int iVar17;\n  int in_GS_OFFSET;\n  undefined1 auStack_6c [8];\n  uint *puStack_64;\n  uint *puStack_60;\n  mpz_srcptr p_Stack_5c;\n  int iStack_58;\n  int iStack_54;\n  uint *puStack_50;\n  uint *puStack_4c;\n  uint *puStack_48;\n  void *pvStack_44;\n  uint *puStack_40;\n  mpz_srcptr p_Stack_3c;\n  mpz_srcptr p_Stack_38;\n  uint *puStack_34;\n  undefined **ppuStack_30;\n  tmp_reentrant_t *ptStack_24;\n  int iStack_20;\n  undefined **ppuStack_10;\n  \n  ppuStack_10 = &_GLOBAL_OFFSET_TABLE_;\n  puVar14 = auStack_6c;\n  ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n  p_Stack_38 = u;\n  uVar16 = u->_mp_size;\n  iStack_20 = *(int *)(in_GS_OFFSET + 0x14);\n  puVar11 = v->_mp_d;\n  p_Stack_3c = v;\n  uVar1 = v->_mp_size;\n  puVar15 = (uint *)(((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f));\n  if (uVar16 == 0) {\n    g->_mp_size = (int)puVar15;\n    puVar14 = auStack_6c;\n    ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n    if (v == g) goto LAB_00029590;\n    if (g->_mp_alloc < (int)puVar15) {\n      puStack_34 = puVar11;\n      __gmpz_realloc(g,(mp_size_t)puVar15);\n      puVar11 = puStack_34;\n    }\n  }\n  else {\n    puStack_40 = u->_mp_d;\n    puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f));\n    if (uVar1 != 0) {\n      if (puStack_34 == (uint *)0x1) {\n        pmVar13 = g->_mp_d;\n        g->_mp_size = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          ptStack_24 = (tmp_reentrant_t *)0x0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            p_Stack_5c = (mpz_srcptr)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)p_Stack_5c);\n          }\n          else {\n            p_Stack_5c = (mpz_srcptr)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          p_Stack_38 = (mpz_srcptr)((int)puStack_34 * 4);\n          if (p_Stack_38 < (uint *)0x7f01) {\n            iVar17 = -((int)p_Stack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iVar17;\n            pvStack_44 = (void *)((int)&puStack_60 + iVar17);\n            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n            pvStack_44 = __gmp_tmp_reentrant_alloc(&ptStack_24,(size_t)p_Stack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(void **)(puVar14 + -0x10) = pvStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            p_Stack_38 = (mpz_srcptr)puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = (uint *)p_Stack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(void **)(puVar14 + -0x10) = pvStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)((int)pvStack_44 + -4 + (int)p_Stack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - (int)p_Stack_3c->_mp_d;\n          p_Stack_3c = (mpz_srcptr)(iStack_54 >> 2);\n          puStack_40 = (uint *)((int)puVar15 - (int)p_Stack_3c);\n          uVar16 = (int)puStack_40 * 4;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            p_Stack_38 = (mpz_srcptr)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(tmp_reentrant_t ***)(puVar14 + -0x10) = &ptStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            p_Stack_38 = (mpz_srcptr)\n                         __gmp_tmp_reentrant_alloc\n                                   (*(tmp_reentrant_t ***)(puVar14 + -0x10),\n                                    *(size_t *)(puVar14 + -0xc));\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar15 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar15;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar15 -\n                                 (uint)(*(int *)((int)p_Stack_38 + (uVar16 - 4)) == 0));\n          }\n          p_Var4 = p_Stack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              p_Stack_3c = p_Stack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              p_Stack_3c = p_Stack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)((int)pvStack_44 + (int)puStack_40 * 4 + -4) <\n               *(uint *)((int)p_Stack_38 + (int)puStack_40 * 4 + -4))))) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(void **)(puVar14 + -0x14) = pvStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(mpz_srcptr *)(puVar14 + -0x1c) = p_Var4;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(mpz_srcptr *)(puVar14 + -0x14) = p_Var4;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(void **)(puVar14 + -0x1c) = pvStack_44;\n          }\n          *(mpz_srcptr *)(puVar14 + -0x20) = p_Var4;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd(*(mp_ptr *)(puVar14 + -0x20),*(mp_ptr *)(puVar14 + -0x1c),\n                                          *(mp_size_t *)(puVar14 + -0x18),\n                                          *(mp_ptr *)(puVar14 + -0x14),\n                                          *(mp_size_t *)(puVar14 + -0x10));\n          iVar17 = (int)&p_Stack_3c->_mp_alloc + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }\n            p_Var4 = p_Stack_3c;\n            pmVar13 = g->_mp_d;\n            if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;\n            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(*(uint *)((int)p_Stack_38 + ((int)puStack_34 + 0x3fffffff) * 4)\n                                     >> (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }\n            p_Var4 = p_Stack_3c;\n            pmVar13 = g->_mp_d;\n            if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;\n            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(pmVar13 + (int)p_Var4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          g->_mp_size = iVar17;\n          if (ptStack_24 != (tmp_reentrant_t *)0x0) {\n            *(tmp_reentrant_t **)(puVar14 + -0x10) = ptStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar14 + -0x10));\n          }\n          goto LAB_00029590;\n        }\n        g->_mp_size = 1;\n        pmVar13 = g->_mp_d;\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }\n      ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n      mVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);\n      puVar14 = auStack_6c;\n      *pmVar13 = mVar9;\n      goto LAB_00029590;\n    }\n    g->_mp_size = (int)puStack_34;\n    if (u == g) goto LAB_00029590;\n    puVar11 = puStack_40;\n    puVar15 = puStack_34;\n    ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n    if (g->_mp_alloc < (int)puStack_34) {\n      __gmpz_realloc(g,(mp_size_t)puStack_34);\n      puVar11 = puStack_40;\n      puVar15 = puStack_34;\n    }\n  }\n  (**(code **)(ppuStack_30[-0x9b] + 0x28))(g->_mp_d,puVar11,puVar15);\n  puVar14 = auStack_6c;\nLAB_00029590:\n  if (iStack_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)(puVar14 + -4) = 0x29a36;\n  __stack_chk_fail_local();\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "mpz_srcptr p_Var4;" type_identifier identifier ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined **ppuVar6;" type_identifier (pointer_declarator "**ppuVar6" * (pointer_declarator "*ppuVar6" * identifier)) ;) (declaration "mp_limb_t *pmVar7;" type_identifier (pointer_declarator "*pmVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "mp_limb_t mVar9;" type_identifier identifier ;) (declaration "mp_limb_t *pmVar10;" type_identifier (pointer_declarator "*pmVar10" * identifier) ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "uint *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "mp_limb_t *pmVar13;" type_identifier (pointer_declarator "*pmVar13" * identifier) ;) (declaration "undefined1 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined1 auStack_6c [8];" type_identifier (array_declarator "auStack_6c [8]" identifier [ number_literal ]) ;) (declaration "uint *puStack_64;" type_identifier (pointer_declarator "*puStack_64" * identifier) ;) (declaration "uint *puStack_60;" type_identifier (pointer_declarator "*puStack_60" * identifier) ;) (declaration "mpz_srcptr p_Stack_5c;" type_identifier identifier ;) (declaration "int iStack_58;" primitive_type identifier ;) (declaration "int iStack_54;" primitive_type identifier ;) (declaration "uint *puStack_50;" type_identifier (pointer_declarator "*puStack_50" * identifier) ;) (declaration "uint *puStack_4c;" type_identifier (pointer_declarator "*puStack_4c" * identifier) ;) (declaration "uint *puStack_48;" type_identifier (pointer_declarator "*puStack_48" * identifier) ;) (declaration "void *pvStack_44;" primitive_type (pointer_declarator "*pvStack_44" * identifier) ;) (declaration "uint *puStack_40;" type_identifier (pointer_declarator "*puStack_40" * identifier) ;) (declaration "mpz_srcptr p_Stack_3c;" type_identifier identifier ;) (declaration "mpz_srcptr p_Stack_38;" type_identifier identifier ;) (declaration "uint *puStack_34;" type_identifier (pointer_declarator "*puStack_34" * identifier) ;) (declaration "undefined **ppuStack_30;" type_identifier (pointer_declarator "**ppuStack_30" * (pointer_declarator "*ppuStack_30" * identifier)) ;) (declaration "tmp_reentrant_t *ptStack_24;" type_identifier (pointer_declarator "*ptStack_24" * identifier) ;) (declaration "int iStack_20;" primitive_type identifier ;) (declaration "undefined **ppuStack_10;" type_identifier (pointer_declarator "**ppuStack_10" * (pointer_declarator "*ppuStack_10" * identifier)) ;) (expression_statement "ppuStack_10 = &_GLOBAL_OFFSET_TABLE_;" (assignment_expression "ppuStack_10 = &_GLOBAL_OFFSET_TABLE_" identifier = (pointer_expression "&_GLOBAL_OFFSET_TABLE_" & identifier)) ;) (expression_statement "puVar14 = auStack_6c;" (assignment_expression "puVar14 = auStack_6c" identifier = identifier) ;) (expression_statement "ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;" (assignment_expression "ppuStack_30 = &_GLOBAL_OFFSET_TABLE_" identifier = (pointer_expression "&_GLOBAL_OFFSET_TABLE_" & identifier)) ;) (expression_statement "p_Stack_38 = u;" (assignment_expression "p_Stack_38 = u" identifier = identifier) ;) (expression_statement "uVar16 = u->_mp_size;" (assignment_expression "uVar16 = u->_mp_size" identifier = (field_expression "u->_mp_size" identifier -> field_identifier)) ;) (expression_statement "iStack_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iStack_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "puVar11 = v->_mp_d;" (assignment_expression "puVar11 = v->_mp_d" identifier = (field_expression "v->_mp_d" identifier -> field_identifier)) ;) (expression_statement "p_Stack_3c = v;" (assignment_expression "p_Stack_3c = v" identifier = identifier) ;) (expression_statement "uVar1 = v->_mp_size;" (assignment_expression "uVar1 = v->_mp_size" identifier = (field_expression "v->_mp_size" identifier -> field_identifier)) ;) (expression_statement "puVar15 = (uint *)(((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f));" (assignment_expression "puVar15 = (uint *)(((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f))" identifier = (cast_expression "(uint *)(((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f))" ( (binary_expression "((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f)" (parenthesized_expression "((int)uVar1 >> 0x1f ^ uVar1)" ( (binary_expression "(int)uVar1 >> 0x1f ^ uVar1" (binary_expression "(int)uVar1 >> 0x1f" (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ^ identifier) )) - (parenthesized_expression "((int)uVar1 >> 0x1f)" ( (binary_expression "(int)uVar1 >> 0x1f" (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) )))) ;) (if_statement "if (uVar16 == 0) {\n    g->_mp_size = (int)puVar15;\n    puVar14 = auStack_6c;\n    ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n    if (v == g) goto LAB_00029590;\n    if (g->_mp_alloc < (int)puVar15) {\n      puStack_34 = puVar11;\n      __gmpz_realloc(g,(mp_size_t)puVar15);\n      puVar11 = puStack_34;\n    }\n  }\n  else {\n    puStack_40 = u->_mp_d;\n    puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f));\n    if (uVar1 != 0) {\n      if (puStack_34 == (uint *)0x1) {\n        pmVar13 = g->_mp_d;\n        g->_mp_size = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          ptStack_24 = (tmp_reentrant_t *)0x0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            p_Stack_5c = (mpz_srcptr)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)p_Stack_5c);\n          }\n          else {\n            p_Stack_5c = (mpz_srcptr)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          p_Stack_38 = (mpz_srcptr)((int)puStack_34 * 4);\n          if (p_Stack_38 < (uint *)0x7f01) {\n            iVar17 = -((int)p_Stack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iVar17;\n            pvStack_44 = (void *)((int)&puStack_60 + iVar17);\n            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n            pvStack_44 = __gmp_tmp_reentrant_alloc(&ptStack_24,(size_t)p_Stack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(void **)(puVar14 + -0x10) = pvStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            p_Stack_38 = (mpz_srcptr)puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = (uint *)p_Stack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(void **)(puVar14 + -0x10) = pvStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)((int)pvStack_44 + -4 + (int)p_Stack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - (int)p_Stack_3c->_mp_d;\n          p_Stack_3c = (mpz_srcptr)(iStack_54 >> 2);\n          puStack_40 = (uint *)((int)puVar15 - (int)p_Stack_3c);\n          uVar16 = (int)puStack_40 * 4;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            p_Stack_38 = (mpz_srcptr)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(tmp_reentrant_t ***)(puVar14 + -0x10) = &ptStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            p_Stack_38 = (mpz_srcptr)\n                         __gmp_tmp_reentrant_alloc\n                                   (*(tmp_reentrant_t ***)(puVar14 + -0x10),\n                                    *(size_t *)(puVar14 + -0xc));\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar15 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar15;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar15 -\n                                 (uint)(*(int *)((int)p_Stack_38 + (uVar16 - 4)) == 0));\n          }\n          p_Var4 = p_Stack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              p_Stack_3c = p_Stack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              p_Stack_3c = p_Stack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)((int)pvStack_44 + (int)puStack_40 * 4 + -4) <\n               *(uint *)((int)p_Stack_38 + (int)puStack_40 * 4 + -4))))) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(void **)(puVar14 + -0x14) = pvStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(mpz_srcptr *)(puVar14 + -0x1c) = p_Var4;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(mpz_srcptr *)(puVar14 + -0x14) = p_Var4;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(void **)(puVar14 + -0x1c) = pvStack_44;\n          }\n          *(mpz_srcptr *)(puVar14 + -0x20) = p_Var4;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd(*(mp_ptr *)(puVar14 + -0x20),*(mp_ptr *)(puVar14 + -0x1c),\n                                          *(mp_size_t *)(puVar14 + -0x18),\n                                          *(mp_ptr *)(puVar14 + -0x14),\n                                          *(mp_size_t *)(puVar14 + -0x10));\n          iVar17 = (int)&p_Stack_3c->_mp_alloc + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }\n            p_Var4 = p_Stack_3c;\n            pmVar13 = g->_mp_d;\n            if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;\n            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(*(uint *)((int)p_Stack_38 + ((int)puStack_34 + 0x3fffffff) * 4)\n                                     >> (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }\n            p_Var4 = p_Stack_3c;\n            pmVar13 = g->_mp_d;\n            if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;\n            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(pmVar13 + (int)p_Var4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          g->_mp_size = iVar17;\n          if (ptStack_24 != (tmp_reentrant_t *)0x0) {\n            *(tmp_reentrant_t **)(puVar14 + -0x10) = ptStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar14 + -0x10));\n          }\n          goto LAB_00029590;\n        }\n        g->_mp_size = 1;\n        pmVar13 = g->_mp_d;\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }\n      ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n      mVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);\n      puVar14 = auStack_6c;\n      *pmVar13 = mVar9;\n      goto LAB_00029590;\n    }\n    g->_mp_size = (int)puStack_34;\n    if (u == g) goto LAB_00029590;\n    puVar11 = puStack_40;\n    puVar15 = puStack_34;\n    ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n    if (g->_mp_alloc < (int)puStack_34) {\n      __gmpz_realloc(g,(mp_size_t)puStack_34);\n      puVar11 = puStack_40;\n      puVar15 = puStack_34;\n    }\n  }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n    g->_mp_size = (int)puVar15;\n    puVar14 = auStack_6c;\n    ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n    if (v == g) goto LAB_00029590;\n    if (g->_mp_alloc < (int)puVar15) {\n      puStack_34 = puVar11;\n      __gmpz_realloc(g,(mp_size_t)puVar15);\n      puVar11 = puStack_34;\n    }\n  }" { (expression_statement "g->_mp_size = (int)puVar15;" (assignment_expression "g->_mp_size = (int)puVar15" (field_expression "g->_mp_size" identifier -> field_identifier) = (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar14 = auStack_6c;" (assignment_expression "puVar14 = auStack_6c" identifier = identifier) ;) (expression_statement "ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;" (assignment_expression "ppuStack_30 = &_GLOBAL_OFFSET_TABLE_" identifier = (pointer_expression "&_GLOBAL_OFFSET_TABLE_" & identifier)) ;) (if_statement "if (v == g) goto LAB_00029590;" if (parenthesized_expression "(v == g)" ( (binary_expression "v == g" identifier == identifier) )) (goto_statement "goto LAB_00029590;" goto statement_identifier ;)) (if_statement "if (g->_mp_alloc < (int)puVar15) {\n      puStack_34 = puVar11;\n      __gmpz_realloc(g,(mp_size_t)puVar15);\n      puVar11 = puStack_34;\n    }" if (parenthesized_expression "(g->_mp_alloc < (int)puVar15)" ( (binary_expression "g->_mp_alloc < (int)puVar15" (field_expression "g->_mp_alloc" identifier -> field_identifier) < (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      puStack_34 = puVar11;\n      __gmpz_realloc(g,(mp_size_t)puVar15);\n      puVar11 = puStack_34;\n    }" { (expression_statement "puStack_34 = puVar11;" (assignment_expression "puStack_34 = puVar11" identifier = identifier) ;) (expression_statement "__gmpz_realloc(g,(mp_size_t)puVar15);" (call_expression "__gmpz_realloc(g,(mp_size_t)puVar15)" identifier (argument_list "(g,(mp_size_t)puVar15)" ( identifier , (cast_expression "(mp_size_t)puVar15" ( (type_descriptor "mp_size_t" type_identifier) ) identifier) ))) ;) (expression_statement "puVar11 = puStack_34;" (assignment_expression "puVar11 = puStack_34" identifier = identifier) ;) })) }) (else_clause "else {\n    puStack_40 = u->_mp_d;\n    puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f));\n    if (uVar1 != 0) {\n      if (puStack_34 == (uint *)0x1) {\n        pmVar13 = g->_mp_d;\n        g->_mp_size = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          ptStack_24 = (tmp_reentrant_t *)0x0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            p_Stack_5c = (mpz_srcptr)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)p_Stack_5c);\n          }\n          else {\n            p_Stack_5c = (mpz_srcptr)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          p_Stack_38 = (mpz_srcptr)((int)puStack_34 * 4);\n          if (p_Stack_38 < (uint *)0x7f01) {\n            iVar17 = -((int)p_Stack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iVar17;\n            pvStack_44 = (void *)((int)&puStack_60 + iVar17);\n            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n            pvStack_44 = __gmp_tmp_reentrant_alloc(&ptStack_24,(size_t)p_Stack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(void **)(puVar14 + -0x10) = pvStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            p_Stack_38 = (mpz_srcptr)puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = (uint *)p_Stack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(void **)(puVar14 + -0x10) = pvStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)((int)pvStack_44 + -4 + (int)p_Stack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - (int)p_Stack_3c->_mp_d;\n          p_Stack_3c = (mpz_srcptr)(iStack_54 >> 2);\n          puStack_40 = (uint *)((int)puVar15 - (int)p_Stack_3c);\n          uVar16 = (int)puStack_40 * 4;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            p_Stack_38 = (mpz_srcptr)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(tmp_reentrant_t ***)(puVar14 + -0x10) = &ptStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            p_Stack_38 = (mpz_srcptr)\n                         __gmp_tmp_reentrant_alloc\n                                   (*(tmp_reentrant_t ***)(puVar14 + -0x10),\n                                    *(size_t *)(puVar14 + -0xc));\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar15 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar15;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar15 -\n                                 (uint)(*(int *)((int)p_Stack_38 + (uVar16 - 4)) == 0));\n          }\n          p_Var4 = p_Stack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              p_Stack_3c = p_Stack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              p_Stack_3c = p_Stack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)((int)pvStack_44 + (int)puStack_40 * 4 + -4) <\n               *(uint *)((int)p_Stack_38 + (int)puStack_40 * 4 + -4))))) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(void **)(puVar14 + -0x14) = pvStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(mpz_srcptr *)(puVar14 + -0x1c) = p_Var4;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(mpz_srcptr *)(puVar14 + -0x14) = p_Var4;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(void **)(puVar14 + -0x1c) = pvStack_44;\n          }\n          *(mpz_srcptr *)(puVar14 + -0x20) = p_Var4;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd(*(mp_ptr *)(puVar14 + -0x20),*(mp_ptr *)(puVar14 + -0x1c),\n                                          *(mp_size_t *)(puVar14 + -0x18),\n                                          *(mp_ptr *)(puVar14 + -0x14),\n                                          *(mp_size_t *)(puVar14 + -0x10));\n          iVar17 = (int)&p_Stack_3c->_mp_alloc + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }\n            p_Var4 = p_Stack_3c;\n            pmVar13 = g->_mp_d;\n            if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;\n            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(*(uint *)((int)p_Stack_38 + ((int)puStack_34 + 0x3fffffff) * 4)\n                                     >> (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }\n            p_Var4 = p_Stack_3c;\n            pmVar13 = g->_mp_d;\n            if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;\n            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(pmVar13 + (int)p_Var4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          g->_mp_size = iVar17;\n          if (ptStack_24 != (tmp_reentrant_t *)0x0) {\n            *(tmp_reentrant_t **)(puVar14 + -0x10) = ptStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar14 + -0x10));\n          }\n          goto LAB_00029590;\n        }\n        g->_mp_size = 1;\n        pmVar13 = g->_mp_d;\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }\n      ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n      mVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);\n      puVar14 = auStack_6c;\n      *pmVar13 = mVar9;\n      goto LAB_00029590;\n    }\n    g->_mp_size = (int)puStack_34;\n    if (u == g) goto LAB_00029590;\n    puVar11 = puStack_40;\n    puVar15 = puStack_34;\n    ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n    if (g->_mp_alloc < (int)puStack_34) {\n      __gmpz_realloc(g,(mp_size_t)puStack_34);\n      puVar11 = puStack_40;\n      puVar15 = puStack_34;\n    }\n  }" else (compound_statement "{\n    puStack_40 = u->_mp_d;\n    puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f));\n    if (uVar1 != 0) {\n      if (puStack_34 == (uint *)0x1) {\n        pmVar13 = g->_mp_d;\n        g->_mp_size = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          ptStack_24 = (tmp_reentrant_t *)0x0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            p_Stack_5c = (mpz_srcptr)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)p_Stack_5c);\n          }\n          else {\n            p_Stack_5c = (mpz_srcptr)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          p_Stack_38 = (mpz_srcptr)((int)puStack_34 * 4);\n          if (p_Stack_38 < (uint *)0x7f01) {\n            iVar17 = -((int)p_Stack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iVar17;\n            pvStack_44 = (void *)((int)&puStack_60 + iVar17);\n            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n            pvStack_44 = __gmp_tmp_reentrant_alloc(&ptStack_24,(size_t)p_Stack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(void **)(puVar14 + -0x10) = pvStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            p_Stack_38 = (mpz_srcptr)puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = (uint *)p_Stack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(void **)(puVar14 + -0x10) = pvStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)((int)pvStack_44 + -4 + (int)p_Stack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - (int)p_Stack_3c->_mp_d;\n          p_Stack_3c = (mpz_srcptr)(iStack_54 >> 2);\n          puStack_40 = (uint *)((int)puVar15 - (int)p_Stack_3c);\n          uVar16 = (int)puStack_40 * 4;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            p_Stack_38 = (mpz_srcptr)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(tmp_reentrant_t ***)(puVar14 + -0x10) = &ptStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            p_Stack_38 = (mpz_srcptr)\n                         __gmp_tmp_reentrant_alloc\n                                   (*(tmp_reentrant_t ***)(puVar14 + -0x10),\n                                    *(size_t *)(puVar14 + -0xc));\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar15 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar15;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar15 -\n                                 (uint)(*(int *)((int)p_Stack_38 + (uVar16 - 4)) == 0));\n          }\n          p_Var4 = p_Stack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              p_Stack_3c = p_Stack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              p_Stack_3c = p_Stack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)((int)pvStack_44 + (int)puStack_40 * 4 + -4) <\n               *(uint *)((int)p_Stack_38 + (int)puStack_40 * 4 + -4))))) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(void **)(puVar14 + -0x14) = pvStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(mpz_srcptr *)(puVar14 + -0x1c) = p_Var4;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(mpz_srcptr *)(puVar14 + -0x14) = p_Var4;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(void **)(puVar14 + -0x1c) = pvStack_44;\n          }\n          *(mpz_srcptr *)(puVar14 + -0x20) = p_Var4;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd(*(mp_ptr *)(puVar14 + -0x20),*(mp_ptr *)(puVar14 + -0x1c),\n                                          *(mp_size_t *)(puVar14 + -0x18),\n                                          *(mp_ptr *)(puVar14 + -0x14),\n                                          *(mp_size_t *)(puVar14 + -0x10));\n          iVar17 = (int)&p_Stack_3c->_mp_alloc + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }\n            p_Var4 = p_Stack_3c;\n            pmVar13 = g->_mp_d;\n            if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;\n            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(*(uint *)((int)p_Stack_38 + ((int)puStack_34 + 0x3fffffff) * 4)\n                                     >> (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }\n            p_Var4 = p_Stack_3c;\n            pmVar13 = g->_mp_d;\n            if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;\n            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(pmVar13 + (int)p_Var4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          g->_mp_size = iVar17;\n          if (ptStack_24 != (tmp_reentrant_t *)0x0) {\n            *(tmp_reentrant_t **)(puVar14 + -0x10) = ptStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar14 + -0x10));\n          }\n          goto LAB_00029590;\n        }\n        g->_mp_size = 1;\n        pmVar13 = g->_mp_d;\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }\n      ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n      mVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);\n      puVar14 = auStack_6c;\n      *pmVar13 = mVar9;\n      goto LAB_00029590;\n    }\n    g->_mp_size = (int)puStack_34;\n    if (u == g) goto LAB_00029590;\n    puVar11 = puStack_40;\n    puVar15 = puStack_34;\n    ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n    if (g->_mp_alloc < (int)puStack_34) {\n      __gmpz_realloc(g,(mp_size_t)puStack_34);\n      puVar11 = puStack_40;\n      puVar15 = puStack_34;\n    }\n  }" { (expression_statement "puStack_40 = u->_mp_d;" (assignment_expression "puStack_40 = u->_mp_d" identifier = (field_expression "u->_mp_d" identifier -> field_identifier)) ;) (expression_statement "puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f));" (assignment_expression "puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f))" identifier = (cast_expression "(uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f))" ( (binary_expression "(uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f)" (parenthesized_expression "(uVar16 ^ (int)uVar16 >> 0x1f)" ( (binary_expression "uVar16 ^ (int)uVar16 >> 0x1f" identifier ^ (binary_expression "(int)uVar16 >> 0x1f" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) )) - (parenthesized_expression "((int)uVar16 >> 0x1f)" ( (binary_expression "(int)uVar16 >> 0x1f" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) )))) ;) (if_statement "if (uVar1 != 0) {\n      if (puStack_34 == (uint *)0x1) {\n        pmVar13 = g->_mp_d;\n        g->_mp_size = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          ptStack_24 = (tmp_reentrant_t *)0x0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            p_Stack_5c = (mpz_srcptr)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)p_Stack_5c);\n          }\n          else {\n            p_Stack_5c = (mpz_srcptr)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          p_Stack_38 = (mpz_srcptr)((int)puStack_34 * 4);\n          if (p_Stack_38 < (uint *)0x7f01) {\n            iVar17 = -((int)p_Stack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iVar17;\n            pvStack_44 = (void *)((int)&puStack_60 + iVar17);\n            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n            pvStack_44 = __gmp_tmp_reentrant_alloc(&ptStack_24,(size_t)p_Stack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(void **)(puVar14 + -0x10) = pvStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            p_Stack_38 = (mpz_srcptr)puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = (uint *)p_Stack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(void **)(puVar14 + -0x10) = pvStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)((int)pvStack_44 + -4 + (int)p_Stack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - (int)p_Stack_3c->_mp_d;\n          p_Stack_3c = (mpz_srcptr)(iStack_54 >> 2);\n          puStack_40 = (uint *)((int)puVar15 - (int)p_Stack_3c);\n          uVar16 = (int)puStack_40 * 4;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            p_Stack_38 = (mpz_srcptr)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(tmp_reentrant_t ***)(puVar14 + -0x10) = &ptStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            p_Stack_38 = (mpz_srcptr)\n                         __gmp_tmp_reentrant_alloc\n                                   (*(tmp_reentrant_t ***)(puVar14 + -0x10),\n                                    *(size_t *)(puVar14 + -0xc));\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar15 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar15;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar15 -\n                                 (uint)(*(int *)((int)p_Stack_38 + (uVar16 - 4)) == 0));\n          }\n          p_Var4 = p_Stack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              p_Stack_3c = p_Stack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              p_Stack_3c = p_Stack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)((int)pvStack_44 + (int)puStack_40 * 4 + -4) <\n               *(uint *)((int)p_Stack_38 + (int)puStack_40 * 4 + -4))))) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(void **)(puVar14 + -0x14) = pvStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(mpz_srcptr *)(puVar14 + -0x1c) = p_Var4;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(mpz_srcptr *)(puVar14 + -0x14) = p_Var4;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(void **)(puVar14 + -0x1c) = pvStack_44;\n          }\n          *(mpz_srcptr *)(puVar14 + -0x20) = p_Var4;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd(*(mp_ptr *)(puVar14 + -0x20),*(mp_ptr *)(puVar14 + -0x1c),\n                                          *(mp_size_t *)(puVar14 + -0x18),\n                                          *(mp_ptr *)(puVar14 + -0x14),\n                                          *(mp_size_t *)(puVar14 + -0x10));\n          iVar17 = (int)&p_Stack_3c->_mp_alloc + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }\n            p_Var4 = p_Stack_3c;\n            pmVar13 = g->_mp_d;\n            if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;\n            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(*(uint *)((int)p_Stack_38 + ((int)puStack_34 + 0x3fffffff) * 4)\n                                     >> (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }\n            p_Var4 = p_Stack_3c;\n            pmVar13 = g->_mp_d;\n            if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;\n            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(pmVar13 + (int)p_Var4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          g->_mp_size = iVar17;\n          if (ptStack_24 != (tmp_reentrant_t *)0x0) {\n            *(tmp_reentrant_t **)(puVar14 + -0x10) = ptStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar14 + -0x10));\n          }\n          goto LAB_00029590;\n        }\n        g->_mp_size = 1;\n        pmVar13 = g->_mp_d;\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }\n      ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n      mVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);\n      puVar14 = auStack_6c;\n      *pmVar13 = mVar9;\n      goto LAB_00029590;\n    }" if (parenthesized_expression "(uVar1 != 0)" ( (binary_expression "uVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      if (puStack_34 == (uint *)0x1) {\n        pmVar13 = g->_mp_d;\n        g->_mp_size = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          ptStack_24 = (tmp_reentrant_t *)0x0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            p_Stack_5c = (mpz_srcptr)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)p_Stack_5c);\n          }\n          else {\n            p_Stack_5c = (mpz_srcptr)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          p_Stack_38 = (mpz_srcptr)((int)puStack_34 * 4);\n          if (p_Stack_38 < (uint *)0x7f01) {\n            iVar17 = -((int)p_Stack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iVar17;\n            pvStack_44 = (void *)((int)&puStack_60 + iVar17);\n            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n            pvStack_44 = __gmp_tmp_reentrant_alloc(&ptStack_24,(size_t)p_Stack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(void **)(puVar14 + -0x10) = pvStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            p_Stack_38 = (mpz_srcptr)puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = (uint *)p_Stack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(void **)(puVar14 + -0x10) = pvStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)((int)pvStack_44 + -4 + (int)p_Stack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - (int)p_Stack_3c->_mp_d;\n          p_Stack_3c = (mpz_srcptr)(iStack_54 >> 2);\n          puStack_40 = (uint *)((int)puVar15 - (int)p_Stack_3c);\n          uVar16 = (int)puStack_40 * 4;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            p_Stack_38 = (mpz_srcptr)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(tmp_reentrant_t ***)(puVar14 + -0x10) = &ptStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            p_Stack_38 = (mpz_srcptr)\n                         __gmp_tmp_reentrant_alloc\n                                   (*(tmp_reentrant_t ***)(puVar14 + -0x10),\n                                    *(size_t *)(puVar14 + -0xc));\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar15 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar15;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar15 -\n                                 (uint)(*(int *)((int)p_Stack_38 + (uVar16 - 4)) == 0));\n          }\n          p_Var4 = p_Stack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              p_Stack_3c = p_Stack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              p_Stack_3c = p_Stack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)((int)pvStack_44 + (int)puStack_40 * 4 + -4) <\n               *(uint *)((int)p_Stack_38 + (int)puStack_40 * 4 + -4))))) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(void **)(puVar14 + -0x14) = pvStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(mpz_srcptr *)(puVar14 + -0x1c) = p_Var4;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(mpz_srcptr *)(puVar14 + -0x14) = p_Var4;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(void **)(puVar14 + -0x1c) = pvStack_44;\n          }\n          *(mpz_srcptr *)(puVar14 + -0x20) = p_Var4;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd(*(mp_ptr *)(puVar14 + -0x20),*(mp_ptr *)(puVar14 + -0x1c),\n                                          *(mp_size_t *)(puVar14 + -0x18),\n                                          *(mp_ptr *)(puVar14 + -0x14),\n                                          *(mp_size_t *)(puVar14 + -0x10));\n          iVar17 = (int)&p_Stack_3c->_mp_alloc + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }\n            p_Var4 = p_Stack_3c;\n            pmVar13 = g->_mp_d;\n            if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;\n            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(*(uint *)((int)p_Stack_38 + ((int)puStack_34 + 0x3fffffff) * 4)\n                                     >> (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }\n            p_Var4 = p_Stack_3c;\n            pmVar13 = g->_mp_d;\n            if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;\n            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(pmVar13 + (int)p_Var4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          g->_mp_size = iVar17;\n          if (ptStack_24 != (tmp_reentrant_t *)0x0) {\n            *(tmp_reentrant_t **)(puVar14 + -0x10) = ptStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar14 + -0x10));\n          }\n          goto LAB_00029590;\n        }\n        g->_mp_size = 1;\n        pmVar13 = g->_mp_d;\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }\n      ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n      mVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);\n      puVar14 = auStack_6c;\n      *pmVar13 = mVar9;\n      goto LAB_00029590;\n    }" { (if_statement "if (puStack_34 == (uint *)0x1) {\n        pmVar13 = g->_mp_d;\n        g->_mp_size = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          ptStack_24 = (tmp_reentrant_t *)0x0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            p_Stack_5c = (mpz_srcptr)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)p_Stack_5c);\n          }\n          else {\n            p_Stack_5c = (mpz_srcptr)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          p_Stack_38 = (mpz_srcptr)((int)puStack_34 * 4);\n          if (p_Stack_38 < (uint *)0x7f01) {\n            iVar17 = -((int)p_Stack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iVar17;\n            pvStack_44 = (void *)((int)&puStack_60 + iVar17);\n            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n            pvStack_44 = __gmp_tmp_reentrant_alloc(&ptStack_24,(size_t)p_Stack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(void **)(puVar14 + -0x10) = pvStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            p_Stack_38 = (mpz_srcptr)puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = (uint *)p_Stack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(void **)(puVar14 + -0x10) = pvStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)((int)pvStack_44 + -4 + (int)p_Stack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - (int)p_Stack_3c->_mp_d;\n          p_Stack_3c = (mpz_srcptr)(iStack_54 >> 2);\n          puStack_40 = (uint *)((int)puVar15 - (int)p_Stack_3c);\n          uVar16 = (int)puStack_40 * 4;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            p_Stack_38 = (mpz_srcptr)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(tmp_reentrant_t ***)(puVar14 + -0x10) = &ptStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            p_Stack_38 = (mpz_srcptr)\n                         __gmp_tmp_reentrant_alloc\n                                   (*(tmp_reentrant_t ***)(puVar14 + -0x10),\n                                    *(size_t *)(puVar14 + -0xc));\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar15 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar15;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar15 -\n                                 (uint)(*(int *)((int)p_Stack_38 + (uVar16 - 4)) == 0));\n          }\n          p_Var4 = p_Stack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              p_Stack_3c = p_Stack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              p_Stack_3c = p_Stack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)((int)pvStack_44 + (int)puStack_40 * 4 + -4) <\n               *(uint *)((int)p_Stack_38 + (int)puStack_40 * 4 + -4))))) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(void **)(puVar14 + -0x14) = pvStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(mpz_srcptr *)(puVar14 + -0x1c) = p_Var4;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(mpz_srcptr *)(puVar14 + -0x14) = p_Var4;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(void **)(puVar14 + -0x1c) = pvStack_44;\n          }\n          *(mpz_srcptr *)(puVar14 + -0x20) = p_Var4;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd(*(mp_ptr *)(puVar14 + -0x20),*(mp_ptr *)(puVar14 + -0x1c),\n                                          *(mp_size_t *)(puVar14 + -0x18),\n                                          *(mp_ptr *)(puVar14 + -0x14),\n                                          *(mp_size_t *)(puVar14 + -0x10));\n          iVar17 = (int)&p_Stack_3c->_mp_alloc + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }\n            p_Var4 = p_Stack_3c;\n            pmVar13 = g->_mp_d;\n            if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;\n            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(*(uint *)((int)p_Stack_38 + ((int)puStack_34 + 0x3fffffff) * 4)\n                                     >> (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }\n            p_Var4 = p_Stack_3c;\n            pmVar13 = g->_mp_d;\n            if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;\n            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(pmVar13 + (int)p_Var4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          g->_mp_size = iVar17;\n          if (ptStack_24 != (tmp_reentrant_t *)0x0) {\n            *(tmp_reentrant_t **)(puVar14 + -0x10) = ptStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar14 + -0x10));\n          }\n          goto LAB_00029590;\n        }\n        g->_mp_size = 1;\n        pmVar13 = g->_mp_d;\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }" if (parenthesized_expression "(puStack_34 == (uint *)0x1)" ( (binary_expression "puStack_34 == (uint *)0x1" identifier == (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pmVar13 = g->_mp_d;\n        g->_mp_size = 1;\n        uVar16 = *puStack_40;\n      }" { (expression_statement "pmVar13 = g->_mp_d;" (assignment_expression "pmVar13 = g->_mp_d" identifier = (field_expression "g->_mp_d" identifier -> field_identifier)) ;) (expression_statement "g->_mp_size = 1;" (assignment_expression "g->_mp_size = 1" (field_expression "g->_mp_size" identifier -> field_identifier) = number_literal) ;) (expression_statement "uVar16 = *puStack_40;" (assignment_expression "uVar16 = *puStack_40" identifier = (pointer_expression "*puStack_40" * identifier)) ;) }) (else_clause "else {\n        if (puVar15 != (uint *)0x1) {\n          ptStack_24 = (tmp_reentrant_t *)0x0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            p_Stack_5c = (mpz_srcptr)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)p_Stack_5c);\n          }\n          else {\n            p_Stack_5c = (mpz_srcptr)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          p_Stack_38 = (mpz_srcptr)((int)puStack_34 * 4);\n          if (p_Stack_38 < (uint *)0x7f01) {\n            iVar17 = -((int)p_Stack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iVar17;\n            pvStack_44 = (void *)((int)&puStack_60 + iVar17);\n            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n            pvStack_44 = __gmp_tmp_reentrant_alloc(&ptStack_24,(size_t)p_Stack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(void **)(puVar14 + -0x10) = pvStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            p_Stack_38 = (mpz_srcptr)puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = (uint *)p_Stack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(void **)(puVar14 + -0x10) = pvStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)((int)pvStack_44 + -4 + (int)p_Stack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - (int)p_Stack_3c->_mp_d;\n          p_Stack_3c = (mpz_srcptr)(iStack_54 >> 2);\n          puStack_40 = (uint *)((int)puVar15 - (int)p_Stack_3c);\n          uVar16 = (int)puStack_40 * 4;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            p_Stack_38 = (mpz_srcptr)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(tmp_reentrant_t ***)(puVar14 + -0x10) = &ptStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            p_Stack_38 = (mpz_srcptr)\n                         __gmp_tmp_reentrant_alloc\n                                   (*(tmp_reentrant_t ***)(puVar14 + -0x10),\n                                    *(size_t *)(puVar14 + -0xc));\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar15 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar15;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar15 -\n                                 (uint)(*(int *)((int)p_Stack_38 + (uVar16 - 4)) == 0));\n          }\n          p_Var4 = p_Stack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              p_Stack_3c = p_Stack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              p_Stack_3c = p_Stack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)((int)pvStack_44 + (int)puStack_40 * 4 + -4) <\n               *(uint *)((int)p_Stack_38 + (int)puStack_40 * 4 + -4))))) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(void **)(puVar14 + -0x14) = pvStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(mpz_srcptr *)(puVar14 + -0x1c) = p_Var4;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(mpz_srcptr *)(puVar14 + -0x14) = p_Var4;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(void **)(puVar14 + -0x1c) = pvStack_44;\n          }\n          *(mpz_srcptr *)(puVar14 + -0x20) = p_Var4;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd(*(mp_ptr *)(puVar14 + -0x20),*(mp_ptr *)(puVar14 + -0x1c),\n                                          *(mp_size_t *)(puVar14 + -0x18),\n                                          *(mp_ptr *)(puVar14 + -0x14),\n                                          *(mp_size_t *)(puVar14 + -0x10));\n          iVar17 = (int)&p_Stack_3c->_mp_alloc + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }\n            p_Var4 = p_Stack_3c;\n            pmVar13 = g->_mp_d;\n            if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;\n            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(*(uint *)((int)p_Stack_38 + ((int)puStack_34 + 0x3fffffff) * 4)\n                                     >> (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }\n            p_Var4 = p_Stack_3c;\n            pmVar13 = g->_mp_d;\n            if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;\n            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(pmVar13 + (int)p_Var4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          g->_mp_size = iVar17;\n          if (ptStack_24 != (tmp_reentrant_t *)0x0) {\n            *(tmp_reentrant_t **)(puVar14 + -0x10) = ptStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar14 + -0x10));\n          }\n          goto LAB_00029590;\n        }\n        g->_mp_size = 1;\n        pmVar13 = g->_mp_d;\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }" else (compound_statement "{\n        if (puVar15 != (uint *)0x1) {\n          ptStack_24 = (tmp_reentrant_t *)0x0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            p_Stack_5c = (mpz_srcptr)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)p_Stack_5c);\n          }\n          else {\n            p_Stack_5c = (mpz_srcptr)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          p_Stack_38 = (mpz_srcptr)((int)puStack_34 * 4);\n          if (p_Stack_38 < (uint *)0x7f01) {\n            iVar17 = -((int)p_Stack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iVar17;\n            pvStack_44 = (void *)((int)&puStack_60 + iVar17);\n            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n            pvStack_44 = __gmp_tmp_reentrant_alloc(&ptStack_24,(size_t)p_Stack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(void **)(puVar14 + -0x10) = pvStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            p_Stack_38 = (mpz_srcptr)puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = (uint *)p_Stack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(void **)(puVar14 + -0x10) = pvStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)((int)pvStack_44 + -4 + (int)p_Stack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - (int)p_Stack_3c->_mp_d;\n          p_Stack_3c = (mpz_srcptr)(iStack_54 >> 2);\n          puStack_40 = (uint *)((int)puVar15 - (int)p_Stack_3c);\n          uVar16 = (int)puStack_40 * 4;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            p_Stack_38 = (mpz_srcptr)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(tmp_reentrant_t ***)(puVar14 + -0x10) = &ptStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            p_Stack_38 = (mpz_srcptr)\n                         __gmp_tmp_reentrant_alloc\n                                   (*(tmp_reentrant_t ***)(puVar14 + -0x10),\n                                    *(size_t *)(puVar14 + -0xc));\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar15 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar15;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar15 -\n                                 (uint)(*(int *)((int)p_Stack_38 + (uVar16 - 4)) == 0));\n          }\n          p_Var4 = p_Stack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              p_Stack_3c = p_Stack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              p_Stack_3c = p_Stack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)((int)pvStack_44 + (int)puStack_40 * 4 + -4) <\n               *(uint *)((int)p_Stack_38 + (int)puStack_40 * 4 + -4))))) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(void **)(puVar14 + -0x14) = pvStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(mpz_srcptr *)(puVar14 + -0x1c) = p_Var4;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(mpz_srcptr *)(puVar14 + -0x14) = p_Var4;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(void **)(puVar14 + -0x1c) = pvStack_44;\n          }\n          *(mpz_srcptr *)(puVar14 + -0x20) = p_Var4;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd(*(mp_ptr *)(puVar14 + -0x20),*(mp_ptr *)(puVar14 + -0x1c),\n                                          *(mp_size_t *)(puVar14 + -0x18),\n                                          *(mp_ptr *)(puVar14 + -0x14),\n                                          *(mp_size_t *)(puVar14 + -0x10));\n          iVar17 = (int)&p_Stack_3c->_mp_alloc + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }\n            p_Var4 = p_Stack_3c;\n            pmVar13 = g->_mp_d;\n            if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;\n            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(*(uint *)((int)p_Stack_38 + ((int)puStack_34 + 0x3fffffff) * 4)\n                                     >> (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }\n            p_Var4 = p_Stack_3c;\n            pmVar13 = g->_mp_d;\n            if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;\n            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(pmVar13 + (int)p_Var4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          g->_mp_size = iVar17;\n          if (ptStack_24 != (tmp_reentrant_t *)0x0) {\n            *(tmp_reentrant_t **)(puVar14 + -0x10) = ptStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar14 + -0x10));\n          }\n          goto LAB_00029590;\n        }\n        g->_mp_size = 1;\n        pmVar13 = g->_mp_d;\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }" { (if_statement "if (puVar15 != (uint *)0x1) {\n          ptStack_24 = (tmp_reentrant_t *)0x0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            p_Stack_5c = (mpz_srcptr)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)p_Stack_5c);\n          }\n          else {\n            p_Stack_5c = (mpz_srcptr)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          p_Stack_38 = (mpz_srcptr)((int)puStack_34 * 4);\n          if (p_Stack_38 < (uint *)0x7f01) {\n            iVar17 = -((int)p_Stack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iVar17;\n            pvStack_44 = (void *)((int)&puStack_60 + iVar17);\n            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n            pvStack_44 = __gmp_tmp_reentrant_alloc(&ptStack_24,(size_t)p_Stack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(void **)(puVar14 + -0x10) = pvStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            p_Stack_38 = (mpz_srcptr)puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = (uint *)p_Stack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(void **)(puVar14 + -0x10) = pvStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)((int)pvStack_44 + -4 + (int)p_Stack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - (int)p_Stack_3c->_mp_d;\n          p_Stack_3c = (mpz_srcptr)(iStack_54 >> 2);\n          puStack_40 = (uint *)((int)puVar15 - (int)p_Stack_3c);\n          uVar16 = (int)puStack_40 * 4;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            p_Stack_38 = (mpz_srcptr)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(tmp_reentrant_t ***)(puVar14 + -0x10) = &ptStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            p_Stack_38 = (mpz_srcptr)\n                         __gmp_tmp_reentrant_alloc\n                                   (*(tmp_reentrant_t ***)(puVar14 + -0x10),\n                                    *(size_t *)(puVar14 + -0xc));\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar15 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar15;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar15 -\n                                 (uint)(*(int *)((int)p_Stack_38 + (uVar16 - 4)) == 0));\n          }\n          p_Var4 = p_Stack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              p_Stack_3c = p_Stack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              p_Stack_3c = p_Stack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)((int)pvStack_44 + (int)puStack_40 * 4 + -4) <\n               *(uint *)((int)p_Stack_38 + (int)puStack_40 * 4 + -4))))) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(void **)(puVar14 + -0x14) = pvStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(mpz_srcptr *)(puVar14 + -0x1c) = p_Var4;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(mpz_srcptr *)(puVar14 + -0x14) = p_Var4;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(void **)(puVar14 + -0x1c) = pvStack_44;\n          }\n          *(mpz_srcptr *)(puVar14 + -0x20) = p_Var4;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd(*(mp_ptr *)(puVar14 + -0x20),*(mp_ptr *)(puVar14 + -0x1c),\n                                          *(mp_size_t *)(puVar14 + -0x18),\n                                          *(mp_ptr *)(puVar14 + -0x14),\n                                          *(mp_size_t *)(puVar14 + -0x10));\n          iVar17 = (int)&p_Stack_3c->_mp_alloc + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }\n            p_Var4 = p_Stack_3c;\n            pmVar13 = g->_mp_d;\n            if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;\n            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(*(uint *)((int)p_Stack_38 + ((int)puStack_34 + 0x3fffffff) * 4)\n                                     >> (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }\n            p_Var4 = p_Stack_3c;\n            pmVar13 = g->_mp_d;\n            if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;\n            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(pmVar13 + (int)p_Var4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          g->_mp_size = iVar17;\n          if (ptStack_24 != (tmp_reentrant_t *)0x0) {\n            *(tmp_reentrant_t **)(puVar14 + -0x10) = ptStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar14 + -0x10));\n          }\n          goto LAB_00029590;\n        }" if (parenthesized_expression "(puVar15 != (uint *)0x1)" ( (binary_expression "puVar15 != (uint *)0x1" identifier != (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          ptStack_24 = (tmp_reentrant_t *)0x0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            p_Stack_5c = (mpz_srcptr)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)p_Stack_5c);\n          }\n          else {\n            p_Stack_5c = (mpz_srcptr)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          p_Stack_38 = (mpz_srcptr)((int)puStack_34 * 4);\n          if (p_Stack_38 < (uint *)0x7f01) {\n            iVar17 = -((int)p_Stack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iVar17;\n            pvStack_44 = (void *)((int)&puStack_60 + iVar17);\n            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n            pvStack_44 = __gmp_tmp_reentrant_alloc(&ptStack_24,(size_t)p_Stack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(void **)(puVar14 + -0x10) = pvStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            p_Stack_38 = (mpz_srcptr)puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = (uint *)p_Stack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(void **)(puVar14 + -0x10) = pvStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)((int)pvStack_44 + -4 + (int)p_Stack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - (int)p_Stack_3c->_mp_d;\n          p_Stack_3c = (mpz_srcptr)(iStack_54 >> 2);\n          puStack_40 = (uint *)((int)puVar15 - (int)p_Stack_3c);\n          uVar16 = (int)puStack_40 * 4;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            p_Stack_38 = (mpz_srcptr)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(tmp_reentrant_t ***)(puVar14 + -0x10) = &ptStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            p_Stack_38 = (mpz_srcptr)\n                         __gmp_tmp_reentrant_alloc\n                                   (*(tmp_reentrant_t ***)(puVar14 + -0x10),\n                                    *(size_t *)(puVar14 + -0xc));\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar15 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar15;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar15 -\n                                 (uint)(*(int *)((int)p_Stack_38 + (uVar16 - 4)) == 0));\n          }\n          p_Var4 = p_Stack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              p_Stack_3c = p_Stack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              p_Stack_3c = p_Stack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)((int)pvStack_44 + (int)puStack_40 * 4 + -4) <\n               *(uint *)((int)p_Stack_38 + (int)puStack_40 * 4 + -4))))) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(void **)(puVar14 + -0x14) = pvStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(mpz_srcptr *)(puVar14 + -0x1c) = p_Var4;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(mpz_srcptr *)(puVar14 + -0x14) = p_Var4;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(void **)(puVar14 + -0x1c) = pvStack_44;\n          }\n          *(mpz_srcptr *)(puVar14 + -0x20) = p_Var4;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd(*(mp_ptr *)(puVar14 + -0x20),*(mp_ptr *)(puVar14 + -0x1c),\n                                          *(mp_size_t *)(puVar14 + -0x18),\n                                          *(mp_ptr *)(puVar14 + -0x14),\n                                          *(mp_size_t *)(puVar14 + -0x10));\n          iVar17 = (int)&p_Stack_3c->_mp_alloc + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }\n            p_Var4 = p_Stack_3c;\n            pmVar13 = g->_mp_d;\n            if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;\n            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(*(uint *)((int)p_Stack_38 + ((int)puStack_34 + 0x3fffffff) * 4)\n                                     >> (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }\n            p_Var4 = p_Stack_3c;\n            pmVar13 = g->_mp_d;\n            if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;\n            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(pmVar13 + (int)p_Var4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          g->_mp_size = iVar17;\n          if (ptStack_24 != (tmp_reentrant_t *)0x0) {\n            *(tmp_reentrant_t **)(puVar14 + -0x10) = ptStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar14 + -0x10));\n          }\n          goto LAB_00029590;\n        }" { (expression_statement "ptStack_24 = (tmp_reentrant_t *)0x0;" (assignment_expression "ptStack_24 = (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 "uVar16 = *puStack_40;" (assignment_expression "uVar16 = *puStack_40" identifier = (pointer_expression "*puStack_40" * identifier)) ;) (expression_statement "puVar12 = puStack_40;" (assignment_expression "puVar12 = puStack_40" identifier = identifier) ;) (if_statement "if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            p_Stack_5c = (mpz_srcptr)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)p_Stack_5c);\n          }\n          else {\n            p_Stack_5c = (mpz_srcptr)0x0;\n            iStack_58 = 0;\n          }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            p_Stack_5c = (mpz_srcptr)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)p_Stack_5c);\n          }" { (do_statement "do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);" do (compound_statement "{\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            }" { (expression_statement "puVar12 = puVar12 + 1;" (assignment_expression "puVar12 = puVar12 + 1" identifier = (binary_expression "puVar12 + 1" identifier + number_literal)) ;) (expression_statement "uVar16 = *puVar12;" (assignment_expression "uVar16 = *puVar12" identifier = (pointer_expression "*puVar12" * identifier)) ;) }) while (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) ;) (expression_statement "iStack_58 = (int)puVar12 - (int)puStack_40;" (assignment_expression "iStack_58 = (int)puVar12 - (int)puStack_40" identifier = (binary_expression "(int)puVar12 - (int)puStack_40" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puStack_40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "p_Stack_5c = (mpz_srcptr)(iStack_58 >> 2);" (assignment_expression "p_Stack_5c = (mpz_srcptr)(iStack_58 >> 2)" identifier = (call_expression "(mpz_srcptr)(iStack_58 >> 2)" (parenthesized_expression "(mpz_srcptr)" ( identifier )) (argument_list "(iStack_58 >> 2)" ( (binary_expression "iStack_58 >> 2" identifier >> number_literal) )))) ;) (expression_statement "puStack_34 = (uint *)((int)puStack_34 - (int)p_Stack_5c);" (assignment_expression "puStack_34 = (uint *)((int)puStack_34 - (int)p_Stack_5c)" identifier = (cast_expression "(uint *)((int)puStack_34 - (int)p_Stack_5c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puStack_34 - (int)p_Stack_5c)" ( (binary_expression "(int)puStack_34 - (int)p_Stack_5c" (cast_expression "(int)puStack_34" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)p_Stack_5c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }) (else_clause "else {\n            p_Stack_5c = (mpz_srcptr)0x0;\n            iStack_58 = 0;\n          }" else (compound_statement "{\n            p_Stack_5c = (mpz_srcptr)0x0;\n            iStack_58 = 0;\n          }" { (expression_statement "p_Stack_5c = (mpz_srcptr)0x0;" (assignment_expression "p_Stack_5c = (mpz_srcptr)0x0" identifier = (cast_expression "(mpz_srcptr)0x0" ( (type_descriptor "mpz_srcptr" type_identifier) ) number_literal)) ;) (expression_statement "iStack_58 = 0;" (assignment_expression "iStack_58 = 0" identifier = number_literal) ;) }))) (expression_statement "puStack_50 = (uint *)0x0;" (assignment_expression "puStack_50 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (for_statement "for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }" for ( ; (binary_expression "(uVar16 & 1) == 0" (parenthesized_expression "(uVar16 & 1)" ( (binary_expression "uVar16 & 1" identifier & number_literal) )) == number_literal) ; (assignment_expression "uVar16 = uVar16 >> 1 | 0x80000000" identifier = (binary_expression "uVar16 >> 1 | 0x80000000" (binary_expression "uVar16 >> 1" identifier >> number_literal) | number_literal)) ) (compound_statement "{\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }" { (expression_statement "puStack_50 = (uint *)((int)puStack_50 + 1);" (assignment_expression "puStack_50 = (uint *)((int)puStack_50 + 1)" identifier = (cast_expression "(uint *)((int)puStack_50 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puStack_50 + 1)" ( (binary_expression "(int)puStack_50 + 1" (cast_expression "(int)puStack_50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "p_Stack_38 = (mpz_srcptr)((int)puStack_34 * 4);" (assignment_expression "p_Stack_38 = (mpz_srcptr)((int)puStack_34 * 4)" identifier = (call_expression "(mpz_srcptr)((int)puStack_34 * 4)" (parenthesized_expression "(mpz_srcptr)" ( identifier )) (argument_list "((int)puStack_34 * 4)" ( (binary_expression "(int)puStack_34 * 4" (cast_expression "(int)puStack_34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if (p_Stack_38 < (uint *)0x7f01) {\n            iVar17 = -((int)p_Stack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iVar17;\n            pvStack_44 = (void *)((int)&puStack_60 + iVar17);\n            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n            pvStack_44 = __gmp_tmp_reentrant_alloc(&ptStack_24,(size_t)p_Stack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }" if (parenthesized_expression "(p_Stack_38 < (uint *)0x7f01)" ( (binary_expression "p_Stack_38 < (uint *)0x7f01" identifier < (cast_expression "(uint *)0x7f01" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar17 = -((int)p_Stack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iVar17;\n            pvStack_44 = (void *)((int)&puStack_60 + iVar17);\n            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n          }" { (expression_statement "iVar17 = -((int)p_Stack_38 + 0x1bU & 0xfffffff0);" (assignment_expression "iVar17 = -((int)p_Stack_38 + 0x1bU & 0xfffffff0)" identifier = (unary_expression "-((int)p_Stack_38 + 0x1bU & 0xfffffff0)" - (parenthesized_expression "((int)p_Stack_38 + 0x1bU & 0xfffffff0)" ( (binary_expression "(int)p_Stack_38 + 0x1bU & 0xfffffff0" (binary_expression "(int)p_Stack_38 + 0x1bU" (cast_expression "(int)p_Stack_38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal) )))) ;) (expression_statement "puVar14 = auStack_6c + iVar17;" (assignment_expression "puVar14 = auStack_6c + iVar17" identifier = (binary_expression "auStack_6c + iVar17" identifier + identifier)) ;) (expression_statement "pvStack_44 = (void *)((int)&puStack_60 + iVar17);" (assignment_expression "pvStack_44 = (void *)((int)&puStack_60 + iVar17)" identifier = (cast_expression "(void *)((int)&puStack_60 + iVar17)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&puStack_60 + iVar17)" ( (binary_expression "(int)&puStack_60 + iVar17" (cast_expression "(int)&puStack_60" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&puStack_60" & identifier)) + identifier) )))) ;) (expression_statement "ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;" (assignment_expression "ppuStack_30 = &_GLOBAL_OFFSET_TABLE_" identifier = (pointer_expression "&_GLOBAL_OFFSET_TABLE_" & identifier)) ;) }) (else_clause "else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n            pvStack_44 = __gmp_tmp_reentrant_alloc(&ptStack_24,(size_t)p_Stack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }" else (compound_statement "{\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;\n            pvStack_44 = __gmp_tmp_reentrant_alloc(&ptStack_24,(size_t)p_Stack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }" { (expression_statement "puStack_48 = puVar11;" (assignment_expression "puStack_48 = puVar11" identifier = identifier) ;) (expression_statement "puStack_40 = puVar12;" (assignment_expression "puStack_40 = puVar12" identifier = identifier) ;) (expression_statement "ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;" (assignment_expression "ppuStack_30 = &_GLOBAL_OFFSET_TABLE_" identifier = (pointer_expression "&_GLOBAL_OFFSET_TABLE_" & identifier)) ;) (expression_statement "pvStack_44 = __gmp_tmp_reentrant_alloc(&ptStack_24,(size_t)p_Stack_38);" (assignment_expression "pvStack_44 = __gmp_tmp_reentrant_alloc(&ptStack_24,(size_t)p_Stack_38)" identifier = (call_expression "__gmp_tmp_reentrant_alloc(&ptStack_24,(size_t)p_Stack_38)" identifier (argument_list "(&ptStack_24,(size_t)p_Stack_38)" ( (pointer_expression "&ptStack_24" & identifier) , (cast_expression "(size_t)p_Stack_38" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) ;) (expression_statement "puVar14 = auStack_6c;" (assignment_expression "puVar14 = auStack_6c" identifier = identifier) ;) (expression_statement "puVar11 = puStack_48;" (assignment_expression "puVar11 = puStack_48" identifier = identifier) ;) (expression_statement "puVar12 = puStack_40;" (assignment_expression "puVar12 = puStack_40" identifier = identifier) ;) }))) (expression_statement "ppuVar6 = ppuStack_30;" (assignment_expression "ppuVar6 = ppuStack_30" identifier = identifier) ;) (expression_statement "puVar5 = puStack_34;" (assignment_expression "puVar5 = puStack_34" identifier = identifier) ;) (if_statement "if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(void **)(puVar14 + -0x10) = pvStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            p_Stack_38 = (mpz_srcptr)puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = (uint *)p_Stack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(void **)(puVar14 + -0x10) = pvStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)((int)pvStack_44 + -4 + (int)p_Stack_38) == 0));\n          }" if (parenthesized_expression "(puStack_50 == (uint *)0x0)" ( (binary_expression "puStack_50 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(void **)(puVar14 + -0x10) = pvStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            p_Stack_38 = (mpz_srcptr)puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = (uint *)p_Stack_38;\n          }" { (expression_statement "*(uint **)(puVar14 + -8) = puStack_34;" (assignment_expression "*(uint **)(puVar14 + -8) = puStack_34" (pointer_expression "*(uint **)(puVar14 + -8)" * (cast_expression "(uint **)(puVar14 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -8)" ( (binary_expression "puVar14 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar14 + -0xc) = puVar12;" (assignment_expression "*(uint **)(puVar14 + -0xc) = puVar12" (pointer_expression "*(uint **)(puVar14 + -0xc)" * (cast_expression "(uint **)(puVar14 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0xc)" ( (binary_expression "puVar14 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(void **)(puVar14 + -0x10) = pvStack_44;" (assignment_expression "*(void **)(puVar14 + -0x10) = pvStack_44" (pointer_expression "*(void **)(puVar14 + -0x10)" * (cast_expression "(void **)(puVar14 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "puStack_48 = (uint *)ppuVar6[-0x9b];" (assignment_expression "puStack_48 = (uint *)ppuVar6[-0x9b]" identifier = (cast_expression "(uint *)ppuVar6[-0x9b]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppuVar6[-0x9b]" identifier [ number_literal ]))) ;) (expression_statement "pcVar3 = *(code **)((int)puStack_48 + 0x28);" (assignment_expression "pcVar3 = *(code **)((int)puStack_48 + 0x28)" identifier = (pointer_expression "*(code **)((int)puStack_48 + 0x28)" * (cast_expression "(code **)((int)puStack_48 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puStack_48 + 0x28)" ( (binary_expression "(int)puStack_48 + 0x28" (cast_expression "(int)puStack_48" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "p_Stack_38 = (mpz_srcptr)puVar11;" (assignment_expression "p_Stack_38 = (mpz_srcptr)puVar11" identifier = (cast_expression "(mpz_srcptr)puVar11" ( (type_descriptor "mpz_srcptr" type_identifier) ) identifier)) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x298ec;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x298ec" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" * (cast_expression "(undefined4 *)(puVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_40 = (uint *)p_Stack_38;" (assignment_expression "puStack_40 = (uint *)p_Stack_38" identifier = (cast_expression "(uint *)p_Stack_38" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) (else_clause "else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(void **)(puVar14 + -0x10) = pvStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)((int)pvStack_44 + -4 + (int)p_Stack_38) == 0));\n          }" else (compound_statement "{\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(void **)(puVar14 + -0x10) = pvStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)((int)pvStack_44 + -4 + (int)p_Stack_38) == 0));\n          }" { (expression_statement "puStack_40 = puVar11;" (assignment_expression "puStack_40 = puVar11" identifier = identifier) ;) (expression_statement "*(uint **)(puVar14 + -4) = puStack_50;" (assignment_expression "*(uint **)(puVar14 + -4) = puStack_50" (pointer_expression "*(uint **)(puVar14 + -4)" * (cast_expression "(uint **)(puVar14 + -4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -4)" ( (binary_expression "puVar14 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar2 = ppuVar6[-0x9b];" (assignment_expression "puVar2 = ppuVar6[-0x9b]" identifier = (subscript_expression "ppuVar6[-0x9b]" identifier [ number_literal ])) ;) (expression_statement "*(uint **)(puVar14 + -8) = puVar5;" (assignment_expression "*(uint **)(puVar14 + -8) = puVar5" (pointer_expression "*(uint **)(puVar14 + -8)" * (cast_expression "(uint **)(puVar14 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -8)" ( (binary_expression "puVar14 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "puStack_48 = (uint *)puVar2;" (assignment_expression "puStack_48 = (uint *)puVar2" identifier = (cast_expression "(uint *)puVar2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "*(uint **)(puVar14 + -0xc) = puVar12;" (assignment_expression "*(uint **)(puVar14 + -0xc) = puVar12" (pointer_expression "*(uint **)(puVar14 + -0xc)" * (cast_expression "(uint **)(puVar14 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0xc)" ( (binary_expression "puVar14 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(void **)(puVar14 + -0x10) = pvStack_44;" (assignment_expression "*(void **)(puVar14 + -0x10) = pvStack_44" (pointer_expression "*(void **)(puVar14 + -0x10)" * (cast_expression "(void **)(puVar14 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar3 = *(code **)(puVar2 + 0x80);" (assignment_expression "pcVar3 = *(code **)(puVar2 + 0x80)" identifier = (pointer_expression "*(code **)(puVar2 + 0x80)" * (cast_expression "(code **)(puVar2 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0x80)" ( (binary_expression "puVar2 + 0x80" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x29680;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x29680" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" * (cast_expression "(undefined4 *)(puVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)((int)pvStack_44 + -4 + (int)p_Stack_38) == 0));" (assignment_expression "puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)((int)pvStack_44 + -4 + (int)p_Stack_38) == 0))" identifier = (cast_expression "(uint *)((int)puVar5 -\n                                 (uint)(*(int *)((int)pvStack_44 + -4 + (int)p_Stack_38) == 0))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar5 -\n                                 (uint)(*(int *)((int)pvStack_44 + -4 + (int)p_Stack_38) == 0))" ( (binary_expression "(int)puVar5 -\n                                 (uint)(*(int *)((int)pvStack_44 + -4 + (int)p_Stack_38) == 0)" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) - (call_expression "(uint)(*(int *)((int)pvStack_44 + -4 + (int)p_Stack_38) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)((int)pvStack_44 + -4 + (int)p_Stack_38) == 0)" ( (binary_expression "*(int *)((int)pvStack_44 + -4 + (int)p_Stack_38) == 0" (pointer_expression "*(int *)((int)pvStack_44 + -4 + (int)p_Stack_38)" * (cast_expression "(int *)((int)pvStack_44 + -4 + (int)p_Stack_38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvStack_44 + -4 + (int)p_Stack_38)" ( (binary_expression "(int)pvStack_44 + -4 + (int)p_Stack_38" (binary_expression "(int)pvStack_44 + -4" (cast_expression "(int)pvStack_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) + (cast_expression "(int)p_Stack_38" ( (type_descriptor "int" primitive_type) ) identifier)) )))) == number_literal) )))) )))) ;) }))) (expression_statement "uVar16 = *puStack_40;" (assignment_expression "uVar16 = *puStack_40" identifier = (pointer_expression "*puStack_40" * identifier)) ;) (expression_statement "puVar11 = puStack_40;" (assignment_expression "puVar11 = puStack_40" identifier = identifier) ;) (while_statement "while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }" while (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }" { (expression_statement "puVar11 = puVar11 + 1;" (assignment_expression "puVar11 = puVar11 + 1" identifier = (binary_expression "puVar11 + 1" identifier + number_literal)) ;) (expression_statement "uVar16 = *puVar11;" (assignment_expression "uVar16 = *puVar11" identifier = (pointer_expression "*puVar11" * identifier)) ;) })) (expression_statement "puStack_4c = (uint *)0x0;" (assignment_expression "puStack_4c = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (for_statement "for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }" for ( ; (binary_expression "(uVar16 & 1) == 0" (parenthesized_expression "(uVar16 & 1)" ( (binary_expression "uVar16 & 1" identifier & number_literal) )) == number_literal) ; (assignment_expression "uVar16 = uVar16 >> 1 | 0x80000000" identifier = (binary_expression "uVar16 >> 1 | 0x80000000" (binary_expression "uVar16 >> 1" identifier >> number_literal) | number_literal)) ) (compound_statement "{\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }" { (expression_statement "puStack_4c = (uint *)((int)puStack_4c + 1);" (assignment_expression "puStack_4c = (uint *)((int)puStack_4c + 1)" identifier = (cast_expression "(uint *)((int)puStack_4c + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puStack_4c + 1)" ( (binary_expression "(int)puStack_4c + 1" (cast_expression "(int)puStack_4c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "iStack_54 = (int)puVar11 - (int)p_Stack_3c->_mp_d;" (assignment_expression "iStack_54 = (int)puVar11 - (int)p_Stack_3c->_mp_d" identifier = (binary_expression "(int)puVar11 - (int)p_Stack_3c->_mp_d" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)p_Stack_3c->_mp_d" ( (type_descriptor "int" primitive_type) ) (field_expression "p_Stack_3c->_mp_d" identifier -> field_identifier)))) ;) (expression_statement "p_Stack_3c = (mpz_srcptr)(iStack_54 >> 2);" (assignment_expression "p_Stack_3c = (mpz_srcptr)(iStack_54 >> 2)" identifier = (call_expression "(mpz_srcptr)(iStack_54 >> 2)" (parenthesized_expression "(mpz_srcptr)" ( identifier )) (argument_list "(iStack_54 >> 2)" ( (binary_expression "iStack_54 >> 2" identifier >> number_literal) )))) ;) (expression_statement "puStack_40 = (uint *)((int)puVar15 - (int)p_Stack_3c);" (assignment_expression "puStack_40 = (uint *)((int)puVar15 - (int)p_Stack_3c)" identifier = (cast_expression "(uint *)((int)puVar15 - (int)p_Stack_3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar15 - (int)p_Stack_3c)" ( (binary_expression "(int)puVar15 - (int)p_Stack_3c" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)p_Stack_3c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "uVar16 = (int)puStack_40 * 4;" (assignment_expression "uVar16 = (int)puStack_40 * 4" identifier = (binary_expression "(int)puStack_40 * 4" (cast_expression "(int)puStack_40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (if_statement "if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            p_Stack_38 = (mpz_srcptr)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(tmp_reentrant_t ***)(puVar14 + -0x10) = &ptStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            p_Stack_38 = (mpz_srcptr)\n                         __gmp_tmp_reentrant_alloc\n                                   (*(tmp_reentrant_t ***)(puVar14 + -0x10),\n                                    *(size_t *)(puVar14 + -0xc));\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }" if (parenthesized_expression "(uVar16 < 0x7f01)" ( (binary_expression "uVar16 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            p_Stack_38 = (mpz_srcptr)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }" { (expression_statement "iVar17 = -(uVar16 + 0x1b & 0xfffffff0);" (assignment_expression "iVar17 = -(uVar16 + 0x1b & 0xfffffff0)" identifier = (unary_expression "-(uVar16 + 0x1b & 0xfffffff0)" - (parenthesized_expression "(uVar16 + 0x1b & 0xfffffff0)" ( (binary_expression "uVar16 + 0x1b & 0xfffffff0" (binary_expression "uVar16 + 0x1b" identifier + number_literal) & number_literal) )))) ;) (expression_statement "p_Stack_38 = (mpz_srcptr)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);" (assignment_expression "p_Stack_38 = (mpz_srcptr)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0)" identifier = (call_expression "(mpz_srcptr)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0)" (parenthesized_expression "(mpz_srcptr)" ( identifier )) (argument_list "((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0)" ( (binary_expression "(uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0" (call_expression "(uint)(puVar14 + iVar17 + 0xf)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar14 + iVar17 + 0xf)" ( (binary_expression "puVar14 + iVar17 + 0xf" (binary_expression "puVar14 + iVar17" identifier + identifier) + number_literal) ))) & number_literal) )))) ;) (expression_statement "puStack_60 = puStack_4c;" (assignment_expression "puStack_60 = puStack_4c" identifier = identifier) ;) (expression_statement "puVar14 = puVar14 + iVar17;" (assignment_expression "puVar14 = puVar14 + iVar17" identifier = (binary_expression "puVar14 + iVar17" identifier + identifier)) ;) }) (else_clause "else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(tmp_reentrant_t ***)(puVar14 + -0x10) = &ptStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            p_Stack_38 = (mpz_srcptr)\n                         __gmp_tmp_reentrant_alloc\n                                   (*(tmp_reentrant_t ***)(puVar14 + -0x10),\n                                    *(size_t *)(puVar14 + -0xc));\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }" else (compound_statement "{\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(tmp_reentrant_t ***)(puVar14 + -0x10) = &ptStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            p_Stack_38 = (mpz_srcptr)\n                         __gmp_tmp_reentrant_alloc\n                                   (*(tmp_reentrant_t ***)(puVar14 + -0x10),\n                                    *(size_t *)(puVar14 + -0xc));\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }" { (expression_statement "puStack_64 = puStack_4c;" (assignment_expression "puStack_64 = puStack_4c" identifier = identifier) ;) (expression_statement "*(uint *)(puVar14 + -0xc) = uVar16;" (assignment_expression "*(uint *)(puVar14 + -0xc) = uVar16" (pointer_expression "*(uint *)(puVar14 + -0xc)" * (cast_expression "(uint *)(puVar14 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0xc)" ( (binary_expression "puVar14 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(tmp_reentrant_t ***)(puVar14 + -0x10) = &ptStack_24;" (assignment_expression "*(tmp_reentrant_t ***)(puVar14 + -0x10) = &ptStack_24" (pointer_expression "*(tmp_reentrant_t ***)(puVar14 + -0x10)" * (cast_expression "(tmp_reentrant_t ***)(puVar14 + -0x10)" ( (type_descriptor "tmp_reentrant_t ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = (pointer_expression "&ptStack_24" & identifier)) ;) (expression_statement "puStack_60 = puVar11;" (assignment_expression "puStack_60 = puVar11" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x299f6;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x299f6" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" * (cast_expression "(undefined4 *)(puVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "p_Stack_38 = (mpz_srcptr)\n                         __gmp_tmp_reentrant_alloc\n                                   (*(tmp_reentrant_t ***)(puVar14 + -0x10),\n                                    *(size_t *)(puVar14 + -0xc));" (assignment_expression "p_Stack_38 = (mpz_srcptr)\n                         __gmp_tmp_reentrant_alloc\n                                   (*(tmp_reentrant_t ***)(puVar14 + -0x10),\n                                    *(size_t *)(puVar14 + -0xc))" identifier = (cast_expression "(mpz_srcptr)\n                         __gmp_tmp_reentrant_alloc\n                                   (*(tmp_reentrant_t ***)(puVar14 + -0x10),\n                                    *(size_t *)(puVar14 + -0xc))" ( (type_descriptor "mpz_srcptr" type_identifier) ) (call_expression "__gmp_tmp_reentrant_alloc\n                                   (*(tmp_reentrant_t ***)(puVar14 + -0x10),\n                                    *(size_t *)(puVar14 + -0xc))" identifier (argument_list "(*(tmp_reentrant_t ***)(puVar14 + -0x10),\n                                    *(size_t *)(puVar14 + -0xc))" ( (pointer_expression "*(tmp_reentrant_t ***)(puVar14 + -0x10)" * (cast_expression "(tmp_reentrant_t ***)(puVar14 + -0x10)" ( (type_descriptor "tmp_reentrant_t ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(size_t *)(puVar14 + -0xc)" * (cast_expression "(size_t *)(puVar14 + -0xc)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0xc)" ( (binary_expression "puVar14 + -0xc" identifier + number_literal) )))) ))))) ;) (expression_statement "puVar11 = puStack_60;" (assignment_expression "puVar11 = puStack_60" identifier = identifier) ;) (expression_statement "puStack_60 = puStack_64;" (assignment_expression "puStack_60 = puStack_64" identifier = identifier) ;) }))) (expression_statement "puVar15 = puStack_40;" (assignment_expression "puVar15 = puStack_40" identifier = identifier) ;) (if_statement "if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar15;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar15 -\n                                 (uint)(*(int *)((int)p_Stack_38 + (uVar16 - 4)) == 0));\n          }" if (parenthesized_expression "(puStack_60 == (uint *)0x0)" ( (binary_expression "puStack_60 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }" { (expression_statement "*(uint **)(puVar14 + -8) = puStack_40;" (assignment_expression "*(uint **)(puVar14 + -8) = puStack_40" (pointer_expression "*(uint **)(puVar14 + -8)" * (cast_expression "(uint **)(puVar14 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -8)" ( (binary_expression "puVar14 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar15 = puStack_48;" (assignment_expression "puVar15 = puStack_48" identifier = identifier) ;) (expression_statement "*(uint **)(puVar14 + -0xc) = puVar11;" (assignment_expression "*(uint **)(puVar14 + -0xc) = puVar11" (pointer_expression "*(uint **)(puVar14 + -0xc)" * (cast_expression "(uint **)(puVar14 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0xc)" ( (binary_expression "puVar14 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;" (assignment_expression "*(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38" (pointer_expression "*(mpz_srcptr *)(puVar14 + -0x10)" * (cast_expression "(mpz_srcptr *)(puVar14 + -0x10)" ( (type_descriptor "mpz_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar3 = *(code **)((int)puVar15 + 0x28);" (assignment_expression "pcVar3 = *(code **)((int)puVar15 + 0x28)" identifier = (pointer_expression "*(code **)((int)puVar15 + 0x28)" * (cast_expression "(code **)((int)puVar15 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar15 + 0x28)" ( (binary_expression "(int)puVar15 + 0x28" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x29913;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x29913" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" * (cast_expression "(undefined4 *)(puVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar15;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar15 -\n                                 (uint)(*(int *)((int)p_Stack_38 + (uVar16 - 4)) == 0));\n          }" else (compound_statement "{\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar15;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar15 -\n                                 (uint)(*(int *)((int)p_Stack_38 + (uVar16 - 4)) == 0));\n          }" { (expression_statement "*(uint **)(puVar14 + -4) = puStack_60;" (assignment_expression "*(uint **)(puVar14 + -4) = puStack_60" (pointer_expression "*(uint **)(puVar14 + -4)" * (cast_expression "(uint **)(puVar14 + -4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -4)" ( (binary_expression "puVar14 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar14 + -8) = puVar15;" (assignment_expression "*(uint **)(puVar14 + -8) = puVar15" (pointer_expression "*(uint **)(puVar14 + -8)" * (cast_expression "(uint **)(puVar14 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -8)" ( (binary_expression "puVar14 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar14 + -0xc) = puVar11;" (assignment_expression "*(uint **)(puVar14 + -0xc) = puVar11" (pointer_expression "*(uint **)(puVar14 + -0xc)" * (cast_expression "(uint **)(puVar14 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0xc)" ( (binary_expression "puVar14 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar11 = puStack_48;" (assignment_expression "puVar11 = puStack_48" identifier = identifier) ;) (expression_statement "*(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38;" (assignment_expression "*(mpz_srcptr *)(puVar14 + -0x10) = p_Stack_38" (pointer_expression "*(mpz_srcptr *)(puVar14 + -0x10)" * (cast_expression "(mpz_srcptr *)(puVar14 + -0x10)" ( (type_descriptor "mpz_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar3 = *(code **)((int)puVar11 + 0x80);" (assignment_expression "pcVar3 = *(code **)((int)puVar11 + 0x80)" identifier = (pointer_expression "*(code **)((int)puVar11 + 0x80)" * (cast_expression "(code **)((int)puVar11 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar11 + 0x80)" ( (binary_expression "(int)puVar11 + 0x80" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x2970c;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x2970c" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" * (cast_expression "(undefined4 *)(puVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_40 = (uint *)((int)puVar15 -\n                                 (uint)(*(int *)((int)p_Stack_38 + (uVar16 - 4)) == 0));" (assignment_expression "puStack_40 = (uint *)((int)puVar15 -\n                                 (uint)(*(int *)((int)p_Stack_38 + (uVar16 - 4)) == 0))" identifier = (cast_expression "(uint *)((int)puVar15 -\n                                 (uint)(*(int *)((int)p_Stack_38 + (uVar16 - 4)) == 0))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar15 -\n                                 (uint)(*(int *)((int)p_Stack_38 + (uVar16 - 4)) == 0))" ( (binary_expression "(int)puVar15 -\n                                 (uint)(*(int *)((int)p_Stack_38 + (uVar16 - 4)) == 0)" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) - (call_expression "(uint)(*(int *)((int)p_Stack_38 + (uVar16 - 4)) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)((int)p_Stack_38 + (uVar16 - 4)) == 0)" ( (binary_expression "*(int *)((int)p_Stack_38 + (uVar16 - 4)) == 0" (pointer_expression "*(int *)((int)p_Stack_38 + (uVar16 - 4))" * (cast_expression "(int *)((int)p_Stack_38 + (uVar16 - 4))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p_Stack_38 + (uVar16 - 4))" ( (binary_expression "(int)p_Stack_38 + (uVar16 - 4)" (cast_expression "(int)p_Stack_38" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(uVar16 - 4)" ( (binary_expression "uVar16 - 4" identifier - number_literal) ))) )))) == number_literal) )))) )))) ;) }))) (expression_statement "p_Var4 = p_Stack_38;" (assignment_expression "p_Var4 = p_Stack_38" identifier = identifier) ;) (if_statement "if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              p_Stack_3c = p_Stack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              p_Stack_3c = p_Stack_5c;\n            }\n          }" if (parenthesized_expression "(iStack_58 <= iStack_54)" ( (binary_expression "iStack_58 <= iStack_54" identifier <= identifier) )) (compound_statement "{\n            if (iStack_58 < iStack_54) {\n              p_Stack_3c = p_Stack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              p_Stack_3c = p_Stack_5c;\n            }\n          }" { (if_statement "if (iStack_58 < iStack_54) {\n              p_Stack_3c = p_Stack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              p_Stack_3c = p_Stack_5c;\n            }" if (parenthesized_expression "(iStack_58 < iStack_54)" ( (binary_expression "iStack_58 < iStack_54" identifier < identifier) )) (compound_statement "{\n              p_Stack_3c = p_Stack_5c;\n              puStack_4c = puStack_50;\n            }" { (expression_statement "p_Stack_3c = p_Stack_5c;" (assignment_expression "p_Stack_3c = p_Stack_5c" identifier = identifier) ;) (expression_statement "puStack_4c = puStack_50;" (assignment_expression "puStack_4c = puStack_50" identifier = identifier) ;) }) (else_clause "else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              p_Stack_3c = p_Stack_5c;\n            }" else (compound_statement "{\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              p_Stack_3c = p_Stack_5c;\n            }" { (expression_statement "puStack_4c = puStack_60;" (assignment_expression "puStack_4c = puStack_60" identifier = identifier) ;) (if_statement "if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }" if (parenthesized_expression "(puStack_50 < puStack_60)" ( (binary_expression "puStack_50 < puStack_60" identifier < identifier) )) (compound_statement "{\n                puStack_4c = puStack_50;\n              }" { (expression_statement "puStack_4c = puStack_50;" (assignment_expression "puStack_4c = puStack_50" identifier = identifier) ;) })) (expression_statement "p_Stack_3c = p_Stack_5c;" (assignment_expression "p_Stack_3c = p_Stack_5c" identifier = identifier) ;) }))) })) (if_statement "if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)((int)pvStack_44 + (int)puStack_40 * 4 + -4) <\n               *(uint *)((int)p_Stack_38 + (int)puStack_40 * 4 + -4))))) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(void **)(puVar14 + -0x14) = pvStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(mpz_srcptr *)(puVar14 + -0x1c) = p_Var4;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(mpz_srcptr *)(puVar14 + -0x14) = p_Var4;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(void **)(puVar14 + -0x1c) = pvStack_44;\n          }" if (parenthesized_expression "(((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)((int)pvStack_44 + (int)puStack_40 * 4 + -4) <\n               *(uint *)((int)p_Stack_38 + (int)puStack_40 * 4 + -4)))))" ( (binary_expression "((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)((int)pvStack_44 + (int)puStack_40 * 4 + -4) <\n               *(uint *)((int)p_Stack_38 + (int)puStack_40 * 4 + -4))))" (parenthesized_expression "((int)puStack_34 < (int)puStack_40)" ( (binary_expression "(int)puStack_34 < (int)puStack_40" (cast_expression "(int)puStack_34" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puStack_40" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((puStack_40 == puStack_34 &&\n              (*(uint *)((int)pvStack_44 + (int)puStack_40 * 4 + -4) <\n               *(uint *)((int)p_Stack_38 + (int)puStack_40 * 4 + -4))))" ( (parenthesized_expression "(puStack_40 == puStack_34 &&\n              (*(uint *)((int)pvStack_44 + (int)puStack_40 * 4 + -4) <\n               *(uint *)((int)p_Stack_38 + (int)puStack_40 * 4 + -4)))" ( (binary_expression "puStack_40 == puStack_34 &&\n              (*(uint *)((int)pvStack_44 + (int)puStack_40 * 4 + -4) <\n               *(uint *)((int)p_Stack_38 + (int)puStack_40 * 4 + -4))" (binary_expression "puStack_40 == puStack_34" identifier == identifier) && (parenthesized_expression "(*(uint *)((int)pvStack_44 + (int)puStack_40 * 4 + -4) <\n               *(uint *)((int)p_Stack_38 + (int)puStack_40 * 4 + -4))" ( (binary_expression "*(uint *)((int)pvStack_44 + (int)puStack_40 * 4 + -4) <\n               *(uint *)((int)p_Stack_38 + (int)puStack_40 * 4 + -4)" (pointer_expression "*(uint *)((int)pvStack_44 + (int)puStack_40 * 4 + -4)" * (cast_expression "(uint *)((int)pvStack_44 + (int)puStack_40 * 4 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvStack_44 + (int)puStack_40 * 4 + -4)" ( (binary_expression "(int)pvStack_44 + (int)puStack_40 * 4 + -4" (binary_expression "(int)pvStack_44 + (int)puStack_40 * 4" (cast_expression "(int)pvStack_44" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)puStack_40 * 4" (cast_expression "(int)puStack_40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) < (pointer_expression "*(uint *)((int)p_Stack_38 + (int)puStack_40 * 4 + -4)" * (cast_expression "(uint *)((int)p_Stack_38 + (int)puStack_40 * 4 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p_Stack_38 + (int)puStack_40 * 4 + -4)" ( (binary_expression "(int)p_Stack_38 + (int)puStack_40 * 4 + -4" (binary_expression "(int)p_Stack_38 + (int)puStack_40 * 4" (cast_expression "(int)p_Stack_38" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)puStack_40 * 4" (cast_expression "(int)puStack_40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) ))))) ))) )) ))) )) (compound_statement "{\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(void **)(puVar14 + -0x14) = pvStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(mpz_srcptr *)(puVar14 + -0x1c) = p_Var4;\n          }" { (expression_statement "*(uint **)(puVar14 + -0x10) = puStack_34;" (assignment_expression "*(uint **)(puVar14 + -0x10) = puStack_34" (pointer_expression "*(uint **)(puVar14 + -0x10)" * (cast_expression "(uint **)(puVar14 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(void **)(puVar14 + -0x14) = pvStack_44;" (assignment_expression "*(void **)(puVar14 + -0x14) = pvStack_44" (pointer_expression "*(void **)(puVar14 + -0x14)" * (cast_expression "(void **)(puVar14 + -0x14)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar14 + -0x18) = puStack_40;" (assignment_expression "*(uint **)(puVar14 + -0x18) = puStack_40" (pointer_expression "*(uint **)(puVar14 + -0x18)" * (cast_expression "(uint **)(puVar14 + -0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x18)" ( (binary_expression "puVar14 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mpz_srcptr *)(puVar14 + -0x1c) = p_Var4;" (assignment_expression "*(mpz_srcptr *)(puVar14 + -0x1c) = p_Var4" (pointer_expression "*(mpz_srcptr *)(puVar14 + -0x1c)" * (cast_expression "(mpz_srcptr *)(puVar14 + -0x1c)" ( (type_descriptor "mpz_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x1c)" ( (binary_expression "puVar14 + -0x1c" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(mpz_srcptr *)(puVar14 + -0x14) = p_Var4;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(void **)(puVar14 + -0x1c) = pvStack_44;\n          }" else (compound_statement "{\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(mpz_srcptr *)(puVar14 + -0x14) = p_Var4;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(void **)(puVar14 + -0x1c) = pvStack_44;\n          }" { (expression_statement "*(uint **)(puVar14 + -0x10) = puStack_40;" (assignment_expression "*(uint **)(puVar14 + -0x10) = puStack_40" (pointer_expression "*(uint **)(puVar14 + -0x10)" * (cast_expression "(uint **)(puVar14 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mpz_srcptr *)(puVar14 + -0x14) = p_Var4;" (assignment_expression "*(mpz_srcptr *)(puVar14 + -0x14) = p_Var4" (pointer_expression "*(mpz_srcptr *)(puVar14 + -0x14)" * (cast_expression "(mpz_srcptr *)(puVar14 + -0x14)" ( (type_descriptor "mpz_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar14 + -0x18) = puStack_34;" (assignment_expression "*(uint **)(puVar14 + -0x18) = puStack_34" (pointer_expression "*(uint **)(puVar14 + -0x18)" * (cast_expression "(uint **)(puVar14 + -0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x18)" ( (binary_expression "puVar14 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(void **)(puVar14 + -0x1c) = pvStack_44;" (assignment_expression "*(void **)(puVar14 + -0x1c) = pvStack_44" (pointer_expression "*(void **)(puVar14 + -0x1c)" * (cast_expression "(void **)(puVar14 + -0x1c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x1c)" ( (binary_expression "puVar14 + -0x1c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "*(mpz_srcptr *)(puVar14 + -0x20) = p_Var4;" (assignment_expression "*(mpz_srcptr *)(puVar14 + -0x20) = p_Var4" (pointer_expression "*(mpz_srcptr *)(puVar14 + -0x20)" * (cast_expression "(mpz_srcptr *)(puVar14 + -0x20)" ( (type_descriptor "mpz_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x20)" ( (binary_expression "puVar14 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x24) = 0x2977c;" (assignment_expression "*(undefined4 *)(puVar14 + -0x24) = 0x2977c" (pointer_expression "*(undefined4 *)(puVar14 + -0x24)" * (cast_expression "(undefined4 *)(puVar14 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x24)" ( (binary_expression "puVar14 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puStack_34 = (uint *)__gmpn_gcd(*(mp_ptr *)(puVar14 + -0x20),*(mp_ptr *)(puVar14 + -0x1c),\n                                          *(mp_size_t *)(puVar14 + -0x18),\n                                          *(mp_ptr *)(puVar14 + -0x14),\n                                          *(mp_size_t *)(puVar14 + -0x10));" (assignment_expression "puStack_34 = (uint *)__gmpn_gcd(*(mp_ptr *)(puVar14 + -0x20),*(mp_ptr *)(puVar14 + -0x1c),\n                                          *(mp_size_t *)(puVar14 + -0x18),\n                                          *(mp_ptr *)(puVar14 + -0x14),\n                                          *(mp_size_t *)(puVar14 + -0x10))" identifier = (cast_expression "(uint *)__gmpn_gcd(*(mp_ptr *)(puVar14 + -0x20),*(mp_ptr *)(puVar14 + -0x1c),\n                                          *(mp_size_t *)(puVar14 + -0x18),\n                                          *(mp_ptr *)(puVar14 + -0x14),\n                                          *(mp_size_t *)(puVar14 + -0x10))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__gmpn_gcd(*(mp_ptr *)(puVar14 + -0x20),*(mp_ptr *)(puVar14 + -0x1c),\n                                          *(mp_size_t *)(puVar14 + -0x18),\n                                          *(mp_ptr *)(puVar14 + -0x14),\n                                          *(mp_size_t *)(puVar14 + -0x10))" identifier (argument_list "(*(mp_ptr *)(puVar14 + -0x20),*(mp_ptr *)(puVar14 + -0x1c),\n                                          *(mp_size_t *)(puVar14 + -0x18),\n                                          *(mp_ptr *)(puVar14 + -0x14),\n                                          *(mp_size_t *)(puVar14 + -0x10))" ( (pointer_expression "*(mp_ptr *)(puVar14 + -0x20)" * (cast_expression "(mp_ptr *)(puVar14 + -0x20)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x20)" ( (binary_expression "puVar14 + -0x20" identifier + number_literal) )))) , (pointer_expression "*(mp_ptr *)(puVar14 + -0x1c)" * (cast_expression "(mp_ptr *)(puVar14 + -0x1c)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x1c)" ( (binary_expression "puVar14 + -0x1c" identifier + number_literal) )))) , (pointer_expression "*(mp_size_t *)(puVar14 + -0x18)" * (cast_expression "(mp_size_t *)(puVar14 + -0x18)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x18)" ( (binary_expression "puVar14 + -0x18" identifier + number_literal) )))) , (pointer_expression "*(mp_ptr *)(puVar14 + -0x14)" * (cast_expression "(mp_ptr *)(puVar14 + -0x14)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) , (pointer_expression "*(mp_size_t *)(puVar14 + -0x10)" * (cast_expression "(mp_size_t *)(puVar14 + -0x10)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) ))))) ;) (expression_statement "iVar17 = (int)&p_Stack_3c->_mp_alloc + (int)puStack_34;" (assignment_expression "iVar17 = (int)&p_Stack_3c->_mp_alloc + (int)puStack_34" identifier = (binary_expression "(int)&p_Stack_3c->_mp_alloc + (int)puStack_34" (cast_expression "(int)&p_Stack_3c->_mp_alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&p_Stack_3c->_mp_alloc" & (field_expression "p_Stack_3c->_mp_alloc" identifier -> field_identifier))) + (cast_expression "(int)puStack_34" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (puStack_4c == (uint *)0x0) {\n            if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }\n            p_Var4 = p_Stack_3c;\n            pmVar13 = g->_mp_d;\n            if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;\n            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(*(uint *)((int)p_Stack_38 + ((int)puStack_34 + 0x3fffffff) * 4)\n                                     >> (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }\n            p_Var4 = p_Stack_3c;\n            pmVar13 = g->_mp_d;\n            if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;\n            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(pmVar13 + (int)p_Var4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }" if (parenthesized_expression "(puStack_4c == (uint *)0x0)" ( (binary_expression "puStack_4c == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }\n            p_Var4 = p_Stack_3c;\n            pmVar13 = g->_mp_d;\n            if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;\n            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }" { (if_statement "if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }" if (parenthesized_expression "(g->_mp_alloc < iVar17)" ( (binary_expression "g->_mp_alloc < iVar17" (field_expression "g->_mp_alloc" identifier -> field_identifier) < identifier) )) (compound_statement "{\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }" { (expression_statement "*(int *)(puVar14 + -0xc) = iVar17;" (assignment_expression "*(int *)(puVar14 + -0xc) = iVar17" (pointer_expression "*(int *)(puVar14 + -0xc)" * (cast_expression "(int *)(puVar14 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0xc)" ( (binary_expression "puVar14 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mpz_ptr *)(puVar14 + -0x10) = g;" (assignment_expression "*(mpz_ptr *)(puVar14 + -0x10) = g" (pointer_expression "*(mpz_ptr *)(puVar14 + -0x10)" * (cast_expression "(mpz_ptr *)(puVar14 + -0x10)" ( (type_descriptor "mpz_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x29a29;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x29a29" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" * (cast_expression "(undefined4 *)(puVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));" (call_expression "__gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc))" identifier (argument_list "(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc))" ( (pointer_expression "*(mpz_ptr *)(puVar14 + -0x10)" * (cast_expression "(mpz_ptr *)(puVar14 + -0x10)" ( (type_descriptor "mpz_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(mp_size_t *)(puVar14 + -0xc)" * (cast_expression "(mp_size_t *)(puVar14 + -0xc)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0xc)" ( (binary_expression "puVar14 + -0xc" identifier + number_literal) )))) ))) ;) })) (expression_statement "p_Var4 = p_Stack_3c;" (assignment_expression "p_Var4 = p_Stack_3c" identifier = identifier) ;) (expression_statement "pmVar13 = g->_mp_d;" (assignment_expression "pmVar13 = g->_mp_d" identifier = (field_expression "g->_mp_d" identifier -> field_identifier)) ;) (if_statement "if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }" if (parenthesized_expression "(p_Stack_3c != (mpz_srcptr)0x0)" ( (binary_expression "p_Stack_3c != (mpz_srcptr)0x0" identifier != (cast_expression "(mpz_srcptr)0x0" ( (type_descriptor "mpz_srcptr" type_identifier) ) number_literal)) )) (compound_statement "{\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }" { (expression_statement "pmVar10 = pmVar13;" (assignment_expression "pmVar10 = pmVar13" identifier = identifier) ;) (do_statement "do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);" do (compound_statement "{\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              }" { (expression_statement "pmVar7 = pmVar10 + 1;" (assignment_expression "pmVar7 = pmVar10 + 1" identifier = (binary_expression "pmVar10 + 1" identifier + number_literal)) ;) (expression_statement "*pmVar10 = 0;" (assignment_expression "*pmVar10 = 0" (pointer_expression "*pmVar10" * identifier) = number_literal) ;) (expression_statement "pmVar10 = pmVar7;" (assignment_expression "pmVar10 = pmVar7" identifier = identifier) ;) }) while (parenthesized_expression "(pmVar7 != pmVar13 + (int)p_Stack_3c)" ( (binary_expression "pmVar7 != pmVar13 + (int)p_Stack_3c" identifier != (binary_expression "pmVar13 + (int)p_Stack_3c" identifier + (cast_expression "(int)p_Stack_3c" ( (type_descriptor "int" primitive_type) ) identifier))) )) ;) })) (expression_statement "*(uint **)(puVar14 + -8) = puStack_34;" (assignment_expression "*(uint **)(puVar14 + -8) = puStack_34" (pointer_expression "*(uint **)(puVar14 + -8)" * (cast_expression "(uint **)(puVar14 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -8)" ( (binary_expression "puVar14 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;" (assignment_expression "*(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38" (pointer_expression "*(mpz_srcptr *)(puVar14 + -0xc)" * (cast_expression "(mpz_srcptr *)(puVar14 + -0xc)" ( (type_descriptor "mpz_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0xc)" ( (binary_expression "puVar14 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;" (assignment_expression "*(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4" (pointer_expression "*(mp_limb_t **)(puVar14 + -0x10)" * (cast_expression "(mp_limb_t **)(puVar14 + -0x10)" ( (type_descriptor "mp_limb_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = (binary_expression "pmVar13 + (int)p_Var4" identifier + (cast_expression "(int)p_Var4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar3 = *(code **)((int)puStack_48 + 0x28);" (assignment_expression "pcVar3 = *(code **)((int)puStack_48 + 0x28)" identifier = (pointer_expression "*(code **)((int)puStack_48 + 0x28)" * (cast_expression "(code **)((int)puStack_48 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puStack_48 + 0x28)" ( (binary_expression "(int)puStack_48 + 0x28" (cast_expression "(int)puStack_48" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x298c4;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x298c4" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" * (cast_expression "(undefined4 *)(puVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(*(uint *)((int)p_Stack_38 + ((int)puStack_34 + 0x3fffffff) * 4)\n                                     >> (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }\n            p_Var4 = p_Stack_3c;\n            pmVar13 = g->_mp_d;\n            if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;\n            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(pmVar13 + (int)p_Var4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }" else (compound_statement "{\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(*(uint *)((int)p_Stack_38 + ((int)puStack_34 + 0x3fffffff) * 4)\n                                     >> (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }\n            p_Var4 = p_Stack_3c;\n            pmVar13 = g->_mp_d;\n            if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;\n            *(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(pmVar13 + (int)p_Var4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }" { (expression_statement "puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);" (assignment_expression "puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4)" identifier = (cast_expression "(uint *)(((int)puStack_34 + 0x3fffffff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)puStack_34 + 0x3fffffff) * 4)" ( (binary_expression "((int)puStack_34 + 0x3fffffff) * 4" (parenthesized_expression "((int)puStack_34 + 0x3fffffff)" ( (binary_expression "(int)puStack_34 + 0x3fffffff" (cast_expression "(int)puStack_34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) * number_literal) )))) ;) (expression_statement "iVar17 = iVar17 + (uint)(*(uint *)((int)p_Stack_38 + ((int)puStack_34 + 0x3fffffff) * 4)\n                                     >> (0x20U - (char)puStack_4c & 0x1f) != 0);" (assignment_expression "iVar17 = iVar17 + (uint)(*(uint *)((int)p_Stack_38 + ((int)puStack_34 + 0x3fffffff) * 4)\n                                     >> (0x20U - (char)puStack_4c & 0x1f) != 0)" identifier = (binary_expression "iVar17 + (uint)(*(uint *)((int)p_Stack_38 + ((int)puStack_34 + 0x3fffffff) * 4)\n                                     >> (0x20U - (char)puStack_4c & 0x1f) != 0)" identifier + (call_expression "(uint)(*(uint *)((int)p_Stack_38 + ((int)puStack_34 + 0x3fffffff) * 4)\n                                     >> (0x20U - (char)puStack_4c & 0x1f) != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)((int)p_Stack_38 + ((int)puStack_34 + 0x3fffffff) * 4)\n                                     >> (0x20U - (char)puStack_4c & 0x1f) != 0)" ( (binary_expression "*(uint *)((int)p_Stack_38 + ((int)puStack_34 + 0x3fffffff) * 4)\n                                     >> (0x20U - (char)puStack_4c & 0x1f) != 0" (binary_expression "*(uint *)((int)p_Stack_38 + ((int)puStack_34 + 0x3fffffff) * 4)\n                                     >> (0x20U - (char)puStack_4c & 0x1f)" (pointer_expression "*(uint *)((int)p_Stack_38 + ((int)puStack_34 + 0x3fffffff) * 4)" * (cast_expression "(uint *)((int)p_Stack_38 + ((int)puStack_34 + 0x3fffffff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p_Stack_38 + ((int)puStack_34 + 0x3fffffff) * 4)" ( (binary_expression "(int)p_Stack_38 + ((int)puStack_34 + 0x3fffffff) * 4" (cast_expression "(int)p_Stack_38" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "((int)puStack_34 + 0x3fffffff) * 4" (parenthesized_expression "((int)puStack_34 + 0x3fffffff)" ( (binary_expression "(int)puStack_34 + 0x3fffffff" (cast_expression "(int)puStack_34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) * number_literal)) )))) >> (parenthesized_expression "(0x20U - (char)puStack_4c & 0x1f)" ( (binary_expression "0x20U - (char)puStack_4c & 0x1f" (binary_expression "0x20U - (char)puStack_4c" number_literal - (cast_expression "(char)puStack_4c" ( (type_descriptor "char" primitive_type) ) identifier)) & number_literal) ))) != number_literal) ))))) ;) (if_statement "if (g->_mp_alloc < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }" if (parenthesized_expression "(g->_mp_alloc < iVar17)" ( (binary_expression "g->_mp_alloc < iVar17" (field_expression "g->_mp_alloc" identifier -> field_identifier) < identifier) )) (compound_statement "{\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(mpz_ptr *)(puVar14 + -0x10) = g;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));\n            }" { (expression_statement "*(int *)(puVar14 + -0xc) = iVar17;" (assignment_expression "*(int *)(puVar14 + -0xc) = iVar17" (pointer_expression "*(int *)(puVar14 + -0xc)" * (cast_expression "(int *)(puVar14 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0xc)" ( (binary_expression "puVar14 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mpz_ptr *)(puVar14 + -0x10) = g;" (assignment_expression "*(mpz_ptr *)(puVar14 + -0x10) = g" (pointer_expression "*(mpz_ptr *)(puVar14 + -0x10)" * (cast_expression "(mpz_ptr *)(puVar14 + -0x10)" ( (type_descriptor "mpz_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x29a14;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x29a14" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" * (cast_expression "(undefined4 *)(puVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc));" (call_expression "__gmpz_realloc(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc))" identifier (argument_list "(*(mpz_ptr *)(puVar14 + -0x10),*(mp_size_t *)(puVar14 + -0xc))" ( (pointer_expression "*(mpz_ptr *)(puVar14 + -0x10)" * (cast_expression "(mpz_ptr *)(puVar14 + -0x10)" ( (type_descriptor "mpz_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(mp_size_t *)(puVar14 + -0xc)" * (cast_expression "(mp_size_t *)(puVar14 + -0xc)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0xc)" ( (binary_expression "puVar14 + -0xc" identifier + number_literal) )))) ))) ;) })) (expression_statement "p_Var4 = p_Stack_3c;" (assignment_expression "p_Var4 = p_Stack_3c" identifier = identifier) ;) (expression_statement "pmVar13 = g->_mp_d;" (assignment_expression "pmVar13 = g->_mp_d" identifier = (field_expression "g->_mp_d" identifier -> field_identifier)) ;) (if_statement "if (p_Stack_3c != (mpz_srcptr)0x0) {\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }" if (parenthesized_expression "(p_Stack_3c != (mpz_srcptr)0x0)" ( (binary_expression "p_Stack_3c != (mpz_srcptr)0x0" identifier != (cast_expression "(mpz_srcptr)0x0" ( (type_descriptor "mpz_srcptr" type_identifier) ) number_literal)) )) (compound_statement "{\n              pmVar10 = pmVar13;\n              do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);\n            }" { (expression_statement "pmVar10 = pmVar13;" (assignment_expression "pmVar10 = pmVar13" identifier = identifier) ;) (do_statement "do {\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              } while (pmVar7 != pmVar13 + (int)p_Stack_3c);" do (compound_statement "{\n                pmVar7 = pmVar10 + 1;\n                *pmVar10 = 0;\n                pmVar10 = pmVar7;\n              }" { (expression_statement "pmVar7 = pmVar10 + 1;" (assignment_expression "pmVar7 = pmVar10 + 1" identifier = (binary_expression "pmVar10 + 1" identifier + number_literal)) ;) (expression_statement "*pmVar10 = 0;" (assignment_expression "*pmVar10 = 0" (pointer_expression "*pmVar10" * identifier) = number_literal) ;) (expression_statement "pmVar10 = pmVar7;" (assignment_expression "pmVar10 = pmVar7" identifier = identifier) ;) }) while (parenthesized_expression "(pmVar7 != pmVar13 + (int)p_Stack_3c)" ( (binary_expression "pmVar7 != pmVar13 + (int)p_Stack_3c" identifier != (binary_expression "pmVar13 + (int)p_Stack_3c" identifier + (cast_expression "(int)p_Stack_3c" ( (type_descriptor "int" primitive_type) ) identifier))) )) ;) })) (expression_statement "*(uint **)(puVar14 + -4) = puStack_4c;" (assignment_expression "*(uint **)(puVar14 + -4) = puStack_4c" (pointer_expression "*(uint **)(puVar14 + -4)" * (cast_expression "(uint **)(puVar14 + -4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -4)" ( (binary_expression "puVar14 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar14 + -8) = puStack_34;" (assignment_expression "*(uint **)(puVar14 + -8) = puStack_34" (pointer_expression "*(uint **)(puVar14 + -8)" * (cast_expression "(uint **)(puVar14 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -8)" ( (binary_expression "puVar14 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar11 = puStack_48;" (assignment_expression "puVar11 = puStack_48" identifier = identifier) ;) (expression_statement "*(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38;" (assignment_expression "*(mpz_srcptr *)(puVar14 + -0xc) = p_Stack_38" (pointer_expression "*(mpz_srcptr *)(puVar14 + -0xc)" * (cast_expression "(mpz_srcptr *)(puVar14 + -0xc)" ( (type_descriptor "mpz_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0xc)" ( (binary_expression "puVar14 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4;" (assignment_expression "*(mp_limb_t **)(puVar14 + -0x10) = pmVar13 + (int)p_Var4" (pointer_expression "*(mp_limb_t **)(puVar14 + -0x10)" * (cast_expression "(mp_limb_t **)(puVar14 + -0x10)" ( (type_descriptor "mp_limb_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = (binary_expression "pmVar13 + (int)p_Var4" identifier + (cast_expression "(int)p_Var4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar3 = *(code **)((int)puVar11 + 0x38);" (assignment_expression "pcVar3 = *(code **)((int)puVar11 + 0x38)" identifier = (pointer_expression "*(code **)((int)puVar11 + 0x38)" * (cast_expression "(code **)((int)puVar11 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar11 + 0x38)" ( (binary_expression "(int)puVar11 + 0x38" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x29804;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x29804" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" * (cast_expression "(undefined4 *)(puVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar8 = (*pcVar3)();" (assignment_expression "iVar8 = (*pcVar3)()" identifier = (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar8 != 0) {\n              *(int *)((int)(pmVar13 + (int)p_Var4 + 1) + (int)puStack_40) = iVar8;\n            }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n              *(int *)((int)(pmVar13 + (int)p_Var4 + 1) + (int)puStack_40) = iVar8;\n            }" { (expression_statement "*(int *)((int)(pmVar13 + (int)p_Var4 + 1) + (int)puStack_40) = iVar8;" (assignment_expression "*(int *)((int)(pmVar13 + (int)p_Var4 + 1) + (int)puStack_40) = iVar8" (pointer_expression "*(int *)((int)(pmVar13 + (int)p_Var4 + 1) + (int)puStack_40)" * (cast_expression "(int *)((int)(pmVar13 + (int)p_Var4 + 1) + (int)puStack_40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(pmVar13 + (int)p_Var4 + 1) + (int)puStack_40)" ( (binary_expression "(int)(pmVar13 + (int)p_Var4 + 1) + (int)puStack_40" (cast_expression "(int)(pmVar13 + (int)p_Var4 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pmVar13 + (int)p_Var4 + 1)" ( (binary_expression "pmVar13 + (int)p_Var4 + 1" (binary_expression "pmVar13 + (int)p_Var4" identifier + (cast_expression "(int)p_Var4" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) ))) + (cast_expression "(int)puStack_40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = identifier) ;) })) }))) (expression_statement "g->_mp_size = iVar17;" (assignment_expression "g->_mp_size = iVar17" (field_expression "g->_mp_size" identifier -> field_identifier) = identifier) ;) (if_statement "if (ptStack_24 != (tmp_reentrant_t *)0x0) {\n            *(tmp_reentrant_t **)(puVar14 + -0x10) = ptStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar14 + -0x10));\n          }" if (parenthesized_expression "(ptStack_24 != (tmp_reentrant_t *)0x0)" ( (binary_expression "ptStack_24 != (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            *(tmp_reentrant_t **)(puVar14 + -0x10) = ptStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar14 + -0x10));\n          }" { (expression_statement "*(tmp_reentrant_t **)(puVar14 + -0x10) = ptStack_24;" (assignment_expression "*(tmp_reentrant_t **)(puVar14 + -0x10) = ptStack_24" (pointer_expression "*(tmp_reentrant_t **)(puVar14 + -0x10)" * (cast_expression "(tmp_reentrant_t **)(puVar14 + -0x10)" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x2982c;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x2982c" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" * (cast_expression "(undefined4 *)(puVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar14 + -0x10));" (call_expression "__gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar14 + -0x10))" identifier (argument_list "(*(tmp_reentrant_t **)(puVar14 + -0x10))" ( (pointer_expression "*(tmp_reentrant_t **)(puVar14 + -0x10)" * (cast_expression "(tmp_reentrant_t **)(puVar14 + -0x10)" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) ))) ;) })) (goto_statement "goto LAB_00029590;" goto statement_identifier ;) })) (expression_statement "g->_mp_size = 1;" (assignment_expression "g->_mp_size = 1" (field_expression "g->_mp_size" identifier -> field_identifier) = number_literal) ;) (expression_statement "pmVar13 = g->_mp_d;" (assignment_expression "pmVar13 = g->_mp_d" identifier = (field_expression "g->_mp_d" identifier -> field_identifier)) ;) (expression_statement "uVar16 = *puVar11;" (assignment_expression "uVar16 = *puVar11" identifier = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "puVar11 = puStack_40;" (assignment_expression "puVar11 = puStack_40" identifier = identifier) ;) (expression_statement "puVar15 = puStack_34;" (assignment_expression "puVar15 = puStack_34" identifier = identifier) ;) }))) (expression_statement "ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;" (assignment_expression "ppuStack_30 = &_GLOBAL_OFFSET_TABLE_" identifier = (pointer_expression "&_GLOBAL_OFFSET_TABLE_" & identifier)) ;) (expression_statement "mVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);" (assignment_expression "mVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16)" identifier = (call_expression "(**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16)" (parenthesized_expression "(**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))" ( (pointer_expression "**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34)" * (pointer_expression "*(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34)" * (cast_expression "(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR___gmpn_cpuvec_00098d94 + 0x34)" ( (binary_expression "PTR___gmpn_cpuvec_00098d94 + 0x34" identifier + number_literal) ))))) )) (argument_list "(puVar11,puVar15,uVar16)" ( identifier , identifier , identifier )))) ;) (expression_statement "puVar14 = auStack_6c;" (assignment_expression "puVar14 = auStack_6c" identifier = identifier) ;) (expression_statement "*pmVar13 = mVar9;" (assignment_expression "*pmVar13 = mVar9" (pointer_expression "*pmVar13" * identifier) = identifier) ;) (goto_statement "goto LAB_00029590;" goto statement_identifier ;) })) (expression_statement "g->_mp_size = (int)puStack_34;" (assignment_expression "g->_mp_size = (int)puStack_34" (field_expression "g->_mp_size" identifier -> field_identifier) = (cast_expression "(int)puStack_34" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (u == g) goto LAB_00029590;" if (parenthesized_expression "(u == g)" ( (binary_expression "u == g" identifier == identifier) )) (goto_statement "goto LAB_00029590;" goto statement_identifier ;)) (expression_statement "puVar11 = puStack_40;" (assignment_expression "puVar11 = puStack_40" identifier = identifier) ;) (expression_statement "puVar15 = puStack_34;" (assignment_expression "puVar15 = puStack_34" identifier = identifier) ;) (expression_statement "ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;" (assignment_expression "ppuStack_30 = &_GLOBAL_OFFSET_TABLE_" identifier = (pointer_expression "&_GLOBAL_OFFSET_TABLE_" & identifier)) ;) (if_statement "if (g->_mp_alloc < (int)puStack_34) {\n      __gmpz_realloc(g,(mp_size_t)puStack_34);\n      puVar11 = puStack_40;\n      puVar15 = puStack_34;\n    }" if (parenthesized_expression "(g->_mp_alloc < (int)puStack_34)" ( (binary_expression "g->_mp_alloc < (int)puStack_34" (field_expression "g->_mp_alloc" identifier -> field_identifier) < (cast_expression "(int)puStack_34" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      __gmpz_realloc(g,(mp_size_t)puStack_34);\n      puVar11 = puStack_40;\n      puVar15 = puStack_34;\n    }" { (expression_statement "__gmpz_realloc(g,(mp_size_t)puStack_34);" (call_expression "__gmpz_realloc(g,(mp_size_t)puStack_34)" identifier (argument_list "(g,(mp_size_t)puStack_34)" ( identifier , (cast_expression "(mp_size_t)puStack_34" ( (type_descriptor "mp_size_t" type_identifier) ) identifier) ))) ;) (expression_statement "puVar11 = puStack_40;" (assignment_expression "puVar11 = puStack_40" identifier = identifier) ;) (expression_statement "puVar15 = puStack_34;" (assignment_expression "puVar15 = puStack_34" identifier = identifier) ;) })) }))) (expression_statement "(**(code **)(ppuStack_30[-0x9b] + 0x28))(g->_mp_d,puVar11,puVar15);" (call_expression "(**(code **)(ppuStack_30[-0x9b] + 0x28))(g->_mp_d,puVar11,puVar15)" (parenthesized_expression "(**(code **)(ppuStack_30[-0x9b] + 0x28))" ( (pointer_expression "**(code **)(ppuStack_30[-0x9b] + 0x28)" * (pointer_expression "*(code **)(ppuStack_30[-0x9b] + 0x28)" * (cast_expression "(code **)(ppuStack_30[-0x9b] + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(ppuStack_30[-0x9b] + 0x28)" ( (binary_expression "ppuStack_30[-0x9b] + 0x28" (subscript_expression "ppuStack_30[-0x9b]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(g->_mp_d,puVar11,puVar15)" ( (field_expression "g->_mp_d" identifier -> field_identifier) , identifier , identifier ))) ;) (expression_statement "puVar14 = auStack_6c;" (assignment_expression "puVar14 = auStack_6c" identifier = identifier) ;) (labeled_statement "LAB_00029590:\n  if (iStack_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" statement_identifier : (if_statement "if (iStack_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(iStack_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iStack_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) comment (expression_statement "*(undefined4 *)(puVar14 + -4) = 0x29a36;" (assignment_expression "*(undefined4 *)(puVar14 + -4) = 0x29a36" (pointer_expression "*(undefined4 *)(puVar14 + -4)" * (cast_expression "(undefined4 *)(puVar14 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -4)" ( (binary_expression "puVar14 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void __gmpz_gcd(int *param_1,int *param_2,int *param_3)\n\n{\n  uint uVar1;\n  undefined *puVar2;\n  code *pcVar3;\n  int *piVar4;\n  uint *puVar5;\n  undefined **ppuVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined4 *puVar10;\n  uint *puVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  undefined1 *puVar14;\n  uint *puVar15;\n  uint uVar16;\n  int iVar17;\n  int in_GS_OFFSET;\n  undefined1 auStack_6c [8];\n  uint *puStack_64;\n  uint *puStack_60;\n  int *piStack_5c;\n  int iStack_58;\n  int iStack_54;\n  uint *puStack_50;\n  uint *puStack_4c;\n  uint *puStack_48;\n  int iStack_44;\n  uint *puStack_40;\n  int *piStack_3c;\n  uint *puStack_38;\n  uint *puStack_34;\n  undefined **ppuStack_30;\n  int iStack_24;\n  int iStack_20;\n  undefined **ppuStack_10;\n  \n  ppuStack_10 = &__DT_PLTGOT;\n  puVar14 = auStack_6c;\n  ppuStack_30 = &__DT_PLTGOT;\n  puStack_38 = (uint *)param_2;\n  uVar16 = param_2[1];\n  iStack_20 = *(int *)(in_GS_OFFSET + 0x14);\n  puVar11 = (uint *)param_3[2];\n  piStack_3c = param_3;\n  uVar1 = param_3[1];\n  puVar15 = (uint *)(((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f));\n  if (uVar16 == 0) {\n    param_1[1] = (int)puVar15;\n    puVar14 = auStack_6c;\n    ppuStack_30 = &__DT_PLTGOT;\n    if (param_3 == param_1) goto LAB_00029590;\n    if (*param_1 < (int)puVar15) {\n      puStack_34 = puVar11;\n      __gmpz_realloc(param_1,puVar15);\n      puVar11 = puStack_34;\n    }\n  }\n  else {\n    puStack_40 = (uint *)param_2[2];\n    puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f));\n    if (uVar1 != 0) {\n      if (puStack_34 == (uint *)0x1) {\n        puVar13 = (undefined4 *)param_1[2];\n        param_1[1] = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }\n        param_1[1] = 1;\n        puVar13 = (undefined4 *)param_1[2];\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }\n      ppuStack_30 = &__DT_PLTGOT;\n      uVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);\n      puVar14 = auStack_6c;\n      *puVar13 = uVar9;\n      goto LAB_00029590;\n    }\n    param_1[1] = (int)puStack_34;\n    if (param_2 == param_1) goto LAB_00029590;\n    puVar11 = puStack_40;\n    puVar15 = puStack_34;\n    ppuStack_30 = &__DT_PLTGOT;\n    if (*param_1 < (int)puStack_34) {\n      __gmpz_realloc(param_1,puStack_34);\n      puVar11 = puStack_40;\n      puVar15 = puStack_34;\n    }\n  }\n  (**(code **)(ppuStack_30[-0x9b] + 0x28))(param_1[2],puVar11,puVar15);\n  puVar14 = auStack_6c;\nLAB_00029590:\n  if (iStack_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  *(undefined4 *)(puVar14 + -4) = 0x29a36;\n  FUN_00079d30();\n}\n\n" (function_definition "void __gmpz_gcd(int *param_1,int *param_2,int *param_3)\n\n{\n  uint uVar1;\n  undefined *puVar2;\n  code *pcVar3;\n  int *piVar4;\n  uint *puVar5;\n  undefined **ppuVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined4 *puVar10;\n  uint *puVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  undefined1 *puVar14;\n  uint *puVar15;\n  uint uVar16;\n  int iVar17;\n  int in_GS_OFFSET;\n  undefined1 auStack_6c [8];\n  uint *puStack_64;\n  uint *puStack_60;\n  int *piStack_5c;\n  int iStack_58;\n  int iStack_54;\n  uint *puStack_50;\n  uint *puStack_4c;\n  uint *puStack_48;\n  int iStack_44;\n  uint *puStack_40;\n  int *piStack_3c;\n  uint *puStack_38;\n  uint *puStack_34;\n  undefined **ppuStack_30;\n  int iStack_24;\n  int iStack_20;\n  undefined **ppuStack_10;\n  \n  ppuStack_10 = &__DT_PLTGOT;\n  puVar14 = auStack_6c;\n  ppuStack_30 = &__DT_PLTGOT;\n  puStack_38 = (uint *)param_2;\n  uVar16 = param_2[1];\n  iStack_20 = *(int *)(in_GS_OFFSET + 0x14);\n  puVar11 = (uint *)param_3[2];\n  piStack_3c = param_3;\n  uVar1 = param_3[1];\n  puVar15 = (uint *)(((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f));\n  if (uVar16 == 0) {\n    param_1[1] = (int)puVar15;\n    puVar14 = auStack_6c;\n    ppuStack_30 = &__DT_PLTGOT;\n    if (param_3 == param_1) goto LAB_00029590;\n    if (*param_1 < (int)puVar15) {\n      puStack_34 = puVar11;\n      __gmpz_realloc(param_1,puVar15);\n      puVar11 = puStack_34;\n    }\n  }\n  else {\n    puStack_40 = (uint *)param_2[2];\n    puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f));\n    if (uVar1 != 0) {\n      if (puStack_34 == (uint *)0x1) {\n        puVar13 = (undefined4 *)param_1[2];\n        param_1[1] = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }\n        param_1[1] = 1;\n        puVar13 = (undefined4 *)param_1[2];\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }\n      ppuStack_30 = &__DT_PLTGOT;\n      uVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);\n      puVar14 = auStack_6c;\n      *puVar13 = uVar9;\n      goto LAB_00029590;\n    }\n    param_1[1] = (int)puStack_34;\n    if (param_2 == param_1) goto LAB_00029590;\n    puVar11 = puStack_40;\n    puVar15 = puStack_34;\n    ppuStack_30 = &__DT_PLTGOT;\n    if (*param_1 < (int)puStack_34) {\n      __gmpz_realloc(param_1,puStack_34);\n      puVar11 = puStack_40;\n      puVar15 = puStack_34;\n    }\n  }\n  (**(code **)(ppuStack_30[-0x9b] + 0x28))(param_1[2],puVar11,puVar15);\n  puVar14 = auStack_6c;\nLAB_00029590:\n  if (iStack_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  *(undefined4 *)(puVar14 + -4) = 0x29a36;\n  FUN_00079d30();\n}" primitive_type (function_declarator "__gmpz_gcd(int *param_1,int *param_2,int *param_3)" identifier (parameter_list "(int *param_1,int *param_2,int *param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  undefined *puVar2;\n  code *pcVar3;\n  int *piVar4;\n  uint *puVar5;\n  undefined **ppuVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined4 *puVar10;\n  uint *puVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  undefined1 *puVar14;\n  uint *puVar15;\n  uint uVar16;\n  int iVar17;\n  int in_GS_OFFSET;\n  undefined1 auStack_6c [8];\n  uint *puStack_64;\n  uint *puStack_60;\n  int *piStack_5c;\n  int iStack_58;\n  int iStack_54;\n  uint *puStack_50;\n  uint *puStack_4c;\n  uint *puStack_48;\n  int iStack_44;\n  uint *puStack_40;\n  int *piStack_3c;\n  uint *puStack_38;\n  uint *puStack_34;\n  undefined **ppuStack_30;\n  int iStack_24;\n  int iStack_20;\n  undefined **ppuStack_10;\n  \n  ppuStack_10 = &__DT_PLTGOT;\n  puVar14 = auStack_6c;\n  ppuStack_30 = &__DT_PLTGOT;\n  puStack_38 = (uint *)param_2;\n  uVar16 = param_2[1];\n  iStack_20 = *(int *)(in_GS_OFFSET + 0x14);\n  puVar11 = (uint *)param_3[2];\n  piStack_3c = param_3;\n  uVar1 = param_3[1];\n  puVar15 = (uint *)(((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f));\n  if (uVar16 == 0) {\n    param_1[1] = (int)puVar15;\n    puVar14 = auStack_6c;\n    ppuStack_30 = &__DT_PLTGOT;\n    if (param_3 == param_1) goto LAB_00029590;\n    if (*param_1 < (int)puVar15) {\n      puStack_34 = puVar11;\n      __gmpz_realloc(param_1,puVar15);\n      puVar11 = puStack_34;\n    }\n  }\n  else {\n    puStack_40 = (uint *)param_2[2];\n    puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f));\n    if (uVar1 != 0) {\n      if (puStack_34 == (uint *)0x1) {\n        puVar13 = (undefined4 *)param_1[2];\n        param_1[1] = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }\n        param_1[1] = 1;\n        puVar13 = (undefined4 *)param_1[2];\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }\n      ppuStack_30 = &__DT_PLTGOT;\n      uVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);\n      puVar14 = auStack_6c;\n      *puVar13 = uVar9;\n      goto LAB_00029590;\n    }\n    param_1[1] = (int)puStack_34;\n    if (param_2 == param_1) goto LAB_00029590;\n    puVar11 = puStack_40;\n    puVar15 = puStack_34;\n    ppuStack_30 = &__DT_PLTGOT;\n    if (*param_1 < (int)puStack_34) {\n      __gmpz_realloc(param_1,puStack_34);\n      puVar11 = puStack_40;\n      puVar15 = puStack_34;\n    }\n  }\n  (**(code **)(ppuStack_30[-0x9b] + 0x28))(param_1[2],puVar11,puVar15);\n  puVar14 = auStack_6c;\nLAB_00029590:\n  if (iStack_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  *(undefined4 *)(puVar14 + -4) = 0x29a36;\n  FUN_00079d30();\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined **ppuVar6;" type_identifier (pointer_declarator "**ppuVar6" * (pointer_declarator "*ppuVar6" * identifier)) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "uint *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined1 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined1 auStack_6c [8];" type_identifier (array_declarator "auStack_6c [8]" identifier [ number_literal ]) ;) (declaration "uint *puStack_64;" type_identifier (pointer_declarator "*puStack_64" * identifier) ;) (declaration "uint *puStack_60;" type_identifier (pointer_declarator "*puStack_60" * identifier) ;) (declaration "int *piStack_5c;" primitive_type (pointer_declarator "*piStack_5c" * identifier) ;) (declaration "int iStack_58;" primitive_type identifier ;) (declaration "int iStack_54;" primitive_type identifier ;) (declaration "uint *puStack_50;" type_identifier (pointer_declarator "*puStack_50" * identifier) ;) (declaration "uint *puStack_4c;" type_identifier (pointer_declarator "*puStack_4c" * identifier) ;) (declaration "uint *puStack_48;" type_identifier (pointer_declarator "*puStack_48" * identifier) ;) (declaration "int iStack_44;" primitive_type identifier ;) (declaration "uint *puStack_40;" type_identifier (pointer_declarator "*puStack_40" * identifier) ;) (declaration "int *piStack_3c;" primitive_type (pointer_declarator "*piStack_3c" * identifier) ;) (declaration "uint *puStack_38;" type_identifier (pointer_declarator "*puStack_38" * identifier) ;) (declaration "uint *puStack_34;" type_identifier (pointer_declarator "*puStack_34" * identifier) ;) (declaration "undefined **ppuStack_30;" type_identifier (pointer_declarator "**ppuStack_30" * (pointer_declarator "*ppuStack_30" * identifier)) ;) (declaration "int iStack_24;" primitive_type identifier ;) (declaration "int iStack_20;" primitive_type identifier ;) (declaration "undefined **ppuStack_10;" type_identifier (pointer_declarator "**ppuStack_10" * (pointer_declarator "*ppuStack_10" * identifier)) ;) (expression_statement "ppuStack_10 = &__DT_PLTGOT;" (assignment_expression "ppuStack_10 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "puVar14 = auStack_6c;" (assignment_expression "puVar14 = auStack_6c" identifier = identifier) ;) (expression_statement "ppuStack_30 = &__DT_PLTGOT;" (assignment_expression "ppuStack_30 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "puStack_38 = (uint *)param_2;" (assignment_expression "puStack_38 = (uint *)param_2" identifier = (cast_expression "(uint *)param_2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uVar16 = param_2[1];" (assignment_expression "uVar16 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "iStack_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iStack_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "puVar11 = (uint *)param_3[2];" (assignment_expression "puVar11 = (uint *)param_3[2]" identifier = (cast_expression "(uint *)param_3[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) ;) (expression_statement "piStack_3c = param_3;" (assignment_expression "piStack_3c = param_3" identifier = identifier) ;) (expression_statement "uVar1 = param_3[1];" (assignment_expression "uVar1 = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) (expression_statement "puVar15 = (uint *)(((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f));" (assignment_expression "puVar15 = (uint *)(((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f))" identifier = (cast_expression "(uint *)(((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f))" ( (binary_expression "((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f)" (parenthesized_expression "((int)uVar1 >> 0x1f ^ uVar1)" ( (binary_expression "(int)uVar1 >> 0x1f ^ uVar1" (binary_expression "(int)uVar1 >> 0x1f" (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ^ identifier) )) - (parenthesized_expression "((int)uVar1 >> 0x1f)" ( (binary_expression "(int)uVar1 >> 0x1f" (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) )))) ;) (if_statement "if (uVar16 == 0) {\n    param_1[1] = (int)puVar15;\n    puVar14 = auStack_6c;\n    ppuStack_30 = &__DT_PLTGOT;\n    if (param_3 == param_1) goto LAB_00029590;\n    if (*param_1 < (int)puVar15) {\n      puStack_34 = puVar11;\n      __gmpz_realloc(param_1,puVar15);\n      puVar11 = puStack_34;\n    }\n  }\n  else {\n    puStack_40 = (uint *)param_2[2];\n    puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f));\n    if (uVar1 != 0) {\n      if (puStack_34 == (uint *)0x1) {\n        puVar13 = (undefined4 *)param_1[2];\n        param_1[1] = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }\n        param_1[1] = 1;\n        puVar13 = (undefined4 *)param_1[2];\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }\n      ppuStack_30 = &__DT_PLTGOT;\n      uVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);\n      puVar14 = auStack_6c;\n      *puVar13 = uVar9;\n      goto LAB_00029590;\n    }\n    param_1[1] = (int)puStack_34;\n    if (param_2 == param_1) goto LAB_00029590;\n    puVar11 = puStack_40;\n    puVar15 = puStack_34;\n    ppuStack_30 = &__DT_PLTGOT;\n    if (*param_1 < (int)puStack_34) {\n      __gmpz_realloc(param_1,puStack_34);\n      puVar11 = puStack_40;\n      puVar15 = puStack_34;\n    }\n  }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n    param_1[1] = (int)puVar15;\n    puVar14 = auStack_6c;\n    ppuStack_30 = &__DT_PLTGOT;\n    if (param_3 == param_1) goto LAB_00029590;\n    if (*param_1 < (int)puVar15) {\n      puStack_34 = puVar11;\n      __gmpz_realloc(param_1,puVar15);\n      puVar11 = puStack_34;\n    }\n  }" { (expression_statement "param_1[1] = (int)puVar15;" (assignment_expression "param_1[1] = (int)puVar15" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar14 = auStack_6c;" (assignment_expression "puVar14 = auStack_6c" identifier = identifier) ;) (expression_statement "ppuStack_30 = &__DT_PLTGOT;" (assignment_expression "ppuStack_30 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (if_statement "if (param_3 == param_1) goto LAB_00029590;" if (parenthesized_expression "(param_3 == param_1)" ( (binary_expression "param_3 == param_1" identifier == identifier) )) (goto_statement "goto LAB_00029590;" goto statement_identifier ;)) (if_statement "if (*param_1 < (int)puVar15) {\n      puStack_34 = puVar11;\n      __gmpz_realloc(param_1,puVar15);\n      puVar11 = puStack_34;\n    }" if (parenthesized_expression "(*param_1 < (int)puVar15)" ( (binary_expression "*param_1 < (int)puVar15" (pointer_expression "*param_1" * identifier) < (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      puStack_34 = puVar11;\n      __gmpz_realloc(param_1,puVar15);\n      puVar11 = puStack_34;\n    }" { (expression_statement "puStack_34 = puVar11;" (assignment_expression "puStack_34 = puVar11" identifier = identifier) ;) (expression_statement "__gmpz_realloc(param_1,puVar15);" (call_expression "__gmpz_realloc(param_1,puVar15)" identifier (argument_list "(param_1,puVar15)" ( identifier , identifier ))) ;) (expression_statement "puVar11 = puStack_34;" (assignment_expression "puVar11 = puStack_34" identifier = identifier) ;) })) }) (else_clause "else {\n    puStack_40 = (uint *)param_2[2];\n    puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f));\n    if (uVar1 != 0) {\n      if (puStack_34 == (uint *)0x1) {\n        puVar13 = (undefined4 *)param_1[2];\n        param_1[1] = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }\n        param_1[1] = 1;\n        puVar13 = (undefined4 *)param_1[2];\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }\n      ppuStack_30 = &__DT_PLTGOT;\n      uVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);\n      puVar14 = auStack_6c;\n      *puVar13 = uVar9;\n      goto LAB_00029590;\n    }\n    param_1[1] = (int)puStack_34;\n    if (param_2 == param_1) goto LAB_00029590;\n    puVar11 = puStack_40;\n    puVar15 = puStack_34;\n    ppuStack_30 = &__DT_PLTGOT;\n    if (*param_1 < (int)puStack_34) {\n      __gmpz_realloc(param_1,puStack_34);\n      puVar11 = puStack_40;\n      puVar15 = puStack_34;\n    }\n  }" else (compound_statement "{\n    puStack_40 = (uint *)param_2[2];\n    puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f));\n    if (uVar1 != 0) {\n      if (puStack_34 == (uint *)0x1) {\n        puVar13 = (undefined4 *)param_1[2];\n        param_1[1] = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }\n        param_1[1] = 1;\n        puVar13 = (undefined4 *)param_1[2];\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }\n      ppuStack_30 = &__DT_PLTGOT;\n      uVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);\n      puVar14 = auStack_6c;\n      *puVar13 = uVar9;\n      goto LAB_00029590;\n    }\n    param_1[1] = (int)puStack_34;\n    if (param_2 == param_1) goto LAB_00029590;\n    puVar11 = puStack_40;\n    puVar15 = puStack_34;\n    ppuStack_30 = &__DT_PLTGOT;\n    if (*param_1 < (int)puStack_34) {\n      __gmpz_realloc(param_1,puStack_34);\n      puVar11 = puStack_40;\n      puVar15 = puStack_34;\n    }\n  }" { (expression_statement "puStack_40 = (uint *)param_2[2];" (assignment_expression "puStack_40 = (uint *)param_2[2]" identifier = (cast_expression "(uint *)param_2[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[2]" identifier [ number_literal ]))) ;) (expression_statement "puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f));" (assignment_expression "puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f))" identifier = (cast_expression "(uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f))" ( (binary_expression "(uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f)" (parenthesized_expression "(uVar16 ^ (int)uVar16 >> 0x1f)" ( (binary_expression "uVar16 ^ (int)uVar16 >> 0x1f" identifier ^ (binary_expression "(int)uVar16 >> 0x1f" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) )) - (parenthesized_expression "((int)uVar16 >> 0x1f)" ( (binary_expression "(int)uVar16 >> 0x1f" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) )))) ;) (if_statement "if (uVar1 != 0) {\n      if (puStack_34 == (uint *)0x1) {\n        puVar13 = (undefined4 *)param_1[2];\n        param_1[1] = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }\n        param_1[1] = 1;\n        puVar13 = (undefined4 *)param_1[2];\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }\n      ppuStack_30 = &__DT_PLTGOT;\n      uVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);\n      puVar14 = auStack_6c;\n      *puVar13 = uVar9;\n      goto LAB_00029590;\n    }" if (parenthesized_expression "(uVar1 != 0)" ( (binary_expression "uVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      if (puStack_34 == (uint *)0x1) {\n        puVar13 = (undefined4 *)param_1[2];\n        param_1[1] = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }\n        param_1[1] = 1;\n        puVar13 = (undefined4 *)param_1[2];\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }\n      ppuStack_30 = &__DT_PLTGOT;\n      uVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);\n      puVar14 = auStack_6c;\n      *puVar13 = uVar9;\n      goto LAB_00029590;\n    }" { (if_statement "if (puStack_34 == (uint *)0x1) {\n        puVar13 = (undefined4 *)param_1[2];\n        param_1[1] = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }\n        param_1[1] = 1;\n        puVar13 = (undefined4 *)param_1[2];\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }" if (parenthesized_expression "(puStack_34 == (uint *)0x1)" ( (binary_expression "puStack_34 == (uint *)0x1" identifier == (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar13 = (undefined4 *)param_1[2];\n        param_1[1] = 1;\n        uVar16 = *puStack_40;\n      }" { (expression_statement "puVar13 = (undefined4 *)param_1[2];" (assignment_expression "puVar13 = (undefined4 *)param_1[2]" identifier = (cast_expression "(undefined4 *)param_1[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "param_1[1] = 1;" (assignment_expression "param_1[1] = 1" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar16 = *puStack_40;" (assignment_expression "uVar16 = *puStack_40" identifier = (pointer_expression "*puStack_40" * identifier)) ;) }) (else_clause "else {\n        if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }\n        param_1[1] = 1;\n        puVar13 = (undefined4 *)param_1[2];\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }" else (compound_statement "{\n        if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }\n        param_1[1] = 1;\n        puVar13 = (undefined4 *)param_1[2];\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }" { (if_statement "if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }" if (parenthesized_expression "(puVar15 != (uint *)0x1)" ( (binary_expression "puVar15 != (uint *)0x1" identifier != (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }" { (expression_statement "iStack_24 = 0;" (assignment_expression "iStack_24 = 0" identifier = number_literal) ;) (expression_statement "uVar16 = *puStack_40;" (assignment_expression "uVar16 = *puStack_40" identifier = (pointer_expression "*puStack_40" * identifier)) ;) (expression_statement "puVar12 = puStack_40;" (assignment_expression "puVar12 = puStack_40" identifier = identifier) ;) (if_statement "if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }" { (do_statement "do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);" do (compound_statement "{\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            }" { (expression_statement "puVar12 = puVar12 + 1;" (assignment_expression "puVar12 = puVar12 + 1" identifier = (binary_expression "puVar12 + 1" identifier + number_literal)) ;) (expression_statement "uVar16 = *puVar12;" (assignment_expression "uVar16 = *puVar12" identifier = (pointer_expression "*puVar12" * identifier)) ;) }) while (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) ;) (expression_statement "iStack_58 = (int)puVar12 - (int)puStack_40;" (assignment_expression "iStack_58 = (int)puVar12 - (int)puStack_40" identifier = (binary_expression "(int)puVar12 - (int)puStack_40" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puStack_40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "piStack_5c = (int *)(iStack_58 >> 2);" (assignment_expression "piStack_5c = (int *)(iStack_58 >> 2)" identifier = (cast_expression "(int *)(iStack_58 >> 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_58 >> 2)" ( (binary_expression "iStack_58 >> 2" identifier >> number_literal) )))) ;) (expression_statement "puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);" (assignment_expression "puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c)" identifier = (cast_expression "(uint *)((int)puStack_34 - (int)piStack_5c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puStack_34 - (int)piStack_5c)" ( (binary_expression "(int)puStack_34 - (int)piStack_5c" (cast_expression "(int)puStack_34" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piStack_5c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }) (else_clause "else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }" else (compound_statement "{\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }" { (expression_statement "piStack_5c = (int *)0x0;" (assignment_expression "piStack_5c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iStack_58 = 0;" (assignment_expression "iStack_58 = 0" identifier = number_literal) ;) }))) (expression_statement "puStack_50 = (uint *)0x0;" (assignment_expression "puStack_50 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (for_statement "for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }" for ( ; (binary_expression "(uVar16 & 1) == 0" (parenthesized_expression "(uVar16 & 1)" ( (binary_expression "uVar16 & 1" identifier & number_literal) )) == number_literal) ; (assignment_expression "uVar16 = uVar16 >> 1 | 0x80000000" identifier = (binary_expression "uVar16 >> 1 | 0x80000000" (binary_expression "uVar16 >> 1" identifier >> number_literal) | number_literal)) ) (compound_statement "{\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }" { (expression_statement "puStack_50 = (uint *)((int)puStack_50 + 1);" (assignment_expression "puStack_50 = (uint *)((int)puStack_50 + 1)" identifier = (cast_expression "(uint *)((int)puStack_50 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puStack_50 + 1)" ( (binary_expression "(int)puStack_50 + 1" (cast_expression "(int)puStack_50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "puStack_38 = (uint *)((int)puStack_34 * 4);" (assignment_expression "puStack_38 = (uint *)((int)puStack_34 * 4)" identifier = (cast_expression "(uint *)((int)puStack_34 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puStack_34 * 4)" ( (binary_expression "(int)puStack_34 * 4" (cast_expression "(int)puStack_34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }" if (parenthesized_expression "(puStack_38 < (uint *)0x7f01)" ( (binary_expression "puStack_38 < (uint *)0x7f01" identifier < (cast_expression "(uint *)0x7f01" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }" { (expression_statement "iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);" (assignment_expression "iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0)" identifier = (unary_expression "-((int)puStack_38 + 0x1bU & 0xfffffff0)" - (parenthesized_expression "((int)puStack_38 + 0x1bU & 0xfffffff0)" ( (binary_expression "(int)puStack_38 + 0x1bU & 0xfffffff0" (binary_expression "(int)puStack_38 + 0x1bU" (cast_expression "(int)puStack_38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal) )))) ;) (expression_statement "puVar14 = auStack_6c + iStack_44;" (assignment_expression "puVar14 = auStack_6c + iStack_44" identifier = (binary_expression "auStack_6c + iStack_44" identifier + identifier)) ;) (expression_statement "iStack_44 = (int)&puStack_60 + iStack_44;" (assignment_expression "iStack_44 = (int)&puStack_60 + iStack_44" identifier = (binary_expression "(int)&puStack_60 + iStack_44" (cast_expression "(int)&puStack_60" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&puStack_60" & identifier)) + identifier)) ;) (expression_statement "ppuStack_30 = &__DT_PLTGOT;" (assignment_expression "ppuStack_30 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) }) (else_clause "else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }" else (compound_statement "{\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }" { (expression_statement "puStack_48 = puVar11;" (assignment_expression "puStack_48 = puVar11" identifier = identifier) ;) (expression_statement "puStack_40 = puVar12;" (assignment_expression "puStack_40 = puVar12" identifier = identifier) ;) (expression_statement "ppuStack_30 = &__DT_PLTGOT;" (assignment_expression "ppuStack_30 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);" (assignment_expression "iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38)" identifier = (call_expression "__gmp_tmp_reentrant_alloc(&iStack_24,puStack_38)" identifier (argument_list "(&iStack_24,puStack_38)" ( (pointer_expression "&iStack_24" & identifier) , identifier )))) ;) (expression_statement "puVar14 = auStack_6c;" (assignment_expression "puVar14 = auStack_6c" identifier = identifier) ;) (expression_statement "puVar11 = puStack_48;" (assignment_expression "puVar11 = puStack_48" identifier = identifier) ;) (expression_statement "puVar12 = puStack_40;" (assignment_expression "puVar12 = puStack_40" identifier = identifier) ;) }))) (expression_statement "ppuVar6 = ppuStack_30;" (assignment_expression "ppuVar6 = ppuStack_30" identifier = identifier) ;) (expression_statement "puVar5 = puStack_34;" (assignment_expression "puVar5 = puStack_34" identifier = identifier) ;) (if_statement "if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }" if (parenthesized_expression "(puStack_50 == (uint *)0x0)" ( (binary_expression "puStack_50 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }" { (expression_statement "*(uint **)(puVar14 + -8) = puStack_34;" (assignment_expression "*(uint **)(puVar14 + -8) = puStack_34" (pointer_expression "*(uint **)(puVar14 + -8)" * (cast_expression "(uint **)(puVar14 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -8)" ( (binary_expression "puVar14 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar14 + -0xc) = puVar12;" (assignment_expression "*(uint **)(puVar14 + -0xc) = puVar12" (pointer_expression "*(uint **)(puVar14 + -0xc)" * (cast_expression "(uint **)(puVar14 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0xc)" ( (binary_expression "puVar14 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar14 + -0x10) = iStack_44;" (assignment_expression "*(int *)(puVar14 + -0x10) = iStack_44" (pointer_expression "*(int *)(puVar14 + -0x10)" * (cast_expression "(int *)(puVar14 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "puStack_48 = (uint *)ppuVar6[-0x9b];" (assignment_expression "puStack_48 = (uint *)ppuVar6[-0x9b]" identifier = (cast_expression "(uint *)ppuVar6[-0x9b]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppuVar6[-0x9b]" identifier [ number_literal ]))) ;) (expression_statement "pcVar3 = *(code **)((int)puStack_48 + 0x28);" (assignment_expression "pcVar3 = *(code **)((int)puStack_48 + 0x28)" identifier = (pointer_expression "*(code **)((int)puStack_48 + 0x28)" * (cast_expression "(code **)((int)puStack_48 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puStack_48 + 0x28)" ( (binary_expression "(int)puStack_48 + 0x28" (cast_expression "(int)puStack_48" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puStack_38 = puVar11;" (assignment_expression "puStack_38 = puVar11" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x298ec;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x298ec" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" * (cast_expression "(undefined4 *)(puVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_40 = puStack_38;" (assignment_expression "puStack_40 = puStack_38" identifier = identifier) ;) }) (else_clause "else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }" else (compound_statement "{\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }" { (expression_statement "puStack_40 = puVar11;" (assignment_expression "puStack_40 = puVar11" identifier = identifier) ;) (expression_statement "*(uint **)(puVar14 + -4) = puStack_50;" (assignment_expression "*(uint **)(puVar14 + -4) = puStack_50" (pointer_expression "*(uint **)(puVar14 + -4)" * (cast_expression "(uint **)(puVar14 + -4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -4)" ( (binary_expression "puVar14 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar2 = ppuVar6[-0x9b];" (assignment_expression "puVar2 = ppuVar6[-0x9b]" identifier = (subscript_expression "ppuVar6[-0x9b]" identifier [ number_literal ])) ;) (expression_statement "*(uint **)(puVar14 + -8) = puVar5;" (assignment_expression "*(uint **)(puVar14 + -8) = puVar5" (pointer_expression "*(uint **)(puVar14 + -8)" * (cast_expression "(uint **)(puVar14 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -8)" ( (binary_expression "puVar14 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "puStack_48 = (uint *)puVar2;" (assignment_expression "puStack_48 = (uint *)puVar2" identifier = (cast_expression "(uint *)puVar2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "*(uint **)(puVar14 + -0xc) = puVar12;" (assignment_expression "*(uint **)(puVar14 + -0xc) = puVar12" (pointer_expression "*(uint **)(puVar14 + -0xc)" * (cast_expression "(uint **)(puVar14 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0xc)" ( (binary_expression "puVar14 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar14 + -0x10) = iStack_44;" (assignment_expression "*(int *)(puVar14 + -0x10) = iStack_44" (pointer_expression "*(int *)(puVar14 + -0x10)" * (cast_expression "(int *)(puVar14 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar3 = *(code **)(puVar2 + 0x80);" (assignment_expression "pcVar3 = *(code **)(puVar2 + 0x80)" identifier = (pointer_expression "*(code **)(puVar2 + 0x80)" * (cast_expression "(code **)(puVar2 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0x80)" ( (binary_expression "puVar2 + 0x80" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x29680;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x29680" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" * (cast_expression "(undefined4 *)(puVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));" (assignment_expression "puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0))" identifier = (cast_expression "(uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0))" ( (binary_expression "(int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0)" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) - (call_expression "(uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0)" ( (binary_expression "*(int *)(iStack_44 + -4 + (int)puStack_38) == 0" (pointer_expression "*(int *)(iStack_44 + -4 + (int)puStack_38)" * (cast_expression "(int *)(iStack_44 + -4 + (int)puStack_38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_44 + -4 + (int)puStack_38)" ( (binary_expression "iStack_44 + -4 + (int)puStack_38" (binary_expression "iStack_44 + -4" identifier + number_literal) + (cast_expression "(int)puStack_38" ( (type_descriptor "int" primitive_type) ) identifier)) )))) == number_literal) )))) )))) ;) }))) (expression_statement "uVar16 = *puStack_40;" (assignment_expression "uVar16 = *puStack_40" identifier = (pointer_expression "*puStack_40" * identifier)) ;) (expression_statement "puVar11 = puStack_40;" (assignment_expression "puVar11 = puStack_40" identifier = identifier) ;) (while_statement "while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }" while (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }" { (expression_statement "puVar11 = puVar11 + 1;" (assignment_expression "puVar11 = puVar11 + 1" identifier = (binary_expression "puVar11 + 1" identifier + number_literal)) ;) (expression_statement "uVar16 = *puVar11;" (assignment_expression "uVar16 = *puVar11" identifier = (pointer_expression "*puVar11" * identifier)) ;) })) (expression_statement "puStack_4c = (uint *)0x0;" (assignment_expression "puStack_4c = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (for_statement "for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }" for ( ; (binary_expression "(uVar16 & 1) == 0" (parenthesized_expression "(uVar16 & 1)" ( (binary_expression "uVar16 & 1" identifier & number_literal) )) == number_literal) ; (assignment_expression "uVar16 = uVar16 >> 1 | 0x80000000" identifier = (binary_expression "uVar16 >> 1 | 0x80000000" (binary_expression "uVar16 >> 1" identifier >> number_literal) | number_literal)) ) (compound_statement "{\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }" { (expression_statement "puStack_4c = (uint *)((int)puStack_4c + 1);" (assignment_expression "puStack_4c = (uint *)((int)puStack_4c + 1)" identifier = (cast_expression "(uint *)((int)puStack_4c + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puStack_4c + 1)" ( (binary_expression "(int)puStack_4c + 1" (cast_expression "(int)puStack_4c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "iStack_54 = (int)puVar11 - piStack_3c[2];" (assignment_expression "iStack_54 = (int)puVar11 - piStack_3c[2]" identifier = (binary_expression "(int)puVar11 - piStack_3c[2]" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (subscript_expression "piStack_3c[2]" identifier [ number_literal ]))) ;) (expression_statement "piStack_3c = (int *)(iStack_54 >> 2);" (assignment_expression "piStack_3c = (int *)(iStack_54 >> 2)" identifier = (cast_expression "(int *)(iStack_54 >> 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_54 >> 2)" ( (binary_expression "iStack_54 >> 2" identifier >> number_literal) )))) ;) (expression_statement "puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);" (assignment_expression "puVar15 = (uint *)((int)puVar15 - (int)piStack_3c)" identifier = (cast_expression "(uint *)((int)puVar15 - (int)piStack_3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar15 - (int)piStack_3c)" ( (binary_expression "(int)puVar15 - (int)piStack_3c" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piStack_3c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "uVar16 = (int)puVar15 * 4;" (assignment_expression "uVar16 = (int)puVar15 * 4" identifier = (binary_expression "(int)puVar15 * 4" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "puStack_40 = puVar15;" (assignment_expression "puStack_40 = puVar15" identifier = identifier) ;) (if_statement "if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }" if (parenthesized_expression "(uVar16 < 0x7f01)" ( (binary_expression "uVar16 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }" { (expression_statement "iVar17 = -(uVar16 + 0x1b & 0xfffffff0);" (assignment_expression "iVar17 = -(uVar16 + 0x1b & 0xfffffff0)" identifier = (unary_expression "-(uVar16 + 0x1b & 0xfffffff0)" - (parenthesized_expression "(uVar16 + 0x1b & 0xfffffff0)" ( (binary_expression "uVar16 + 0x1b & 0xfffffff0" (binary_expression "uVar16 + 0x1b" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);" (assignment_expression "puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0)" identifier = (cast_expression "(uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0)" ( (binary_expression "(uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0" (call_expression "(uint)(puVar14 + iVar17 + 0xf)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar14 + iVar17 + 0xf)" ( (binary_expression "puVar14 + iVar17 + 0xf" (binary_expression "puVar14 + iVar17" identifier + identifier) + number_literal) ))) & number_literal) )))) ;) (expression_statement "puStack_60 = puStack_4c;" (assignment_expression "puStack_60 = puStack_4c" identifier = identifier) ;) (expression_statement "puVar14 = puVar14 + iVar17;" (assignment_expression "puVar14 = puVar14 + iVar17" identifier = (binary_expression "puVar14 + iVar17" identifier + identifier)) ;) }) (else_clause "else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }" else (compound_statement "{\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }" { (expression_statement "puStack_64 = puStack_4c;" (assignment_expression "puStack_64 = puStack_4c" identifier = identifier) ;) (expression_statement "*(uint *)(puVar14 + -0xc) = uVar16;" (assignment_expression "*(uint *)(puVar14 + -0xc) = uVar16" (pointer_expression "*(uint *)(puVar14 + -0xc)" * (cast_expression "(uint *)(puVar14 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0xc)" ( (binary_expression "puVar14 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar14 + -0x10) = &iStack_24;" (assignment_expression "*(int **)(puVar14 + -0x10) = &iStack_24" (pointer_expression "*(int **)(puVar14 + -0x10)" * (cast_expression "(int **)(puVar14 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = (pointer_expression "&iStack_24" & identifier)) ;) (expression_statement "puStack_60 = puVar11;" (assignment_expression "puStack_60 = puVar11" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x299f6;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x299f6" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" * (cast_expression "(undefined4 *)(puVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();" (assignment_expression "puStack_38 = (uint *)__gmp_tmp_reentrant_alloc()" identifier = (cast_expression "(uint *)__gmp_tmp_reentrant_alloc()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__gmp_tmp_reentrant_alloc()" identifier (argument_list "()" ( ))))) ;) (expression_statement "puVar11 = puStack_60;" (assignment_expression "puVar11 = puStack_60" identifier = identifier) ;) (expression_statement "puStack_60 = puStack_64;" (assignment_expression "puStack_60 = puStack_64" identifier = identifier) ;) }))) (expression_statement "puVar12 = puStack_40;" (assignment_expression "puVar12 = puStack_40" identifier = identifier) ;) (if_statement "if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }" if (parenthesized_expression "(puStack_60 == (uint *)0x0)" ( (binary_expression "puStack_60 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }" { (expression_statement "*(uint **)(puVar14 + -8) = puStack_40;" (assignment_expression "*(uint **)(puVar14 + -8) = puStack_40" (pointer_expression "*(uint **)(puVar14 + -8)" * (cast_expression "(uint **)(puVar14 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -8)" ( (binary_expression "puVar14 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar15 = puStack_48;" (assignment_expression "puVar15 = puStack_48" identifier = identifier) ;) (expression_statement "*(uint **)(puVar14 + -0xc) = puVar11;" (assignment_expression "*(uint **)(puVar14 + -0xc) = puVar11" (pointer_expression "*(uint **)(puVar14 + -0xc)" * (cast_expression "(uint **)(puVar14 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0xc)" ( (binary_expression "puVar14 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar14 + -0x10) = puStack_38;" (assignment_expression "*(uint **)(puVar14 + -0x10) = puStack_38" (pointer_expression "*(uint **)(puVar14 + -0x10)" * (cast_expression "(uint **)(puVar14 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar3 = *(code **)((int)puVar15 + 0x28);" (assignment_expression "pcVar3 = *(code **)((int)puVar15 + 0x28)" identifier = (pointer_expression "*(code **)((int)puVar15 + 0x28)" * (cast_expression "(code **)((int)puVar15 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar15 + 0x28)" ( (binary_expression "(int)puVar15 + 0x28" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x29913;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x29913" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" * (cast_expression "(undefined4 *)(puVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }" else (compound_statement "{\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }" { (expression_statement "*(uint **)(puVar14 + -4) = puStack_60;" (assignment_expression "*(uint **)(puVar14 + -4) = puStack_60" (pointer_expression "*(uint **)(puVar14 + -4)" * (cast_expression "(uint **)(puVar14 + -4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -4)" ( (binary_expression "puVar14 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar14 + -8) = puVar12;" (assignment_expression "*(uint **)(puVar14 + -8) = puVar12" (pointer_expression "*(uint **)(puVar14 + -8)" * (cast_expression "(uint **)(puVar14 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -8)" ( (binary_expression "puVar14 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar14 + -0xc) = puVar11;" (assignment_expression "*(uint **)(puVar14 + -0xc) = puVar11" (pointer_expression "*(uint **)(puVar14 + -0xc)" * (cast_expression "(uint **)(puVar14 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0xc)" ( (binary_expression "puVar14 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar11 = puStack_48;" (assignment_expression "puVar11 = puStack_48" identifier = identifier) ;) (expression_statement "*(uint **)(puVar14 + -0x10) = puStack_38;" (assignment_expression "*(uint **)(puVar14 + -0x10) = puStack_38" (pointer_expression "*(uint **)(puVar14 + -0x10)" * (cast_expression "(uint **)(puVar14 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar3 = *(code **)((int)puVar11 + 0x80);" (assignment_expression "pcVar3 = *(code **)((int)puVar11 + 0x80)" identifier = (pointer_expression "*(code **)((int)puVar11 + 0x80)" * (cast_expression "(code **)((int)puVar11 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar11 + 0x80)" ( (binary_expression "(int)puVar11 + 0x80" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x2970c;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x2970c" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" * (cast_expression "(undefined4 *)(puVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));" (assignment_expression "puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0))" identifier = (cast_expression "(uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0))" ( (binary_expression "(int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0)" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) - (call_expression "(uint)(puStack_38[(int)puVar15 + -1] == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puStack_38[(int)puVar15 + -1] == 0)" ( (binary_expression "puStack_38[(int)puVar15 + -1] == 0" (subscript_expression "puStack_38[(int)puVar15 + -1]" identifier [ (binary_expression "(int)puVar15 + -1" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ]) == number_literal) )))) )))) ;) }))) (expression_statement "puVar11 = puStack_38;" (assignment_expression "puVar11 = puStack_38" identifier = identifier) ;) (if_statement "if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }" if (parenthesized_expression "(iStack_58 <= iStack_54)" ( (binary_expression "iStack_58 <= iStack_54" identifier <= identifier) )) (compound_statement "{\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }" { (if_statement "if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }" if (parenthesized_expression "(iStack_58 < iStack_54)" ( (binary_expression "iStack_58 < iStack_54" identifier < identifier) )) (compound_statement "{\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }" { (expression_statement "piStack_3c = piStack_5c;" (assignment_expression "piStack_3c = piStack_5c" identifier = identifier) ;) (expression_statement "puStack_4c = puStack_50;" (assignment_expression "puStack_4c = puStack_50" identifier = identifier) ;) }) (else_clause "else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }" else (compound_statement "{\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }" { (expression_statement "puStack_4c = puStack_60;" (assignment_expression "puStack_4c = puStack_60" identifier = identifier) ;) (if_statement "if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }" if (parenthesized_expression "(puStack_50 < puStack_60)" ( (binary_expression "puStack_50 < puStack_60" identifier < identifier) )) (compound_statement "{\n                puStack_4c = puStack_50;\n              }" { (expression_statement "puStack_4c = puStack_50;" (assignment_expression "puStack_4c = puStack_50" identifier = identifier) ;) })) (expression_statement "piStack_3c = piStack_5c;" (assignment_expression "piStack_3c = piStack_5c" identifier = identifier) ;) }))) })) (if_statement "if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }" if (parenthesized_expression "(((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             )" ( (binary_expression "((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))" (parenthesized_expression "((int)puStack_34 < (int)puStack_40)" ( (binary_expression "(int)puStack_34 < (int)puStack_40" (cast_expression "(int)puStack_34" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puStack_40" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))" ( (parenthesized_expression "(puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1]))" ( (binary_expression "puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])" (binary_expression "puStack_40 == puStack_34" identifier == identifier) && (parenthesized_expression "(*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])" ( (binary_expression "*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1]" (pointer_expression "*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4)" * (cast_expression "(uint *)(iStack_44 + -4 + (int)puStack_40 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_44 + -4 + (int)puStack_40 * 4)" ( (binary_expression "iStack_44 + -4 + (int)puStack_40 * 4" (binary_expression "iStack_44 + -4" identifier + number_literal) + (binary_expression "(int)puStack_40 * 4" (cast_expression "(int)puStack_40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) < (subscript_expression "puStack_38[(int)puStack_40 + -1]" identifier [ (binary_expression "(int)puStack_40 + -1" (cast_expression "(int)puStack_40" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ])) ))) )) ))) )) (compound_statement "{\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }" { (expression_statement "*(uint **)(puVar14 + -0x10) = puStack_34;" (assignment_expression "*(uint **)(puVar14 + -0x10) = puStack_34" (pointer_expression "*(uint **)(puVar14 + -0x10)" * (cast_expression "(uint **)(puVar14 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar14 + -0x14) = iStack_44;" (assignment_expression "*(int *)(puVar14 + -0x14) = iStack_44" (pointer_expression "*(int *)(puVar14 + -0x14)" * (cast_expression "(int *)(puVar14 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar14 + -0x18) = puStack_40;" (assignment_expression "*(uint **)(puVar14 + -0x18) = puStack_40" (pointer_expression "*(uint **)(puVar14 + -0x18)" * (cast_expression "(uint **)(puVar14 + -0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x18)" ( (binary_expression "puVar14 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar14 + -0x1c) = puVar11;" (assignment_expression "*(uint **)(puVar14 + -0x1c) = puVar11" (pointer_expression "*(uint **)(puVar14 + -0x1c)" * (cast_expression "(uint **)(puVar14 + -0x1c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x1c)" ( (binary_expression "puVar14 + -0x1c" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }" else (compound_statement "{\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }" { (expression_statement "*(uint **)(puVar14 + -0x10) = puStack_40;" (assignment_expression "*(uint **)(puVar14 + -0x10) = puStack_40" (pointer_expression "*(uint **)(puVar14 + -0x10)" * (cast_expression "(uint **)(puVar14 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar14 + -0x14) = puVar11;" (assignment_expression "*(uint **)(puVar14 + -0x14) = puVar11" (pointer_expression "*(uint **)(puVar14 + -0x14)" * (cast_expression "(uint **)(puVar14 + -0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar14 + -0x18) = puStack_34;" (assignment_expression "*(uint **)(puVar14 + -0x18) = puStack_34" (pointer_expression "*(uint **)(puVar14 + -0x18)" * (cast_expression "(uint **)(puVar14 + -0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x18)" ( (binary_expression "puVar14 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar14 + -0x1c) = iStack_44;" (assignment_expression "*(int *)(puVar14 + -0x1c) = iStack_44" (pointer_expression "*(int *)(puVar14 + -0x1c)" * (cast_expression "(int *)(puVar14 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x1c)" ( (binary_expression "puVar14 + -0x1c" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "*(uint **)(puVar14 + -0x20) = puVar11;" (assignment_expression "*(uint **)(puVar14 + -0x20) = puVar11" (pointer_expression "*(uint **)(puVar14 + -0x20)" * (cast_expression "(uint **)(puVar14 + -0x20)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x20)" ( (binary_expression "puVar14 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x24) = 0x2977c;" (assignment_expression "*(undefined4 *)(puVar14 + -0x24) = 0x2977c" (pointer_expression "*(undefined4 *)(puVar14 + -0x24)" * (cast_expression "(undefined4 *)(puVar14 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x24)" ( (binary_expression "puVar14 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puStack_34 = (uint *)__gmpn_gcd();" (assignment_expression "puStack_34 = (uint *)__gmpn_gcd()" identifier = (cast_expression "(uint *)__gmpn_gcd()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__gmpn_gcd()" identifier (argument_list "()" ( ))))) ;) (expression_statement "iVar17 = (int)piStack_3c + (int)puStack_34;" (assignment_expression "iVar17 = (int)piStack_3c + (int)puStack_34" identifier = (binary_expression "(int)piStack_3c + (int)puStack_34" (cast_expression "(int)piStack_3c" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puStack_34" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }" if (parenthesized_expression "(puStack_4c == (uint *)0x0)" ( (binary_expression "puStack_4c == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }" { (if_statement "if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }" if (parenthesized_expression "(*param_1 < iVar17)" ( (binary_expression "*param_1 < iVar17" (pointer_expression "*param_1" * identifier) < identifier) )) (compound_statement "{\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }" { (expression_statement "*(int *)(puVar14 + -0xc) = iVar17;" (assignment_expression "*(int *)(puVar14 + -0xc) = iVar17" (pointer_expression "*(int *)(puVar14 + -0xc)" * (cast_expression "(int *)(puVar14 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0xc)" ( (binary_expression "puVar14 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar14 + -0x10) = param_1;" (assignment_expression "*(int **)(puVar14 + -0x10) = param_1" (pointer_expression "*(int **)(puVar14 + -0x10)" * (cast_expression "(int **)(puVar14 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x29a29;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x29a29" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" * (cast_expression "(undefined4 *)(puVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpz_realloc();" (call_expression "__gmpz_realloc()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "piVar4 = piStack_3c;" (assignment_expression "piVar4 = piStack_3c" identifier = identifier) ;) (expression_statement "puVar13 = (undefined4 *)param_1[2];" (assignment_expression "puVar13 = (undefined4 *)param_1[2]" identifier = (cast_expression "(undefined4 *)param_1[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (if_statement "if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }" if (parenthesized_expression "(piStack_3c != (int *)0x0)" ( (binary_expression "piStack_3c != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }" { (expression_statement "puVar10 = puVar13;" (assignment_expression "puVar10 = puVar13" identifier = identifier) ;) (do_statement "do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);" do (compound_statement "{\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              }" { (expression_statement "puVar7 = puVar10 + 1;" (assignment_expression "puVar7 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) (expression_statement "*puVar10 = 0;" (assignment_expression "*puVar10 = 0" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (expression_statement "puVar10 = puVar7;" (assignment_expression "puVar10 = puVar7" identifier = identifier) ;) }) while (parenthesized_expression "(puVar7 != puVar13 + (int)piStack_3c)" ( (binary_expression "puVar7 != puVar13 + (int)piStack_3c" identifier != (binary_expression "puVar13 + (int)piStack_3c" identifier + (cast_expression "(int)piStack_3c" ( (type_descriptor "int" primitive_type) ) identifier))) )) ;) })) (expression_statement "*(uint **)(puVar14 + -8) = puStack_34;" (assignment_expression "*(uint **)(puVar14 + -8) = puStack_34" (pointer_expression "*(uint **)(puVar14 + -8)" * (cast_expression "(uint **)(puVar14 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -8)" ( (binary_expression "puVar14 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar14 + -0xc) = puStack_38;" (assignment_expression "*(uint **)(puVar14 + -0xc) = puStack_38" (pointer_expression "*(uint **)(puVar14 + -0xc)" * (cast_expression "(uint **)(puVar14 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0xc)" ( (binary_expression "puVar14 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;" (assignment_expression "*(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4" (pointer_expression "*(undefined4 **)(puVar14 + -0x10)" * (cast_expression "(undefined4 **)(puVar14 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = (binary_expression "puVar13 + (int)piVar4" identifier + (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar3 = *(code **)((int)puStack_48 + 0x28);" (assignment_expression "pcVar3 = *(code **)((int)puStack_48 + 0x28)" identifier = (pointer_expression "*(code **)((int)puStack_48 + 0x28)" * (cast_expression "(code **)((int)puStack_48 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puStack_48 + 0x28)" ( (binary_expression "(int)puStack_48 + 0x28" (cast_expression "(int)puStack_48" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x298c4;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x298c4" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" * (cast_expression "(undefined4 *)(puVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }" else (compound_statement "{\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }" { (expression_statement "puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);" (assignment_expression "puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4)" identifier = (cast_expression "(uint *)(((int)puStack_34 + 0x3fffffff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)puStack_34 + 0x3fffffff) * 4)" ( (binary_expression "((int)puStack_34 + 0x3fffffff) * 4" (parenthesized_expression "((int)puStack_34 + 0x3fffffff)" ( (binary_expression "(int)puStack_34 + 0x3fffffff" (cast_expression "(int)puStack_34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) * number_literal) )))) ;) (expression_statement "iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);" (assignment_expression "iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0)" identifier = (binary_expression "iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0)" identifier + (call_expression "(uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0)" ( (binary_expression "puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0" (binary_expression "puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f)" (subscript_expression "puStack_38[(int)puStack_34 + 0x3fffffff]" identifier [ (binary_expression "(int)puStack_34 + 0x3fffffff" (cast_expression "(int)puStack_34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ]) >> (parenthesized_expression "(0x20U - (char)puStack_4c & 0x1f)" ( (binary_expression "0x20U - (char)puStack_4c & 0x1f" (binary_expression "0x20U - (char)puStack_4c" number_literal - (cast_expression "(char)puStack_4c" ( (type_descriptor "char" primitive_type) ) identifier)) & number_literal) ))) != number_literal) ))))) ;) (if_statement "if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }" if (parenthesized_expression "(*param_1 < iVar17)" ( (binary_expression "*param_1 < iVar17" (pointer_expression "*param_1" * identifier) < identifier) )) (compound_statement "{\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }" { (expression_statement "*(int *)(puVar14 + -0xc) = iVar17;" (assignment_expression "*(int *)(puVar14 + -0xc) = iVar17" (pointer_expression "*(int *)(puVar14 + -0xc)" * (cast_expression "(int *)(puVar14 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0xc)" ( (binary_expression "puVar14 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar14 + -0x10) = param_1;" (assignment_expression "*(int **)(puVar14 + -0x10) = param_1" (pointer_expression "*(int **)(puVar14 + -0x10)" * (cast_expression "(int **)(puVar14 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x29a14;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x29a14" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" * (cast_expression "(undefined4 *)(puVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpz_realloc();" (call_expression "__gmpz_realloc()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "piVar4 = piStack_3c;" (assignment_expression "piVar4 = piStack_3c" identifier = identifier) ;) (expression_statement "puVar13 = (undefined4 *)param_1[2];" (assignment_expression "puVar13 = (undefined4 *)param_1[2]" identifier = (cast_expression "(undefined4 *)param_1[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (if_statement "if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }" if (parenthesized_expression "(piStack_3c != (int *)0x0)" ( (binary_expression "piStack_3c != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }" { (expression_statement "puVar10 = puVar13;" (assignment_expression "puVar10 = puVar13" identifier = identifier) ;) (do_statement "do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);" do (compound_statement "{\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              }" { (expression_statement "puVar7 = puVar10 + 1;" (assignment_expression "puVar7 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) (expression_statement "*puVar10 = 0;" (assignment_expression "*puVar10 = 0" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (expression_statement "puVar10 = puVar7;" (assignment_expression "puVar10 = puVar7" identifier = identifier) ;) }) while (parenthesized_expression "(puVar7 != puVar13 + (int)piStack_3c)" ( (binary_expression "puVar7 != puVar13 + (int)piStack_3c" identifier != (binary_expression "puVar13 + (int)piStack_3c" identifier + (cast_expression "(int)piStack_3c" ( (type_descriptor "int" primitive_type) ) identifier))) )) ;) })) (expression_statement "*(uint **)(puVar14 + -4) = puStack_4c;" (assignment_expression "*(uint **)(puVar14 + -4) = puStack_4c" (pointer_expression "*(uint **)(puVar14 + -4)" * (cast_expression "(uint **)(puVar14 + -4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -4)" ( (binary_expression "puVar14 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar14 + -8) = puStack_34;" (assignment_expression "*(uint **)(puVar14 + -8) = puStack_34" (pointer_expression "*(uint **)(puVar14 + -8)" * (cast_expression "(uint **)(puVar14 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -8)" ( (binary_expression "puVar14 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar11 = puStack_48;" (assignment_expression "puVar11 = puStack_48" identifier = identifier) ;) (expression_statement "*(uint **)(puVar14 + -0xc) = puStack_38;" (assignment_expression "*(uint **)(puVar14 + -0xc) = puStack_38" (pointer_expression "*(uint **)(puVar14 + -0xc)" * (cast_expression "(uint **)(puVar14 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0xc)" ( (binary_expression "puVar14 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;" (assignment_expression "*(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4" (pointer_expression "*(undefined4 **)(puVar14 + -0x10)" * (cast_expression "(undefined4 **)(puVar14 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = (binary_expression "puVar13 + (int)piVar4" identifier + (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar3 = *(code **)((int)puVar11 + 0x38);" (assignment_expression "pcVar3 = *(code **)((int)puVar11 + 0x38)" identifier = (pointer_expression "*(code **)((int)puVar11 + 0x38)" * (cast_expression "(code **)((int)puVar11 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar11 + 0x38)" ( (binary_expression "(int)puVar11 + 0x38" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x29804;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x29804" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" * (cast_expression "(undefined4 *)(puVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar8 = (*pcVar3)();" (assignment_expression "iVar8 = (*pcVar3)()" identifier = (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }" { (expression_statement "*(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;" (assignment_expression "*(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8" (pointer_expression "*(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40)" * (cast_expression "(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40)" ( (binary_expression "(int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40" (cast_expression "(int)(puVar13 + (int)piVar4 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar13 + (int)piVar4 + 1)" ( (binary_expression "puVar13 + (int)piVar4 + 1" (binary_expression "puVar13 + (int)piVar4" identifier + (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) ))) + (cast_expression "(int)puStack_40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = identifier) ;) })) }))) (expression_statement "param_1[1] = iVar17;" (assignment_expression "param_1[1] = iVar17" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }" if (parenthesized_expression "(iStack_24 != 0)" ( (binary_expression "iStack_24 != 0" identifier != number_literal) )) (compound_statement "{\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }" { (expression_statement "*(int *)(puVar14 + -0x10) = iStack_24;" (assignment_expression "*(int *)(puVar14 + -0x10) = iStack_24" (pointer_expression "*(int *)(puVar14 + -0x10)" * (cast_expression "(int *)(puVar14 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x10)" ( (binary_expression "puVar14 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x2982c;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x2982c" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" * (cast_expression "(undefined4 *)(puVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -0x14)" ( (binary_expression "puVar14 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmp_tmp_reentrant_free();" (call_expression "__gmp_tmp_reentrant_free()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto LAB_00029590;" goto statement_identifier ;) })) (expression_statement "param_1[1] = 1;" (assignment_expression "param_1[1] = 1" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar13 = (undefined4 *)param_1[2];" (assignment_expression "puVar13 = (undefined4 *)param_1[2]" identifier = (cast_expression "(undefined4 *)param_1[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar16 = *puVar11;" (assignment_expression "uVar16 = *puVar11" identifier = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "puVar11 = puStack_40;" (assignment_expression "puVar11 = puStack_40" identifier = identifier) ;) (expression_statement "puVar15 = puStack_34;" (assignment_expression "puVar15 = puStack_34" identifier = identifier) ;) }))) (expression_statement "ppuStack_30 = &__DT_PLTGOT;" (assignment_expression "ppuStack_30 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "uVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);" (assignment_expression "uVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16)" identifier = (call_expression "(**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16)" (parenthesized_expression "(**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))" ( (pointer_expression "**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34)" * (pointer_expression "*(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34)" * (cast_expression "(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR___gmpn_cpuvec_00098d94 + 0x34)" ( (binary_expression "PTR___gmpn_cpuvec_00098d94 + 0x34" identifier + number_literal) ))))) )) (argument_list "(puVar11,puVar15,uVar16)" ( identifier , identifier , identifier )))) ;) (expression_statement "puVar14 = auStack_6c;" (assignment_expression "puVar14 = auStack_6c" identifier = identifier) ;) (expression_statement "*puVar13 = uVar9;" (assignment_expression "*puVar13 = uVar9" (pointer_expression "*puVar13" * identifier) = identifier) ;) (goto_statement "goto LAB_00029590;" goto statement_identifier ;) })) (expression_statement "param_1[1] = (int)puStack_34;" (assignment_expression "param_1[1] = (int)puStack_34" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (cast_expression "(int)puStack_34" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (param_2 == param_1) goto LAB_00029590;" if (parenthesized_expression "(param_2 == param_1)" ( (binary_expression "param_2 == param_1" identifier == identifier) )) (goto_statement "goto LAB_00029590;" goto statement_identifier ;)) (expression_statement "puVar11 = puStack_40;" (assignment_expression "puVar11 = puStack_40" identifier = identifier) ;) (expression_statement "puVar15 = puStack_34;" (assignment_expression "puVar15 = puStack_34" identifier = identifier) ;) (expression_statement "ppuStack_30 = &__DT_PLTGOT;" (assignment_expression "ppuStack_30 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (if_statement "if (*param_1 < (int)puStack_34) {\n      __gmpz_realloc(param_1,puStack_34);\n      puVar11 = puStack_40;\n      puVar15 = puStack_34;\n    }" if (parenthesized_expression "(*param_1 < (int)puStack_34)" ( (binary_expression "*param_1 < (int)puStack_34" (pointer_expression "*param_1" * identifier) < (cast_expression "(int)puStack_34" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      __gmpz_realloc(param_1,puStack_34);\n      puVar11 = puStack_40;\n      puVar15 = puStack_34;\n    }" { (expression_statement "__gmpz_realloc(param_1,puStack_34);" (call_expression "__gmpz_realloc(param_1,puStack_34)" identifier (argument_list "(param_1,puStack_34)" ( identifier , identifier ))) ;) (expression_statement "puVar11 = puStack_40;" (assignment_expression "puVar11 = puStack_40" identifier = identifier) ;) (expression_statement "puVar15 = puStack_34;" (assignment_expression "puVar15 = puStack_34" identifier = identifier) ;) })) }))) (expression_statement "(**(code **)(ppuStack_30[-0x9b] + 0x28))(param_1[2],puVar11,puVar15);" (call_expression "(**(code **)(ppuStack_30[-0x9b] + 0x28))(param_1[2],puVar11,puVar15)" (parenthesized_expression "(**(code **)(ppuStack_30[-0x9b] + 0x28))" ( (pointer_expression "**(code **)(ppuStack_30[-0x9b] + 0x28)" * (pointer_expression "*(code **)(ppuStack_30[-0x9b] + 0x28)" * (cast_expression "(code **)(ppuStack_30[-0x9b] + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(ppuStack_30[-0x9b] + 0x28)" ( (binary_expression "ppuStack_30[-0x9b] + 0x28" (subscript_expression "ppuStack_30[-0x9b]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1[2],puVar11,puVar15)" ( (subscript_expression "param_1[2]" identifier [ number_literal ]) , identifier , identifier ))) ;) (expression_statement "puVar14 = auStack_6c;" (assignment_expression "puVar14 = auStack_6c" identifier = identifier) ;) (labeled_statement "LAB_00029590:\n  if (iStack_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" statement_identifier : (if_statement "if (iStack_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(iStack_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iStack_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "*(undefined4 *)(puVar14 + -4) = 0x29a36;" (assignment_expression "*(undefined4 *)(puVar14 + -4) = 0x29a36" (pointer_expression "*(undefined4 *)(puVar14 + -4)" * (cast_expression "(undefined4 *)(puVar14 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -4)" ( (binary_expression "puVar14 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00079d30();" (call_expression "FUN_00079d30()" identifier (argument_list "()" ( ))) ;) })))
(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)) ))) (compound_statement { (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 * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (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 (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ^ IDENT) )) - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) )) - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) (expression_statement (assignment_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 *)) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) }) (else_clause else (compound_statement { (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (for_statement for ( ; (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) ; (assignment_expression IDENT = (binary_expression (binary_expression IDENT >> LIT) | LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * 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 = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = 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 == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression 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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = 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 = (subscript_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 IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) == LIT) )))) )))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (for_statement for ( ; (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) ; (assignment_expression IDENT = (binary_expression (binary_expression IDENT >> LIT) | LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + IDENT) + LIT) ))) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + 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) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (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 == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) }) (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 (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 = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ]) == LIT) )))) )))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == IDENT) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) < (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ])) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (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 (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (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 IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (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 + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )) * LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ]) >> (parenthesized_expression ( (binary_expression (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) & LIT) ))) != LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (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 (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 + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) + LIT) ))) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) = IDENT) ;) })) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (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 ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "void __gmpz_gcd(int *param_1,int *param_2,int *param_3)\n\n{\n  uint uVar1;\n  undefined *puVar2;\n  code *pcVar3;\n  int *piVar4;\n  uint *puVar5;\n  undefined **ppuVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined4 *puVar10;\n  uint *puVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  undefined1 *puVar14;\n  uint *puVar15;\n  uint uVar16;\n  int iVar17;\n  int in_GS_OFFSET;\n  undefined1 auStack_6c [8];\n  uint *puStack_64;\n  uint *puStack_60;\n  int *piStack_5c;\n  int iStack_58;\n  int iStack_54;\n  uint *puStack_50;\n  uint *puStack_4c;\n  uint *puStack_48;\n  int iStack_44;\n  uint *puStack_40;\n  int *piStack_3c;\n  uint *puStack_38;\n  uint *puStack_34;\n  undefined **ppuStack_30;\n  int iStack_24;\n  int iStack_20;\n  undefined **ppuStack_10;\n  \n  ppuStack_10 = &__DT_PLTGOT;\n  puVar14 = auStack_6c;\n  ppuStack_30 = &__DT_PLTGOT;\n  puStack_38 = (uint *)param_2;\n  uVar16 = param_2[1];\n  iStack_20 = *(int *)(in_GS_OFFSET + 0x14);\n  puVar11 = (uint *)param_3[2];\n  piStack_3c = param_3;\n  uVar1 = param_3[1];\n  puVar15 = (uint *)(((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f));\n  if (uVar16 == 0) {\n    param_1[1] = (int)puVar15;\n    puVar14 = auStack_6c;\n    ppuStack_30 = &__DT_PLTGOT;\n    if (param_3 == param_1) goto LAB_00029590;\n    if (*param_1 < (int)puVar15) {\n      puStack_34 = puVar11;\n      __gmpz_realloc(param_1,puVar15);\n      puVar11 = puStack_34;\n    }\n  }\n  else {\n    puStack_40 = (uint *)param_2[2];\n    puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f));\n    if (uVar1 != 0) {\n      if (puStack_34 == (uint *)0x1) {\n        puVar13 = (undefined4 *)param_1[2];\n        param_1[1] = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }\n        param_1[1] = 1;\n        puVar13 = (undefined4 *)param_1[2];\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }\n      ppuStack_30 = &__DT_PLTGOT;\n      uVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);\n      puVar14 = auStack_6c;\n      *puVar13 = uVar9;\n      goto LAB_00029590;\n    }\n    param_1[1] = (int)puStack_34;\n    if (param_2 == param_1) goto LAB_00029590;\n    puVar11 = puStack_40;\n    puVar15 = puStack_34;\n    ppuStack_30 = &__DT_PLTGOT;\n    if (*param_1 < (int)puStack_34) {\n      __gmpz_realloc(param_1,puStack_34);\n      puVar11 = puStack_40;\n      puVar15 = puStack_34;\n    }\n  }\n  (**(code **)(ppuStack_30[-0x9b] + 0x28))(param_1[2],puVar11,puVar15);\n  puVar14 = auStack_6c;\nLAB_00029590:\n  if (iStack_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  *(undefined4 *)(puVar14 + -4) = 0x29a36;\n  FUN_00079d30();\n}" (primitive_type "void") (function_declarator "__gmpz_gcd(int *param_1,int *param_2,int *param_3)" (identifier "__gmpz_gcd") (parameter_list "(int *param_1,int *param_2,int *param_3)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  uint uVar1;\n  undefined *puVar2;\n  code *pcVar3;\n  int *piVar4;\n  uint *puVar5;\n  undefined **ppuVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined4 *puVar10;\n  uint *puVar11;\n  uint *puVar12;\n  undefined4 *puVar13;\n  undefined1 *puVar14;\n  uint *puVar15;\n  uint uVar16;\n  int iVar17;\n  int in_GS_OFFSET;\n  undefined1 auStack_6c [8];\n  uint *puStack_64;\n  uint *puStack_60;\n  int *piStack_5c;\n  int iStack_58;\n  int iStack_54;\n  uint *puStack_50;\n  uint *puStack_4c;\n  uint *puStack_48;\n  int iStack_44;\n  uint *puStack_40;\n  int *piStack_3c;\n  uint *puStack_38;\n  uint *puStack_34;\n  undefined **ppuStack_30;\n  int iStack_24;\n  int iStack_20;\n  undefined **ppuStack_10;\n  \n  ppuStack_10 = &__DT_PLTGOT;\n  puVar14 = auStack_6c;\n  ppuStack_30 = &__DT_PLTGOT;\n  puStack_38 = (uint *)param_2;\n  uVar16 = param_2[1];\n  iStack_20 = *(int *)(in_GS_OFFSET + 0x14);\n  puVar11 = (uint *)param_3[2];\n  piStack_3c = param_3;\n  uVar1 = param_3[1];\n  puVar15 = (uint *)(((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f));\n  if (uVar16 == 0) {\n    param_1[1] = (int)puVar15;\n    puVar14 = auStack_6c;\n    ppuStack_30 = &__DT_PLTGOT;\n    if (param_3 == param_1) goto LAB_00029590;\n    if (*param_1 < (int)puVar15) {\n      puStack_34 = puVar11;\n      __gmpz_realloc(param_1,puVar15);\n      puVar11 = puStack_34;\n    }\n  }\n  else {\n    puStack_40 = (uint *)param_2[2];\n    puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f));\n    if (uVar1 != 0) {\n      if (puStack_34 == (uint *)0x1) {\n        puVar13 = (undefined4 *)param_1[2];\n        param_1[1] = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }\n        param_1[1] = 1;\n        puVar13 = (undefined4 *)param_1[2];\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }\n      ppuStack_30 = &__DT_PLTGOT;\n      uVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);\n      puVar14 = auStack_6c;\n      *puVar13 = uVar9;\n      goto LAB_00029590;\n    }\n    param_1[1] = (int)puStack_34;\n    if (param_2 == param_1) goto LAB_00029590;\n    puVar11 = puStack_40;\n    puVar15 = puStack_34;\n    ppuStack_30 = &__DT_PLTGOT;\n    if (*param_1 < (int)puStack_34) {\n      __gmpz_realloc(param_1,puStack_34);\n      puVar11 = puStack_40;\n      puVar15 = puStack_34;\n    }\n  }\n  (**(code **)(ppuStack_30[-0x9b] + 0x28))(param_1[2],puVar11,puVar15);\n  puVar14 = auStack_6c;\nLAB_00029590:\n  if (iStack_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  *(undefined4 *)(puVar14 + -4) = 0x29a36;\n  FUN_00079d30();\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "code *pcVar3;" (type_identifier "code") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "uint *puVar5;" (type_identifier "uint") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined **ppuVar6;" (type_identifier "undefined") (pointer_declarator "**ppuVar6" (* "*") (pointer_declarator "*ppuVar6" (* "*") (identifier "ppuVar6"))) (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "undefined4 *puVar10;" (type_identifier "undefined4") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "uint *puVar11;" (type_identifier "uint") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "uint *puVar12;" (type_identifier "uint") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "undefined4 *puVar13;" (type_identifier "undefined4") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "undefined1 *puVar14;" (type_identifier "undefined1") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "uint *puVar15;" (type_identifier "uint") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "undefined1 auStack_6c [8];" (type_identifier "undefined1") (array_declarator "auStack_6c [8]" (identifier "auStack_6c") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "uint *puStack_64;" (type_identifier "uint") (pointer_declarator "*puStack_64" (* "*") (identifier "puStack_64")) (; ";")) (declaration "uint *puStack_60;" (type_identifier "uint") (pointer_declarator "*puStack_60" (* "*") (identifier "puStack_60")) (; ";")) (declaration "int *piStack_5c;" (primitive_type "int") (pointer_declarator "*piStack_5c" (* "*") (identifier "piStack_5c")) (; ";")) (declaration "int iStack_58;" (primitive_type "int") (identifier "iStack_58") (; ";")) (declaration "int iStack_54;" (primitive_type "int") (identifier "iStack_54") (; ";")) (declaration "uint *puStack_50;" (type_identifier "uint") (pointer_declarator "*puStack_50" (* "*") (identifier "puStack_50")) (; ";")) (declaration "uint *puStack_4c;" (type_identifier "uint") (pointer_declarator "*puStack_4c" (* "*") (identifier "puStack_4c")) (; ";")) (declaration "uint *puStack_48;" (type_identifier "uint") (pointer_declarator "*puStack_48" (* "*") (identifier "puStack_48")) (; ";")) (declaration "int iStack_44;" (primitive_type "int") (identifier "iStack_44") (; ";")) (declaration "uint *puStack_40;" (type_identifier "uint") (pointer_declarator "*puStack_40" (* "*") (identifier "puStack_40")) (; ";")) (declaration "int *piStack_3c;" (primitive_type "int") (pointer_declarator "*piStack_3c" (* "*") (identifier "piStack_3c")) (; ";")) (declaration "uint *puStack_38;" (type_identifier "uint") (pointer_declarator "*puStack_38" (* "*") (identifier "puStack_38")) (; ";")) (declaration "uint *puStack_34;" (type_identifier "uint") (pointer_declarator "*puStack_34" (* "*") (identifier "puStack_34")) (; ";")) (declaration "undefined **ppuStack_30;" (type_identifier "undefined") (pointer_declarator "**ppuStack_30" (* "*") (pointer_declarator "*ppuStack_30" (* "*") (identifier "ppuStack_30"))) (; ";")) (declaration "int iStack_24;" (primitive_type "int") (identifier "iStack_24") (; ";")) (declaration "int iStack_20;" (primitive_type "int") (identifier "iStack_20") (; ";")) (declaration "undefined **ppuStack_10;" (type_identifier "undefined") (pointer_declarator "**ppuStack_10" (* "*") (pointer_declarator "*ppuStack_10" (* "*") (identifier "ppuStack_10"))) (; ";")) (expression_statement "ppuStack_10 = &__DT_PLTGOT;" (assignment_expression "ppuStack_10 = &__DT_PLTGOT" (identifier "ppuStack_10") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (expression_statement "puVar14 = auStack_6c;" (assignment_expression "puVar14 = auStack_6c" (identifier "puVar14") (= "=") (identifier "auStack_6c")) (; ";")) (expression_statement "ppuStack_30 = &__DT_PLTGOT;" (assignment_expression "ppuStack_30 = &__DT_PLTGOT" (identifier "ppuStack_30") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (expression_statement "puStack_38 = (uint *)param_2;" (assignment_expression "puStack_38 = (uint *)param_2" (identifier "puStack_38") (= "=") (cast_expression "(uint *)param_2" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2"))) (; ";")) (expression_statement "uVar16 = param_2[1];" (assignment_expression "uVar16 = param_2[1]" (identifier "uVar16") (= "=") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iStack_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iStack_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "iStack_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "puVar11 = (uint *)param_3[2];" (assignment_expression "puVar11 = (uint *)param_3[2]" (identifier "puVar11") (= "=") (cast_expression "(uint *)param_3[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "piStack_3c = param_3;" (assignment_expression "piStack_3c = param_3" (identifier "piStack_3c") (= "=") (identifier "param_3")) (; ";")) (expression_statement "uVar1 = param_3[1];" (assignment_expression "uVar1 = param_3[1]" (identifier "uVar1") (= "=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar15 = (uint *)(((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f));" (assignment_expression "puVar15 = (uint *)(((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f))" (identifier "puVar15") (= "=") (cast_expression "(uint *)(((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f))" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f))" (( "(") (binary_expression "((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f)" (parenthesized_expression "((int)uVar1 >> 0x1f ^ uVar1)" (( "(") (binary_expression "(int)uVar1 >> 0x1f ^ uVar1" (binary_expression "(int)uVar1 >> 0x1f" (cast_expression "(int)uVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar1")) (>> ">>") (number_literal "0x1f")) (^ "^") (identifier "uVar1")) () ")")) (- "-") (parenthesized_expression "((int)uVar1 >> 0x1f)" (( "(") (binary_expression "(int)uVar1 >> 0x1f" (cast_expression "(int)uVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar1")) (>> ">>") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (if_statement "if (uVar16 == 0) {\n    param_1[1] = (int)puVar15;\n    puVar14 = auStack_6c;\n    ppuStack_30 = &__DT_PLTGOT;\n    if (param_3 == param_1) goto LAB_00029590;\n    if (*param_1 < (int)puVar15) {\n      puStack_34 = puVar11;\n      __gmpz_realloc(param_1,puVar15);\n      puVar11 = puStack_34;\n    }\n  }\n  else {\n    puStack_40 = (uint *)param_2[2];\n    puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f));\n    if (uVar1 != 0) {\n      if (puStack_34 == (uint *)0x1) {\n        puVar13 = (undefined4 *)param_1[2];\n        param_1[1] = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }\n        param_1[1] = 1;\n        puVar13 = (undefined4 *)param_1[2];\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }\n      ppuStack_30 = &__DT_PLTGOT;\n      uVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);\n      puVar14 = auStack_6c;\n      *puVar13 = uVar9;\n      goto LAB_00029590;\n    }\n    param_1[1] = (int)puStack_34;\n    if (param_2 == param_1) goto LAB_00029590;\n    puVar11 = puStack_40;\n    puVar15 = puStack_34;\n    ppuStack_30 = &__DT_PLTGOT;\n    if (*param_1 < (int)puStack_34) {\n      __gmpz_realloc(param_1,puStack_34);\n      puVar11 = puStack_40;\n      puVar15 = puStack_34;\n    }\n  }" (if "if") (parenthesized_expression "(uVar16 == 0)" (( "(") (binary_expression "uVar16 == 0" (identifier "uVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    param_1[1] = (int)puVar15;\n    puVar14 = auStack_6c;\n    ppuStack_30 = &__DT_PLTGOT;\n    if (param_3 == param_1) goto LAB_00029590;\n    if (*param_1 < (int)puVar15) {\n      puStack_34 = puVar11;\n      __gmpz_realloc(param_1,puVar15);\n      puVar11 = puStack_34;\n    }\n  }" ({ "{") (expression_statement "param_1[1] = (int)puVar15;" (assignment_expression "param_1[1] = (int)puVar15" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int)puVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar15"))) (; ";")) (expression_statement "puVar14 = auStack_6c;" (assignment_expression "puVar14 = auStack_6c" (identifier "puVar14") (= "=") (identifier "auStack_6c")) (; ";")) (expression_statement "ppuStack_30 = &__DT_PLTGOT;" (assignment_expression "ppuStack_30 = &__DT_PLTGOT" (identifier "ppuStack_30") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (if_statement "if (param_3 == param_1) goto LAB_00029590;" (if "if") (parenthesized_expression "(param_3 == param_1)" (( "(") (binary_expression "param_3 == param_1" (identifier "param_3") (== "==") (identifier "param_1")) () ")")) (goto_statement "goto LAB_00029590;" (goto "goto") (statement_identifier "LAB_00029590") (; ";"))) (if_statement "if (*param_1 < (int)puVar15) {\n      puStack_34 = puVar11;\n      __gmpz_realloc(param_1,puVar15);\n      puVar11 = puStack_34;\n    }" (if "if") (parenthesized_expression "(*param_1 < (int)puVar15)" (( "(") (binary_expression "*param_1 < (int)puVar15" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (< "<") (cast_expression "(int)puVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar15"))) () ")")) (compound_statement "{\n      puStack_34 = puVar11;\n      __gmpz_realloc(param_1,puVar15);\n      puVar11 = puStack_34;\n    }" ({ "{") (expression_statement "puStack_34 = puVar11;" (assignment_expression "puStack_34 = puVar11" (identifier "puStack_34") (= "=") (identifier "puVar11")) (; ";")) (expression_statement "__gmpz_realloc(param_1,puVar15);" (call_expression "__gmpz_realloc(param_1,puVar15)" (identifier "__gmpz_realloc") (argument_list "(param_1,puVar15)" (( "(") (identifier "param_1") (, ",") (identifier "puVar15") () ")"))) (; ";")) (expression_statement "puVar11 = puStack_34;" (assignment_expression "puVar11 = puStack_34" (identifier "puVar11") (= "=") (identifier "puStack_34")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    puStack_40 = (uint *)param_2[2];\n    puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f));\n    if (uVar1 != 0) {\n      if (puStack_34 == (uint *)0x1) {\n        puVar13 = (undefined4 *)param_1[2];\n        param_1[1] = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }\n        param_1[1] = 1;\n        puVar13 = (undefined4 *)param_1[2];\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }\n      ppuStack_30 = &__DT_PLTGOT;\n      uVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);\n      puVar14 = auStack_6c;\n      *puVar13 = uVar9;\n      goto LAB_00029590;\n    }\n    param_1[1] = (int)puStack_34;\n    if (param_2 == param_1) goto LAB_00029590;\n    puVar11 = puStack_40;\n    puVar15 = puStack_34;\n    ppuStack_30 = &__DT_PLTGOT;\n    if (*param_1 < (int)puStack_34) {\n      __gmpz_realloc(param_1,puStack_34);\n      puVar11 = puStack_40;\n      puVar15 = puStack_34;\n    }\n  }" (else "else") (compound_statement "{\n    puStack_40 = (uint *)param_2[2];\n    puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f));\n    if (uVar1 != 0) {\n      if (puStack_34 == (uint *)0x1) {\n        puVar13 = (undefined4 *)param_1[2];\n        param_1[1] = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }\n        param_1[1] = 1;\n        puVar13 = (undefined4 *)param_1[2];\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }\n      ppuStack_30 = &__DT_PLTGOT;\n      uVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);\n      puVar14 = auStack_6c;\n      *puVar13 = uVar9;\n      goto LAB_00029590;\n    }\n    param_1[1] = (int)puStack_34;\n    if (param_2 == param_1) goto LAB_00029590;\n    puVar11 = puStack_40;\n    puVar15 = puStack_34;\n    ppuStack_30 = &__DT_PLTGOT;\n    if (*param_1 < (int)puStack_34) {\n      __gmpz_realloc(param_1,puStack_34);\n      puVar11 = puStack_40;\n      puVar15 = puStack_34;\n    }\n  }" ({ "{") (expression_statement "puStack_40 = (uint *)param_2[2];" (assignment_expression "puStack_40 = (uint *)param_2[2]" (identifier "puStack_40") (= "=") (cast_expression "(uint *)param_2[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f));" (assignment_expression "puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f))" (identifier "puStack_34") (= "=") (cast_expression "(uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f))" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f))" (( "(") (binary_expression "(uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f)" (parenthesized_expression "(uVar16 ^ (int)uVar16 >> 0x1f)" (( "(") (binary_expression "uVar16 ^ (int)uVar16 >> 0x1f" (identifier "uVar16") (^ "^") (binary_expression "(int)uVar16 >> 0x1f" (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16")) (>> ">>") (number_literal "0x1f"))) () ")")) (- "-") (parenthesized_expression "((int)uVar16 >> 0x1f)" (( "(") (binary_expression "(int)uVar16 >> 0x1f" (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16")) (>> ">>") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (if_statement "if (uVar1 != 0) {\n      if (puStack_34 == (uint *)0x1) {\n        puVar13 = (undefined4 *)param_1[2];\n        param_1[1] = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }\n        param_1[1] = 1;\n        puVar13 = (undefined4 *)param_1[2];\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }\n      ppuStack_30 = &__DT_PLTGOT;\n      uVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);\n      puVar14 = auStack_6c;\n      *puVar13 = uVar9;\n      goto LAB_00029590;\n    }" (if "if") (parenthesized_expression "(uVar1 != 0)" (( "(") (binary_expression "uVar1 != 0" (identifier "uVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (puStack_34 == (uint *)0x1) {\n        puVar13 = (undefined4 *)param_1[2];\n        param_1[1] = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }\n        param_1[1] = 1;\n        puVar13 = (undefined4 *)param_1[2];\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }\n      ppuStack_30 = &__DT_PLTGOT;\n      uVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);\n      puVar14 = auStack_6c;\n      *puVar13 = uVar9;\n      goto LAB_00029590;\n    }" ({ "{") (if_statement "if (puStack_34 == (uint *)0x1) {\n        puVar13 = (undefined4 *)param_1[2];\n        param_1[1] = 1;\n        uVar16 = *puStack_40;\n      }\n      else {\n        if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }\n        param_1[1] = 1;\n        puVar13 = (undefined4 *)param_1[2];\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }" (if "if") (parenthesized_expression "(puStack_34 == (uint *)0x1)" (( "(") (binary_expression "puStack_34 == (uint *)0x1" (identifier "puStack_34") (== "==") (cast_expression "(uint *)0x1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n        puVar13 = (undefined4 *)param_1[2];\n        param_1[1] = 1;\n        uVar16 = *puStack_40;\n      }" ({ "{") (expression_statement "puVar13 = (undefined4 *)param_1[2];" (assignment_expression "puVar13 = (undefined4 *)param_1[2]" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)param_1[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "param_1[1] = 1;" (assignment_expression "param_1[1] = 1" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar16 = *puStack_40;" (assignment_expression "uVar16 = *puStack_40" (identifier "uVar16") (= "=") (pointer_expression "*puStack_40" (* "*") (identifier "puStack_40"))) (; ";")) (} "}")) (else_clause "else {\n        if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }\n        param_1[1] = 1;\n        puVar13 = (undefined4 *)param_1[2];\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }" (else "else") (compound_statement "{\n        if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }\n        param_1[1] = 1;\n        puVar13 = (undefined4 *)param_1[2];\n        uVar16 = *puVar11;\n        puVar11 = puStack_40;\n        puVar15 = puStack_34;\n      }" ({ "{") (if_statement "if (puVar15 != (uint *)0x1) {\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }" (if "if") (parenthesized_expression "(puVar15 != (uint *)0x1)" (( "(") (binary_expression "puVar15 != (uint *)0x1" (identifier "puVar15") (!= "!=") (cast_expression "(uint *)0x1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n          iStack_24 = 0;\n          uVar16 = *puStack_40;\n          puVar12 = puStack_40;\n          if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }\n          puStack_50 = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }\n          puStack_38 = (uint *)((int)puStack_34 * 4);\n          if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }\n          ppuVar6 = ppuStack_30;\n          puVar5 = puStack_34;\n          if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }\n          uVar16 = *puStack_40;\n          puVar11 = puStack_40;\n          while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }\n          puStack_4c = (uint *)0x0;\n          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }\n          iStack_54 = (int)puVar11 - piStack_3c[2];\n          piStack_3c = (int *)(iStack_54 >> 2);\n          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);\n          uVar16 = (int)puVar15 * 4;\n          puStack_40 = puVar15;\n          if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }\n          puVar12 = puStack_40;\n          if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }\n          puVar11 = puStack_38;\n          if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }\n          if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }\n          *(uint **)(puVar14 + -0x20) = puVar11;\n          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;\n          puStack_34 = (uint *)__gmpn_gcd();\n          iVar17 = (int)piStack_3c + (int)puStack_34;\n          if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }\n          param_1[1] = iVar17;\n          if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }\n          goto LAB_00029590;\n        }" ({ "{") (expression_statement "iStack_24 = 0;" (assignment_expression "iStack_24 = 0" (identifier "iStack_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar16 = *puStack_40;" (assignment_expression "uVar16 = *puStack_40" (identifier "uVar16") (= "=") (pointer_expression "*puStack_40" (* "*") (identifier "puStack_40"))) (; ";")) (expression_statement "puVar12 = puStack_40;" (assignment_expression "puVar12 = puStack_40" (identifier "puVar12") (= "=") (identifier "puStack_40")) (; ";")) (if_statement "if (uVar16 == 0) {\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }\n          else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }" (if "if") (parenthesized_expression "(uVar16 == 0)" (( "(") (binary_expression "uVar16 == 0" (identifier "uVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);\n            iStack_58 = (int)puVar12 - (int)puStack_40;\n            piStack_5c = (int *)(iStack_58 >> 2);\n            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);\n          }" ({ "{") (do_statement "do {\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            } while (uVar16 == 0);" (do "do") (compound_statement "{\n              puVar12 = puVar12 + 1;\n              uVar16 = *puVar12;\n            }" ({ "{") (expression_statement "puVar12 = puVar12 + 1;" (assignment_expression "puVar12 = puVar12 + 1" (identifier "puVar12") (= "=") (binary_expression "puVar12 + 1" (identifier "puVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar16 = *puVar12;" (assignment_expression "uVar16 = *puVar12" (identifier "uVar16") (= "=") (pointer_expression "*puVar12" (* "*") (identifier "puVar12"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar16 == 0)" (( "(") (binary_expression "uVar16 == 0" (identifier "uVar16") (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "iStack_58 = (int)puVar12 - (int)puStack_40;" (assignment_expression "iStack_58 = (int)puVar12 - (int)puStack_40" (identifier "iStack_58") (= "=") (binary_expression "(int)puVar12 - (int)puStack_40" (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12")) (- "-") (cast_expression "(int)puStack_40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_40")))) (; ";")) (expression_statement "piStack_5c = (int *)(iStack_58 >> 2);" (assignment_expression "piStack_5c = (int *)(iStack_58 >> 2)" (identifier "piStack_5c") (= "=") (cast_expression "(int *)(iStack_58 >> 2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_58 >> 2)" (( "(") (binary_expression "iStack_58 >> 2" (identifier "iStack_58") (>> ">>") (number_literal "2")) () ")")))) (; ";")) (expression_statement "puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);" (assignment_expression "puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c)" (identifier "puStack_34") (= "=") (cast_expression "(uint *)((int)puStack_34 - (int)piStack_5c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puStack_34 - (int)piStack_5c)" (( "(") (binary_expression "(int)puStack_34 - (int)piStack_5c" (cast_expression "(int)puStack_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_34")) (- "-") (cast_expression "(int)piStack_5c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piStack_5c"))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }" (else "else") (compound_statement "{\n            piStack_5c = (int *)0x0;\n            iStack_58 = 0;\n          }" ({ "{") (expression_statement "piStack_5c = (int *)0x0;" (assignment_expression "piStack_5c = (int *)0x0" (identifier "piStack_5c") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iStack_58 = 0;" (assignment_expression "iStack_58 = 0" (identifier "iStack_58") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "puStack_50 = (uint *)0x0;" (assignment_expression "puStack_50 = (uint *)0x0" (identifier "puStack_50") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (for_statement "for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }" (for "for") (( "(") (; ";") (binary_expression "(uVar16 & 1) == 0" (parenthesized_expression "(uVar16 & 1)" (( "(") (binary_expression "uVar16 & 1" (identifier "uVar16") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) (; ";") (assignment_expression "uVar16 = uVar16 >> 1 | 0x80000000" (identifier "uVar16") (= "=") (binary_expression "uVar16 >> 1 | 0x80000000" (binary_expression "uVar16 >> 1" (identifier "uVar16") (>> ">>") (number_literal "1")) (| "|") (number_literal "0x80000000"))) () ")") (compound_statement "{\n            puStack_50 = (uint *)((int)puStack_50 + 1);\n          }" ({ "{") (expression_statement "puStack_50 = (uint *)((int)puStack_50 + 1);" (assignment_expression "puStack_50 = (uint *)((int)puStack_50 + 1)" (identifier "puStack_50") (= "=") (cast_expression "(uint *)((int)puStack_50 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puStack_50 + 1)" (( "(") (binary_expression "(int)puStack_50 + 1" (cast_expression "(int)puStack_50" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_50")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (expression_statement "puStack_38 = (uint *)((int)puStack_34 * 4);" (assignment_expression "puStack_38 = (uint *)((int)puStack_34 * 4)" (identifier "puStack_38") (= "=") (cast_expression "(uint *)((int)puStack_34 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puStack_34 * 4)" (( "(") (binary_expression "(int)puStack_34 * 4" (cast_expression "(int)puStack_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_34")) (* "*") (number_literal "4")) () ")")))) (; ";")) (if_statement "if (puStack_38 < (uint *)0x7f01) {\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }\n          else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }" (if "if") (parenthesized_expression "(puStack_38 < (uint *)0x7f01)" (( "(") (binary_expression "puStack_38 < (uint *)0x7f01" (identifier "puStack_38") (< "<") (cast_expression "(uint *)0x7f01" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7f01"))) () ")")) (compound_statement "{\n            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);\n            puVar14 = auStack_6c + iStack_44;\n            iStack_44 = (int)&puStack_60 + iStack_44;\n            ppuStack_30 = &__DT_PLTGOT;\n          }" ({ "{") (expression_statement "iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);" (assignment_expression "iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0)" (identifier "iStack_44") (= "=") (unary_expression "-((int)puStack_38 + 0x1bU & 0xfffffff0)" (- "-") (parenthesized_expression "((int)puStack_38 + 0x1bU & 0xfffffff0)" (( "(") (binary_expression "(int)puStack_38 + 0x1bU & 0xfffffff0" (binary_expression "(int)puStack_38 + 0x1bU" (cast_expression "(int)puStack_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_38")) (+ "+") (number_literal "0x1bU")) (& "&") (number_literal "0xfffffff0")) () ")")))) (; ";")) (expression_statement "puVar14 = auStack_6c + iStack_44;" (assignment_expression "puVar14 = auStack_6c + iStack_44" (identifier "puVar14") (= "=") (binary_expression "auStack_6c + iStack_44" (identifier "auStack_6c") (+ "+") (identifier "iStack_44"))) (; ";")) (expression_statement "iStack_44 = (int)&puStack_60 + iStack_44;" (assignment_expression "iStack_44 = (int)&puStack_60 + iStack_44" (identifier "iStack_44") (= "=") (binary_expression "(int)&puStack_60 + iStack_44" (cast_expression "(int)&puStack_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&puStack_60" (& "&") (identifier "puStack_60"))) (+ "+") (identifier "iStack_44"))) (; ";")) (expression_statement "ppuStack_30 = &__DT_PLTGOT;" (assignment_expression "ppuStack_30 = &__DT_PLTGOT" (identifier "ppuStack_30") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (} "}")) (else_clause "else {\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }" (else "else") (compound_statement "{\n            puStack_48 = puVar11;\n            puStack_40 = puVar12;\n            ppuStack_30 = &__DT_PLTGOT;\n            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);\n            puVar14 = auStack_6c;\n            puVar11 = puStack_48;\n            puVar12 = puStack_40;\n          }" ({ "{") (expression_statement "puStack_48 = puVar11;" (assignment_expression "puStack_48 = puVar11" (identifier "puStack_48") (= "=") (identifier "puVar11")) (; ";")) (expression_statement "puStack_40 = puVar12;" (assignment_expression "puStack_40 = puVar12" (identifier "puStack_40") (= "=") (identifier "puVar12")) (; ";")) (expression_statement "ppuStack_30 = &__DT_PLTGOT;" (assignment_expression "ppuStack_30 = &__DT_PLTGOT" (identifier "ppuStack_30") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (expression_statement "iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);" (assignment_expression "iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38)" (identifier "iStack_44") (= "=") (call_expression "__gmp_tmp_reentrant_alloc(&iStack_24,puStack_38)" (identifier "__gmp_tmp_reentrant_alloc") (argument_list "(&iStack_24,puStack_38)" (( "(") (pointer_expression "&iStack_24" (& "&") (identifier "iStack_24")) (, ",") (identifier "puStack_38") () ")")))) (; ";")) (expression_statement "puVar14 = auStack_6c;" (assignment_expression "puVar14 = auStack_6c" (identifier "puVar14") (= "=") (identifier "auStack_6c")) (; ";")) (expression_statement "puVar11 = puStack_48;" (assignment_expression "puVar11 = puStack_48" (identifier "puVar11") (= "=") (identifier "puStack_48")) (; ";")) (expression_statement "puVar12 = puStack_40;" (assignment_expression "puVar12 = puStack_40" (identifier "puVar12") (= "=") (identifier "puStack_40")) (; ";")) (} "}")))) (expression_statement "ppuVar6 = ppuStack_30;" (assignment_expression "ppuVar6 = ppuStack_30" (identifier "ppuVar6") (= "=") (identifier "ppuStack_30")) (; ";")) (expression_statement "puVar5 = puStack_34;" (assignment_expression "puVar5 = puStack_34" (identifier "puVar5") (= "=") (identifier "puStack_34")) (; ";")) (if_statement "if (puStack_50 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }\n          else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }" (if "if") (parenthesized_expression "(puStack_50 == (uint *)0x0)" (( "(") (binary_expression "puStack_50 == (uint *)0x0" (identifier "puStack_50") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            puStack_48 = (uint *)ppuVar6[-0x9b];\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            puStack_38 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;\n            (*pcVar3)();\n            puStack_40 = puStack_38;\n          }" ({ "{") (expression_statement "*(uint **)(puVar14 + -8) = puStack_34;" (assignment_expression "*(uint **)(puVar14 + -8) = puStack_34" (pointer_expression "*(uint **)(puVar14 + -8)" (* "*") (cast_expression "(uint **)(puVar14 + -8)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + -8)" (( "(") (binary_expression "puVar14 + -8" (identifier "puVar14") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "puStack_34")) (; ";")) (expression_statement "*(uint **)(puVar14 + -0xc) = puVar12;" (assignment_expression "*(uint **)(puVar14 + -0xc) = puVar12" (pointer_expression "*(uint **)(puVar14 + -0xc)" (* "*") (cast_expression "(uint **)(puVar14 + -0xc)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + -0xc)" (( "(") (binary_expression "puVar14 + -0xc" (identifier "puVar14") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "puVar12")) (; ";")) (expression_statement "*(int *)(puVar14 + -0x10) = iStack_44;" (assignment_expression "*(int *)(puVar14 + -0x10) = iStack_44" (pointer_expression "*(int *)(puVar14 + -0x10)" (* "*") (cast_expression "(int *)(puVar14 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + -0x10)" (( "(") (binary_expression "puVar14 + -0x10" (identifier "puVar14") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "iStack_44")) (; ";")) (expression_statement "puStack_48 = (uint *)ppuVar6[-0x9b];" (assignment_expression "puStack_48 = (uint *)ppuVar6[-0x9b]" (identifier "puStack_48") (= "=") (cast_expression "(uint *)ppuVar6[-0x9b]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppuVar6[-0x9b]" (identifier "ppuVar6") ([ "[") (number_literal "-0x9b") (] "]")))) (; ";")) (expression_statement "pcVar3 = *(code **)((int)puStack_48 + 0x28);" (assignment_expression "pcVar3 = *(code **)((int)puStack_48 + 0x28)" (identifier "pcVar3") (= "=") (pointer_expression "*(code **)((int)puStack_48 + 0x28)" (* "*") (cast_expression "(code **)((int)puStack_48 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)puStack_48 + 0x28)" (( "(") (binary_expression "(int)puStack_48 + 0x28" (cast_expression "(int)puStack_48" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_48")) (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "puStack_38 = puVar11;" (assignment_expression "puStack_38 = puVar11" (identifier "puStack_38") (= "=") (identifier "puVar11")) (; ";")) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x298ec;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x298ec" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar14 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + -0x14)" (( "(") (binary_expression "puVar14 + -0x14" (identifier "puVar14") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x298ec")) (; ";")) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puStack_40 = puStack_38;" (assignment_expression "puStack_40 = puStack_38" (identifier "puStack_40") (= "=") (identifier "puStack_38")) (; ";")) (} "}")) (else_clause "else {\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }" (else "else") (compound_statement "{\n            puStack_40 = puVar11;\n            *(uint **)(puVar14 + -4) = puStack_50;\n            puVar2 = ppuVar6[-0x9b];\n            *(uint **)(puVar14 + -8) = puVar5;\n            puStack_48 = (uint *)puVar2;\n            *(uint **)(puVar14 + -0xc) = puVar12;\n            *(int *)(puVar14 + -0x10) = iStack_44;\n            pcVar3 = *(code **)(puVar2 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29680;\n            (*pcVar3)();\n            puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));\n          }" ({ "{") (expression_statement "puStack_40 = puVar11;" (assignment_expression "puStack_40 = puVar11" (identifier "puStack_40") (= "=") (identifier "puVar11")) (; ";")) (expression_statement "*(uint **)(puVar14 + -4) = puStack_50;" (assignment_expression "*(uint **)(puVar14 + -4) = puStack_50" (pointer_expression "*(uint **)(puVar14 + -4)" (* "*") (cast_expression "(uint **)(puVar14 + -4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + -4)" (( "(") (binary_expression "puVar14 + -4" (identifier "puVar14") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "puStack_50")) (; ";")) (expression_statement "puVar2 = ppuVar6[-0x9b];" (assignment_expression "puVar2 = ppuVar6[-0x9b]" (identifier "puVar2") (= "=") (subscript_expression "ppuVar6[-0x9b]" (identifier "ppuVar6") ([ "[") (number_literal "-0x9b") (] "]"))) (; ";")) (expression_statement "*(uint **)(puVar14 + -8) = puVar5;" (assignment_expression "*(uint **)(puVar14 + -8) = puVar5" (pointer_expression "*(uint **)(puVar14 + -8)" (* "*") (cast_expression "(uint **)(puVar14 + -8)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + -8)" (( "(") (binary_expression "puVar14 + -8" (identifier "puVar14") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "puVar5")) (; ";")) (expression_statement "puStack_48 = (uint *)puVar2;" (assignment_expression "puStack_48 = (uint *)puVar2" (identifier "puStack_48") (= "=") (cast_expression "(uint *)puVar2" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) (; ";")) (expression_statement "*(uint **)(puVar14 + -0xc) = puVar12;" (assignment_expression "*(uint **)(puVar14 + -0xc) = puVar12" (pointer_expression "*(uint **)(puVar14 + -0xc)" (* "*") (cast_expression "(uint **)(puVar14 + -0xc)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + -0xc)" (( "(") (binary_expression "puVar14 + -0xc" (identifier "puVar14") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "puVar12")) (; ";")) (expression_statement "*(int *)(puVar14 + -0x10) = iStack_44;" (assignment_expression "*(int *)(puVar14 + -0x10) = iStack_44" (pointer_expression "*(int *)(puVar14 + -0x10)" (* "*") (cast_expression "(int *)(puVar14 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + -0x10)" (( "(") (binary_expression "puVar14 + -0x10" (identifier "puVar14") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "iStack_44")) (; ";")) (expression_statement "pcVar3 = *(code **)(puVar2 + 0x80);" (assignment_expression "pcVar3 = *(code **)(puVar2 + 0x80)" (identifier "pcVar3") (= "=") (pointer_expression "*(code **)(puVar2 + 0x80)" (* "*") (cast_expression "(code **)(puVar2 + 0x80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar2 + 0x80)" (( "(") (binary_expression "puVar2 + 0x80" (identifier "puVar2") (+ "+") (number_literal "0x80")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x29680;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x29680" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar14 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + -0x14)" (( "(") (binary_expression "puVar14 + -0x14" (identifier "puVar14") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x29680")) (; ";")) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));" (assignment_expression "puStack_34 = (uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0))" (identifier "puStack_34") (= "=") (cast_expression "(uint *)((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0))" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0))" (( "(") (binary_expression "(int)puVar5 -\n                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0)" (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5")) (- "-") (call_expression "(uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0)" (( "(") (binary_expression "*(int *)(iStack_44 + -4 + (int)puStack_38) == 0" (pointer_expression "*(int *)(iStack_44 + -4 + (int)puStack_38)" (* "*") (cast_expression "(int *)(iStack_44 + -4 + (int)puStack_38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_44 + -4 + (int)puStack_38)" (( "(") (binary_expression "iStack_44 + -4 + (int)puStack_38" (binary_expression "iStack_44 + -4" (identifier "iStack_44") (+ "+") (number_literal "-4")) (+ "+") (cast_expression "(int)puStack_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_38"))) () ")")))) (== "==") (number_literal "0")) () ")")))) () ")")))) (; ";")) (} "}")))) (expression_statement "uVar16 = *puStack_40;" (assignment_expression "uVar16 = *puStack_40" (identifier "uVar16") (= "=") (pointer_expression "*puStack_40" (* "*") (identifier "puStack_40"))) (; ";")) (expression_statement "puVar11 = puStack_40;" (assignment_expression "puVar11 = puStack_40" (identifier "puVar11") (= "=") (identifier "puStack_40")) (; ";")) (while_statement "while (uVar16 == 0) {\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }" (while "while") (parenthesized_expression "(uVar16 == 0)" (( "(") (binary_expression "uVar16 == 0" (identifier "uVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            puVar11 = puVar11 + 1;\n            uVar16 = *puVar11;\n          }" ({ "{") (expression_statement "puVar11 = puVar11 + 1;" (assignment_expression "puVar11 = puVar11 + 1" (identifier "puVar11") (= "=") (binary_expression "puVar11 + 1" (identifier "puVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar16 = *puVar11;" (assignment_expression "uVar16 = *puVar11" (identifier "uVar16") (= "=") (pointer_expression "*puVar11" (* "*") (identifier "puVar11"))) (; ";")) (} "}"))) (expression_statement "puStack_4c = (uint *)0x0;" (assignment_expression "puStack_4c = (uint *)0x0" (identifier "puStack_4c") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (for_statement "for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }" (for "for") (( "(") (; ";") (binary_expression "(uVar16 & 1) == 0" (parenthesized_expression "(uVar16 & 1)" (( "(") (binary_expression "uVar16 & 1" (identifier "uVar16") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) (; ";") (assignment_expression "uVar16 = uVar16 >> 1 | 0x80000000" (identifier "uVar16") (= "=") (binary_expression "uVar16 >> 1 | 0x80000000" (binary_expression "uVar16 >> 1" (identifier "uVar16") (>> ">>") (number_literal "1")) (| "|") (number_literal "0x80000000"))) () ")") (compound_statement "{\n            puStack_4c = (uint *)((int)puStack_4c + 1);\n          }" ({ "{") (expression_statement "puStack_4c = (uint *)((int)puStack_4c + 1);" (assignment_expression "puStack_4c = (uint *)((int)puStack_4c + 1)" (identifier "puStack_4c") (= "=") (cast_expression "(uint *)((int)puStack_4c + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puStack_4c + 1)" (( "(") (binary_expression "(int)puStack_4c + 1" (cast_expression "(int)puStack_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_4c")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (expression_statement "iStack_54 = (int)puVar11 - piStack_3c[2];" (assignment_expression "iStack_54 = (int)puVar11 - piStack_3c[2]" (identifier "iStack_54") (= "=") (binary_expression "(int)puVar11 - piStack_3c[2]" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (- "-") (subscript_expression "piStack_3c[2]" (identifier "piStack_3c") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "piStack_3c = (int *)(iStack_54 >> 2);" (assignment_expression "piStack_3c = (int *)(iStack_54 >> 2)" (identifier "piStack_3c") (= "=") (cast_expression "(int *)(iStack_54 >> 2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_54 >> 2)" (( "(") (binary_expression "iStack_54 >> 2" (identifier "iStack_54") (>> ">>") (number_literal "2")) () ")")))) (; ";")) (expression_statement "puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);" (assignment_expression "puVar15 = (uint *)((int)puVar15 - (int)piStack_3c)" (identifier "puVar15") (= "=") (cast_expression "(uint *)((int)puVar15 - (int)piStack_3c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar15 - (int)piStack_3c)" (( "(") (binary_expression "(int)puVar15 - (int)piStack_3c" (cast_expression "(int)puVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar15")) (- "-") (cast_expression "(int)piStack_3c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piStack_3c"))) () ")")))) (; ";")) (expression_statement "uVar16 = (int)puVar15 * 4;" (assignment_expression "uVar16 = (int)puVar15 * 4" (identifier "uVar16") (= "=") (binary_expression "(int)puVar15 * 4" (cast_expression "(int)puVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar15")) (* "*") (number_literal "4"))) (; ";")) (expression_statement "puStack_40 = puVar15;" (assignment_expression "puStack_40 = puVar15" (identifier "puStack_40") (= "=") (identifier "puVar15")) (; ";")) (if_statement "if (uVar16 < 0x7f01) {\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }\n          else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }" (if "if") (parenthesized_expression "(uVar16 < 0x7f01)" (( "(") (binary_expression "uVar16 < 0x7f01" (identifier "uVar16") (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);\n            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);\n            puStack_60 = puStack_4c;\n            puVar14 = puVar14 + iVar17;\n          }" ({ "{") (expression_statement "iVar17 = -(uVar16 + 0x1b & 0xfffffff0);" (assignment_expression "iVar17 = -(uVar16 + 0x1b & 0xfffffff0)" (identifier "iVar17") (= "=") (unary_expression "-(uVar16 + 0x1b & 0xfffffff0)" (- "-") (parenthesized_expression "(uVar16 + 0x1b & 0xfffffff0)" (( "(") (binary_expression "uVar16 + 0x1b & 0xfffffff0" (binary_expression "uVar16 + 0x1b" (identifier "uVar16") (+ "+") (number_literal "0x1b")) (& "&") (number_literal "0xfffffff0")) () ")")))) (; ";")) (expression_statement "puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);" (assignment_expression "puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0)" (identifier "puStack_38") (= "=") (cast_expression "(uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0)" (( "(") (binary_expression "(uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0" (call_expression "(uint)(puVar14 + iVar17 + 0xf)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar14 + iVar17 + 0xf)" (( "(") (binary_expression "puVar14 + iVar17 + 0xf" (binary_expression "puVar14 + iVar17" (identifier "puVar14") (+ "+") (identifier "iVar17")) (+ "+") (number_literal "0xf")) () ")"))) (& "&") (number_literal "0xfffffff0")) () ")")))) (; ";")) (expression_statement "puStack_60 = puStack_4c;" (assignment_expression "puStack_60 = puStack_4c" (identifier "puStack_60") (= "=") (identifier "puStack_4c")) (; ";")) (expression_statement "puVar14 = puVar14 + iVar17;" (assignment_expression "puVar14 = puVar14 + iVar17" (identifier "puVar14") (= "=") (binary_expression "puVar14 + iVar17" (identifier "puVar14") (+ "+") (identifier "iVar17"))) (; ";")) (} "}")) (else_clause "else {\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }" (else "else") (compound_statement "{\n            puStack_64 = puStack_4c;\n            *(uint *)(puVar14 + -0xc) = uVar16;\n            *(int **)(puVar14 + -0x10) = &iStack_24;\n            puStack_60 = puVar11;\n            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;\n            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();\n            puVar11 = puStack_60;\n            puStack_60 = puStack_64;\n          }" ({ "{") (expression_statement "puStack_64 = puStack_4c;" (assignment_expression "puStack_64 = puStack_4c" (identifier "puStack_64") (= "=") (identifier "puStack_4c")) (; ";")) (expression_statement "*(uint *)(puVar14 + -0xc) = uVar16;" (assignment_expression "*(uint *)(puVar14 + -0xc) = uVar16" (pointer_expression "*(uint *)(puVar14 + -0xc)" (* "*") (cast_expression "(uint *)(puVar14 + -0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + -0xc)" (( "(") (binary_expression "puVar14 + -0xc" (identifier "puVar14") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "uVar16")) (; ";")) (expression_statement "*(int **)(puVar14 + -0x10) = &iStack_24;" (assignment_expression "*(int **)(puVar14 + -0x10) = &iStack_24" (pointer_expression "*(int **)(puVar14 + -0x10)" (* "*") (cast_expression "(int **)(puVar14 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + -0x10)" (( "(") (binary_expression "puVar14 + -0x10" (identifier "puVar14") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "&iStack_24" (& "&") (identifier "iStack_24"))) (; ";")) (expression_statement "puStack_60 = puVar11;" (assignment_expression "puStack_60 = puVar11" (identifier "puStack_60") (= "=") (identifier "puVar11")) (; ";")) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x299f6;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x299f6" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar14 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + -0x14)" (( "(") (binary_expression "puVar14 + -0x14" (identifier "puVar14") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x299f6")) (; ";")) (expression_statement "puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();" (assignment_expression "puStack_38 = (uint *)__gmp_tmp_reentrant_alloc()" (identifier "puStack_38") (= "=") (cast_expression "(uint *)__gmp_tmp_reentrant_alloc()" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "__gmp_tmp_reentrant_alloc()" (identifier "__gmp_tmp_reentrant_alloc") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar11 = puStack_60;" (assignment_expression "puVar11 = puStack_60" (identifier "puVar11") (= "=") (identifier "puStack_60")) (; ";")) (expression_statement "puStack_60 = puStack_64;" (assignment_expression "puStack_60 = puStack_64" (identifier "puStack_60") (= "=") (identifier "puStack_64")) (; ";")) (} "}")))) (expression_statement "puVar12 = puStack_40;" (assignment_expression "puVar12 = puStack_40" (identifier "puVar12") (= "=") (identifier "puStack_40")) (; ";")) (if_statement "if (puStack_60 == (uint *)0x0) {\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }\n          else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }" (if "if") (parenthesized_expression "(puStack_60 == (uint *)0x0)" (( "(") (binary_expression "puStack_60 == (uint *)0x0" (identifier "puStack_60") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            *(uint **)(puVar14 + -8) = puStack_40;\n            puVar15 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar15 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29913;\n            (*pcVar3)();\n          }" ({ "{") (expression_statement "*(uint **)(puVar14 + -8) = puStack_40;" (assignment_expression "*(uint **)(puVar14 + -8) = puStack_40" (pointer_expression "*(uint **)(puVar14 + -8)" (* "*") (cast_expression "(uint **)(puVar14 + -8)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + -8)" (( "(") (binary_expression "puVar14 + -8" (identifier "puVar14") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "puStack_40")) (; ";")) (expression_statement "puVar15 = puStack_48;" (assignment_expression "puVar15 = puStack_48" (identifier "puVar15") (= "=") (identifier "puStack_48")) (; ";")) (expression_statement "*(uint **)(puVar14 + -0xc) = puVar11;" (assignment_expression "*(uint **)(puVar14 + -0xc) = puVar11" (pointer_expression "*(uint **)(puVar14 + -0xc)" (* "*") (cast_expression "(uint **)(puVar14 + -0xc)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + -0xc)" (( "(") (binary_expression "puVar14 + -0xc" (identifier "puVar14") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (expression_statement "*(uint **)(puVar14 + -0x10) = puStack_38;" (assignment_expression "*(uint **)(puVar14 + -0x10) = puStack_38" (pointer_expression "*(uint **)(puVar14 + -0x10)" (* "*") (cast_expression "(uint **)(puVar14 + -0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + -0x10)" (( "(") (binary_expression "puVar14 + -0x10" (identifier "puVar14") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "puStack_38")) (; ";")) (expression_statement "pcVar3 = *(code **)((int)puVar15 + 0x28);" (assignment_expression "pcVar3 = *(code **)((int)puVar15 + 0x28)" (identifier "pcVar3") (= "=") (pointer_expression "*(code **)((int)puVar15 + 0x28)" (* "*") (cast_expression "(code **)((int)puVar15 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)puVar15 + 0x28)" (( "(") (binary_expression "(int)puVar15 + 0x28" (cast_expression "(int)puVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar15")) (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x29913;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x29913" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar14 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + -0x14)" (( "(") (binary_expression "puVar14 + -0x14" (identifier "puVar14") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x29913")) (; ";")) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }" (else "else") (compound_statement "{\n            *(uint **)(puVar14 + -4) = puStack_60;\n            *(uint **)(puVar14 + -8) = puVar12;\n            *(uint **)(puVar14 + -0xc) = puVar11;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0x10) = puStack_38;\n            pcVar3 = *(code **)((int)puVar11 + 0x80);\n            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;\n            (*pcVar3)();\n            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));\n          }" ({ "{") (expression_statement "*(uint **)(puVar14 + -4) = puStack_60;" (assignment_expression "*(uint **)(puVar14 + -4) = puStack_60" (pointer_expression "*(uint **)(puVar14 + -4)" (* "*") (cast_expression "(uint **)(puVar14 + -4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + -4)" (( "(") (binary_expression "puVar14 + -4" (identifier "puVar14") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "puStack_60")) (; ";")) (expression_statement "*(uint **)(puVar14 + -8) = puVar12;" (assignment_expression "*(uint **)(puVar14 + -8) = puVar12" (pointer_expression "*(uint **)(puVar14 + -8)" (* "*") (cast_expression "(uint **)(puVar14 + -8)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + -8)" (( "(") (binary_expression "puVar14 + -8" (identifier "puVar14") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "puVar12")) (; ";")) (expression_statement "*(uint **)(puVar14 + -0xc) = puVar11;" (assignment_expression "*(uint **)(puVar14 + -0xc) = puVar11" (pointer_expression "*(uint **)(puVar14 + -0xc)" (* "*") (cast_expression "(uint **)(puVar14 + -0xc)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + -0xc)" (( "(") (binary_expression "puVar14 + -0xc" (identifier "puVar14") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (expression_statement "puVar11 = puStack_48;" (assignment_expression "puVar11 = puStack_48" (identifier "puVar11") (= "=") (identifier "puStack_48")) (; ";")) (expression_statement "*(uint **)(puVar14 + -0x10) = puStack_38;" (assignment_expression "*(uint **)(puVar14 + -0x10) = puStack_38" (pointer_expression "*(uint **)(puVar14 + -0x10)" (* "*") (cast_expression "(uint **)(puVar14 + -0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + -0x10)" (( "(") (binary_expression "puVar14 + -0x10" (identifier "puVar14") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "puStack_38")) (; ";")) (expression_statement "pcVar3 = *(code **)((int)puVar11 + 0x80);" (assignment_expression "pcVar3 = *(code **)((int)puVar11 + 0x80)" (identifier "pcVar3") (= "=") (pointer_expression "*(code **)((int)puVar11 + 0x80)" (* "*") (cast_expression "(code **)((int)puVar11 + 0x80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)puVar11 + 0x80)" (( "(") (binary_expression "(int)puVar11 + 0x80" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (number_literal "0x80")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x2970c;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x2970c" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar14 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + -0x14)" (( "(") (binary_expression "puVar14 + -0x14" (identifier "puVar14") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x2970c")) (; ";")) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));" (assignment_expression "puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0))" (identifier "puStack_40") (= "=") (cast_expression "(uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0))" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0))" (( "(") (binary_expression "(int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0)" (cast_expression "(int)puVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar12")) (- "-") (call_expression "(uint)(puStack_38[(int)puVar15 + -1] == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puStack_38[(int)puVar15 + -1] == 0)" (( "(") (binary_expression "puStack_38[(int)puVar15 + -1] == 0" (subscript_expression "puStack_38[(int)puVar15 + -1]" (identifier "puStack_38") ([ "[") (binary_expression "(int)puVar15 + -1" (cast_expression "(int)puVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar15")) (+ "+") (number_literal "-1")) (] "]")) (== "==") (number_literal "0")) () ")")))) () ")")))) (; ";")) (} "}")))) (expression_statement "puVar11 = puStack_38;" (assignment_expression "puVar11 = puStack_38" (identifier "puVar11") (= "=") (identifier "puStack_38")) (; ";")) (if_statement "if (iStack_58 <= iStack_54) {\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }" (if "if") (parenthesized_expression "(iStack_58 <= iStack_54)" (( "(") (binary_expression "iStack_58 <= iStack_54" (identifier "iStack_58") (<= "<=") (identifier "iStack_54")) () ")")) (compound_statement "{\n            if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }\n          }" ({ "{") (if_statement "if (iStack_58 < iStack_54) {\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }\n            else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }" (if "if") (parenthesized_expression "(iStack_58 < iStack_54)" (( "(") (binary_expression "iStack_58 < iStack_54" (identifier "iStack_58") (< "<") (identifier "iStack_54")) () ")")) (compound_statement "{\n              piStack_3c = piStack_5c;\n              puStack_4c = puStack_50;\n            }" ({ "{") (expression_statement "piStack_3c = piStack_5c;" (assignment_expression "piStack_3c = piStack_5c" (identifier "piStack_3c") (= "=") (identifier "piStack_5c")) (; ";")) (expression_statement "puStack_4c = puStack_50;" (assignment_expression "puStack_4c = puStack_50" (identifier "puStack_4c") (= "=") (identifier "puStack_50")) (; ";")) (} "}")) (else_clause "else {\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }" (else "else") (compound_statement "{\n              puStack_4c = puStack_60;\n              if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }\n              piStack_3c = piStack_5c;\n            }" ({ "{") (expression_statement "puStack_4c = puStack_60;" (assignment_expression "puStack_4c = puStack_60" (identifier "puStack_4c") (= "=") (identifier "puStack_60")) (; ";")) (if_statement "if (puStack_50 < puStack_60) {\n                puStack_4c = puStack_50;\n              }" (if "if") (parenthesized_expression "(puStack_50 < puStack_60)" (( "(") (binary_expression "puStack_50 < puStack_60" (identifier "puStack_50") (< "<") (identifier "puStack_60")) () ")")) (compound_statement "{\n                puStack_4c = puStack_50;\n              }" ({ "{") (expression_statement "puStack_4c = puStack_50;" (assignment_expression "puStack_4c = puStack_50" (identifier "puStack_4c") (= "=") (identifier "puStack_50")) (; ";")) (} "}"))) (expression_statement "piStack_3c = piStack_5c;" (assignment_expression "piStack_3c = piStack_5c" (identifier "piStack_3c") (= "=") (identifier "piStack_5c")) (; ";")) (} "}")))) (} "}"))) (if_statement "if (((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             ) {\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }\n          else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }" (if "if") (parenthesized_expression "(((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))\n             )" (( "(") (binary_expression "((int)puStack_34 < (int)puStack_40) ||\n             ((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))" (parenthesized_expression "((int)puStack_34 < (int)puStack_40)" (( "(") (binary_expression "(int)puStack_34 < (int)puStack_40" (cast_expression "(int)puStack_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_34")) (< "<") (cast_expression "(int)puStack_40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_40"))) () ")")) (|| "||") (parenthesized_expression "((puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))" (( "(") (parenthesized_expression "(puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1]))" (( "(") (binary_expression "puStack_40 == puStack_34 &&\n              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])" (binary_expression "puStack_40 == puStack_34" (identifier "puStack_40") (== "==") (identifier "puStack_34")) (&& "&&") (parenthesized_expression "(*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])" (( "(") (binary_expression "*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1]" (pointer_expression "*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4)" (* "*") (cast_expression "(uint *)(iStack_44 + -4 + (int)puStack_40 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_44 + -4 + (int)puStack_40 * 4)" (( "(") (binary_expression "iStack_44 + -4 + (int)puStack_40 * 4" (binary_expression "iStack_44 + -4" (identifier "iStack_44") (+ "+") (number_literal "-4")) (+ "+") (binary_expression "(int)puStack_40 * 4" (cast_expression "(int)puStack_40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_40")) (* "*") (number_literal "4"))) () ")")))) (< "<") (subscript_expression "puStack_38[(int)puStack_40 + -1]" (identifier "puStack_38") ([ "[") (binary_expression "(int)puStack_40 + -1" (cast_expression "(int)puStack_40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_40")) (+ "+") (number_literal "-1")) (] "]"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n            *(uint **)(puVar14 + -0x10) = puStack_34;\n            *(int *)(puVar14 + -0x14) = iStack_44;\n            *(uint **)(puVar14 + -0x18) = puStack_40;\n            *(uint **)(puVar14 + -0x1c) = puVar11;\n          }" ({ "{") (expression_statement "*(uint **)(puVar14 + -0x10) = puStack_34;" (assignment_expression "*(uint **)(puVar14 + -0x10) = puStack_34" (pointer_expression "*(uint **)(puVar14 + -0x10)" (* "*") (cast_expression "(uint **)(puVar14 + -0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + -0x10)" (( "(") (binary_expression "puVar14 + -0x10" (identifier "puVar14") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "puStack_34")) (; ";")) (expression_statement "*(int *)(puVar14 + -0x14) = iStack_44;" (assignment_expression "*(int *)(puVar14 + -0x14) = iStack_44" (pointer_expression "*(int *)(puVar14 + -0x14)" (* "*") (cast_expression "(int *)(puVar14 + -0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + -0x14)" (( "(") (binary_expression "puVar14 + -0x14" (identifier "puVar14") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "iStack_44")) (; ";")) (expression_statement "*(uint **)(puVar14 + -0x18) = puStack_40;" (assignment_expression "*(uint **)(puVar14 + -0x18) = puStack_40" (pointer_expression "*(uint **)(puVar14 + -0x18)" (* "*") (cast_expression "(uint **)(puVar14 + -0x18)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + -0x18)" (( "(") (binary_expression "puVar14 + -0x18" (identifier "puVar14") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "puStack_40")) (; ";")) (expression_statement "*(uint **)(puVar14 + -0x1c) = puVar11;" (assignment_expression "*(uint **)(puVar14 + -0x1c) = puVar11" (pointer_expression "*(uint **)(puVar14 + -0x1c)" (* "*") (cast_expression "(uint **)(puVar14 + -0x1c)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + -0x1c)" (( "(") (binary_expression "puVar14 + -0x1c" (identifier "puVar14") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (} "}")) (else_clause "else {\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }" (else "else") (compound_statement "{\n            *(uint **)(puVar14 + -0x10) = puStack_40;\n            *(uint **)(puVar14 + -0x14) = puVar11;\n            *(uint **)(puVar14 + -0x18) = puStack_34;\n            *(int *)(puVar14 + -0x1c) = iStack_44;\n          }" ({ "{") (expression_statement "*(uint **)(puVar14 + -0x10) = puStack_40;" (assignment_expression "*(uint **)(puVar14 + -0x10) = puStack_40" (pointer_expression "*(uint **)(puVar14 + -0x10)" (* "*") (cast_expression "(uint **)(puVar14 + -0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + -0x10)" (( "(") (binary_expression "puVar14 + -0x10" (identifier "puVar14") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "puStack_40")) (; ";")) (expression_statement "*(uint **)(puVar14 + -0x14) = puVar11;" (assignment_expression "*(uint **)(puVar14 + -0x14) = puVar11" (pointer_expression "*(uint **)(puVar14 + -0x14)" (* "*") (cast_expression "(uint **)(puVar14 + -0x14)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + -0x14)" (( "(") (binary_expression "puVar14 + -0x14" (identifier "puVar14") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (expression_statement "*(uint **)(puVar14 + -0x18) = puStack_34;" (assignment_expression "*(uint **)(puVar14 + -0x18) = puStack_34" (pointer_expression "*(uint **)(puVar14 + -0x18)" (* "*") (cast_expression "(uint **)(puVar14 + -0x18)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + -0x18)" (( "(") (binary_expression "puVar14 + -0x18" (identifier "puVar14") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "puStack_34")) (; ";")) (expression_statement "*(int *)(puVar14 + -0x1c) = iStack_44;" (assignment_expression "*(int *)(puVar14 + -0x1c) = iStack_44" (pointer_expression "*(int *)(puVar14 + -0x1c)" (* "*") (cast_expression "(int *)(puVar14 + -0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + -0x1c)" (( "(") (binary_expression "puVar14 + -0x1c" (identifier "puVar14") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "iStack_44")) (; ";")) (} "}")))) (expression_statement "*(uint **)(puVar14 + -0x20) = puVar11;" (assignment_expression "*(uint **)(puVar14 + -0x20) = puVar11" (pointer_expression "*(uint **)(puVar14 + -0x20)" (* "*") (cast_expression "(uint **)(puVar14 + -0x20)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + -0x20)" (( "(") (binary_expression "puVar14 + -0x20" (identifier "puVar14") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (expression_statement "*(undefined4 *)(puVar14 + -0x24) = 0x2977c;" (assignment_expression "*(undefined4 *)(puVar14 + -0x24) = 0x2977c" (pointer_expression "*(undefined4 *)(puVar14 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar14 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + -0x24)" (( "(") (binary_expression "puVar14 + -0x24" (identifier "puVar14") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x2977c")) (; ";")) (expression_statement "puStack_34 = (uint *)__gmpn_gcd();" (assignment_expression "puStack_34 = (uint *)__gmpn_gcd()" (identifier "puStack_34") (= "=") (cast_expression "(uint *)__gmpn_gcd()" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "__gmpn_gcd()" (identifier "__gmpn_gcd") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar17 = (int)piStack_3c + (int)puStack_34;" (assignment_expression "iVar17 = (int)piStack_3c + (int)puStack_34" (identifier "iVar17") (= "=") (binary_expression "(int)piStack_3c + (int)puStack_34" (cast_expression "(int)piStack_3c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piStack_3c")) (+ "+") (cast_expression "(int)puStack_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_34")))) (; ";")) (if_statement "if (puStack_4c == (uint *)0x0) {\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }\n          else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }" (if "if") (parenthesized_expression "(puStack_4c == (uint *)0x0)" (( "(") (binary_expression "puStack_4c == (uint *)0x0" (identifier "puStack_4c") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -8) = puStack_34;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puStack_48 + 0x28);\n            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;\n            (*pcVar3)();\n          }" ({ "{") (if_statement "if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }" (if "if") (parenthesized_expression "(*param_1 < iVar17)" (( "(") (binary_expression "*param_1 < iVar17" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (< "<") (identifier "iVar17")) () ")")) (compound_statement "{\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;\n              __gmpz_realloc();\n            }" ({ "{") (expression_statement "*(int *)(puVar14 + -0xc) = iVar17;" (assignment_expression "*(int *)(puVar14 + -0xc) = iVar17" (pointer_expression "*(int *)(puVar14 + -0xc)" (* "*") (cast_expression "(int *)(puVar14 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + -0xc)" (( "(") (binary_expression "puVar14 + -0xc" (identifier "puVar14") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "iVar17")) (; ";")) (expression_statement "*(int **)(puVar14 + -0x10) = param_1;" (assignment_expression "*(int **)(puVar14 + -0x10) = param_1" (pointer_expression "*(int **)(puVar14 + -0x10)" (* "*") (cast_expression "(int **)(puVar14 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + -0x10)" (( "(") (binary_expression "puVar14 + -0x10" (identifier "puVar14") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x29a29;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x29a29" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar14 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + -0x14)" (( "(") (binary_expression "puVar14 + -0x14" (identifier "puVar14") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x29a29")) (; ";")) (expression_statement "__gmpz_realloc();" (call_expression "__gmpz_realloc()" (identifier "__gmpz_realloc") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar4 = piStack_3c;" (assignment_expression "piVar4 = piStack_3c" (identifier "piVar4") (= "=") (identifier "piStack_3c")) (; ";")) (expression_statement "puVar13 = (undefined4 *)param_1[2];" (assignment_expression "puVar13 = (undefined4 *)param_1[2]" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)param_1[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }" (if "if") (parenthesized_expression "(piStack_3c != (int *)0x0)" (( "(") (binary_expression "piStack_3c != (int *)0x0" (identifier "piStack_3c") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }" ({ "{") (expression_statement "puVar10 = puVar13;" (assignment_expression "puVar10 = puVar13" (identifier "puVar10") (= "=") (identifier "puVar13")) (; ";")) (do_statement "do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);" (do "do") (compound_statement "{\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              }" ({ "{") (expression_statement "puVar7 = puVar10 + 1;" (assignment_expression "puVar7 = puVar10 + 1" (identifier "puVar7") (= "=") (binary_expression "puVar10 + 1" (identifier "puVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar10 = 0;" (assignment_expression "*puVar10 = 0" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar10 = puVar7;" (assignment_expression "puVar10 = puVar7" (identifier "puVar10") (= "=") (identifier "puVar7")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar7 != puVar13 + (int)piStack_3c)" (( "(") (binary_expression "puVar7 != puVar13 + (int)piStack_3c" (identifier "puVar7") (!= "!=") (binary_expression "puVar13 + (int)piStack_3c" (identifier "puVar13") (+ "+") (cast_expression "(int)piStack_3c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piStack_3c")))) () ")")) (; ";")) (} "}"))) (expression_statement "*(uint **)(puVar14 + -8) = puStack_34;" (assignment_expression "*(uint **)(puVar14 + -8) = puStack_34" (pointer_expression "*(uint **)(puVar14 + -8)" (* "*") (cast_expression "(uint **)(puVar14 + -8)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + -8)" (( "(") (binary_expression "puVar14 + -8" (identifier "puVar14") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "puStack_34")) (; ";")) (expression_statement "*(uint **)(puVar14 + -0xc) = puStack_38;" (assignment_expression "*(uint **)(puVar14 + -0xc) = puStack_38" (pointer_expression "*(uint **)(puVar14 + -0xc)" (* "*") (cast_expression "(uint **)(puVar14 + -0xc)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + -0xc)" (( "(") (binary_expression "puVar14 + -0xc" (identifier "puVar14") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "puStack_38")) (; ";")) (expression_statement "*(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;" (assignment_expression "*(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4" (pointer_expression "*(undefined4 **)(puVar14 + -0x10)" (* "*") (cast_expression "(undefined4 **)(puVar14 + -0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + -0x10)" (( "(") (binary_expression "puVar14 + -0x10" (identifier "puVar14") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "puVar13 + (int)piVar4" (identifier "puVar13") (+ "+") (cast_expression "(int)piVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar4")))) (; ";")) (expression_statement "pcVar3 = *(code **)((int)puStack_48 + 0x28);" (assignment_expression "pcVar3 = *(code **)((int)puStack_48 + 0x28)" (identifier "pcVar3") (= "=") (pointer_expression "*(code **)((int)puStack_48 + 0x28)" (* "*") (cast_expression "(code **)((int)puStack_48 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)puStack_48 + 0x28)" (( "(") (binary_expression "(int)puStack_48 + 0x28" (cast_expression "(int)puStack_48" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_48")) (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x298c4;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x298c4" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar14 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + -0x14)" (( "(") (binary_expression "puVar14 + -0x14" (identifier "puVar14") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x298c4")) (; ";")) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }" (else "else") (compound_statement "{\n            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);\n            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);\n            if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }\n            piVar4 = piStack_3c;\n            puVar13 = (undefined4 *)param_1[2];\n            if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }\n            *(uint **)(puVar14 + -4) = puStack_4c;\n            *(uint **)(puVar14 + -8) = puStack_34;\n            puVar11 = puStack_48;\n            *(uint **)(puVar14 + -0xc) = puStack_38;\n            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;\n            pcVar3 = *(code **)((int)puVar11 + 0x38);\n            *(undefined4 *)(puVar14 + -0x14) = 0x29804;\n            iVar8 = (*pcVar3)();\n            if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }\n          }" ({ "{") (expression_statement "puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);" (assignment_expression "puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4)" (identifier "puStack_40") (= "=") (cast_expression "(uint *)(((int)puStack_34 + 0x3fffffff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((int)puStack_34 + 0x3fffffff) * 4)" (( "(") (binary_expression "((int)puStack_34 + 0x3fffffff) * 4" (parenthesized_expression "((int)puStack_34 + 0x3fffffff)" (( "(") (binary_expression "(int)puStack_34 + 0x3fffffff" (cast_expression "(int)puStack_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_34")) (+ "+") (number_literal "0x3fffffff")) () ")")) (* "*") (number_literal "4")) () ")")))) (; ";")) (expression_statement "iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0);" (assignment_expression "iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0)" (identifier "iVar17") (= "=") (binary_expression "iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0)" (identifier "iVar17") (+ "+") (call_expression "(uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0)" (( "(") (binary_expression "puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f) != 0" (binary_expression "puStack_38[(int)puStack_34 + 0x3fffffff] >>\n                                     (0x20U - (char)puStack_4c & 0x1f)" (subscript_expression "puStack_38[(int)puStack_34 + 0x3fffffff]" (identifier "puStack_38") ([ "[") (binary_expression "(int)puStack_34 + 0x3fffffff" (cast_expression "(int)puStack_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_34")) (+ "+") (number_literal "0x3fffffff")) (] "]")) (>> ">>") (parenthesized_expression "(0x20U - (char)puStack_4c & 0x1f)" (( "(") (binary_expression "0x20U - (char)puStack_4c & 0x1f" (binary_expression "0x20U - (char)puStack_4c" (number_literal "0x20U") (- "-") (cast_expression "(char)puStack_4c" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "puStack_4c"))) (& "&") (number_literal "0x1f")) () ")"))) (!= "!=") (number_literal "0")) () ")"))))) (; ";")) (if_statement "if (*param_1 < iVar17) {\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }" (if "if") (parenthesized_expression "(*param_1 < iVar17)" (( "(") (binary_expression "*param_1 < iVar17" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (< "<") (identifier "iVar17")) () ")")) (compound_statement "{\n              *(int *)(puVar14 + -0xc) = iVar17;\n              *(int **)(puVar14 + -0x10) = param_1;\n              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;\n              __gmpz_realloc();\n            }" ({ "{") (expression_statement "*(int *)(puVar14 + -0xc) = iVar17;" (assignment_expression "*(int *)(puVar14 + -0xc) = iVar17" (pointer_expression "*(int *)(puVar14 + -0xc)" (* "*") (cast_expression "(int *)(puVar14 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + -0xc)" (( "(") (binary_expression "puVar14 + -0xc" (identifier "puVar14") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "iVar17")) (; ";")) (expression_statement "*(int **)(puVar14 + -0x10) = param_1;" (assignment_expression "*(int **)(puVar14 + -0x10) = param_1" (pointer_expression "*(int **)(puVar14 + -0x10)" (* "*") (cast_expression "(int **)(puVar14 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + -0x10)" (( "(") (binary_expression "puVar14 + -0x10" (identifier "puVar14") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x29a14;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x29a14" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar14 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + -0x14)" (( "(") (binary_expression "puVar14 + -0x14" (identifier "puVar14") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x29a14")) (; ";")) (expression_statement "__gmpz_realloc();" (call_expression "__gmpz_realloc()" (identifier "__gmpz_realloc") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar4 = piStack_3c;" (assignment_expression "piVar4 = piStack_3c" (identifier "piVar4") (= "=") (identifier "piStack_3c")) (; ";")) (expression_statement "puVar13 = (undefined4 *)param_1[2];" (assignment_expression "puVar13 = (undefined4 *)param_1[2]" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)param_1[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if (piStack_3c != (int *)0x0) {\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }" (if "if") (parenthesized_expression "(piStack_3c != (int *)0x0)" (( "(") (binary_expression "piStack_3c != (int *)0x0" (identifier "piStack_3c") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              puVar10 = puVar13;\n              do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);\n            }" ({ "{") (expression_statement "puVar10 = puVar13;" (assignment_expression "puVar10 = puVar13" (identifier "puVar10") (= "=") (identifier "puVar13")) (; ";")) (do_statement "do {\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              } while (puVar7 != puVar13 + (int)piStack_3c);" (do "do") (compound_statement "{\n                puVar7 = puVar10 + 1;\n                *puVar10 = 0;\n                puVar10 = puVar7;\n              }" ({ "{") (expression_statement "puVar7 = puVar10 + 1;" (assignment_expression "puVar7 = puVar10 + 1" (identifier "puVar7") (= "=") (binary_expression "puVar10 + 1" (identifier "puVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar10 = 0;" (assignment_expression "*puVar10 = 0" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar10 = puVar7;" (assignment_expression "puVar10 = puVar7" (identifier "puVar10") (= "=") (identifier "puVar7")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar7 != puVar13 + (int)piStack_3c)" (( "(") (binary_expression "puVar7 != puVar13 + (int)piStack_3c" (identifier "puVar7") (!= "!=") (binary_expression "puVar13 + (int)piStack_3c" (identifier "puVar13") (+ "+") (cast_expression "(int)piStack_3c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piStack_3c")))) () ")")) (; ";")) (} "}"))) (expression_statement "*(uint **)(puVar14 + -4) = puStack_4c;" (assignment_expression "*(uint **)(puVar14 + -4) = puStack_4c" (pointer_expression "*(uint **)(puVar14 + -4)" (* "*") (cast_expression "(uint **)(puVar14 + -4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + -4)" (( "(") (binary_expression "puVar14 + -4" (identifier "puVar14") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "puStack_4c")) (; ";")) (expression_statement "*(uint **)(puVar14 + -8) = puStack_34;" (assignment_expression "*(uint **)(puVar14 + -8) = puStack_34" (pointer_expression "*(uint **)(puVar14 + -8)" (* "*") (cast_expression "(uint **)(puVar14 + -8)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + -8)" (( "(") (binary_expression "puVar14 + -8" (identifier "puVar14") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "puStack_34")) (; ";")) (expression_statement "puVar11 = puStack_48;" (assignment_expression "puVar11 = puStack_48" (identifier "puVar11") (= "=") (identifier "puStack_48")) (; ";")) (expression_statement "*(uint **)(puVar14 + -0xc) = puStack_38;" (assignment_expression "*(uint **)(puVar14 + -0xc) = puStack_38" (pointer_expression "*(uint **)(puVar14 + -0xc)" (* "*") (cast_expression "(uint **)(puVar14 + -0xc)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + -0xc)" (( "(") (binary_expression "puVar14 + -0xc" (identifier "puVar14") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "puStack_38")) (; ";")) (expression_statement "*(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;" (assignment_expression "*(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4" (pointer_expression "*(undefined4 **)(puVar14 + -0x10)" (* "*") (cast_expression "(undefined4 **)(puVar14 + -0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + -0x10)" (( "(") (binary_expression "puVar14 + -0x10" (identifier "puVar14") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "puVar13 + (int)piVar4" (identifier "puVar13") (+ "+") (cast_expression "(int)piVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar4")))) (; ";")) (expression_statement "pcVar3 = *(code **)((int)puVar11 + 0x38);" (assignment_expression "pcVar3 = *(code **)((int)puVar11 + 0x38)" (identifier "pcVar3") (= "=") (pointer_expression "*(code **)((int)puVar11 + 0x38)" (* "*") (cast_expression "(code **)((int)puVar11 + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)puVar11 + 0x38)" (( "(") (binary_expression "(int)puVar11 + 0x38" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x29804;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x29804" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar14 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + -0x14)" (( "(") (binary_expression "puVar14 + -0x14" (identifier "puVar14") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x29804")) (; ";")) (expression_statement "iVar8 = (*pcVar3)();" (assignment_expression "iVar8 = (*pcVar3)()" (identifier "iVar8") (= "=") (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar8 != 0) {\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;\n            }" ({ "{") (expression_statement "*(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;" (assignment_expression "*(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8" (pointer_expression "*(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40)" (* "*") (cast_expression "(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40)" (( "(") (binary_expression "(int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40" (cast_expression "(int)(puVar13 + (int)piVar4 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar13 + (int)piVar4 + 1)" (( "(") (binary_expression "puVar13 + (int)piVar4 + 1" (binary_expression "puVar13 + (int)piVar4" (identifier "puVar13") (+ "+") (cast_expression "(int)piVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar4"))) (+ "+") (number_literal "1")) () ")"))) (+ "+") (cast_expression "(int)puStack_40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_40"))) () ")")))) (= "=") (identifier "iVar8")) (; ";")) (} "}"))) (} "}")))) (expression_statement "param_1[1] = iVar17;" (assignment_expression "param_1[1] = iVar17" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar17")) (; ";")) (if_statement "if (iStack_24 != 0) {\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }" (if "if") (parenthesized_expression "(iStack_24 != 0)" (( "(") (binary_expression "iStack_24 != 0" (identifier "iStack_24") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            *(int *)(puVar14 + -0x10) = iStack_24;\n            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;\n            __gmp_tmp_reentrant_free();\n          }" ({ "{") (expression_statement "*(int *)(puVar14 + -0x10) = iStack_24;" (assignment_expression "*(int *)(puVar14 + -0x10) = iStack_24" (pointer_expression "*(int *)(puVar14 + -0x10)" (* "*") (cast_expression "(int *)(puVar14 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + -0x10)" (( "(") (binary_expression "puVar14 + -0x10" (identifier "puVar14") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "iStack_24")) (; ";")) (expression_statement "*(undefined4 *)(puVar14 + -0x14) = 0x2982c;" (assignment_expression "*(undefined4 *)(puVar14 + -0x14) = 0x2982c" (pointer_expression "*(undefined4 *)(puVar14 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar14 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + -0x14)" (( "(") (binary_expression "puVar14 + -0x14" (identifier "puVar14") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x2982c")) (; ";")) (expression_statement "__gmp_tmp_reentrant_free();" (call_expression "__gmp_tmp_reentrant_free()" (identifier "__gmp_tmp_reentrant_free") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_00029590;" (goto "goto") (statement_identifier "LAB_00029590") (; ";")) (} "}"))) (expression_statement "param_1[1] = 1;" (assignment_expression "param_1[1] = 1" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar13 = (undefined4 *)param_1[2];" (assignment_expression "puVar13 = (undefined4 *)param_1[2]" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)param_1[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "uVar16 = *puVar11;" (assignment_expression "uVar16 = *puVar11" (identifier "uVar16") (= "=") (pointer_expression "*puVar11" (* "*") (identifier "puVar11"))) (; ";")) (expression_statement "puVar11 = puStack_40;" (assignment_expression "puVar11 = puStack_40" (identifier "puVar11") (= "=") (identifier "puStack_40")) (; ";")) (expression_statement "puVar15 = puStack_34;" (assignment_expression "puVar15 = puStack_34" (identifier "puVar15") (= "=") (identifier "puStack_34")) (; ";")) (} "}")))) (expression_statement "ppuStack_30 = &__DT_PLTGOT;" (assignment_expression "ppuStack_30 = &__DT_PLTGOT" (identifier "ppuStack_30") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (expression_statement "uVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);" (assignment_expression "uVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16)" (identifier "uVar9") (= "=") (call_expression "(**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16)" (parenthesized_expression "(**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))" (( "(") (pointer_expression "**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34)" (* "*") (pointer_expression "*(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34)" (* "*") (cast_expression "(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR___gmpn_cpuvec_00098d94 + 0x34)" (( "(") (binary_expression "PTR___gmpn_cpuvec_00098d94 + 0x34" (identifier "PTR___gmpn_cpuvec_00098d94") (+ "+") (number_literal "0x34")) () ")"))))) () ")")) (argument_list "(puVar11,puVar15,uVar16)" (( "(") (identifier "puVar11") (, ",") (identifier "puVar15") (, ",") (identifier "uVar16") () ")")))) (; ";")) (expression_statement "puVar14 = auStack_6c;" (assignment_expression "puVar14 = auStack_6c" (identifier "puVar14") (= "=") (identifier "auStack_6c")) (; ";")) (expression_statement "*puVar13 = uVar9;" (assignment_expression "*puVar13 = uVar9" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (identifier "uVar9")) (; ";")) (goto_statement "goto LAB_00029590;" (goto "goto") (statement_identifier "LAB_00029590") (; ";")) (} "}"))) (expression_statement "param_1[1] = (int)puStack_34;" (assignment_expression "param_1[1] = (int)puStack_34" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int)puStack_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_34"))) (; ";")) (if_statement "if (param_2 == param_1) goto LAB_00029590;" (if "if") (parenthesized_expression "(param_2 == param_1)" (( "(") (binary_expression "param_2 == param_1" (identifier "param_2") (== "==") (identifier "param_1")) () ")")) (goto_statement "goto LAB_00029590;" (goto "goto") (statement_identifier "LAB_00029590") (; ";"))) (expression_statement "puVar11 = puStack_40;" (assignment_expression "puVar11 = puStack_40" (identifier "puVar11") (= "=") (identifier "puStack_40")) (; ";")) (expression_statement "puVar15 = puStack_34;" (assignment_expression "puVar15 = puStack_34" (identifier "puVar15") (= "=") (identifier "puStack_34")) (; ";")) (expression_statement "ppuStack_30 = &__DT_PLTGOT;" (assignment_expression "ppuStack_30 = &__DT_PLTGOT" (identifier "ppuStack_30") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (if_statement "if (*param_1 < (int)puStack_34) {\n      __gmpz_realloc(param_1,puStack_34);\n      puVar11 = puStack_40;\n      puVar15 = puStack_34;\n    }" (if "if") (parenthesized_expression "(*param_1 < (int)puStack_34)" (( "(") (binary_expression "*param_1 < (int)puStack_34" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (< "<") (cast_expression "(int)puStack_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_34"))) () ")")) (compound_statement "{\n      __gmpz_realloc(param_1,puStack_34);\n      puVar11 = puStack_40;\n      puVar15 = puStack_34;\n    }" ({ "{") (expression_statement "__gmpz_realloc(param_1,puStack_34);" (call_expression "__gmpz_realloc(param_1,puStack_34)" (identifier "__gmpz_realloc") (argument_list "(param_1,puStack_34)" (( "(") (identifier "param_1") (, ",") (identifier "puStack_34") () ")"))) (; ";")) (expression_statement "puVar11 = puStack_40;" (assignment_expression "puVar11 = puStack_40" (identifier "puVar11") (= "=") (identifier "puStack_40")) (; ";")) (expression_statement "puVar15 = puStack_34;" (assignment_expression "puVar15 = puStack_34" (identifier "puVar15") (= "=") (identifier "puStack_34")) (; ";")) (} "}"))) (} "}")))) (expression_statement "(**(code **)(ppuStack_30[-0x9b] + 0x28))(param_1[2],puVar11,puVar15);" (call_expression "(**(code **)(ppuStack_30[-0x9b] + 0x28))(param_1[2],puVar11,puVar15)" (parenthesized_expression "(**(code **)(ppuStack_30[-0x9b] + 0x28))" (( "(") (pointer_expression "**(code **)(ppuStack_30[-0x9b] + 0x28)" (* "*") (pointer_expression "*(code **)(ppuStack_30[-0x9b] + 0x28)" (* "*") (cast_expression "(code **)(ppuStack_30[-0x9b] + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(ppuStack_30[-0x9b] + 0x28)" (( "(") (binary_expression "ppuStack_30[-0x9b] + 0x28" (subscript_expression "ppuStack_30[-0x9b]" (identifier "ppuStack_30") ([ "[") (number_literal "-0x9b") (] "]")) (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "(param_1[2],puVar11,puVar15)" (( "(") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (, ",") (identifier "puVar11") (, ",") (identifier "puVar15") () ")"))) (; ";")) (expression_statement "puVar14 = auStack_6c;" (assignment_expression "puVar14 = auStack_6c" (identifier "puVar14") (= "=") (identifier "auStack_6c")) (; ";")) (labeled_statement "LAB_00029590:\n  if (iStack_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" (statement_identifier "LAB_00029590") (: ":") (if_statement "if (iStack_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" (if "if") (parenthesized_expression "(iStack_20 == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "iStack_20 == *(int *)(in_GS_OFFSET + 0x14)" (identifier "iStack_20") (== "==") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (expression_statement "*(undefined4 *)(puVar14 + -4) = 0x29a36;" (assignment_expression "*(undefined4 *)(puVar14 + -4) = 0x29a36" (pointer_expression "*(undefined4 *)(puVar14 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar14 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + -4)" (( "(") (binary_expression "puVar14 + -4" (identifier "puVar14") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x29a36")) (; ";")) (expression_statement "FUN_00079d30();" (call_expression "FUN_00079d30()" (identifier "FUN_00079d30") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Switch with 1 destination removed at 0x0001be40 */
/* WARNING: Unknown calling convention */

void function_1(type_1 var_5,type_2 var_32,type_2 var_4)

{
  type_3 var_2;
  type_4 *var_17;
  type_5 *pcVar3;
  type_2 p_Var4;
  type_3 *puVar5;
  type_4 **ppuVar6;
  type_6 *var_26;
  int var_28;
  type_6 mVar9;
  type_6 *var_25;
  type_3 *var_18;
  type_3 *var_9;
  type_6 *var_27;
  type_7 *var_16;
  type_3 *var_8;
  type_3 var_3;
  int var_13;
  int var_1;
  type_7 var_12 [8];
  type_3 *puStack_64;
  type_3 *var_20;
  type_2 p_Stack_5c;
  int var_10;
  int var_19;
  type_3 *var_15;
  type_3 *var_23;
  type_3 *puStack_48;
  void *pvStack_44;
  type_3 *var_21;
  type_2 var_24;
  type_2 var_11;
  type_3 *var_7;
  type_4 **ppuStack_30;
  type_8 *var_29;
  int var_33;
  type_4 **ppuStack_10;
  
  ppuStack_10 = &_GLOBAL_OFFSET_TABLE_;
  var_16 = var_12;
  ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;
  var_11 = var_32;
  var_3 = var_32->_mp_size;
  var_33 = *(int *)(var_1 + 0x14);
  var_18 = var_4->_mp_d;
  var_24 = var_4;
  var_2 = var_4->_mp_size;
  var_8 = (type_3 *)(((int)var_2 >> 0x1f ^ var_2) - ((int)var_2 >> 0x1f));
  if (var_3 == 0) {
    var_5->_mp_size = (int)var_8;
    var_16 = var_12;
    ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;
    if (var_4 == var_5) goto LAB_00029590;
    if (var_5->_mp_alloc < (int)var_8) {
      var_7 = var_18;
      var_6(var_5,(type_9)var_8);
      var_18 = var_7;
    }
  }
  else {
    var_21 = var_32->_mp_d;
    var_7 = (type_3 *)((var_3 ^ (int)var_3 >> 0x1f) - ((int)var_3 >> 0x1f));
    if (var_2 != 0) {
      if (var_7 == (type_3 *)0x1) {
        var_27 = var_5->_mp_d;
        var_5->_mp_size = 1;
        var_3 = *var_21;
      }
      else {
        if (var_8 != (type_3 *)0x1) {
          var_29 = (type_8 *)0x0;
          var_3 = *var_21;
          var_9 = var_21;
          if (var_3 == 0) {
            do {
              var_9 = var_9 + 1;
              var_3 = *var_9;
            } while (var_3 == 0);
            var_10 = (int)var_9 - (int)var_21;
            p_Stack_5c = (type_2)(var_10 >> 2);
            var_7 = (type_3 *)((int)var_7 - (int)p_Stack_5c);
          }
          else {
            p_Stack_5c = (type_2)0x0;
            var_10 = 0;
          }
          var_15 = (type_3 *)0x0;
          for (; (var_3 & 1) == 0; var_3 = var_3 >> 1 | 0x80000000) {
            var_15 = (type_3 *)((int)var_15 + 1);
          }
          var_11 = (type_2)((int)var_7 * 4);
          if (var_11 < (type_3 *)0x7f01) {
            var_13 = -((int)var_11 + 0x1bU & 0xfffffff0);
            var_16 = var_12 + var_13;
            pvStack_44 = (void *)((int)&var_20 + var_13);
            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;
          }
          else {
            puStack_48 = var_18;
            var_21 = var_9;
            ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;
            pvStack_44 = var_14(&var_29,(size_t)var_11);
            var_16 = var_12;
            var_18 = puStack_48;
            var_9 = var_21;
          }
          ppuVar6 = ppuStack_30;
          puVar5 = var_7;
          if (var_15 == (type_3 *)0x0) {
            *(type_3 **)(var_16 + -8) = var_7;
            *(type_3 **)(var_16 + -0xc) = var_9;
            *(void **)(var_16 + -0x10) = pvStack_44;
            puStack_48 = (type_3 *)ppuVar6[-0x9b];
            pcVar3 = *(type_5 **)((int)puStack_48 + 0x28);
            var_11 = (type_2)var_18;
            *(type_10 *)(var_16 + -0x14) = 0x298ec;
            (*pcVar3)();
            var_21 = (type_3 *)var_11;
          }
          else {
            var_21 = var_18;
            *(type_3 **)(var_16 + -4) = var_15;
            var_17 = ppuVar6[-0x9b];
            *(type_3 **)(var_16 + -8) = puVar5;
            puStack_48 = (type_3 *)var_17;
            *(type_3 **)(var_16 + -0xc) = var_9;
            *(void **)(var_16 + -0x10) = pvStack_44;
            pcVar3 = *(type_5 **)(var_17 + 0x80);
            *(type_10 *)(var_16 + -0x14) = 0x29680;
            (*pcVar3)();
            var_7 = (type_3 *)((int)puVar5 -
                                 (type_3)(*(int *)((int)pvStack_44 + -4 + (int)var_11) == 0));
          }
          var_3 = *var_21;
          var_18 = var_21;
          while (var_3 == 0) {
            var_18 = var_18 + 1;
            var_3 = *var_18;
          }
          var_23 = (type_3 *)0x0;
          for (; (var_3 & 1) == 0; var_3 = var_3 >> 1 | 0x80000000) {
            var_23 = (type_3 *)((int)var_23 + 1);
          }
          var_19 = (int)var_18 - (int)var_24->_mp_d;
          var_24 = (type_2)(var_19 >> 2);
          var_21 = (type_3 *)((int)var_8 - (int)var_24);
          var_3 = (int)var_21 * 4;
          if (var_3 < 0x7f01) {
            var_13 = -(var_3 + 0x1b & 0xfffffff0);
            var_11 = (type_2)((type_3)(var_16 + var_13 + 0xf) & 0xfffffff0);
            var_20 = var_23;
            var_16 = var_16 + var_13;
          }
          else {
            puStack_64 = var_23;
            *(type_3 *)(var_16 + -0xc) = var_3;
            *(type_8 ***)(var_16 + -0x10) = &var_29;
            var_20 = var_18;
            *(type_10 *)(var_16 + -0x14) = 0x299f6;
            var_11 = (type_2)
                         var_14
                                   (*(type_8 ***)(var_16 + -0x10),
                                    *(size_t *)(var_16 + -0xc));
            var_18 = var_20;
            var_20 = puStack_64;
          }
          var_8 = var_21;
          if (var_20 == (type_3 *)0x0) {
            *(type_3 **)(var_16 + -8) = var_21;
            var_8 = puStack_48;
            *(type_3 **)(var_16 + -0xc) = var_18;
            *(type_2 *)(var_16 + -0x10) = var_11;
            pcVar3 = *(type_5 **)((int)var_8 + 0x28);
            *(type_10 *)(var_16 + -0x14) = 0x29913;
            (*pcVar3)();
          }
          else {
            *(type_3 **)(var_16 + -4) = var_20;
            *(type_3 **)(var_16 + -8) = var_8;
            *(type_3 **)(var_16 + -0xc) = var_18;
            var_18 = puStack_48;
            *(type_2 *)(var_16 + -0x10) = var_11;
            pcVar3 = *(type_5 **)((int)var_18 + 0x80);
            *(type_10 *)(var_16 + -0x14) = 0x2970c;
            (*pcVar3)();
            var_21 = (type_3 *)((int)var_8 -
                                 (type_3)(*(int *)((int)var_11 + (var_3 - 4)) == 0));
          }
          p_Var4 = var_11;
          if (var_10 <= var_19) {
            if (var_10 < var_19) {
              var_24 = p_Stack_5c;
              var_23 = var_15;
            }
            else {
              var_23 = var_20;
              if (var_15 < var_20) {
                var_23 = var_15;
              }
              var_24 = p_Stack_5c;
            }
          }
          if (((int)var_7 < (int)var_21) ||
             ((var_21 == var_7 &&
              (*(type_3 *)((int)pvStack_44 + (int)var_21 * 4 + -4) <
               *(type_3 *)((int)var_11 + (int)var_21 * 4 + -4))))) {
            *(type_3 **)(var_16 + -0x10) = var_7;
            *(void **)(var_16 + -0x14) = pvStack_44;
            *(type_3 **)(var_16 + -0x18) = var_21;
            *(type_2 *)(var_16 + -0x1c) = p_Var4;
          }
          else {
            *(type_3 **)(var_16 + -0x10) = var_21;
            *(type_2 *)(var_16 + -0x14) = p_Var4;
            *(type_3 **)(var_16 + -0x18) = var_7;
            *(void **)(var_16 + -0x1c) = pvStack_44;
          }
          *(type_2 *)(var_16 + -0x20) = p_Var4;
          *(type_10 *)(var_16 + -0x24) = 0x2977c;
          var_7 = (type_3 *)var_22(*(type_11 *)(var_16 + -0x20),*(type_11 *)(var_16 + -0x1c),
                                          *(type_9 *)(var_16 + -0x18),
                                          *(type_11 *)(var_16 + -0x14),
                                          *(type_9 *)(var_16 + -0x10));
          var_13 = (int)&var_24->_mp_alloc + (int)var_7;
          if (var_23 == (type_3 *)0x0) {
            if (var_5->_mp_alloc < var_13) {
              *(int *)(var_16 + -0xc) = var_13;
              *(type_1 *)(var_16 + -0x10) = var_5;
              *(type_10 *)(var_16 + -0x14) = 0x29a29;
              var_6(*(type_1 *)(var_16 + -0x10),*(type_9 *)(var_16 + -0xc));
            }
            p_Var4 = var_24;
            var_27 = var_5->_mp_d;
            if (var_24 != (type_2)0x0) {
              var_25 = var_27;
              do {
                var_26 = var_25 + 1;
                *var_25 = 0;
                var_25 = var_26;
              } while (var_26 != var_27 + (int)var_24);
            }
            *(type_3 **)(var_16 + -8) = var_7;
            *(type_2 *)(var_16 + -0xc) = var_11;
            *(type_6 **)(var_16 + -0x10) = var_27 + (int)p_Var4;
            pcVar3 = *(type_5 **)((int)puStack_48 + 0x28);
            *(type_10 *)(var_16 + -0x14) = 0x298c4;
            (*pcVar3)();
          }
          else {
            var_21 = (type_3 *)(((int)var_7 + 0x3fffffff) * 4);
            var_13 = var_13 + (type_3)(*(type_3 *)((int)var_11 + ((int)var_7 + 0x3fffffff) * 4)
                                     >> (0x20U - (char)var_23 & 0x1f) != 0);
            if (var_5->_mp_alloc < var_13) {
              *(int *)(var_16 + -0xc) = var_13;
              *(type_1 *)(var_16 + -0x10) = var_5;
              *(type_10 *)(var_16 + -0x14) = 0x29a14;
              var_6(*(type_1 *)(var_16 + -0x10),*(type_9 *)(var_16 + -0xc));
            }
            p_Var4 = var_24;
            var_27 = var_5->_mp_d;
            if (var_24 != (type_2)0x0) {
              var_25 = var_27;
              do {
                var_26 = var_25 + 1;
                *var_25 = 0;
                var_25 = var_26;
              } while (var_26 != var_27 + (int)var_24);
            }
            *(type_3 **)(var_16 + -4) = var_23;
            *(type_3 **)(var_16 + -8) = var_7;
            var_18 = puStack_48;
            *(type_2 *)(var_16 + -0xc) = var_11;
            *(type_6 **)(var_16 + -0x10) = var_27 + (int)p_Var4;
            pcVar3 = *(type_5 **)((int)var_18 + 0x38);
            *(type_10 *)(var_16 + -0x14) = 0x29804;
            var_28 = (*pcVar3)();
            if (var_28 != 0) {
              *(int *)((int)(var_27 + (int)p_Var4 + 1) + (int)var_21) = var_28;
            }
          }
          var_5->_mp_size = var_13;
          if (var_29 != (type_8 *)0x0) {
            *(type_8 **)(var_16 + -0x10) = var_29;
            *(type_10 *)(var_16 + -0x14) = 0x2982c;
            var_30(*(type_8 **)(var_16 + -0x10));
          }
          goto LAB_00029590;
        }
        var_5->_mp_size = 1;
        var_27 = var_5->_mp_d;
        var_3 = *var_18;
        var_18 = var_21;
        var_8 = var_7;
      }
      ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;
      mVar9 = (**(type_5 **)(var_31 + 0x34))(var_18,var_8,var_3);
      var_16 = var_12;
      *var_27 = mVar9;
      goto LAB_00029590;
    }
    var_5->_mp_size = (int)var_7;
    if (var_32 == var_5) goto LAB_00029590;
    var_18 = var_21;
    var_8 = var_7;
    ppuStack_30 = &_GLOBAL_OFFSET_TABLE_;
    if (var_5->_mp_alloc < (int)var_7) {
      var_6(var_5,(type_9)var_7);
      var_18 = var_21;
      var_8 = var_7;
    }
  }
  (**(type_5 **)(ppuStack_30[-0x9b] + 0x28))(var_5->_mp_d,var_18,var_8);
  var_16 = var_12;
LAB_00029590:
  if (var_33 == *(int *)(var_1 + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  *(type_10 *)(var_16 + -4) = 0x29a36;
  var_34();
}


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

/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Switch with 1 destination removed at 0x0001be40 */

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

{
  uint uVar1;
  undefined *puVar2;
  code *pcVar3;
  int *piVar4;
  uint *puVar5;
  undefined **ppuVar6;
  undefined4 *puVar7;
  int iVar8;
  undefined4 uVar9;
  undefined4 *puVar10;
  uint *puVar11;
  uint *puVar12;
  undefined4 *puVar13;
  undefined1 *puVar14;
  uint *puVar15;
  uint uVar16;
  int iVar17;
  int in_GS_OFFSET;
  undefined1 auStack_6c [8];
  uint *puStack_64;
  uint *puStack_60;
  int *piStack_5c;
  int iStack_58;
  int iStack_54;
  uint *puStack_50;
  uint *puStack_4c;
  uint *puStack_48;
  int iStack_44;
  uint *puStack_40;
  int *piStack_3c;
  uint *puStack_38;
  uint *puStack_34;
  undefined **ppuStack_30;
  int iStack_24;
  int iStack_20;
  undefined **ppuStack_10;
  
  ppuStack_10 = &__DT_PLTGOT;
  puVar14 = auStack_6c;
  ppuStack_30 = &__DT_PLTGOT;
  puStack_38 = (uint *)param_2;
  uVar16 = param_2[1];
  iStack_20 = *(int *)(in_GS_OFFSET + 0x14);
  puVar11 = (uint *)param_3[2];
  piStack_3c = param_3;
  uVar1 = param_3[1];
  puVar15 = (uint *)(((int)uVar1 >> 0x1f ^ uVar1) - ((int)uVar1 >> 0x1f));
  if (uVar16 == 0) {
    param_1[1] = (int)puVar15;
    puVar14 = auStack_6c;
    ppuStack_30 = &__DT_PLTGOT;
    if (param_3 == param_1) goto LAB_00029590;
    if (*param_1 < (int)puVar15) {
      puStack_34 = puVar11;
      __gmpz_realloc(param_1,puVar15);
      puVar11 = puStack_34;
    }
  }
  else {
    puStack_40 = (uint *)param_2[2];
    puStack_34 = (uint *)((uVar16 ^ (int)uVar16 >> 0x1f) - ((int)uVar16 >> 0x1f));
    if (uVar1 != 0) {
      if (puStack_34 == (uint *)0x1) {
        puVar13 = (undefined4 *)param_1[2];
        param_1[1] = 1;
        uVar16 = *puStack_40;
      }
      else {
        if (puVar15 != (uint *)0x1) {
          iStack_24 = 0;
          uVar16 = *puStack_40;
          puVar12 = puStack_40;
          if (uVar16 == 0) {
            do {
              puVar12 = puVar12 + 1;
              uVar16 = *puVar12;
            } while (uVar16 == 0);
            iStack_58 = (int)puVar12 - (int)puStack_40;
            piStack_5c = (int *)(iStack_58 >> 2);
            puStack_34 = (uint *)((int)puStack_34 - (int)piStack_5c);
          }
          else {
            piStack_5c = (int *)0x0;
            iStack_58 = 0;
          }
          puStack_50 = (uint *)0x0;
          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {
            puStack_50 = (uint *)((int)puStack_50 + 1);
          }
          puStack_38 = (uint *)((int)puStack_34 * 4);
          if (puStack_38 < (uint *)0x7f01) {
            iStack_44 = -((int)puStack_38 + 0x1bU & 0xfffffff0);
            puVar14 = auStack_6c + iStack_44;
            iStack_44 = (int)&puStack_60 + iStack_44;
            ppuStack_30 = &__DT_PLTGOT;
          }
          else {
            puStack_48 = puVar11;
            puStack_40 = puVar12;
            ppuStack_30 = &__DT_PLTGOT;
            iStack_44 = __gmp_tmp_reentrant_alloc(&iStack_24,puStack_38);
            puVar14 = auStack_6c;
            puVar11 = puStack_48;
            puVar12 = puStack_40;
          }
          ppuVar6 = ppuStack_30;
          puVar5 = puStack_34;
          if (puStack_50 == (uint *)0x0) {
            *(uint **)(puVar14 + -8) = puStack_34;
            *(uint **)(puVar14 + -0xc) = puVar12;
            *(int *)(puVar14 + -0x10) = iStack_44;
            puStack_48 = (uint *)ppuVar6[-0x9b];
            pcVar3 = *(code **)((int)puStack_48 + 0x28);
            puStack_38 = puVar11;
            *(undefined4 *)(puVar14 + -0x14) = 0x298ec;
            (*pcVar3)();
            puStack_40 = puStack_38;
          }
          else {
            puStack_40 = puVar11;
            *(uint **)(puVar14 + -4) = puStack_50;
            puVar2 = ppuVar6[-0x9b];
            *(uint **)(puVar14 + -8) = puVar5;
            puStack_48 = (uint *)puVar2;
            *(uint **)(puVar14 + -0xc) = puVar12;
            *(int *)(puVar14 + -0x10) = iStack_44;
            pcVar3 = *(code **)(puVar2 + 0x80);
            *(undefined4 *)(puVar14 + -0x14) = 0x29680;
            (*pcVar3)();
            puStack_34 = (uint *)((int)puVar5 -
                                 (uint)(*(int *)(iStack_44 + -4 + (int)puStack_38) == 0));
          }
          uVar16 = *puStack_40;
          puVar11 = puStack_40;
          while (uVar16 == 0) {
            puVar11 = puVar11 + 1;
            uVar16 = *puVar11;
          }
          puStack_4c = (uint *)0x0;
          for (; (uVar16 & 1) == 0; uVar16 = uVar16 >> 1 | 0x80000000) {
            puStack_4c = (uint *)((int)puStack_4c + 1);
          }
          iStack_54 = (int)puVar11 - piStack_3c[2];
          piStack_3c = (int *)(iStack_54 >> 2);
          puVar15 = (uint *)((int)puVar15 - (int)piStack_3c);
          uVar16 = (int)puVar15 * 4;
          puStack_40 = puVar15;
          if (uVar16 < 0x7f01) {
            iVar17 = -(uVar16 + 0x1b & 0xfffffff0);
            puStack_38 = (uint *)((uint)(puVar14 + iVar17 + 0xf) & 0xfffffff0);
            puStack_60 = puStack_4c;
            puVar14 = puVar14 + iVar17;
          }
          else {
            puStack_64 = puStack_4c;
            *(uint *)(puVar14 + -0xc) = uVar16;
            *(int **)(puVar14 + -0x10) = &iStack_24;
            puStack_60 = puVar11;
            *(undefined4 *)(puVar14 + -0x14) = 0x299f6;
            puStack_38 = (uint *)__gmp_tmp_reentrant_alloc();
            puVar11 = puStack_60;
            puStack_60 = puStack_64;
          }
          puVar12 = puStack_40;
          if (puStack_60 == (uint *)0x0) {
            *(uint **)(puVar14 + -8) = puStack_40;
            puVar15 = puStack_48;
            *(uint **)(puVar14 + -0xc) = puVar11;
            *(uint **)(puVar14 + -0x10) = puStack_38;
            pcVar3 = *(code **)((int)puVar15 + 0x28);
            *(undefined4 *)(puVar14 + -0x14) = 0x29913;
            (*pcVar3)();
          }
          else {
            *(uint **)(puVar14 + -4) = puStack_60;
            *(uint **)(puVar14 + -8) = puVar12;
            *(uint **)(puVar14 + -0xc) = puVar11;
            puVar11 = puStack_48;
            *(uint **)(puVar14 + -0x10) = puStack_38;
            pcVar3 = *(code **)((int)puVar11 + 0x80);
            *(undefined4 *)(puVar14 + -0x14) = 0x2970c;
            (*pcVar3)();
            puStack_40 = (uint *)((int)puVar12 - (uint)(puStack_38[(int)puVar15 + -1] == 0));
          }
          puVar11 = puStack_38;
          if (iStack_58 <= iStack_54) {
            if (iStack_58 < iStack_54) {
              piStack_3c = piStack_5c;
              puStack_4c = puStack_50;
            }
            else {
              puStack_4c = puStack_60;
              if (puStack_50 < puStack_60) {
                puStack_4c = puStack_50;
              }
              piStack_3c = piStack_5c;
            }
          }
          if (((int)puStack_34 < (int)puStack_40) ||
             ((puStack_40 == puStack_34 &&
              (*(uint *)(iStack_44 + -4 + (int)puStack_40 * 4) < puStack_38[(int)puStack_40 + -1])))
             ) {
            *(uint **)(puVar14 + -0x10) = puStack_34;
            *(int *)(puVar14 + -0x14) = iStack_44;
            *(uint **)(puVar14 + -0x18) = puStack_40;
            *(uint **)(puVar14 + -0x1c) = puVar11;
          }
          else {
            *(uint **)(puVar14 + -0x10) = puStack_40;
            *(uint **)(puVar14 + -0x14) = puVar11;
            *(uint **)(puVar14 + -0x18) = puStack_34;
            *(int *)(puVar14 + -0x1c) = iStack_44;
          }
          *(uint **)(puVar14 + -0x20) = puVar11;
          *(undefined4 *)(puVar14 + -0x24) = 0x2977c;
          puStack_34 = (uint *)__gmpn_gcd();
          iVar17 = (int)piStack_3c + (int)puStack_34;
          if (puStack_4c == (uint *)0x0) {
            if (*param_1 < iVar17) {
              *(int *)(puVar14 + -0xc) = iVar17;
              *(int **)(puVar14 + -0x10) = param_1;
              *(undefined4 *)(puVar14 + -0x14) = 0x29a29;
              __gmpz_realloc();
            }
            piVar4 = piStack_3c;
            puVar13 = (undefined4 *)param_1[2];
            if (piStack_3c != (int *)0x0) {
              puVar10 = puVar13;
              do {
                puVar7 = puVar10 + 1;
                *puVar10 = 0;
                puVar10 = puVar7;
              } while (puVar7 != puVar13 + (int)piStack_3c);
            }
            *(uint **)(puVar14 + -8) = puStack_34;
            *(uint **)(puVar14 + -0xc) = puStack_38;
            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;
            pcVar3 = *(code **)((int)puStack_48 + 0x28);
            *(undefined4 *)(puVar14 + -0x14) = 0x298c4;
            (*pcVar3)();
          }
          else {
            puStack_40 = (uint *)(((int)puStack_34 + 0x3fffffff) * 4);
            iVar17 = iVar17 + (uint)(puStack_38[(int)puStack_34 + 0x3fffffff] >>
                                     (0x20U - (char)puStack_4c & 0x1f) != 0);
            if (*param_1 < iVar17) {
              *(int *)(puVar14 + -0xc) = iVar17;
              *(int **)(puVar14 + -0x10) = param_1;
              *(undefined4 *)(puVar14 + -0x14) = 0x29a14;
              __gmpz_realloc();
            }
            piVar4 = piStack_3c;
            puVar13 = (undefined4 *)param_1[2];
            if (piStack_3c != (int *)0x0) {
              puVar10 = puVar13;
              do {
                puVar7 = puVar10 + 1;
                *puVar10 = 0;
                puVar10 = puVar7;
              } while (puVar7 != puVar13 + (int)piStack_3c);
            }
            *(uint **)(puVar14 + -4) = puStack_4c;
            *(uint **)(puVar14 + -8) = puStack_34;
            puVar11 = puStack_48;
            *(uint **)(puVar14 + -0xc) = puStack_38;
            *(undefined4 **)(puVar14 + -0x10) = puVar13 + (int)piVar4;
            pcVar3 = *(code **)((int)puVar11 + 0x38);
            *(undefined4 *)(puVar14 + -0x14) = 0x29804;
            iVar8 = (*pcVar3)();
            if (iVar8 != 0) {
              *(int *)((int)(puVar13 + (int)piVar4 + 1) + (int)puStack_40) = iVar8;
            }
          }
          param_1[1] = iVar17;
          if (iStack_24 != 0) {
            *(int *)(puVar14 + -0x10) = iStack_24;
            *(undefined4 *)(puVar14 + -0x14) = 0x2982c;
            __gmp_tmp_reentrant_free();
          }
          goto LAB_00029590;
        }
        param_1[1] = 1;
        puVar13 = (undefined4 *)param_1[2];
        uVar16 = *puVar11;
        puVar11 = puStack_40;
        puVar15 = puStack_34;
      }
      ppuStack_30 = &__DT_PLTGOT;
      uVar9 = (**(code **)(PTR___gmpn_cpuvec_00098d94 + 0x34))(puVar11,puVar15,uVar16);
      puVar14 = auStack_6c;
      *puVar13 = uVar9;
      goto LAB_00029590;
    }
    param_1[1] = (int)puStack_34;
    if (param_2 == param_1) goto LAB_00029590;
    puVar11 = puStack_40;
    puVar15 = puStack_34;
    ppuStack_30 = &__DT_PLTGOT;
    if (*param_1 < (int)puStack_34) {
      __gmpz_realloc(param_1,puStack_34);
      puVar11 = puStack_40;
      puVar15 = puStack_34;
    }
  }
  (**(code **)(ppuStack_30[-0x9b] + 0x28))(param_1[2],puVar11,puVar15);
  puVar14 = auStack_6c;
LAB_00029590:
  if (iStack_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  *(undefined4 *)(puVar14 + -4) = 0x29a36;
  FUN_00079d30();
}

