
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void __gmpn_broot_invm1(mp_ptr rp,mp_srcptr ap,mp_size_t n,mp_limb_t k)

{
  int iVar1;
  uint *puVar2;
  uint uVar3;
  void *pvVar4;
  mp_limb_t mVar5;
  int iVar6;
  mp_limb_t *pmVar7;
  int iVar8;
  undefined1 *puVar9;
  int iVar10;
  int iVar11;
  int in_GS_OFFSET;
  uint auStackY_8090 [4];
  mp_limb_t amStackY_8080 [2];
  size_t sStackY_8078;
  uint auStackY_8074 [8130];
  undefined1 auStack_15c [8];
  mp_limb_t *local_154;
  uint *local_150 [3];
  int local_144;
  mp_size_t *local_140;
  uint local_13c;
  mp_ptr local_138;
  void *local_134;
  mp_ptr local_130;
  mp_limb_t km1;
  mp_limb_t kp1h;
  tmp_reentrant_t *__tmp_marker;
  mp_size_t sizes [64];
  
  local_130 = rp;
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  __tmp_marker = (tmp_reentrant_t *)0x0;
  uVar3 = n * 0x10;
  if (uVar3 < 0x7f01) {
    puVar9 = auStack_15c + -(uVar3 + 0x10);
    local_150[2] = (uint *)((int)local_150 + -(uVar3 + 0x10));
  }
  else {
    local_150[2] = (uint *)__gmp_tmp_reentrant_alloc(&__tmp_marker,uVar3);
    puVar9 = auStack_15c;
  }
  puVar2 = local_150[2];
  local_138 = (mp_ptr)(n * 4);
  local_150[0] = local_150[2] + n;
  *(uint **)(puVar9 + -0xc) = local_150[0];
  km1 = k - 1;
  *(mp_size_t *)(puVar9 + -0x10) = n;
  *(undefined4 *)(puVar9 + -0x14) = 1;
  *(mp_limb_t **)(puVar9 + -0x18) = &km1;
  *(mp_srcptr *)(puVar9 + -0x1c) = ap;
  *(uint **)(puVar9 + -0x20) = local_150[2];
  *(undefined4 *)(puVar9 + -0x24) = 0x7154e;
  __gmpn_powlo(*(mp_ptr *)(puVar9 + -0x20),*(mp_srcptr *)(puVar9 + -0x1c),
               *(mp_srcptr *)(puVar9 + -0x18),*(mp_size_t *)(puVar9 + -0x14),
               *(mp_size_t *)(puVar9 + -0x10),*(mp_ptr *)(puVar9 + -0xc));
  local_134 = (void *)*puVar2;
  local_13c = k >> 1;
  uVar3 = (uint)(byte)PTR___gmp_binvert_limb_table_00098ec8[local_13c & 0x7f];
  iVar8 = uVar3 * 2 - uVar3 * uVar3 * k;
  local_144 = iVar8 * 2 - iVar8 * iVar8 * k;
  iVar8 = ((*ap << 2 ^ *ap * 2) & k << 2 & 8) + 1;
  iVar10 = local_144 * iVar8;
  uVar3 = k & 0x7f;
  pvVar4 = local_134;
  if (uVar3 != 0) {
    iVar11 = 1;
    do {
      if ((uVar3 & 1) != 0) {
        iVar11 = iVar11 * iVar8;
      }
      iVar8 = iVar8 * iVar8;
      uVar3 = uVar3 >> 1;
    } while (uVar3 != 0);
    pvVar4 = (void *)((int)local_134 * iVar11);
  }
  iVar8 = k + 1;
  iVar10 = iVar10 * (iVar8 - (int)pvVar4);
  iVar11 = local_144 * iVar10;
  uVar3 = k & 0x7fff;
  if (uVar3 == 0) {
    iVar10 = iVar8 - (int)local_134;
    iVar11 = iVar11 * iVar10;
    iVar6 = local_144 * iVar11;
    if (k == 0) goto LAB_00071659;
  }
  else {
    iVar6 = 1;
    do {
      if ((uVar3 & 1) != 0) {
        iVar6 = iVar6 * iVar10;
      }
      iVar10 = iVar10 * iVar10;
      uVar3 = uVar3 >> 1;
    } while (uVar3 != 0);
    iVar11 = iVar11 * (iVar8 - iVar6 * (int)local_134);
    iVar6 = local_144 * iVar11;
  }
  iVar10 = 1;
  mVar5 = k;
  do {
    if ((mVar5 & 1) != 0) {
      iVar10 = iVar10 * iVar11;
    }
    iVar11 = iVar11 * iVar11;
    mVar5 = mVar5 >> 1;
  } while (mVar5 != 0);
  iVar10 = iVar8 - iVar10 * (int)local_134;
LAB_00071659:
  *local_130 = iVar10 * iVar6;
  if (n != 1) {
    kp1h = local_13c + 1;
    uVar3 = n * 8 + 4;
    if (uVar3 < 0x7f01) {
      iVar8 = -(n * 8 + 0x1fU & 0xfffffff0);
      local_134 = (void *)((uint)(puVar9 + iVar8 + 0xf) & 0xfffffff0);
      puVar9 = puVar9 + iVar8;
    }
    else {
      *(uint *)(puVar9 + -0xc) = uVar3;
      *(tmp_reentrant_t ***)(puVar9 + -0x10) = &__tmp_marker;
      *(undefined4 *)(puVar9 + -0x14) = 0x718ac;
      local_134 = __gmp_tmp_reentrant_alloc
                            (*(tmp_reentrant_t ***)(puVar9 + -0x10),*(size_t *)(puVar9 + -0xc));
    }
    iVar8 = (int)local_138 + (int)local_134;
    if (1 < n) {
      local_150[1] = (uint *)sizes;
      iVar10 = 0;
      do {
        iVar11 = n;
        iVar6 = iVar10;
        n = iVar11 + 1 >> 1;
        sizes[iVar6] = iVar11;
        iVar10 = iVar6 + 1;
      } while (n != 1);
      local_154 = &kp1h;
      local_138 = (mp_ptr)n;
      local_140 = (mp_size_t *)local_150[1] + iVar6;
      do {
        *(mp_ptr *)(puVar9 + -8) = local_138;
        *(mp_ptr *)(puVar9 + -0xc) = local_130;
        *(int *)(puVar9 + -0x10) = iVar8;
        *(undefined4 *)(puVar9 + -0x14) = 0x71736;
        __gmpn_sqr(*(mp_ptr *)(puVar9 + -0x10),*(mp_srcptr *)(puVar9 + -0xc),
                   *(mp_size_t *)(puVar9 + -8));
        *(uint **)(puVar9 + -0xc) = local_150[0];
        *(int *)(puVar9 + -0x10) = iVar11;
        *(undefined4 *)(puVar9 + -0x14) = 1;
        *(mp_limb_t **)(puVar9 + -0x18) = local_154;
        *(int *)(puVar9 + -0x1c) = iVar8;
        *(void **)(puVar9 + -0x20) = local_134;
        *(undefined4 *)(puVar9 + -0x24) = 0x71753;
        __gmpn_powlo(*(mp_ptr *)(puVar9 + -0x20),*(mp_srcptr *)(puVar9 + -0x1c),
                     *(mp_srcptr *)(puVar9 + -0x18),*(mp_size_t *)(puVar9 + -0x14),
                     *(mp_size_t *)(puVar9 + -0x10),*(mp_ptr *)(puVar9 + -0xc));
        *(int *)(puVar9 + -4) = iVar11;
        *(uint **)(puVar9 + -8) = local_150[2];
        *(void **)(puVar9 + -0xc) = local_134;
        *(int *)(puVar9 + -0x10) = iVar8;
        *(undefined4 *)(puVar9 + -0x14) = 0x71769;
        __gmpn_mullo_n(*(mp_ptr *)(puVar9 + -0x10),*(mp_srcptr *)(puVar9 + -0xc),
                       *(mp_srcptr *)(puVar9 + -8),*(mp_size_t *)(puVar9 + -4));
        *(undefined4 *)(puVar9 + -0xc) = 0;
        local_13c = iVar11 - (int)local_138;
        iVar10 = (int)local_138 * 4;
        *(int *)(puVar9 + -0x10) = local_144;
        local_138 = local_130 + (int)local_138;
        *(mp_limb_t *)(puVar9 + -0x14) = k;
        *(uint *)(puVar9 + -0x18) = local_13c;
        *(int *)(puVar9 + -0x1c) = iVar10 + iVar8;
        *(mp_ptr *)(puVar9 + -0x20) = local_138;
        *(undefined4 *)(puVar9 + -0x24) = 0x717a2;
        __gmpn_pi1_bdiv_q_1();
        mVar5 = *local_138;
        pmVar7 = local_138;
        uVar3 = local_13c;
        while (uVar3 = uVar3 - 1, mVar5 == 0) {
          if (uVar3 == 0) goto LAB_000717d0;
          pmVar7 = pmVar7 + 1;
          mVar5 = *pmVar7;
        }
        *pmVar7 = -mVar5;
        if (uVar3 != 0) {
          *(uint *)(puVar9 + -8) = uVar3;
          *(mp_limb_t **)(puVar9 + -0xc) = pmVar7 + 1;
          *(mp_limb_t **)(puVar9 + -0x10) = pmVar7 + 1;
          *(undefined4 *)(puVar9 + -0x14) = 0x7180e;
          __gmpn_com();
        }
LAB_000717d0:
        if (local_150[1] == (uint *)local_140) break;
        local_138 = (mp_ptr)iVar11;
        iVar11 = local_140[-1];
        local_140 = local_140 + -1;
      } while( true );
    }
  }
  if (__tmp_marker != (tmp_reentrant_t *)0x0) {
    *(tmp_reentrant_t **)(puVar9 + -0x10) = __tmp_marker;
    *(undefined4 *)(puVar9 + -0x14) = 0x71897;
    __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar9 + -0x10));
  }
  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  *(undefined4 *)(puVar9 + -4) = 0x718bf;
  __stack_chk_fail_local();
}



void __gmpn_broot_invm1(void)

{
  undefined4 *puVar1;
  uint uVar2;
  int iVar3;
  undefined4 uVar4;
  int iVar5;
  int *piVar6;
  int iVar7;
  int iVar8;
  int unaff_EBX;
  int iVar9;
  undefined1 *puVar10;
  undefined1 *puVar11;
  int iVar12;
  int in_GS_OFFSET;
  int aiStackY_8094 [8137];
  undefined1 auStack_160 [332];
  undefined4 uStack_14;
  
  puVar11 = &stack0xfffffffc;
  uStack_14 = 0x714bb;
  entry();
  piVar6 = *(int **)(puVar11 + 0xc);
  *(undefined4 *)(puVar11 + -300) = *(undefined4 *)(puVar11 + 8);
  *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(in_GS_OFFSET + 0x14);
  *(undefined4 *)(puVar11 + -0x120) = 0;
  uVar2 = *(int *)(puVar11 + 0x10) * 0x10;
  if (uVar2 < 0x7f01) {
    puVar10 = auStack_160 + -(uVar2 + 0x10);
    *(undefined1 **)(puVar11 + -0x144) = auStack_160 + -(uVar2 + 0x10);
  }
  else {
    uVar4 = __gmp_tmp_reentrant_alloc(puVar11 + -0x120,uVar2);
    puVar10 = auStack_160;
    *(undefined4 *)(puVar11 + -0x144) = uVar4;
  }
  puVar1 = *(undefined4 **)(puVar11 + -0x144);
  *(int *)(puVar11 + -0x134) = *(int *)(puVar11 + 0x10) * 4;
  *(undefined4 **)(puVar11 + -0x14c) = puVar1 + *(int *)(puVar11 + 0x10);
  iVar3 = *(int *)(puVar11 + 0x14);
  *(undefined4 **)(puVar10 + -0xc) = puVar1 + *(int *)(puVar11 + 0x10);
  *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + 0x10);
  *(int *)(puVar11 + -0x128) = iVar3 + -1;
  *(undefined4 *)(puVar10 + -0x14) = 1;
  *(undefined1 **)(puVar10 + -0x18) = puVar11 + -0x128;
  *(int **)(puVar10 + -0x1c) = piVar6;
  *(undefined4 **)(puVar10 + -0x20) = puVar1;
  *(undefined4 *)(puVar10 + -0x24) = 0x7154e;
  __gmpn_powlo();
  iVar3 = *piVar6;
  iVar7 = *(int *)(unaff_EBX + 0x27a0d);
  uVar4 = *puVar1;
  *(uint *)(puVar11 + -0x138) = *(uint *)(puVar11 + 0x14) >> 1;
  *(undefined4 *)(puVar11 + -0x130) = uVar4;
  uVar2 = (uint)*(byte *)(iVar7 + (*(uint *)(puVar11 + 0x14) >> 1 & 0x7f));
  iVar7 = uVar2 * 2 - uVar2 * uVar2 * *(int *)(puVar11 + 0x14);
  iVar7 = iVar7 * 2 - iVar7 * iVar7 * *(int *)(puVar11 + 0x14);
  *(int *)(puVar11 + -0x140) = iVar7;
  iVar3 = ((iVar3 << 2 ^ iVar3 * 2) & *(int *)(puVar11 + 0x14) << 2 & 8U) + 1;
  iVar7 = iVar7 * iVar3;
  uVar2 = *(uint *)(puVar11 + 0x14) & 0x7f;
  if (uVar2 == 0) {
    iVar12 = *(int *)(puVar11 + -0x130);
  }
  else {
    iVar12 = 1;
    do {
      if ((uVar2 & 1) != 0) {
        iVar12 = iVar12 * iVar3;
      }
      iVar3 = iVar3 * iVar3;
      uVar2 = uVar2 >> 1;
    } while (uVar2 != 0);
    iVar12 = *(int *)(puVar11 + -0x130) * iVar12;
  }
  iVar3 = *(int *)(puVar11 + 0x14) + 1;
  iVar7 = iVar7 * (iVar3 - iVar12);
  iVar12 = *(int *)(puVar11 + -0x140) * iVar7;
  uVar2 = *(uint *)(puVar11 + 0x14) & 0x7fff;
  if (uVar2 == 0) {
    iVar7 = iVar3 - *(int *)(puVar11 + -0x130);
    iVar12 = iVar12 * iVar7;
    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;
    if (*(int *)(puVar11 + 0x14) == 0) goto LAB_00071659;
  }
  else {
    iVar5 = 1;
    do {
      if ((uVar2 & 1) != 0) {
        iVar5 = iVar5 * iVar7;
      }
      iVar7 = iVar7 * iVar7;
      uVar2 = uVar2 >> 1;
    } while (uVar2 != 0);
    iVar12 = iVar12 * (iVar3 - iVar5 * *(int *)(puVar11 + -0x130));
    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;
  }
  uVar2 = *(uint *)(puVar11 + 0x14);
  iVar7 = 1;
  do {
    if ((uVar2 & 1) != 0) {
      iVar7 = iVar7 * iVar12;
    }
    iVar12 = iVar12 * iVar12;
    uVar2 = uVar2 >> 1;
  } while (uVar2 != 0);
  iVar7 = iVar3 - iVar7 * *(int *)(puVar11 + -0x130);
LAB_00071659:
  iVar3 = *(int *)(puVar11 + 0x10);
  **(int **)(puVar11 + -300) = iVar7 * iVar5;
  if (iVar3 != 1) {
    *(int *)(puVar11 + -0x124) = *(int *)(puVar11 + -0x138) + 1;
    uVar2 = *(int *)(puVar11 + 0x10) * 8 + 4;
    if (uVar2 < 0x7f01) {
      iVar3 = -(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0);
      iVar9 = (int)puVar10 + iVar3;
      puVar10 = puVar10 + iVar3;
      *(int *)(puVar11 + -0x130) = iVar9;
    }
    else {
      *(uint *)(puVar10 + -0xc) = uVar2;
      *(undefined1 **)(puVar10 + -0x10) = puVar11 + -0x120;
      *(undefined4 *)(puVar10 + -0x14) = 0x718ac;
      uVar4 = __gmp_tmp_reentrant_alloc();
      *(undefined4 *)(puVar11 + -0x130) = uVar4;
    }
    if (1 < *(int *)(puVar11 + 0x10)) {
      *(int *)(puVar11 + -0x134) = *(int *)(puVar11 + -0x134) + *(int *)(puVar11 + -0x130);
      *(undefined1 **)(puVar11 + -0x148) = puVar11 + -0x11c;
      iVar3 = 0;
      iVar7 = *(int *)(puVar11 + 0x10);
      do {
        iVar12 = iVar7;
        iVar5 = iVar3;
        iVar3 = iVar5 + 1;
        iVar7 = iVar12 + 1 >> 1;
        *(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12;
      } while (iVar7 != 1);
      iVar3 = *(int *)(puVar11 + -0x134);
      *(int *)(puVar11 + 0x10) = iVar12;
      *(int *)(puVar11 + -0x13c) = *(int *)(puVar11 + -0x148) + iVar5 * 4;
      *(undefined1 **)(puVar11 + -0x150) = puVar11 + -0x124;
      do {
        *(int *)(puVar11 + -0x134) = iVar7;
        *(int *)(puVar10 + -8) = iVar7;
        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300);
        *(int *)(puVar10 + -0x10) = iVar3;
        *(undefined4 *)(puVar10 + -0x14) = 0x71736;
        __gmpn_sqr();
        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c);
        *(int *)(puVar10 + -0x10) = iVar12;
        *(undefined4 *)(puVar10 + -0x14) = 1;
        *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150);
        *(int *)(puVar10 + -0x1c) = iVar3;
        *(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130);
        *(undefined4 *)(puVar10 + -0x24) = 0x71753;
        __gmpn_powlo();
        *(int *)(puVar10 + -4) = iVar12;
        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144);
        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130);
        *(int *)(puVar10 + -0x10) = iVar3;
        *(undefined4 *)(puVar10 + -0x14) = 0x71769;
        __gmpn_mullo_n();
        iVar7 = *(int *)(puVar11 + -0x134);
        iVar5 = *(int *)(puVar11 + -300);
        *(undefined4 *)(puVar10 + -0xc) = 0;
        iVar8 = iVar12 - iVar7;
        iVar7 = iVar7 * 4;
        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140);
        iVar5 = iVar5 + iVar7;
        *(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14);
        *(int *)(puVar10 + -0x18) = iVar8;
        *(int *)(puVar10 + -0x1c) = iVar7 + iVar3;
        *(int *)(puVar10 + -0x20) = iVar5;
        *(int *)(puVar11 + -0x138) = iVar8;
        *(int *)(puVar11 + -0x134) = iVar5;
        *(undefined4 *)(puVar10 + -0x24) = 0x717a2;
        __gmpn_pi1_bdiv_q_1();
        piVar6 = *(int **)(puVar11 + -0x134);
        iVar7 = *(int *)(puVar11 + -0x138);
        iVar5 = *piVar6;
        while (iVar7 = iVar7 + -1, iVar5 == 0) {
          if (iVar7 == 0) goto LAB_000717d0;
          piVar6 = piVar6 + 1;
          iVar5 = *piVar6;
        }
        *piVar6 = -iVar5;
        if (iVar7 != 0) {
          *(int *)(puVar10 + -8) = iVar7;
          *(int **)(puVar10 + -0xc) = piVar6 + 1;
          *(int **)(puVar10 + -0x10) = piVar6 + 1;
          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;
          __gmpn_com();
        }
LAB_000717d0:
        iVar7 = *(int *)(puVar11 + -0x13c);
        if (*(int *)(puVar11 + -0x148) == iVar7) break;
        iVar5 = *(int *)(iVar7 + -4);
        *(int *)(puVar11 + -0x13c) = iVar7 + -4;
        iVar7 = iVar12;
        iVar12 = iVar5;
      } while( true );
    }
  }
  if (*(int *)(puVar11 + -0x120) != 0) {
    *(int *)(puVar10 + -0x10) = *(int *)(puVar11 + -0x120);
    *(undefined4 *)(puVar10 + -0x14) = 0x71897;
    __gmp_tmp_reentrant_free();
  }
  if (*(int *)(puVar11 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  *(undefined4 *)(puVar10 + -4) = 0x718bf;
  FUN_00079d30();
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x0001c340
ADD EBX,0x27b45
SUB ESP,0x14c
MOV EAX,dword ptr [EBP + 0x8]
MOV ESI,dword ptr [EBP + 0xc]
MOV dword ptr [EBP + 0xfffffed4],EAX
MOV EAX,GS:[0x14]
MOV dword ptr [EBP + -0x1c],EAX
XOR EAX,EAX
MOV EAX,dword ptr [EBP + 0x10]
MOV dword ptr [EBP + 0xfffffee0],0x0
SHL EAX,0x4
CMP EAX,0x7f00
JA 0x00071870
ADD EAX,0x10
SUB ESP,EAX
LEA EAX,[ESP + 0xf]
AND EAX,0xfffffff0
MOV dword ptr [EBP + 0xfffffebc],EAX
MOV EAX,dword ptr [EBP + 0x10]
MOV EDI,dword ptr [EBP + 0xfffffebc]
SUB ESP,0x8
SHL EAX,0x2
MOV ECX,EAX
MOV dword ptr [EBP + 0xfffffecc],EAX
MOV EAX,EDI
ADD EAX,ECX
MOV ECX,EAX
MOV dword ptr [EBP + 0xfffffeb4],EAX
MOV EAX,dword ptr [EBP + 0x14]
PUSH ECX
SUB EAX,0x1
PUSH dword ptr [EBP + 0x10]
MOV dword ptr [EBP + 0xfffffed8],EAX
LEA EAX,[EBP + 0xfffffed8]
PUSH 0x1
PUSH EAX
PUSH ESI
PUSH EDI
CALL 0x0001b490
MOV EAX,dword ptr [ESI]
MOV ESI,dword ptr [EBP + 0x14]
ADD ESP,0x20
MOV ECX,dword ptr [EBX + 0xfffffec8]
MOV EDI,dword ptr [EDI]
SHR ESI,0x1
MOV EDX,ESI
MOV dword ptr [EBP + 0xfffffec8],ESI
AND EDX,0x7f
MOV dword ptr [EBP + 0xfffffed0],EDI
MOVZX ECX,byte ptr [ECX + EDX*0x1]
LEA EDX,[ECX + ECX*0x1]
IMUL ECX,ECX
IMUL ECX,dword ptr [EBP + 0x14]
SUB EDX,ECX
LEA ECX,[EDX + EDX*0x1]
IMUL EDX,EDX
MOV ESI,ECX
MOV ECX,dword ptr [EBP + 0x14]
IMUL EDX,dword ptr [EBP + 0x14]
SUB ESI,EDX
LEA EDX,[EAX + EAX*0x1]
SHL EAX,0x2
XOR EAX,EDX
MOV EDX,dword ptr [EBP + 0x14]
MOV dword ptr [EBP + 0xfffffec0],ESI
SHL EDX,0x2
AND EAX,EDX
AND EAX,0x8
ADD EAX,0x1
IMUL ESI,EAX
MOV EDX,ESI
AND ECX,0x7f
JZ 0x0007183a
MOV ESI,0x1
LEA ESI,[ESI]
TEST CL,0x1
JZ 0x000715d0
IMUL ESI,EAX
IMUL EAX,EAX
SHR ECX,0x1
JNZ 0x000715c8
MOV EAX,dword ptr [EBP + 0xfffffed0]
IMUL EAX,ESI
MOV EDI,dword ptr [EBP + 0x14]
LEA ESI,[EDI + 0x1]
MOV EDI,ESI
SUB EDI,EAX
MOV EAX,dword ptr [EBP + 0x14]
IMUL EDX,EDI
MOV EDI,dword ptr [EBP + 0xfffffec0]
IMUL EDI,EDX
AND EAX,0x7fff
JZ 0x00071845
MOV ECX,0x1
LEA ESI,[ESI]
TEST AL,0x1
JZ 0x00071617
IMUL ECX,EDX
IMUL EDX,EDX
SHR EAX,0x1
JNZ 0x00071610
IMUL ECX,dword ptr [EBP + 0xfffffed0]
MOV EAX,ESI
SUB EAX,ECX
MOV ECX,dword ptr [EBP + 0xfffffec0]
IMUL EDI,EAX
IMUL ECX,EDI
MOV EAX,dword ptr [EBP + 0x14]
MOV EDX,0x1
LEA ESI,[ESI]
TEST AL,0x1
JZ 0x00071647
IMUL EDX,EDI
IMUL EDI,EDI
SHR EAX,0x1
JNZ 0x00071640
IMUL EDX,dword ptr [EBP + 0xfffffed0]
MOV EAX,ESI
SUB EAX,EDX
IMUL EAX,ECX
MOV EDI,dword ptr [EBP + 0xfffffed4]
CMP dword ptr [EBP + 0x10],0x1
MOV dword ptr [EDI],EAX
JZ 0x00071818
MOV EAX,dword ptr [EBP + 0xfffffec8]
ADD EAX,0x1
MOV dword ptr [EBP + 0xfffffedc],EAX
MOV EAX,dword ptr [EBP + 0x10]
LEA EAX,[EAX*0x8 + 0x4]
CMP EAX,0x7f00
JA 0x0007189c
ADD EAX,0x1b
AND EAX,0xfffffff0
SUB ESP,EAX
LEA EAX,[ESP + 0xf]
AND EAX,0xfffffff0
MOV dword ptr [EBP + 0xfffffed0],EAX
MOV EDI,dword ptr [EBP + 0xfffffecc]
ADD EDI,dword ptr [EBP + 0xfffffed0]
CMP dword ptr [EBP + 0x10],0x1
JLE 0x00071818
LEA EAX,[EBP + 0xfffffee4]
MOV dword ptr [EBP + 0xfffffecc],EDI
XOR ECX,ECX
MOV EDX,dword ptr [EBP + 0x10]
MOV dword ptr [EBP + 0xfffffeb8],EAX
MOV EDI,EAX
JMP 0x000716e4
MOV ECX,ESI
MOV EDX,EAX
LEA EAX,[EDX + 0x1]
LEA ESI,[ECX + 0x1]
SAR EAX,0x1
MOV dword ptr [EDI + ESI*0x4 + -0x4],EDX
CMP EAX,0x1
JNZ 0x000716e0
MOV ESI,dword ptr [EBP + 0xfffffeb8]
MOV EDI,dword ptr [EBP + 0xfffffecc]
MOV dword ptr [EBP + 0x10],EDX
LEA ECX,[ESI + ECX*0x4]
LEA ESI,[EBP + 0xfffffedc]
MOV dword ptr [EBP + 0xfffffec4],ECX
MOV dword ptr [EBP + 0xfffffeb0],ESI
MOV ESI,EDX
LEA ESI,[ESI]
NOP
SUB ESP,0x4
MOV dword ptr [EBP + 0xfffffecc],EAX
PUSH EAX
PUSH dword ptr [EBP + 0xfffffed4]
PUSH EDI
CALL 0x0001b8e0
POP EAX
POP EDX
PUSH dword ptr [EBP + 0xfffffeb4]
PUSH ESI
PUSH 0x1
PUSH dword ptr [EBP + 0xfffffeb0]
PUSH EDI
PUSH dword ptr [EBP + 0xfffffed0]
CALL 0x0001b490
ADD ESP,0x20
PUSH ESI
PUSH dword ptr [EBP + 0xfffffebc]
PUSH dword ptr [EBP + 0xfffffed0]
PUSH EDI
CALL 0x0001bd80
MOV EAX,dword ptr [EBP + 0xfffffecc]
MOV EDX,ESI
ADD ESP,0x8
MOV ECX,dword ptr [EBP + 0xfffffed4]
PUSH 0x0
SUB EDX,EAX
SHL EAX,0x2
PUSH dword ptr [EBP + 0xfffffec0]
ADD ECX,EAX
ADD EAX,EDI
PUSH dword ptr [EBP + 0x14]
PUSH EDX
PUSH EAX
PUSH ECX
MOV dword ptr [EBP + 0xfffffec8],EDX
MOV dword ptr [EBP + 0xfffffecc],ECX
CALL 0x0001b580
MOV ECX,dword ptr [EBP + 0xfffffecc]
MOV EDX,dword ptr [EBP + 0xfffffec8]
ADD ESP,0x20
MOV EAX,dword ptr [ECX]
SUB EDX,0x1
TEST EAX,EAX
JZ 0x000717cc
JMP 0x000717f8
ADD ECX,0x4
MOV EAX,dword ptr [ECX]
SUB EDX,0x1
TEST EAX,EAX
JNZ 0x000717f8
TEST EDX,EDX
JNZ 0x000717c0
MOV EAX,dword ptr [EBP + 0xfffffec4]
LEA EDX,[EAX + -0x4]
CMP dword ptr [EBP + 0xfffffeb8],EAX
JZ 0x00071818
MOV ECX,dword ptr [EAX + -0x4]
MOV dword ptr [EBP + 0xfffffec4],EDX
MOV EAX,ESI
MOV ESI,ECX
JMP 0x00071720
NEG EAX
MOV dword ptr [ECX],EAX
TEST EDX,EDX
JZ 0x000717d0
SUB ESP,0x4
ADD ECX,0x4
PUSH EDX
PUSH ECX
PUSH ECX
CALL 0x0001b350
ADD ESP,0x10
JMP 0x000717d0
MOV EAX,dword ptr [EBP + 0xfffffee0]
TEST EAX,EAX
JNZ 0x0007188e
MOV EAX,dword ptr [EBP + -0x1c]
XOR EAX,dword ptr GS:[0x14]
JNZ 0x000718ba
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [EBP + 0xfffffed0]
JMP 0x000715e0
MOV EAX,ESI
SUB EAX,dword ptr [EBP + 0xfffffed0]
MOV ECX,dword ptr [EBP + 0xfffffec0]
IMUL EDI,EAX
MOV EDX,dword ptr [EBP + 0x14]
IMUL ECX,EDI
TEST EDX,EDX
JZ 0x00071659
JMP 0x00071635
SUB ESP,0x8
PUSH EAX
LEA EAX,[EBP + 0xfffffee0]
PUSH EAX
CALL 0x0001baf0
ADD ESP,0x10
MOV dword ptr [EBP + 0xfffffebc],EAX
JMP 0x0007150b
SUB ESP,0xc
PUSH EAX
CALL 0x0001b050
ADD ESP,0x10
JMP 0x00071822
SUB ESP,0x8
PUSH EAX
LEA EAX,[EBP + 0xfffffee0]
PUSH EAX
CALL 0x0001baf0
ADD ESP,0x10
MOV dword ptr [EBP + 0xfffffed0],EAX
JMP 0x000716a7
CALL 0x00079d30
(translation_unit "void __gmpn_broot_invm1(void)\n\n{\n  undefined4 *puVar1;\n  uint uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  int unaff_EBX;\n  int iVar9;\n  undefined1 *puVar10;\n  undefined1 *puVar11;\n  int iVar12;\n  int in_GS_OFFSET;\n  int aiStackY_8094 [8137];\n  undefined1 auStack_160 [332];\n  undefined4 uStack_14;\n  \n  puVar11 = &stack0xfffffffc;\n  uStack_14 = 0x714bb;\n  entry();\n  piVar6 = *(int **)(puVar11 + 0xc);\n  *(undefined4 *)(puVar11 + -300) = *(undefined4 *)(puVar11 + 8);\n  *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  *(undefined4 *)(puVar11 + -0x120) = 0;\n  uVar2 = *(int *)(puVar11 + 0x10) * 0x10;\n  if (uVar2 < 0x7f01) {\n    puVar10 = auStack_160 + -(uVar2 + 0x10);\n    *(undefined1 **)(puVar11 + -0x144) = auStack_160 + -(uVar2 + 0x10);\n  }\n  else {\n    uVar4 = __gmp_tmp_reentrant_alloc(puVar11 + -0x120,uVar2);\n    puVar10 = auStack_160;\n    *(undefined4 *)(puVar11 + -0x144) = uVar4;\n  }\n  puVar1 = *(undefined4 **)(puVar11 + -0x144);\n  *(int *)(puVar11 + -0x134) = *(int *)(puVar11 + 0x10) * 4;\n  *(undefined4 **)(puVar11 + -0x14c) = puVar1 + *(int *)(puVar11 + 0x10);\n  iVar3 = *(int *)(puVar11 + 0x14);\n  *(undefined4 **)(puVar10 + -0xc) = puVar1 + *(int *)(puVar11 + 0x10);\n  *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + 0x10);\n  *(int *)(puVar11 + -0x128) = iVar3 + -1;\n  *(undefined4 *)(puVar10 + -0x14) = 1;\n  *(undefined1 **)(puVar10 + -0x18) = puVar11 + -0x128;\n  *(int **)(puVar10 + -0x1c) = piVar6;\n  *(undefined4 **)(puVar10 + -0x20) = puVar1;\n  *(undefined4 *)(puVar10 + -0x24) = 0x7154e;\n  __gmpn_powlo();\n  iVar3 = *piVar6;\n  iVar7 = *(int *)(unaff_EBX + 0x27a0d);\n  uVar4 = *puVar1;\n  *(uint *)(puVar11 + -0x138) = *(uint *)(puVar11 + 0x14) >> 1;\n  *(undefined4 *)(puVar11 + -0x130) = uVar4;\n  uVar2 = (uint)*(byte *)(iVar7 + (*(uint *)(puVar11 + 0x14) >> 1 & 0x7f));\n  iVar7 = uVar2 * 2 - uVar2 * uVar2 * *(int *)(puVar11 + 0x14);\n  iVar7 = iVar7 * 2 - iVar7 * iVar7 * *(int *)(puVar11 + 0x14);\n  *(int *)(puVar11 + -0x140) = iVar7;\n  iVar3 = ((iVar3 << 2 ^ iVar3 * 2) & *(int *)(puVar11 + 0x14) << 2 & 8U) + 1;\n  iVar7 = iVar7 * iVar3;\n  uVar2 = *(uint *)(puVar11 + 0x14) & 0x7f;\n  if (uVar2 == 0) {\n    iVar12 = *(int *)(puVar11 + -0x130);\n  }\n  else {\n    iVar12 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar12 = iVar12 * iVar3;\n      }\n      iVar3 = iVar3 * iVar3;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = *(int *)(puVar11 + -0x130) * iVar12;\n  }\n  iVar3 = *(int *)(puVar11 + 0x14) + 1;\n  iVar7 = iVar7 * (iVar3 - iVar12);\n  iVar12 = *(int *)(puVar11 + -0x140) * iVar7;\n  uVar2 = *(uint *)(puVar11 + 0x14) & 0x7fff;\n  if (uVar2 == 0) {\n    iVar7 = iVar3 - *(int *)(puVar11 + -0x130);\n    iVar12 = iVar12 * iVar7;\n    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;\n    if (*(int *)(puVar11 + 0x14) == 0) goto LAB_00071659;\n  }\n  else {\n    iVar5 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar5 = iVar5 * iVar7;\n      }\n      iVar7 = iVar7 * iVar7;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = iVar12 * (iVar3 - iVar5 * *(int *)(puVar11 + -0x130));\n    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;\n  }\n  uVar2 = *(uint *)(puVar11 + 0x14);\n  iVar7 = 1;\n  do {\n    if ((uVar2 & 1) != 0) {\n      iVar7 = iVar7 * iVar12;\n    }\n    iVar12 = iVar12 * iVar12;\n    uVar2 = uVar2 >> 1;\n  } while (uVar2 != 0);\n  iVar7 = iVar3 - iVar7 * *(int *)(puVar11 + -0x130);\nLAB_00071659:\n  iVar3 = *(int *)(puVar11 + 0x10);\n  **(int **)(puVar11 + -300) = iVar7 * iVar5;\n  if (iVar3 != 1) {\n    *(int *)(puVar11 + -0x124) = *(int *)(puVar11 + -0x138) + 1;\n    uVar2 = *(int *)(puVar11 + 0x10) * 8 + 4;\n    if (uVar2 < 0x7f01) {\n      iVar3 = -(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0);\n      iVar9 = (int)puVar10 + iVar3;\n      puVar10 = puVar10 + iVar3;\n      *(int *)(puVar11 + -0x130) = iVar9;\n    }\n    else {\n      *(uint *)(puVar10 + -0xc) = uVar2;\n      *(undefined1 **)(puVar10 + -0x10) = puVar11 + -0x120;\n      *(undefined4 *)(puVar10 + -0x14) = 0x718ac;\n      uVar4 = __gmp_tmp_reentrant_alloc();\n      *(undefined4 *)(puVar11 + -0x130) = uVar4;\n    }\n    if (1 < *(int *)(puVar11 + 0x10)) {\n      *(int *)(puVar11 + -0x134) = *(int *)(puVar11 + -0x134) + *(int *)(puVar11 + -0x130);\n      *(undefined1 **)(puVar11 + -0x148) = puVar11 + -0x11c;\n      iVar3 = 0;\n      iVar7 = *(int *)(puVar11 + 0x10);\n      do {\n        iVar12 = iVar7;\n        iVar5 = iVar3;\n        iVar3 = iVar5 + 1;\n        iVar7 = iVar12 + 1 >> 1;\n        *(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12;\n      } while (iVar7 != 1);\n      iVar3 = *(int *)(puVar11 + -0x134);\n      *(int *)(puVar11 + 0x10) = iVar12;\n      *(int *)(puVar11 + -0x13c) = *(int *)(puVar11 + -0x148) + iVar5 * 4;\n      *(undefined1 **)(puVar11 + -0x150) = puVar11 + -0x124;\n      do {\n        *(int *)(puVar11 + -0x134) = iVar7;\n        *(int *)(puVar10 + -8) = iVar7;\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71736;\n        __gmpn_sqr();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c);\n        *(int *)(puVar10 + -0x10) = iVar12;\n        *(undefined4 *)(puVar10 + -0x14) = 1;\n        *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150);\n        *(int *)(puVar10 + -0x1c) = iVar3;\n        *(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130);\n        *(undefined4 *)(puVar10 + -0x24) = 0x71753;\n        __gmpn_powlo();\n        *(int *)(puVar10 + -4) = iVar12;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71769;\n        __gmpn_mullo_n();\n        iVar7 = *(int *)(puVar11 + -0x134);\n        iVar5 = *(int *)(puVar11 + -300);\n        *(undefined4 *)(puVar10 + -0xc) = 0;\n        iVar8 = iVar12 - iVar7;\n        iVar7 = iVar7 * 4;\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140);\n        iVar5 = iVar5 + iVar7;\n        *(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14);\n        *(int *)(puVar10 + -0x18) = iVar8;\n        *(int *)(puVar10 + -0x1c) = iVar7 + iVar3;\n        *(int *)(puVar10 + -0x20) = iVar5;\n        *(int *)(puVar11 + -0x138) = iVar8;\n        *(int *)(puVar11 + -0x134) = iVar5;\n        *(undefined4 *)(puVar10 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        piVar6 = *(int **)(puVar11 + -0x134);\n        iVar7 = *(int *)(puVar11 + -0x138);\n        iVar5 = *piVar6;\n        while (iVar7 = iVar7 + -1, iVar5 == 0) {\n          if (iVar7 == 0) goto LAB_000717d0;\n          piVar6 = piVar6 + 1;\n          iVar5 = *piVar6;\n        }\n        *piVar6 = -iVar5;\n        if (iVar7 != 0) {\n          *(int *)(puVar10 + -8) = iVar7;\n          *(int **)(puVar10 + -0xc) = piVar6 + 1;\n          *(int **)(puVar10 + -0x10) = piVar6 + 1;\n          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        iVar7 = *(int *)(puVar11 + -0x13c);\n        if (*(int *)(puVar11 + -0x148) == iVar7) break;\n        iVar5 = *(int *)(iVar7 + -4);\n        *(int *)(puVar11 + -0x13c) = iVar7 + -4;\n        iVar7 = iVar12;\n        iVar12 = iVar5;\n      } while( true );\n    }\n  }\n  if (*(int *)(puVar11 + -0x120) != 0) {\n    *(int *)(puVar10 + -0x10) = *(int *)(puVar11 + -0x120);\n    *(undefined4 *)(puVar10 + -0x14) = 0x71897;\n    __gmp_tmp_reentrant_free();\n  }\n  if (*(int *)(puVar11 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)(puVar10 + -4) = 0x718bf;\n  FUN_00079d30();\n}\n\n" (function_definition "void __gmpn_broot_invm1(void)\n\n{\n  undefined4 *puVar1;\n  uint uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  int unaff_EBX;\n  int iVar9;\n  undefined1 *puVar10;\n  undefined1 *puVar11;\n  int iVar12;\n  int in_GS_OFFSET;\n  int aiStackY_8094 [8137];\n  undefined1 auStack_160 [332];\n  undefined4 uStack_14;\n  \n  puVar11 = &stack0xfffffffc;\n  uStack_14 = 0x714bb;\n  entry();\n  piVar6 = *(int **)(puVar11 + 0xc);\n  *(undefined4 *)(puVar11 + -300) = *(undefined4 *)(puVar11 + 8);\n  *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  *(undefined4 *)(puVar11 + -0x120) = 0;\n  uVar2 = *(int *)(puVar11 + 0x10) * 0x10;\n  if (uVar2 < 0x7f01) {\n    puVar10 = auStack_160 + -(uVar2 + 0x10);\n    *(undefined1 **)(puVar11 + -0x144) = auStack_160 + -(uVar2 + 0x10);\n  }\n  else {\n    uVar4 = __gmp_tmp_reentrant_alloc(puVar11 + -0x120,uVar2);\n    puVar10 = auStack_160;\n    *(undefined4 *)(puVar11 + -0x144) = uVar4;\n  }\n  puVar1 = *(undefined4 **)(puVar11 + -0x144);\n  *(int *)(puVar11 + -0x134) = *(int *)(puVar11 + 0x10) * 4;\n  *(undefined4 **)(puVar11 + -0x14c) = puVar1 + *(int *)(puVar11 + 0x10);\n  iVar3 = *(int *)(puVar11 + 0x14);\n  *(undefined4 **)(puVar10 + -0xc) = puVar1 + *(int *)(puVar11 + 0x10);\n  *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + 0x10);\n  *(int *)(puVar11 + -0x128) = iVar3 + -1;\n  *(undefined4 *)(puVar10 + -0x14) = 1;\n  *(undefined1 **)(puVar10 + -0x18) = puVar11 + -0x128;\n  *(int **)(puVar10 + -0x1c) = piVar6;\n  *(undefined4 **)(puVar10 + -0x20) = puVar1;\n  *(undefined4 *)(puVar10 + -0x24) = 0x7154e;\n  __gmpn_powlo();\n  iVar3 = *piVar6;\n  iVar7 = *(int *)(unaff_EBX + 0x27a0d);\n  uVar4 = *puVar1;\n  *(uint *)(puVar11 + -0x138) = *(uint *)(puVar11 + 0x14) >> 1;\n  *(undefined4 *)(puVar11 + -0x130) = uVar4;\n  uVar2 = (uint)*(byte *)(iVar7 + (*(uint *)(puVar11 + 0x14) >> 1 & 0x7f));\n  iVar7 = uVar2 * 2 - uVar2 * uVar2 * *(int *)(puVar11 + 0x14);\n  iVar7 = iVar7 * 2 - iVar7 * iVar7 * *(int *)(puVar11 + 0x14);\n  *(int *)(puVar11 + -0x140) = iVar7;\n  iVar3 = ((iVar3 << 2 ^ iVar3 * 2) & *(int *)(puVar11 + 0x14) << 2 & 8U) + 1;\n  iVar7 = iVar7 * iVar3;\n  uVar2 = *(uint *)(puVar11 + 0x14) & 0x7f;\n  if (uVar2 == 0) {\n    iVar12 = *(int *)(puVar11 + -0x130);\n  }\n  else {\n    iVar12 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar12 = iVar12 * iVar3;\n      }\n      iVar3 = iVar3 * iVar3;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = *(int *)(puVar11 + -0x130) * iVar12;\n  }\n  iVar3 = *(int *)(puVar11 + 0x14) + 1;\n  iVar7 = iVar7 * (iVar3 - iVar12);\n  iVar12 = *(int *)(puVar11 + -0x140) * iVar7;\n  uVar2 = *(uint *)(puVar11 + 0x14) & 0x7fff;\n  if (uVar2 == 0) {\n    iVar7 = iVar3 - *(int *)(puVar11 + -0x130);\n    iVar12 = iVar12 * iVar7;\n    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;\n    if (*(int *)(puVar11 + 0x14) == 0) goto LAB_00071659;\n  }\n  else {\n    iVar5 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar5 = iVar5 * iVar7;\n      }\n      iVar7 = iVar7 * iVar7;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = iVar12 * (iVar3 - iVar5 * *(int *)(puVar11 + -0x130));\n    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;\n  }\n  uVar2 = *(uint *)(puVar11 + 0x14);\n  iVar7 = 1;\n  do {\n    if ((uVar2 & 1) != 0) {\n      iVar7 = iVar7 * iVar12;\n    }\n    iVar12 = iVar12 * iVar12;\n    uVar2 = uVar2 >> 1;\n  } while (uVar2 != 0);\n  iVar7 = iVar3 - iVar7 * *(int *)(puVar11 + -0x130);\nLAB_00071659:\n  iVar3 = *(int *)(puVar11 + 0x10);\n  **(int **)(puVar11 + -300) = iVar7 * iVar5;\n  if (iVar3 != 1) {\n    *(int *)(puVar11 + -0x124) = *(int *)(puVar11 + -0x138) + 1;\n    uVar2 = *(int *)(puVar11 + 0x10) * 8 + 4;\n    if (uVar2 < 0x7f01) {\n      iVar3 = -(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0);\n      iVar9 = (int)puVar10 + iVar3;\n      puVar10 = puVar10 + iVar3;\n      *(int *)(puVar11 + -0x130) = iVar9;\n    }\n    else {\n      *(uint *)(puVar10 + -0xc) = uVar2;\n      *(undefined1 **)(puVar10 + -0x10) = puVar11 + -0x120;\n      *(undefined4 *)(puVar10 + -0x14) = 0x718ac;\n      uVar4 = __gmp_tmp_reentrant_alloc();\n      *(undefined4 *)(puVar11 + -0x130) = uVar4;\n    }\n    if (1 < *(int *)(puVar11 + 0x10)) {\n      *(int *)(puVar11 + -0x134) = *(int *)(puVar11 + -0x134) + *(int *)(puVar11 + -0x130);\n      *(undefined1 **)(puVar11 + -0x148) = puVar11 + -0x11c;\n      iVar3 = 0;\n      iVar7 = *(int *)(puVar11 + 0x10);\n      do {\n        iVar12 = iVar7;\n        iVar5 = iVar3;\n        iVar3 = iVar5 + 1;\n        iVar7 = iVar12 + 1 >> 1;\n        *(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12;\n      } while (iVar7 != 1);\n      iVar3 = *(int *)(puVar11 + -0x134);\n      *(int *)(puVar11 + 0x10) = iVar12;\n      *(int *)(puVar11 + -0x13c) = *(int *)(puVar11 + -0x148) + iVar5 * 4;\n      *(undefined1 **)(puVar11 + -0x150) = puVar11 + -0x124;\n      do {\n        *(int *)(puVar11 + -0x134) = iVar7;\n        *(int *)(puVar10 + -8) = iVar7;\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71736;\n        __gmpn_sqr();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c);\n        *(int *)(puVar10 + -0x10) = iVar12;\n        *(undefined4 *)(puVar10 + -0x14) = 1;\n        *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150);\n        *(int *)(puVar10 + -0x1c) = iVar3;\n        *(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130);\n        *(undefined4 *)(puVar10 + -0x24) = 0x71753;\n        __gmpn_powlo();\n        *(int *)(puVar10 + -4) = iVar12;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71769;\n        __gmpn_mullo_n();\n        iVar7 = *(int *)(puVar11 + -0x134);\n        iVar5 = *(int *)(puVar11 + -300);\n        *(undefined4 *)(puVar10 + -0xc) = 0;\n        iVar8 = iVar12 - iVar7;\n        iVar7 = iVar7 * 4;\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140);\n        iVar5 = iVar5 + iVar7;\n        *(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14);\n        *(int *)(puVar10 + -0x18) = iVar8;\n        *(int *)(puVar10 + -0x1c) = iVar7 + iVar3;\n        *(int *)(puVar10 + -0x20) = iVar5;\n        *(int *)(puVar11 + -0x138) = iVar8;\n        *(int *)(puVar11 + -0x134) = iVar5;\n        *(undefined4 *)(puVar10 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        piVar6 = *(int **)(puVar11 + -0x134);\n        iVar7 = *(int *)(puVar11 + -0x138);\n        iVar5 = *piVar6;\n        while (iVar7 = iVar7 + -1, iVar5 == 0) {\n          if (iVar7 == 0) goto LAB_000717d0;\n          piVar6 = piVar6 + 1;\n          iVar5 = *piVar6;\n        }\n        *piVar6 = -iVar5;\n        if (iVar7 != 0) {\n          *(int *)(puVar10 + -8) = iVar7;\n          *(int **)(puVar10 + -0xc) = piVar6 + 1;\n          *(int **)(puVar10 + -0x10) = piVar6 + 1;\n          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        iVar7 = *(int *)(puVar11 + -0x13c);\n        if (*(int *)(puVar11 + -0x148) == iVar7) break;\n        iVar5 = *(int *)(iVar7 + -4);\n        *(int *)(puVar11 + -0x13c) = iVar7 + -4;\n        iVar7 = iVar12;\n        iVar12 = iVar5;\n      } while( true );\n    }\n  }\n  if (*(int *)(puVar11 + -0x120) != 0) {\n    *(int *)(puVar10 + -0x10) = *(int *)(puVar11 + -0x120);\n    *(undefined4 *)(puVar10 + -0x14) = 0x71897;\n    __gmp_tmp_reentrant_free();\n  }\n  if (*(int *)(puVar11 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)(puVar10 + -4) = 0x718bf;\n  FUN_00079d30();\n}" primitive_type (function_declarator "__gmpn_broot_invm1(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined4 *puVar1;\n  uint uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  int unaff_EBX;\n  int iVar9;\n  undefined1 *puVar10;\n  undefined1 *puVar11;\n  int iVar12;\n  int in_GS_OFFSET;\n  int aiStackY_8094 [8137];\n  undefined1 auStack_160 [332];\n  undefined4 uStack_14;\n  \n  puVar11 = &stack0xfffffffc;\n  uStack_14 = 0x714bb;\n  entry();\n  piVar6 = *(int **)(puVar11 + 0xc);\n  *(undefined4 *)(puVar11 + -300) = *(undefined4 *)(puVar11 + 8);\n  *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  *(undefined4 *)(puVar11 + -0x120) = 0;\n  uVar2 = *(int *)(puVar11 + 0x10) * 0x10;\n  if (uVar2 < 0x7f01) {\n    puVar10 = auStack_160 + -(uVar2 + 0x10);\n    *(undefined1 **)(puVar11 + -0x144) = auStack_160 + -(uVar2 + 0x10);\n  }\n  else {\n    uVar4 = __gmp_tmp_reentrant_alloc(puVar11 + -0x120,uVar2);\n    puVar10 = auStack_160;\n    *(undefined4 *)(puVar11 + -0x144) = uVar4;\n  }\n  puVar1 = *(undefined4 **)(puVar11 + -0x144);\n  *(int *)(puVar11 + -0x134) = *(int *)(puVar11 + 0x10) * 4;\n  *(undefined4 **)(puVar11 + -0x14c) = puVar1 + *(int *)(puVar11 + 0x10);\n  iVar3 = *(int *)(puVar11 + 0x14);\n  *(undefined4 **)(puVar10 + -0xc) = puVar1 + *(int *)(puVar11 + 0x10);\n  *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + 0x10);\n  *(int *)(puVar11 + -0x128) = iVar3 + -1;\n  *(undefined4 *)(puVar10 + -0x14) = 1;\n  *(undefined1 **)(puVar10 + -0x18) = puVar11 + -0x128;\n  *(int **)(puVar10 + -0x1c) = piVar6;\n  *(undefined4 **)(puVar10 + -0x20) = puVar1;\n  *(undefined4 *)(puVar10 + -0x24) = 0x7154e;\n  __gmpn_powlo();\n  iVar3 = *piVar6;\n  iVar7 = *(int *)(unaff_EBX + 0x27a0d);\n  uVar4 = *puVar1;\n  *(uint *)(puVar11 + -0x138) = *(uint *)(puVar11 + 0x14) >> 1;\n  *(undefined4 *)(puVar11 + -0x130) = uVar4;\n  uVar2 = (uint)*(byte *)(iVar7 + (*(uint *)(puVar11 + 0x14) >> 1 & 0x7f));\n  iVar7 = uVar2 * 2 - uVar2 * uVar2 * *(int *)(puVar11 + 0x14);\n  iVar7 = iVar7 * 2 - iVar7 * iVar7 * *(int *)(puVar11 + 0x14);\n  *(int *)(puVar11 + -0x140) = iVar7;\n  iVar3 = ((iVar3 << 2 ^ iVar3 * 2) & *(int *)(puVar11 + 0x14) << 2 & 8U) + 1;\n  iVar7 = iVar7 * iVar3;\n  uVar2 = *(uint *)(puVar11 + 0x14) & 0x7f;\n  if (uVar2 == 0) {\n    iVar12 = *(int *)(puVar11 + -0x130);\n  }\n  else {\n    iVar12 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar12 = iVar12 * iVar3;\n      }\n      iVar3 = iVar3 * iVar3;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = *(int *)(puVar11 + -0x130) * iVar12;\n  }\n  iVar3 = *(int *)(puVar11 + 0x14) + 1;\n  iVar7 = iVar7 * (iVar3 - iVar12);\n  iVar12 = *(int *)(puVar11 + -0x140) * iVar7;\n  uVar2 = *(uint *)(puVar11 + 0x14) & 0x7fff;\n  if (uVar2 == 0) {\n    iVar7 = iVar3 - *(int *)(puVar11 + -0x130);\n    iVar12 = iVar12 * iVar7;\n    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;\n    if (*(int *)(puVar11 + 0x14) == 0) goto LAB_00071659;\n  }\n  else {\n    iVar5 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar5 = iVar5 * iVar7;\n      }\n      iVar7 = iVar7 * iVar7;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = iVar12 * (iVar3 - iVar5 * *(int *)(puVar11 + -0x130));\n    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;\n  }\n  uVar2 = *(uint *)(puVar11 + 0x14);\n  iVar7 = 1;\n  do {\n    if ((uVar2 & 1) != 0) {\n      iVar7 = iVar7 * iVar12;\n    }\n    iVar12 = iVar12 * iVar12;\n    uVar2 = uVar2 >> 1;\n  } while (uVar2 != 0);\n  iVar7 = iVar3 - iVar7 * *(int *)(puVar11 + -0x130);\nLAB_00071659:\n  iVar3 = *(int *)(puVar11 + 0x10);\n  **(int **)(puVar11 + -300) = iVar7 * iVar5;\n  if (iVar3 != 1) {\n    *(int *)(puVar11 + -0x124) = *(int *)(puVar11 + -0x138) + 1;\n    uVar2 = *(int *)(puVar11 + 0x10) * 8 + 4;\n    if (uVar2 < 0x7f01) {\n      iVar3 = -(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0);\n      iVar9 = (int)puVar10 + iVar3;\n      puVar10 = puVar10 + iVar3;\n      *(int *)(puVar11 + -0x130) = iVar9;\n    }\n    else {\n      *(uint *)(puVar10 + -0xc) = uVar2;\n      *(undefined1 **)(puVar10 + -0x10) = puVar11 + -0x120;\n      *(undefined4 *)(puVar10 + -0x14) = 0x718ac;\n      uVar4 = __gmp_tmp_reentrant_alloc();\n      *(undefined4 *)(puVar11 + -0x130) = uVar4;\n    }\n    if (1 < *(int *)(puVar11 + 0x10)) {\n      *(int *)(puVar11 + -0x134) = *(int *)(puVar11 + -0x134) + *(int *)(puVar11 + -0x130);\n      *(undefined1 **)(puVar11 + -0x148) = puVar11 + -0x11c;\n      iVar3 = 0;\n      iVar7 = *(int *)(puVar11 + 0x10);\n      do {\n        iVar12 = iVar7;\n        iVar5 = iVar3;\n        iVar3 = iVar5 + 1;\n        iVar7 = iVar12 + 1 >> 1;\n        *(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12;\n      } while (iVar7 != 1);\n      iVar3 = *(int *)(puVar11 + -0x134);\n      *(int *)(puVar11 + 0x10) = iVar12;\n      *(int *)(puVar11 + -0x13c) = *(int *)(puVar11 + -0x148) + iVar5 * 4;\n      *(undefined1 **)(puVar11 + -0x150) = puVar11 + -0x124;\n      do {\n        *(int *)(puVar11 + -0x134) = iVar7;\n        *(int *)(puVar10 + -8) = iVar7;\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71736;\n        __gmpn_sqr();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c);\n        *(int *)(puVar10 + -0x10) = iVar12;\n        *(undefined4 *)(puVar10 + -0x14) = 1;\n        *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150);\n        *(int *)(puVar10 + -0x1c) = iVar3;\n        *(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130);\n        *(undefined4 *)(puVar10 + -0x24) = 0x71753;\n        __gmpn_powlo();\n        *(int *)(puVar10 + -4) = iVar12;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71769;\n        __gmpn_mullo_n();\n        iVar7 = *(int *)(puVar11 + -0x134);\n        iVar5 = *(int *)(puVar11 + -300);\n        *(undefined4 *)(puVar10 + -0xc) = 0;\n        iVar8 = iVar12 - iVar7;\n        iVar7 = iVar7 * 4;\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140);\n        iVar5 = iVar5 + iVar7;\n        *(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14);\n        *(int *)(puVar10 + -0x18) = iVar8;\n        *(int *)(puVar10 + -0x1c) = iVar7 + iVar3;\n        *(int *)(puVar10 + -0x20) = iVar5;\n        *(int *)(puVar11 + -0x138) = iVar8;\n        *(int *)(puVar11 + -0x134) = iVar5;\n        *(undefined4 *)(puVar10 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        piVar6 = *(int **)(puVar11 + -0x134);\n        iVar7 = *(int *)(puVar11 + -0x138);\n        iVar5 = *piVar6;\n        while (iVar7 = iVar7 + -1, iVar5 == 0) {\n          if (iVar7 == 0) goto LAB_000717d0;\n          piVar6 = piVar6 + 1;\n          iVar5 = *piVar6;\n        }\n        *piVar6 = -iVar5;\n        if (iVar7 != 0) {\n          *(int *)(puVar10 + -8) = iVar7;\n          *(int **)(puVar10 + -0xc) = piVar6 + 1;\n          *(int **)(puVar10 + -0x10) = piVar6 + 1;\n          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        iVar7 = *(int *)(puVar11 + -0x13c);\n        if (*(int *)(puVar11 + -0x148) == iVar7) break;\n        iVar5 = *(int *)(iVar7 + -4);\n        *(int *)(puVar11 + -0x13c) = iVar7 + -4;\n        iVar7 = iVar12;\n        iVar12 = iVar5;\n      } while( true );\n    }\n  }\n  if (*(int *)(puVar11 + -0x120) != 0) {\n    *(int *)(puVar10 + -0x10) = *(int *)(puVar11 + -0x120);\n    *(undefined4 *)(puVar10 + -0x14) = 0x71897;\n    __gmp_tmp_reentrant_free();\n  }\n  if (*(int *)(puVar11 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)(puVar10 + -4) = 0x718bf;\n  FUN_00079d30();\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int unaff_EBX;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined1 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "int aiStackY_8094 [8137];" primitive_type (array_declarator "aiStackY_8094 [8137]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_160 [332];" type_identifier (array_declarator "auStack_160 [332]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "puVar11 = &stack0xfffffffc;" (assignment_expression "puVar11 = &stack0xfffffffc" identifier = (pointer_expression "&stack0xfffffffc" & identifier)) ;) (expression_statement "uStack_14 = 0x714bb;" (assignment_expression "uStack_14 = 0x714bb" identifier = number_literal) ;) (expression_statement "entry();" (call_expression "entry()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar6 = *(int **)(puVar11 + 0xc);" (assignment_expression "piVar6 = *(int **)(puVar11 + 0xc)" identifier = (pointer_expression "*(int **)(puVar11 + 0xc)" * (cast_expression "(int **)(puVar11 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0xc)" ( (binary_expression "puVar11 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar11 + -300) = *(undefined4 *)(puVar11 + 8);" (assignment_expression "*(undefined4 *)(puVar11 + -300) = *(undefined4 *)(puVar11 + 8)" (pointer_expression "*(undefined4 *)(puVar11 + -300)" * (cast_expression "(undefined4 *)(puVar11 + -300)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -300)" ( (binary_expression "puVar11 + -300" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar11 + 8)" * (cast_expression "(undefined4 *)(puVar11 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 8)" ( (binary_expression "puVar11 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(in_GS_OFFSET + 0x14);" (assignment_expression "*(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(in_GS_OFFSET + 0x14)" (pointer_expression "*(undefined4 *)(puVar11 + -0x1c)" * (cast_expression "(undefined4 *)(puVar11 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x1c)" ( (binary_expression "puVar11 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(in_GS_OFFSET + 0x14)" * (cast_expression "(undefined4 *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x120) = 0;" (assignment_expression "*(undefined4 *)(puVar11 + -0x120) = 0" (pointer_expression "*(undefined4 *)(puVar11 + -0x120)" * (cast_expression "(undefined4 *)(puVar11 + -0x120)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x120)" ( (binary_expression "puVar11 + -0x120" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar2 = *(int *)(puVar11 + 0x10) * 0x10;" (assignment_expression "uVar2 = *(int *)(puVar11 + 0x10) * 0x10" identifier = (binary_expression "*(int *)(puVar11 + 0x10) * 0x10" (pointer_expression "*(int *)(puVar11 + 0x10)" * (cast_expression "(int *)(puVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) )))) * number_literal)) ;) (if_statement "if (uVar2 < 0x7f01) {\n    puVar10 = auStack_160 + -(uVar2 + 0x10);\n    *(undefined1 **)(puVar11 + -0x144) = auStack_160 + -(uVar2 + 0x10);\n  }\n  else {\n    uVar4 = __gmp_tmp_reentrant_alloc(puVar11 + -0x120,uVar2);\n    puVar10 = auStack_160;\n    *(undefined4 *)(puVar11 + -0x144) = uVar4;\n  }" if (parenthesized_expression "(uVar2 < 0x7f01)" ( (binary_expression "uVar2 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n    puVar10 = auStack_160 + -(uVar2 + 0x10);\n    *(undefined1 **)(puVar11 + -0x144) = auStack_160 + -(uVar2 + 0x10);\n  }" { (expression_statement "puVar10 = auStack_160 + -(uVar2 + 0x10);" (assignment_expression "puVar10 = auStack_160 + -(uVar2 + 0x10)" identifier = (binary_expression "auStack_160 + -(uVar2 + 0x10)" identifier + (unary_expression "-(uVar2 + 0x10)" - (parenthesized_expression "(uVar2 + 0x10)" ( (binary_expression "uVar2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar11 + -0x144) = auStack_160 + -(uVar2 + 0x10);" (assignment_expression "*(undefined1 **)(puVar11 + -0x144) = auStack_160 + -(uVar2 + 0x10)" (pointer_expression "*(undefined1 **)(puVar11 + -0x144)" * (cast_expression "(undefined1 **)(puVar11 + -0x144)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x144)" ( (binary_expression "puVar11 + -0x144" identifier + number_literal) )))) = (binary_expression "auStack_160 + -(uVar2 + 0x10)" identifier + (unary_expression "-(uVar2 + 0x10)" - (parenthesized_expression "(uVar2 + 0x10)" ( (binary_expression "uVar2 + 0x10" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    uVar4 = __gmp_tmp_reentrant_alloc(puVar11 + -0x120,uVar2);\n    puVar10 = auStack_160;\n    *(undefined4 *)(puVar11 + -0x144) = uVar4;\n  }" else (compound_statement "{\n    uVar4 = __gmp_tmp_reentrant_alloc(puVar11 + -0x120,uVar2);\n    puVar10 = auStack_160;\n    *(undefined4 *)(puVar11 + -0x144) = uVar4;\n  }" { (expression_statement "uVar4 = __gmp_tmp_reentrant_alloc(puVar11 + -0x120,uVar2);" (assignment_expression "uVar4 = __gmp_tmp_reentrant_alloc(puVar11 + -0x120,uVar2)" identifier = (call_expression "__gmp_tmp_reentrant_alloc(puVar11 + -0x120,uVar2)" identifier (argument_list "(puVar11 + -0x120,uVar2)" ( (binary_expression "puVar11 + -0x120" identifier + number_literal) , identifier )))) ;) (expression_statement "puVar10 = auStack_160;" (assignment_expression "puVar10 = auStack_160" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x144) = uVar4;" (assignment_expression "*(undefined4 *)(puVar11 + -0x144) = uVar4" (pointer_expression "*(undefined4 *)(puVar11 + -0x144)" * (cast_expression "(undefined4 *)(puVar11 + -0x144)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x144)" ( (binary_expression "puVar11 + -0x144" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "puVar1 = *(undefined4 **)(puVar11 + -0x144);" (assignment_expression "puVar1 = *(undefined4 **)(puVar11 + -0x144)" identifier = (pointer_expression "*(undefined4 **)(puVar11 + -0x144)" * (cast_expression "(undefined4 **)(puVar11 + -0x144)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x144)" ( (binary_expression "puVar11 + -0x144" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar11 + -0x134) = *(int *)(puVar11 + 0x10) * 4;" (assignment_expression "*(int *)(puVar11 + -0x134) = *(int *)(puVar11 + 0x10) * 4" (pointer_expression "*(int *)(puVar11 + -0x134)" * (cast_expression "(int *)(puVar11 + -0x134)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x134)" ( (binary_expression "puVar11 + -0x134" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar11 + 0x10) * 4" (pointer_expression "*(int *)(puVar11 + 0x10)" * (cast_expression "(int *)(puVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) )))) * number_literal)) ;) (expression_statement "*(undefined4 **)(puVar11 + -0x14c) = puVar1 + *(int *)(puVar11 + 0x10);" (assignment_expression "*(undefined4 **)(puVar11 + -0x14c) = puVar1 + *(int *)(puVar11 + 0x10)" (pointer_expression "*(undefined4 **)(puVar11 + -0x14c)" * (cast_expression "(undefined4 **)(puVar11 + -0x14c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14c)" ( (binary_expression "puVar11 + -0x14c" identifier + number_literal) )))) = (binary_expression "puVar1 + *(int *)(puVar11 + 0x10)" identifier + (pointer_expression "*(int *)(puVar11 + 0x10)" * (cast_expression "(int *)(puVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "iVar3 = *(int *)(puVar11 + 0x14);" (assignment_expression "iVar3 = *(int *)(puVar11 + 0x14)" identifier = (pointer_expression "*(int *)(puVar11 + 0x14)" * (cast_expression "(int *)(puVar11 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 **)(puVar10 + -0xc) = puVar1 + *(int *)(puVar11 + 0x10);" (assignment_expression "*(undefined4 **)(puVar10 + -0xc) = puVar1 + *(int *)(puVar11 + 0x10)" (pointer_expression "*(undefined4 **)(puVar10 + -0xc)" * (cast_expression "(undefined4 **)(puVar10 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) = (binary_expression "puVar1 + *(int *)(puVar11 + 0x10)" identifier + (pointer_expression "*(int *)(puVar11 + 0x10)" * (cast_expression "(int *)(puVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + 0x10);" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + 0x10)" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" * (cast_expression "(undefined4 *)(puVar10 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar11 + 0x10)" * (cast_expression "(undefined4 *)(puVar11 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar11 + -0x128) = iVar3 + -1;" (assignment_expression "*(int *)(puVar11 + -0x128) = iVar3 + -1" (pointer_expression "*(int *)(puVar11 + -0x128)" * (cast_expression "(int *)(puVar11 + -0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x128)" ( (binary_expression "puVar11 + -0x128" identifier + number_literal) )))) = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 1;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 1" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar10 + -0x18) = puVar11 + -0x128;" (assignment_expression "*(undefined1 **)(puVar10 + -0x18) = puVar11 + -0x128" (pointer_expression "*(undefined1 **)(puVar10 + -0x18)" * (cast_expression "(undefined1 **)(puVar10 + -0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x18)" ( (binary_expression "puVar10 + -0x18" identifier + number_literal) )))) = (binary_expression "puVar11 + -0x128" identifier + number_literal)) ;) (expression_statement "*(int **)(puVar10 + -0x1c) = piVar6;" (assignment_expression "*(int **)(puVar10 + -0x1c) = piVar6" (pointer_expression "*(int **)(puVar10 + -0x1c)" * (cast_expression "(int **)(puVar10 + -0x1c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x1c)" ( (binary_expression "puVar10 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar10 + -0x20) = puVar1;" (assignment_expression "*(undefined4 **)(puVar10 + -0x20) = puVar1" (pointer_expression "*(undefined4 **)(puVar10 + -0x20)" * (cast_expression "(undefined4 **)(puVar10 + -0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x20)" ( (binary_expression "puVar10 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x24) = 0x7154e;" (assignment_expression "*(undefined4 *)(puVar10 + -0x24) = 0x7154e" (pointer_expression "*(undefined4 *)(puVar10 + -0x24)" * (cast_expression "(undefined4 *)(puVar10 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x24)" ( (binary_expression "puVar10 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_powlo();" (call_expression "__gmpn_powlo()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar3 = *piVar6;" (assignment_expression "iVar3 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "iVar7 = *(int *)(unaff_EBX + 0x27a0d);" (assignment_expression "iVar7 = *(int *)(unaff_EBX + 0x27a0d)" identifier = (pointer_expression "*(int *)(unaff_EBX + 0x27a0d)" * (cast_expression "(int *)(unaff_EBX + 0x27a0d)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBX + 0x27a0d)" ( (binary_expression "unaff_EBX + 0x27a0d" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *puVar1;" (assignment_expression "uVar4 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "*(uint *)(puVar11 + -0x138) = *(uint *)(puVar11 + 0x14) >> 1;" (assignment_expression "*(uint *)(puVar11 + -0x138) = *(uint *)(puVar11 + 0x14) >> 1" (pointer_expression "*(uint *)(puVar11 + -0x138)" * (cast_expression "(uint *)(puVar11 + -0x138)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x138)" ( (binary_expression "puVar11 + -0x138" identifier + number_literal) )))) = (binary_expression "*(uint *)(puVar11 + 0x14) >> 1" (pointer_expression "*(uint *)(puVar11 + 0x14)" * (cast_expression "(uint *)(puVar11 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) )))) >> number_literal)) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x130) = uVar4;" (assignment_expression "*(undefined4 *)(puVar11 + -0x130) = uVar4" (pointer_expression "*(undefined4 *)(puVar11 + -0x130)" * (cast_expression "(undefined4 *)(puVar11 + -0x130)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x130)" ( (binary_expression "puVar11 + -0x130" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (uint)*(byte *)(iVar7 + (*(uint *)(puVar11 + 0x14) >> 1 & 0x7f));" (assignment_expression "uVar2 = (uint)*(byte *)(iVar7 + (*(uint *)(puVar11 + 0x14) >> 1 & 0x7f))" identifier = (binary_expression "(uint)*(byte *)(iVar7 + (*(uint *)(puVar11 + 0x14) >> 1 & 0x7f))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar7 + (*(uint *)(puVar11 + 0x14) >> 1 & 0x7f))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + (*(uint *)(puVar11 + 0x14) >> 1 & 0x7f))" ( (binary_expression "iVar7 + (*(uint *)(puVar11 + 0x14) >> 1 & 0x7f)" identifier + (parenthesized_expression "(*(uint *)(puVar11 + 0x14) >> 1 & 0x7f)" ( (binary_expression "*(uint *)(puVar11 + 0x14) >> 1 & 0x7f" (binary_expression "*(uint *)(puVar11 + 0x14) >> 1" (pointer_expression "*(uint *)(puVar11 + 0x14)" * (cast_expression "(uint *)(puVar11 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) )))) >> number_literal) & number_literal) ))) ))))) ;) (expression_statement "iVar7 = uVar2 * 2 - uVar2 * uVar2 * *(int *)(puVar11 + 0x14);" (assignment_expression "iVar7 = uVar2 * 2 - uVar2 * uVar2 * *(int *)(puVar11 + 0x14)" identifier = (binary_expression "uVar2 * 2 - uVar2 * uVar2 * *(int *)(puVar11 + 0x14)" (binary_expression "uVar2 * 2" identifier * number_literal) - (binary_expression "uVar2 * uVar2 * *(int *)(puVar11 + 0x14)" (binary_expression "uVar2 * uVar2" identifier * identifier) * (pointer_expression "*(int *)(puVar11 + 0x14)" * (cast_expression "(int *)(puVar11 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) ))))))) ;) (expression_statement "iVar7 = iVar7 * 2 - iVar7 * iVar7 * *(int *)(puVar11 + 0x14);" (assignment_expression "iVar7 = iVar7 * 2 - iVar7 * iVar7 * *(int *)(puVar11 + 0x14)" identifier = (binary_expression "iVar7 * 2 - iVar7 * iVar7 * *(int *)(puVar11 + 0x14)" (binary_expression "iVar7 * 2" identifier * number_literal) - (binary_expression "iVar7 * iVar7 * *(int *)(puVar11 + 0x14)" (binary_expression "iVar7 * iVar7" identifier * identifier) * (pointer_expression "*(int *)(puVar11 + 0x14)" * (cast_expression "(int *)(puVar11 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) ))))))) ;) (expression_statement "*(int *)(puVar11 + -0x140) = iVar7;" (assignment_expression "*(int *)(puVar11 + -0x140) = iVar7" (pointer_expression "*(int *)(puVar11 + -0x140)" * (cast_expression "(int *)(puVar11 + -0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x140)" ( (binary_expression "puVar11 + -0x140" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar3 = ((iVar3 << 2 ^ iVar3 * 2) & *(int *)(puVar11 + 0x14) << 2 & 8U) + 1;" (assignment_expression "iVar3 = ((iVar3 << 2 ^ iVar3 * 2) & *(int *)(puVar11 + 0x14) << 2 & 8U) + 1" identifier = (binary_expression "((iVar3 << 2 ^ iVar3 * 2) & *(int *)(puVar11 + 0x14) << 2 & 8U) + 1" (parenthesized_expression "((iVar3 << 2 ^ iVar3 * 2) & *(int *)(puVar11 + 0x14) << 2 & 8U)" ( (binary_expression "(iVar3 << 2 ^ iVar3 * 2) & *(int *)(puVar11 + 0x14) << 2 & 8U" (binary_expression "(iVar3 << 2 ^ iVar3 * 2) & *(int *)(puVar11 + 0x14) << 2" (parenthesized_expression "(iVar3 << 2 ^ iVar3 * 2)" ( (binary_expression "iVar3 << 2 ^ iVar3 * 2" (binary_expression "iVar3 << 2" identifier << number_literal) ^ (binary_expression "iVar3 * 2" identifier * number_literal)) )) & (binary_expression "*(int *)(puVar11 + 0x14) << 2" (pointer_expression "*(int *)(puVar11 + 0x14)" * (cast_expression "(int *)(puVar11 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) )))) << number_literal)) & number_literal) )) + number_literal)) ;) (expression_statement "iVar7 = iVar7 * iVar3;" (assignment_expression "iVar7 = iVar7 * iVar3" identifier = (binary_expression "iVar7 * iVar3" identifier * identifier)) ;) (expression_statement "uVar2 = *(uint *)(puVar11 + 0x14) & 0x7f;" (assignment_expression "uVar2 = *(uint *)(puVar11 + 0x14) & 0x7f" identifier = (binary_expression "*(uint *)(puVar11 + 0x14) & 0x7f" (pointer_expression "*(uint *)(puVar11 + 0x14)" * (cast_expression "(uint *)(puVar11 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (uVar2 == 0) {\n    iVar12 = *(int *)(puVar11 + -0x130);\n  }\n  else {\n    iVar12 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar12 = iVar12 * iVar3;\n      }\n      iVar3 = iVar3 * iVar3;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = *(int *)(puVar11 + -0x130) * iVar12;\n  }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar12 = *(int *)(puVar11 + -0x130);\n  }" { (expression_statement "iVar12 = *(int *)(puVar11 + -0x130);" (assignment_expression "iVar12 = *(int *)(puVar11 + -0x130)" identifier = (pointer_expression "*(int *)(puVar11 + -0x130)" * (cast_expression "(int *)(puVar11 + -0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x130)" ( (binary_expression "puVar11 + -0x130" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    iVar12 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar12 = iVar12 * iVar3;\n      }\n      iVar3 = iVar3 * iVar3;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = *(int *)(puVar11 + -0x130) * iVar12;\n  }" else (compound_statement "{\n    iVar12 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar12 = iVar12 * iVar3;\n      }\n      iVar3 = iVar3 * iVar3;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = *(int *)(puVar11 + -0x130) * iVar12;\n  }" { (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) (do_statement "do {\n      if ((uVar2 & 1) != 0) {\n        iVar12 = iVar12 * iVar3;\n      }\n      iVar3 = iVar3 * iVar3;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);" do (compound_statement "{\n      if ((uVar2 & 1) != 0) {\n        iVar12 = iVar12 * iVar3;\n      }\n      iVar3 = iVar3 * iVar3;\n      uVar2 = uVar2 >> 1;\n    }" { (if_statement "if ((uVar2 & 1) != 0) {\n        iVar12 = iVar12 * iVar3;\n      }" if (parenthesized_expression "((uVar2 & 1) != 0)" ( (binary_expression "(uVar2 & 1) != 0" (parenthesized_expression "(uVar2 & 1)" ( (binary_expression "uVar2 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        iVar12 = iVar12 * iVar3;\n      }" { (expression_statement "iVar12 = iVar12 * iVar3;" (assignment_expression "iVar12 = iVar12 * iVar3" identifier = (binary_expression "iVar12 * iVar3" identifier * identifier)) ;) })) (expression_statement "iVar3 = iVar3 * iVar3;" (assignment_expression "iVar3 = iVar3 * iVar3" identifier = (binary_expression "iVar3 * iVar3" identifier * identifier)) ;) (expression_statement "uVar2 = uVar2 >> 1;" (assignment_expression "uVar2 = uVar2 >> 1" identifier = (binary_expression "uVar2 >> 1" identifier >> number_literal)) ;) }) while (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) ;) (expression_statement "iVar12 = *(int *)(puVar11 + -0x130) * iVar12;" (assignment_expression "iVar12 = *(int *)(puVar11 + -0x130) * iVar12" identifier = (binary_expression "*(int *)(puVar11 + -0x130) * iVar12" (pointer_expression "*(int *)(puVar11 + -0x130)" * (cast_expression "(int *)(puVar11 + -0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x130)" ( (binary_expression "puVar11 + -0x130" identifier + number_literal) )))) * identifier)) ;) }))) (expression_statement "iVar3 = *(int *)(puVar11 + 0x14) + 1;" (assignment_expression "iVar3 = *(int *)(puVar11 + 0x14) + 1" identifier = (binary_expression "*(int *)(puVar11 + 0x14) + 1" (pointer_expression "*(int *)(puVar11 + 0x14)" * (cast_expression "(int *)(puVar11 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar7 = iVar7 * (iVar3 - iVar12);" (assignment_expression "iVar7 = iVar7 * (iVar3 - iVar12)" identifier = (binary_expression "iVar7 * (iVar3 - iVar12)" identifier * (parenthesized_expression "(iVar3 - iVar12)" ( (binary_expression "iVar3 - iVar12" identifier - identifier) )))) ;) (expression_statement "iVar12 = *(int *)(puVar11 + -0x140) * iVar7;" (assignment_expression "iVar12 = *(int *)(puVar11 + -0x140) * iVar7" identifier = (binary_expression "*(int *)(puVar11 + -0x140) * iVar7" (pointer_expression "*(int *)(puVar11 + -0x140)" * (cast_expression "(int *)(puVar11 + -0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x140)" ( (binary_expression "puVar11 + -0x140" identifier + number_literal) )))) * identifier)) ;) (expression_statement "uVar2 = *(uint *)(puVar11 + 0x14) & 0x7fff;" (assignment_expression "uVar2 = *(uint *)(puVar11 + 0x14) & 0x7fff" identifier = (binary_expression "*(uint *)(puVar11 + 0x14) & 0x7fff" (pointer_expression "*(uint *)(puVar11 + 0x14)" * (cast_expression "(uint *)(puVar11 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (uVar2 == 0) {\n    iVar7 = iVar3 - *(int *)(puVar11 + -0x130);\n    iVar12 = iVar12 * iVar7;\n    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;\n    if (*(int *)(puVar11 + 0x14) == 0) goto LAB_00071659;\n  }\n  else {\n    iVar5 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar5 = iVar5 * iVar7;\n      }\n      iVar7 = iVar7 * iVar7;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = iVar12 * (iVar3 - iVar5 * *(int *)(puVar11 + -0x130));\n    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;\n  }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar7 = iVar3 - *(int *)(puVar11 + -0x130);\n    iVar12 = iVar12 * iVar7;\n    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;\n    if (*(int *)(puVar11 + 0x14) == 0) goto LAB_00071659;\n  }" { (expression_statement "iVar7 = iVar3 - *(int *)(puVar11 + -0x130);" (assignment_expression "iVar7 = iVar3 - *(int *)(puVar11 + -0x130)" identifier = (binary_expression "iVar3 - *(int *)(puVar11 + -0x130)" identifier - (pointer_expression "*(int *)(puVar11 + -0x130)" * (cast_expression "(int *)(puVar11 + -0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x130)" ( (binary_expression "puVar11 + -0x130" identifier + number_literal) )))))) ;) (expression_statement "iVar12 = iVar12 * iVar7;" (assignment_expression "iVar12 = iVar12 * iVar7" identifier = (binary_expression "iVar12 * iVar7" identifier * identifier)) ;) (expression_statement "iVar5 = *(int *)(puVar11 + -0x140) * iVar12;" (assignment_expression "iVar5 = *(int *)(puVar11 + -0x140) * iVar12" identifier = (binary_expression "*(int *)(puVar11 + -0x140) * iVar12" (pointer_expression "*(int *)(puVar11 + -0x140)" * (cast_expression "(int *)(puVar11 + -0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x140)" ( (binary_expression "puVar11 + -0x140" identifier + number_literal) )))) * identifier)) ;) (if_statement "if (*(int *)(puVar11 + 0x14) == 0) goto LAB_00071659;" if (parenthesized_expression "(*(int *)(puVar11 + 0x14) == 0)" ( (binary_expression "*(int *)(puVar11 + 0x14) == 0" (pointer_expression "*(int *)(puVar11 + 0x14)" * (cast_expression "(int *)(puVar11 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00071659;" goto statement_identifier ;)) }) (else_clause "else {\n    iVar5 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar5 = iVar5 * iVar7;\n      }\n      iVar7 = iVar7 * iVar7;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = iVar12 * (iVar3 - iVar5 * *(int *)(puVar11 + -0x130));\n    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;\n  }" else (compound_statement "{\n    iVar5 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar5 = iVar5 * iVar7;\n      }\n      iVar7 = iVar7 * iVar7;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = iVar12 * (iVar3 - iVar5 * *(int *)(puVar11 + -0x130));\n    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;\n  }" { (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (do_statement "do {\n      if ((uVar2 & 1) != 0) {\n        iVar5 = iVar5 * iVar7;\n      }\n      iVar7 = iVar7 * iVar7;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);" do (compound_statement "{\n      if ((uVar2 & 1) != 0) {\n        iVar5 = iVar5 * iVar7;\n      }\n      iVar7 = iVar7 * iVar7;\n      uVar2 = uVar2 >> 1;\n    }" { (if_statement "if ((uVar2 & 1) != 0) {\n        iVar5 = iVar5 * iVar7;\n      }" if (parenthesized_expression "((uVar2 & 1) != 0)" ( (binary_expression "(uVar2 & 1) != 0" (parenthesized_expression "(uVar2 & 1)" ( (binary_expression "uVar2 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        iVar5 = iVar5 * iVar7;\n      }" { (expression_statement "iVar5 = iVar5 * iVar7;" (assignment_expression "iVar5 = iVar5 * iVar7" identifier = (binary_expression "iVar5 * iVar7" identifier * identifier)) ;) })) (expression_statement "iVar7 = iVar7 * iVar7;" (assignment_expression "iVar7 = iVar7 * iVar7" identifier = (binary_expression "iVar7 * iVar7" identifier * identifier)) ;) (expression_statement "uVar2 = uVar2 >> 1;" (assignment_expression "uVar2 = uVar2 >> 1" identifier = (binary_expression "uVar2 >> 1" identifier >> number_literal)) ;) }) while (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) ;) (expression_statement "iVar12 = iVar12 * (iVar3 - iVar5 * *(int *)(puVar11 + -0x130));" (assignment_expression "iVar12 = iVar12 * (iVar3 - iVar5 * *(int *)(puVar11 + -0x130))" identifier = (binary_expression "iVar12 * (iVar3 - iVar5 * *(int *)(puVar11 + -0x130))" identifier * (parenthesized_expression "(iVar3 - iVar5 * *(int *)(puVar11 + -0x130))" ( (binary_expression "iVar3 - iVar5 * *(int *)(puVar11 + -0x130)" identifier - (binary_expression "iVar5 * *(int *)(puVar11 + -0x130)" identifier * (pointer_expression "*(int *)(puVar11 + -0x130)" * (cast_expression "(int *)(puVar11 + -0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x130)" ( (binary_expression "puVar11 + -0x130" identifier + number_literal) )))))) )))) ;) (expression_statement "iVar5 = *(int *)(puVar11 + -0x140) * iVar12;" (assignment_expression "iVar5 = *(int *)(puVar11 + -0x140) * iVar12" identifier = (binary_expression "*(int *)(puVar11 + -0x140) * iVar12" (pointer_expression "*(int *)(puVar11 + -0x140)" * (cast_expression "(int *)(puVar11 + -0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x140)" ( (binary_expression "puVar11 + -0x140" identifier + number_literal) )))) * identifier)) ;) }))) (expression_statement "uVar2 = *(uint *)(puVar11 + 0x14);" (assignment_expression "uVar2 = *(uint *)(puVar11 + 0x14)" identifier = (pointer_expression "*(uint *)(puVar11 + 0x14)" * (cast_expression "(uint *)(puVar11 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (do_statement "do {\n    if ((uVar2 & 1) != 0) {\n      iVar7 = iVar7 * iVar12;\n    }\n    iVar12 = iVar12 * iVar12;\n    uVar2 = uVar2 >> 1;\n  } while (uVar2 != 0);" do (compound_statement "{\n    if ((uVar2 & 1) != 0) {\n      iVar7 = iVar7 * iVar12;\n    }\n    iVar12 = iVar12 * iVar12;\n    uVar2 = uVar2 >> 1;\n  }" { (if_statement "if ((uVar2 & 1) != 0) {\n      iVar7 = iVar7 * iVar12;\n    }" if (parenthesized_expression "((uVar2 & 1) != 0)" ( (binary_expression "(uVar2 & 1) != 0" (parenthesized_expression "(uVar2 & 1)" ( (binary_expression "uVar2 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      iVar7 = iVar7 * iVar12;\n    }" { (expression_statement "iVar7 = iVar7 * iVar12;" (assignment_expression "iVar7 = iVar7 * iVar12" identifier = (binary_expression "iVar7 * iVar12" identifier * identifier)) ;) })) (expression_statement "iVar12 = iVar12 * iVar12;" (assignment_expression "iVar12 = iVar12 * iVar12" identifier = (binary_expression "iVar12 * iVar12" identifier * identifier)) ;) (expression_statement "uVar2 = uVar2 >> 1;" (assignment_expression "uVar2 = uVar2 >> 1" identifier = (binary_expression "uVar2 >> 1" identifier >> number_literal)) ;) }) while (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) ;) (expression_statement "iVar7 = iVar3 - iVar7 * *(int *)(puVar11 + -0x130);" (assignment_expression "iVar7 = iVar3 - iVar7 * *(int *)(puVar11 + -0x130)" identifier = (binary_expression "iVar3 - iVar7 * *(int *)(puVar11 + -0x130)" identifier - (binary_expression "iVar7 * *(int *)(puVar11 + -0x130)" identifier * (pointer_expression "*(int *)(puVar11 + -0x130)" * (cast_expression "(int *)(puVar11 + -0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x130)" ( (binary_expression "puVar11 + -0x130" identifier + number_literal) ))))))) ;) (labeled_statement "LAB_00071659:\n  iVar3 = *(int *)(puVar11 + 0x10);" statement_identifier : (expression_statement "iVar3 = *(int *)(puVar11 + 0x10);" (assignment_expression "iVar3 = *(int *)(puVar11 + 0x10)" identifier = (pointer_expression "*(int *)(puVar11 + 0x10)" * (cast_expression "(int *)(puVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) ))))) ;)) (expression_statement "**(int **)(puVar11 + -300) = iVar7 * iVar5;" (assignment_expression "**(int **)(puVar11 + -300) = iVar7 * iVar5" (pointer_expression "**(int **)(puVar11 + -300)" * (pointer_expression "*(int **)(puVar11 + -300)" * (cast_expression "(int **)(puVar11 + -300)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -300)" ( (binary_expression "puVar11 + -300" identifier + number_literal) ))))) = (binary_expression "iVar7 * iVar5" identifier * identifier)) ;) (if_statement "if (iVar3 != 1) {\n    *(int *)(puVar11 + -0x124) = *(int *)(puVar11 + -0x138) + 1;\n    uVar2 = *(int *)(puVar11 + 0x10) * 8 + 4;\n    if (uVar2 < 0x7f01) {\n      iVar3 = -(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0);\n      iVar9 = (int)puVar10 + iVar3;\n      puVar10 = puVar10 + iVar3;\n      *(int *)(puVar11 + -0x130) = iVar9;\n    }\n    else {\n      *(uint *)(puVar10 + -0xc) = uVar2;\n      *(undefined1 **)(puVar10 + -0x10) = puVar11 + -0x120;\n      *(undefined4 *)(puVar10 + -0x14) = 0x718ac;\n      uVar4 = __gmp_tmp_reentrant_alloc();\n      *(undefined4 *)(puVar11 + -0x130) = uVar4;\n    }\n    if (1 < *(int *)(puVar11 + 0x10)) {\n      *(int *)(puVar11 + -0x134) = *(int *)(puVar11 + -0x134) + *(int *)(puVar11 + -0x130);\n      *(undefined1 **)(puVar11 + -0x148) = puVar11 + -0x11c;\n      iVar3 = 0;\n      iVar7 = *(int *)(puVar11 + 0x10);\n      do {\n        iVar12 = iVar7;\n        iVar5 = iVar3;\n        iVar3 = iVar5 + 1;\n        iVar7 = iVar12 + 1 >> 1;\n        *(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12;\n      } while (iVar7 != 1);\n      iVar3 = *(int *)(puVar11 + -0x134);\n      *(int *)(puVar11 + 0x10) = iVar12;\n      *(int *)(puVar11 + -0x13c) = *(int *)(puVar11 + -0x148) + iVar5 * 4;\n      *(undefined1 **)(puVar11 + -0x150) = puVar11 + -0x124;\n      do {\n        *(int *)(puVar11 + -0x134) = iVar7;\n        *(int *)(puVar10 + -8) = iVar7;\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71736;\n        __gmpn_sqr();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c);\n        *(int *)(puVar10 + -0x10) = iVar12;\n        *(undefined4 *)(puVar10 + -0x14) = 1;\n        *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150);\n        *(int *)(puVar10 + -0x1c) = iVar3;\n        *(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130);\n        *(undefined4 *)(puVar10 + -0x24) = 0x71753;\n        __gmpn_powlo();\n        *(int *)(puVar10 + -4) = iVar12;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71769;\n        __gmpn_mullo_n();\n        iVar7 = *(int *)(puVar11 + -0x134);\n        iVar5 = *(int *)(puVar11 + -300);\n        *(undefined4 *)(puVar10 + -0xc) = 0;\n        iVar8 = iVar12 - iVar7;\n        iVar7 = iVar7 * 4;\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140);\n        iVar5 = iVar5 + iVar7;\n        *(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14);\n        *(int *)(puVar10 + -0x18) = iVar8;\n        *(int *)(puVar10 + -0x1c) = iVar7 + iVar3;\n        *(int *)(puVar10 + -0x20) = iVar5;\n        *(int *)(puVar11 + -0x138) = iVar8;\n        *(int *)(puVar11 + -0x134) = iVar5;\n        *(undefined4 *)(puVar10 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        piVar6 = *(int **)(puVar11 + -0x134);\n        iVar7 = *(int *)(puVar11 + -0x138);\n        iVar5 = *piVar6;\n        while (iVar7 = iVar7 + -1, iVar5 == 0) {\n          if (iVar7 == 0) goto LAB_000717d0;\n          piVar6 = piVar6 + 1;\n          iVar5 = *piVar6;\n        }\n        *piVar6 = -iVar5;\n        if (iVar7 != 0) {\n          *(int *)(puVar10 + -8) = iVar7;\n          *(int **)(puVar10 + -0xc) = piVar6 + 1;\n          *(int **)(puVar10 + -0x10) = piVar6 + 1;\n          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        iVar7 = *(int *)(puVar11 + -0x13c);\n        if (*(int *)(puVar11 + -0x148) == iVar7) break;\n        iVar5 = *(int *)(iVar7 + -4);\n        *(int *)(puVar11 + -0x13c) = iVar7 + -4;\n        iVar7 = iVar12;\n        iVar12 = iVar5;\n      } while( true );\n    }\n  }" if (parenthesized_expression "(iVar3 != 1)" ( (binary_expression "iVar3 != 1" identifier != number_literal) )) (compound_statement "{\n    *(int *)(puVar11 + -0x124) = *(int *)(puVar11 + -0x138) + 1;\n    uVar2 = *(int *)(puVar11 + 0x10) * 8 + 4;\n    if (uVar2 < 0x7f01) {\n      iVar3 = -(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0);\n      iVar9 = (int)puVar10 + iVar3;\n      puVar10 = puVar10 + iVar3;\n      *(int *)(puVar11 + -0x130) = iVar9;\n    }\n    else {\n      *(uint *)(puVar10 + -0xc) = uVar2;\n      *(undefined1 **)(puVar10 + -0x10) = puVar11 + -0x120;\n      *(undefined4 *)(puVar10 + -0x14) = 0x718ac;\n      uVar4 = __gmp_tmp_reentrant_alloc();\n      *(undefined4 *)(puVar11 + -0x130) = uVar4;\n    }\n    if (1 < *(int *)(puVar11 + 0x10)) {\n      *(int *)(puVar11 + -0x134) = *(int *)(puVar11 + -0x134) + *(int *)(puVar11 + -0x130);\n      *(undefined1 **)(puVar11 + -0x148) = puVar11 + -0x11c;\n      iVar3 = 0;\n      iVar7 = *(int *)(puVar11 + 0x10);\n      do {\n        iVar12 = iVar7;\n        iVar5 = iVar3;\n        iVar3 = iVar5 + 1;\n        iVar7 = iVar12 + 1 >> 1;\n        *(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12;\n      } while (iVar7 != 1);\n      iVar3 = *(int *)(puVar11 + -0x134);\n      *(int *)(puVar11 + 0x10) = iVar12;\n      *(int *)(puVar11 + -0x13c) = *(int *)(puVar11 + -0x148) + iVar5 * 4;\n      *(undefined1 **)(puVar11 + -0x150) = puVar11 + -0x124;\n      do {\n        *(int *)(puVar11 + -0x134) = iVar7;\n        *(int *)(puVar10 + -8) = iVar7;\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71736;\n        __gmpn_sqr();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c);\n        *(int *)(puVar10 + -0x10) = iVar12;\n        *(undefined4 *)(puVar10 + -0x14) = 1;\n        *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150);\n        *(int *)(puVar10 + -0x1c) = iVar3;\n        *(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130);\n        *(undefined4 *)(puVar10 + -0x24) = 0x71753;\n        __gmpn_powlo();\n        *(int *)(puVar10 + -4) = iVar12;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71769;\n        __gmpn_mullo_n();\n        iVar7 = *(int *)(puVar11 + -0x134);\n        iVar5 = *(int *)(puVar11 + -300);\n        *(undefined4 *)(puVar10 + -0xc) = 0;\n        iVar8 = iVar12 - iVar7;\n        iVar7 = iVar7 * 4;\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140);\n        iVar5 = iVar5 + iVar7;\n        *(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14);\n        *(int *)(puVar10 + -0x18) = iVar8;\n        *(int *)(puVar10 + -0x1c) = iVar7 + iVar3;\n        *(int *)(puVar10 + -0x20) = iVar5;\n        *(int *)(puVar11 + -0x138) = iVar8;\n        *(int *)(puVar11 + -0x134) = iVar5;\n        *(undefined4 *)(puVar10 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        piVar6 = *(int **)(puVar11 + -0x134);\n        iVar7 = *(int *)(puVar11 + -0x138);\n        iVar5 = *piVar6;\n        while (iVar7 = iVar7 + -1, iVar5 == 0) {\n          if (iVar7 == 0) goto LAB_000717d0;\n          piVar6 = piVar6 + 1;\n          iVar5 = *piVar6;\n        }\n        *piVar6 = -iVar5;\n        if (iVar7 != 0) {\n          *(int *)(puVar10 + -8) = iVar7;\n          *(int **)(puVar10 + -0xc) = piVar6 + 1;\n          *(int **)(puVar10 + -0x10) = piVar6 + 1;\n          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        iVar7 = *(int *)(puVar11 + -0x13c);\n        if (*(int *)(puVar11 + -0x148) == iVar7) break;\n        iVar5 = *(int *)(iVar7 + -4);\n        *(int *)(puVar11 + -0x13c) = iVar7 + -4;\n        iVar7 = iVar12;\n        iVar12 = iVar5;\n      } while( true );\n    }\n  }" { (expression_statement "*(int *)(puVar11 + -0x124) = *(int *)(puVar11 + -0x138) + 1;" (assignment_expression "*(int *)(puVar11 + -0x124) = *(int *)(puVar11 + -0x138) + 1" (pointer_expression "*(int *)(puVar11 + -0x124)" * (cast_expression "(int *)(puVar11 + -0x124)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x124)" ( (binary_expression "puVar11 + -0x124" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar11 + -0x138) + 1" (pointer_expression "*(int *)(puVar11 + -0x138)" * (cast_expression "(int *)(puVar11 + -0x138)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x138)" ( (binary_expression "puVar11 + -0x138" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "uVar2 = *(int *)(puVar11 + 0x10) * 8 + 4;" (assignment_expression "uVar2 = *(int *)(puVar11 + 0x10) * 8 + 4" identifier = (binary_expression "*(int *)(puVar11 + 0x10) * 8 + 4" (binary_expression "*(int *)(puVar11 + 0x10) * 8" (pointer_expression "*(int *)(puVar11 + 0x10)" * (cast_expression "(int *)(puVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) )))) * number_literal) + number_literal)) ;) (if_statement "if (uVar2 < 0x7f01) {\n      iVar3 = -(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0);\n      iVar9 = (int)puVar10 + iVar3;\n      puVar10 = puVar10 + iVar3;\n      *(int *)(puVar11 + -0x130) = iVar9;\n    }\n    else {\n      *(uint *)(puVar10 + -0xc) = uVar2;\n      *(undefined1 **)(puVar10 + -0x10) = puVar11 + -0x120;\n      *(undefined4 *)(puVar10 + -0x14) = 0x718ac;\n      uVar4 = __gmp_tmp_reentrant_alloc();\n      *(undefined4 *)(puVar11 + -0x130) = uVar4;\n    }" if (parenthesized_expression "(uVar2 < 0x7f01)" ( (binary_expression "uVar2 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n      iVar3 = -(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0);\n      iVar9 = (int)puVar10 + iVar3;\n      puVar10 = puVar10 + iVar3;\n      *(int *)(puVar11 + -0x130) = iVar9;\n    }" { (expression_statement "iVar3 = -(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0);" (assignment_expression "iVar3 = -(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0)" identifier = (unary_expression "-(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0)" - (parenthesized_expression "(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0)" ( (binary_expression "*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0" (binary_expression "*(int *)(puVar11 + 0x10) * 8 + 0x1fU" (binary_expression "*(int *)(puVar11 + 0x10) * 8" (pointer_expression "*(int *)(puVar11 + 0x10)" * (cast_expression "(int *)(puVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) )))) * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "iVar9 = (int)puVar10 + iVar3;" (assignment_expression "iVar9 = (int)puVar10 + iVar3" identifier = (binary_expression "(int)puVar10 + iVar3" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "puVar10 = puVar10 + iVar3;" (assignment_expression "puVar10 = puVar10 + iVar3" identifier = (binary_expression "puVar10 + iVar3" identifier + identifier)) ;) (expression_statement "*(int *)(puVar11 + -0x130) = iVar9;" (assignment_expression "*(int *)(puVar11 + -0x130) = iVar9" (pointer_expression "*(int *)(puVar11 + -0x130)" * (cast_expression "(int *)(puVar11 + -0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x130)" ( (binary_expression "puVar11 + -0x130" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      *(uint *)(puVar10 + -0xc) = uVar2;\n      *(undefined1 **)(puVar10 + -0x10) = puVar11 + -0x120;\n      *(undefined4 *)(puVar10 + -0x14) = 0x718ac;\n      uVar4 = __gmp_tmp_reentrant_alloc();\n      *(undefined4 *)(puVar11 + -0x130) = uVar4;\n    }" else (compound_statement "{\n      *(uint *)(puVar10 + -0xc) = uVar2;\n      *(undefined1 **)(puVar10 + -0x10) = puVar11 + -0x120;\n      *(undefined4 *)(puVar10 + -0x14) = 0x718ac;\n      uVar4 = __gmp_tmp_reentrant_alloc();\n      *(undefined4 *)(puVar11 + -0x130) = uVar4;\n    }" { (expression_statement "*(uint *)(puVar10 + -0xc) = uVar2;" (assignment_expression "*(uint *)(puVar10 + -0xc) = uVar2" (pointer_expression "*(uint *)(puVar10 + -0xc)" * (cast_expression "(uint *)(puVar10 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar10 + -0x10) = puVar11 + -0x120;" (assignment_expression "*(undefined1 **)(puVar10 + -0x10) = puVar11 + -0x120" (pointer_expression "*(undefined1 **)(puVar10 + -0x10)" * (cast_expression "(undefined1 **)(puVar10 + -0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = (binary_expression "puVar11 + -0x120" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x718ac;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x718ac" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar4 = __gmp_tmp_reentrant_alloc();" (assignment_expression "uVar4 = __gmp_tmp_reentrant_alloc()" identifier = (call_expression "__gmp_tmp_reentrant_alloc()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x130) = uVar4;" (assignment_expression "*(undefined4 *)(puVar11 + -0x130) = uVar4" (pointer_expression "*(undefined4 *)(puVar11 + -0x130)" * (cast_expression "(undefined4 *)(puVar11 + -0x130)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x130)" ( (binary_expression "puVar11 + -0x130" identifier + number_literal) )))) = identifier) ;) }))) (if_statement "if (1 < *(int *)(puVar11 + 0x10)) {\n      *(int *)(puVar11 + -0x134) = *(int *)(puVar11 + -0x134) + *(int *)(puVar11 + -0x130);\n      *(undefined1 **)(puVar11 + -0x148) = puVar11 + -0x11c;\n      iVar3 = 0;\n      iVar7 = *(int *)(puVar11 + 0x10);\n      do {\n        iVar12 = iVar7;\n        iVar5 = iVar3;\n        iVar3 = iVar5 + 1;\n        iVar7 = iVar12 + 1 >> 1;\n        *(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12;\n      } while (iVar7 != 1);\n      iVar3 = *(int *)(puVar11 + -0x134);\n      *(int *)(puVar11 + 0x10) = iVar12;\n      *(int *)(puVar11 + -0x13c) = *(int *)(puVar11 + -0x148) + iVar5 * 4;\n      *(undefined1 **)(puVar11 + -0x150) = puVar11 + -0x124;\n      do {\n        *(int *)(puVar11 + -0x134) = iVar7;\n        *(int *)(puVar10 + -8) = iVar7;\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71736;\n        __gmpn_sqr();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c);\n        *(int *)(puVar10 + -0x10) = iVar12;\n        *(undefined4 *)(puVar10 + -0x14) = 1;\n        *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150);\n        *(int *)(puVar10 + -0x1c) = iVar3;\n        *(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130);\n        *(undefined4 *)(puVar10 + -0x24) = 0x71753;\n        __gmpn_powlo();\n        *(int *)(puVar10 + -4) = iVar12;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71769;\n        __gmpn_mullo_n();\n        iVar7 = *(int *)(puVar11 + -0x134);\n        iVar5 = *(int *)(puVar11 + -300);\n        *(undefined4 *)(puVar10 + -0xc) = 0;\n        iVar8 = iVar12 - iVar7;\n        iVar7 = iVar7 * 4;\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140);\n        iVar5 = iVar5 + iVar7;\n        *(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14);\n        *(int *)(puVar10 + -0x18) = iVar8;\n        *(int *)(puVar10 + -0x1c) = iVar7 + iVar3;\n        *(int *)(puVar10 + -0x20) = iVar5;\n        *(int *)(puVar11 + -0x138) = iVar8;\n        *(int *)(puVar11 + -0x134) = iVar5;\n        *(undefined4 *)(puVar10 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        piVar6 = *(int **)(puVar11 + -0x134);\n        iVar7 = *(int *)(puVar11 + -0x138);\n        iVar5 = *piVar6;\n        while (iVar7 = iVar7 + -1, iVar5 == 0) {\n          if (iVar7 == 0) goto LAB_000717d0;\n          piVar6 = piVar6 + 1;\n          iVar5 = *piVar6;\n        }\n        *piVar6 = -iVar5;\n        if (iVar7 != 0) {\n          *(int *)(puVar10 + -8) = iVar7;\n          *(int **)(puVar10 + -0xc) = piVar6 + 1;\n          *(int **)(puVar10 + -0x10) = piVar6 + 1;\n          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        iVar7 = *(int *)(puVar11 + -0x13c);\n        if (*(int *)(puVar11 + -0x148) == iVar7) break;\n        iVar5 = *(int *)(iVar7 + -4);\n        *(int *)(puVar11 + -0x13c) = iVar7 + -4;\n        iVar7 = iVar12;\n        iVar12 = iVar5;\n      } while( true );\n    }" if (parenthesized_expression "(1 < *(int *)(puVar11 + 0x10))" ( (binary_expression "1 < *(int *)(puVar11 + 0x10)" number_literal < (pointer_expression "*(int *)(puVar11 + 0x10)" * (cast_expression "(int *)(puVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) ))))) )) (compound_statement "{\n      *(int *)(puVar11 + -0x134) = *(int *)(puVar11 + -0x134) + *(int *)(puVar11 + -0x130);\n      *(undefined1 **)(puVar11 + -0x148) = puVar11 + -0x11c;\n      iVar3 = 0;\n      iVar7 = *(int *)(puVar11 + 0x10);\n      do {\n        iVar12 = iVar7;\n        iVar5 = iVar3;\n        iVar3 = iVar5 + 1;\n        iVar7 = iVar12 + 1 >> 1;\n        *(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12;\n      } while (iVar7 != 1);\n      iVar3 = *(int *)(puVar11 + -0x134);\n      *(int *)(puVar11 + 0x10) = iVar12;\n      *(int *)(puVar11 + -0x13c) = *(int *)(puVar11 + -0x148) + iVar5 * 4;\n      *(undefined1 **)(puVar11 + -0x150) = puVar11 + -0x124;\n      do {\n        *(int *)(puVar11 + -0x134) = iVar7;\n        *(int *)(puVar10 + -8) = iVar7;\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71736;\n        __gmpn_sqr();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c);\n        *(int *)(puVar10 + -0x10) = iVar12;\n        *(undefined4 *)(puVar10 + -0x14) = 1;\n        *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150);\n        *(int *)(puVar10 + -0x1c) = iVar3;\n        *(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130);\n        *(undefined4 *)(puVar10 + -0x24) = 0x71753;\n        __gmpn_powlo();\n        *(int *)(puVar10 + -4) = iVar12;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71769;\n        __gmpn_mullo_n();\n        iVar7 = *(int *)(puVar11 + -0x134);\n        iVar5 = *(int *)(puVar11 + -300);\n        *(undefined4 *)(puVar10 + -0xc) = 0;\n        iVar8 = iVar12 - iVar7;\n        iVar7 = iVar7 * 4;\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140);\n        iVar5 = iVar5 + iVar7;\n        *(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14);\n        *(int *)(puVar10 + -0x18) = iVar8;\n        *(int *)(puVar10 + -0x1c) = iVar7 + iVar3;\n        *(int *)(puVar10 + -0x20) = iVar5;\n        *(int *)(puVar11 + -0x138) = iVar8;\n        *(int *)(puVar11 + -0x134) = iVar5;\n        *(undefined4 *)(puVar10 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        piVar6 = *(int **)(puVar11 + -0x134);\n        iVar7 = *(int *)(puVar11 + -0x138);\n        iVar5 = *piVar6;\n        while (iVar7 = iVar7 + -1, iVar5 == 0) {\n          if (iVar7 == 0) goto LAB_000717d0;\n          piVar6 = piVar6 + 1;\n          iVar5 = *piVar6;\n        }\n        *piVar6 = -iVar5;\n        if (iVar7 != 0) {\n          *(int *)(puVar10 + -8) = iVar7;\n          *(int **)(puVar10 + -0xc) = piVar6 + 1;\n          *(int **)(puVar10 + -0x10) = piVar6 + 1;\n          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        iVar7 = *(int *)(puVar11 + -0x13c);\n        if (*(int *)(puVar11 + -0x148) == iVar7) break;\n        iVar5 = *(int *)(iVar7 + -4);\n        *(int *)(puVar11 + -0x13c) = iVar7 + -4;\n        iVar7 = iVar12;\n        iVar12 = iVar5;\n      } while( true );\n    }" { (expression_statement "*(int *)(puVar11 + -0x134) = *(int *)(puVar11 + -0x134) + *(int *)(puVar11 + -0x130);" (assignment_expression "*(int *)(puVar11 + -0x134) = *(int *)(puVar11 + -0x134) + *(int *)(puVar11 + -0x130)" (pointer_expression "*(int *)(puVar11 + -0x134)" * (cast_expression "(int *)(puVar11 + -0x134)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x134)" ( (binary_expression "puVar11 + -0x134" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar11 + -0x134) + *(int *)(puVar11 + -0x130)" (pointer_expression "*(int *)(puVar11 + -0x134)" * (cast_expression "(int *)(puVar11 + -0x134)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x134)" ( (binary_expression "puVar11 + -0x134" identifier + number_literal) )))) + (pointer_expression "*(int *)(puVar11 + -0x130)" * (cast_expression "(int *)(puVar11 + -0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x130)" ( (binary_expression "puVar11 + -0x130" identifier + number_literal) )))))) ;) (expression_statement "*(undefined1 **)(puVar11 + -0x148) = puVar11 + -0x11c;" (assignment_expression "*(undefined1 **)(puVar11 + -0x148) = puVar11 + -0x11c" (pointer_expression "*(undefined1 **)(puVar11 + -0x148)" * (cast_expression "(undefined1 **)(puVar11 + -0x148)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x148)" ( (binary_expression "puVar11 + -0x148" identifier + number_literal) )))) = (binary_expression "puVar11 + -0x11c" identifier + number_literal)) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = *(int *)(puVar11 + 0x10);" (assignment_expression "iVar7 = *(int *)(puVar11 + 0x10)" identifier = (pointer_expression "*(int *)(puVar11 + 0x10)" * (cast_expression "(int *)(puVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) ))))) ;) (do_statement "do {\n        iVar12 = iVar7;\n        iVar5 = iVar3;\n        iVar3 = iVar5 + 1;\n        iVar7 = iVar12 + 1 >> 1;\n        *(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12;\n      } while (iVar7 != 1);" do (compound_statement "{\n        iVar12 = iVar7;\n        iVar5 = iVar3;\n        iVar3 = iVar5 + 1;\n        iVar7 = iVar12 + 1 >> 1;\n        *(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12;\n      }" { (expression_statement "iVar12 = iVar7;" (assignment_expression "iVar12 = iVar7" identifier = identifier) ;) (expression_statement "iVar5 = iVar3;" (assignment_expression "iVar5 = iVar3" identifier = identifier) ;) (expression_statement "iVar3 = iVar5 + 1;" (assignment_expression "iVar3 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "iVar7 = iVar12 + 1 >> 1;" (assignment_expression "iVar7 = iVar12 + 1 >> 1" identifier = (binary_expression "iVar12 + 1 >> 1" (binary_expression "iVar12 + 1" identifier + number_literal) >> number_literal)) ;) (expression_statement "*(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12;" (assignment_expression "*(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12" (pointer_expression "*(int *)(puVar11 + iVar3 * 4 + -0x120)" * (cast_expression "(int *)(puVar11 + iVar3 * 4 + -0x120)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + iVar3 * 4 + -0x120)" ( (binary_expression "puVar11 + iVar3 * 4 + -0x120" (binary_expression "puVar11 + iVar3 * 4" identifier + (binary_expression "iVar3 * 4" identifier * number_literal)) + number_literal) )))) = identifier) ;) }) while (parenthesized_expression "(iVar7 != 1)" ( (binary_expression "iVar7 != 1" identifier != number_literal) )) ;) (expression_statement "iVar3 = *(int *)(puVar11 + -0x134);" (assignment_expression "iVar3 = *(int *)(puVar11 + -0x134)" identifier = (pointer_expression "*(int *)(puVar11 + -0x134)" * (cast_expression "(int *)(puVar11 + -0x134)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x134)" ( (binary_expression "puVar11 + -0x134" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar11 + 0x10) = iVar12;" (assignment_expression "*(int *)(puVar11 + 0x10) = iVar12" (pointer_expression "*(int *)(puVar11 + 0x10)" * (cast_expression "(int *)(puVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar11 + -0x13c) = *(int *)(puVar11 + -0x148) + iVar5 * 4;" (assignment_expression "*(int *)(puVar11 + -0x13c) = *(int *)(puVar11 + -0x148) + iVar5 * 4" (pointer_expression "*(int *)(puVar11 + -0x13c)" * (cast_expression "(int *)(puVar11 + -0x13c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x13c)" ( (binary_expression "puVar11 + -0x13c" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar11 + -0x148) + iVar5 * 4" (pointer_expression "*(int *)(puVar11 + -0x148)" * (cast_expression "(int *)(puVar11 + -0x148)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x148)" ( (binary_expression "puVar11 + -0x148" identifier + number_literal) )))) + (binary_expression "iVar5 * 4" identifier * number_literal))) ;) (expression_statement "*(undefined1 **)(puVar11 + -0x150) = puVar11 + -0x124;" (assignment_expression "*(undefined1 **)(puVar11 + -0x150) = puVar11 + -0x124" (pointer_expression "*(undefined1 **)(puVar11 + -0x150)" * (cast_expression "(undefined1 **)(puVar11 + -0x150)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x150)" ( (binary_expression "puVar11 + -0x150" identifier + number_literal) )))) = (binary_expression "puVar11 + -0x124" identifier + number_literal)) ;) (do_statement "do {\n        *(int *)(puVar11 + -0x134) = iVar7;\n        *(int *)(puVar10 + -8) = iVar7;\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71736;\n        __gmpn_sqr();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c);\n        *(int *)(puVar10 + -0x10) = iVar12;\n        *(undefined4 *)(puVar10 + -0x14) = 1;\n        *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150);\n        *(int *)(puVar10 + -0x1c) = iVar3;\n        *(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130);\n        *(undefined4 *)(puVar10 + -0x24) = 0x71753;\n        __gmpn_powlo();\n        *(int *)(puVar10 + -4) = iVar12;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71769;\n        __gmpn_mullo_n();\n        iVar7 = *(int *)(puVar11 + -0x134);\n        iVar5 = *(int *)(puVar11 + -300);\n        *(undefined4 *)(puVar10 + -0xc) = 0;\n        iVar8 = iVar12 - iVar7;\n        iVar7 = iVar7 * 4;\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140);\n        iVar5 = iVar5 + iVar7;\n        *(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14);\n        *(int *)(puVar10 + -0x18) = iVar8;\n        *(int *)(puVar10 + -0x1c) = iVar7 + iVar3;\n        *(int *)(puVar10 + -0x20) = iVar5;\n        *(int *)(puVar11 + -0x138) = iVar8;\n        *(int *)(puVar11 + -0x134) = iVar5;\n        *(undefined4 *)(puVar10 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        piVar6 = *(int **)(puVar11 + -0x134);\n        iVar7 = *(int *)(puVar11 + -0x138);\n        iVar5 = *piVar6;\n        while (iVar7 = iVar7 + -1, iVar5 == 0) {\n          if (iVar7 == 0) goto LAB_000717d0;\n          piVar6 = piVar6 + 1;\n          iVar5 = *piVar6;\n        }\n        *piVar6 = -iVar5;\n        if (iVar7 != 0) {\n          *(int *)(puVar10 + -8) = iVar7;\n          *(int **)(puVar10 + -0xc) = piVar6 + 1;\n          *(int **)(puVar10 + -0x10) = piVar6 + 1;\n          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        iVar7 = *(int *)(puVar11 + -0x13c);\n        if (*(int *)(puVar11 + -0x148) == iVar7) break;\n        iVar5 = *(int *)(iVar7 + -4);\n        *(int *)(puVar11 + -0x13c) = iVar7 + -4;\n        iVar7 = iVar12;\n        iVar12 = iVar5;\n      } while( true );" do (compound_statement "{\n        *(int *)(puVar11 + -0x134) = iVar7;\n        *(int *)(puVar10 + -8) = iVar7;\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71736;\n        __gmpn_sqr();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c);\n        *(int *)(puVar10 + -0x10) = iVar12;\n        *(undefined4 *)(puVar10 + -0x14) = 1;\n        *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150);\n        *(int *)(puVar10 + -0x1c) = iVar3;\n        *(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130);\n        *(undefined4 *)(puVar10 + -0x24) = 0x71753;\n        __gmpn_powlo();\n        *(int *)(puVar10 + -4) = iVar12;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71769;\n        __gmpn_mullo_n();\n        iVar7 = *(int *)(puVar11 + -0x134);\n        iVar5 = *(int *)(puVar11 + -300);\n        *(undefined4 *)(puVar10 + -0xc) = 0;\n        iVar8 = iVar12 - iVar7;\n        iVar7 = iVar7 * 4;\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140);\n        iVar5 = iVar5 + iVar7;\n        *(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14);\n        *(int *)(puVar10 + -0x18) = iVar8;\n        *(int *)(puVar10 + -0x1c) = iVar7 + iVar3;\n        *(int *)(puVar10 + -0x20) = iVar5;\n        *(int *)(puVar11 + -0x138) = iVar8;\n        *(int *)(puVar11 + -0x134) = iVar5;\n        *(undefined4 *)(puVar10 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        piVar6 = *(int **)(puVar11 + -0x134);\n        iVar7 = *(int *)(puVar11 + -0x138);\n        iVar5 = *piVar6;\n        while (iVar7 = iVar7 + -1, iVar5 == 0) {\n          if (iVar7 == 0) goto LAB_000717d0;\n          piVar6 = piVar6 + 1;\n          iVar5 = *piVar6;\n        }\n        *piVar6 = -iVar5;\n        if (iVar7 != 0) {\n          *(int *)(puVar10 + -8) = iVar7;\n          *(int **)(puVar10 + -0xc) = piVar6 + 1;\n          *(int **)(puVar10 + -0x10) = piVar6 + 1;\n          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        iVar7 = *(int *)(puVar11 + -0x13c);\n        if (*(int *)(puVar11 + -0x148) == iVar7) break;\n        iVar5 = *(int *)(iVar7 + -4);\n        *(int *)(puVar11 + -0x13c) = iVar7 + -4;\n        iVar7 = iVar12;\n        iVar12 = iVar5;\n      }" { (expression_statement "*(int *)(puVar11 + -0x134) = iVar7;" (assignment_expression "*(int *)(puVar11 + -0x134) = iVar7" (pointer_expression "*(int *)(puVar11 + -0x134)" * (cast_expression "(int *)(puVar11 + -0x134)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x134)" ( (binary_expression "puVar11 + -0x134" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar10 + -8) = iVar7;" (assignment_expression "*(int *)(puVar10 + -8) = iVar7" (pointer_expression "*(int *)(puVar10 + -8)" * (cast_expression "(int *)(puVar10 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -8)" ( (binary_expression "puVar10 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300);" (assignment_expression "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300)" (pointer_expression "*(undefined4 *)(puVar10 + -0xc)" * (cast_expression "(undefined4 *)(puVar10 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar11 + -300)" * (cast_expression "(undefined4 *)(puVar11 + -300)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -300)" ( (binary_expression "puVar11 + -300" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar10 + -0x10) = iVar3;" (assignment_expression "*(int *)(puVar10 + -0x10) = iVar3" (pointer_expression "*(int *)(puVar10 + -0x10)" * (cast_expression "(int *)(puVar10 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x71736;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x71736" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_sqr();" (call_expression "__gmpn_sqr()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c);" (assignment_expression "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c)" (pointer_expression "*(undefined4 *)(puVar10 + -0xc)" * (cast_expression "(undefined4 *)(puVar10 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar11 + -0x14c)" * (cast_expression "(undefined4 *)(puVar11 + -0x14c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x14c)" ( (binary_expression "puVar11 + -0x14c" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar10 + -0x10) = iVar12;" (assignment_expression "*(int *)(puVar10 + -0x10) = iVar12" (pointer_expression "*(int *)(puVar10 + -0x10)" * (cast_expression "(int *)(puVar10 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 1;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 1" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150);" (assignment_expression "*(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150)" (pointer_expression "*(undefined4 *)(puVar10 + -0x18)" * (cast_expression "(undefined4 *)(puVar10 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x18)" ( (binary_expression "puVar10 + -0x18" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar11 + -0x150)" * (cast_expression "(undefined4 *)(puVar11 + -0x150)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x150)" ( (binary_expression "puVar11 + -0x150" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar10 + -0x1c) = iVar3;" (assignment_expression "*(int *)(puVar10 + -0x1c) = iVar3" (pointer_expression "*(int *)(puVar10 + -0x1c)" * (cast_expression "(int *)(puVar10 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x1c)" ( (binary_expression "puVar10 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130);" (assignment_expression "*(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130)" (pointer_expression "*(undefined4 *)(puVar10 + -0x20)" * (cast_expression "(undefined4 *)(puVar10 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x20)" ( (binary_expression "puVar10 + -0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar11 + -0x130)" * (cast_expression "(undefined4 *)(puVar11 + -0x130)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x130)" ( (binary_expression "puVar11 + -0x130" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x24) = 0x71753;" (assignment_expression "*(undefined4 *)(puVar10 + -0x24) = 0x71753" (pointer_expression "*(undefined4 *)(puVar10 + -0x24)" * (cast_expression "(undefined4 *)(puVar10 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x24)" ( (binary_expression "puVar10 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_powlo();" (call_expression "__gmpn_powlo()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(int *)(puVar10 + -4) = iVar12;" (assignment_expression "*(int *)(puVar10 + -4) = iVar12" (pointer_expression "*(int *)(puVar10 + -4)" * (cast_expression "(int *)(puVar10 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144);" (assignment_expression "*(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144)" (pointer_expression "*(undefined4 *)(puVar10 + -8)" * (cast_expression "(undefined4 *)(puVar10 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -8)" ( (binary_expression "puVar10 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar11 + -0x144)" * (cast_expression "(undefined4 *)(puVar11 + -0x144)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x144)" ( (binary_expression "puVar11 + -0x144" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130);" (assignment_expression "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130)" (pointer_expression "*(undefined4 *)(puVar10 + -0xc)" * (cast_expression "(undefined4 *)(puVar10 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar11 + -0x130)" * (cast_expression "(undefined4 *)(puVar11 + -0x130)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x130)" ( (binary_expression "puVar11 + -0x130" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar10 + -0x10) = iVar3;" (assignment_expression "*(int *)(puVar10 + -0x10) = iVar3" (pointer_expression "*(int *)(puVar10 + -0x10)" * (cast_expression "(int *)(puVar10 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x71769;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x71769" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_mullo_n();" (call_expression "__gmpn_mullo_n()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar7 = *(int *)(puVar11 + -0x134);" (assignment_expression "iVar7 = *(int *)(puVar11 + -0x134)" identifier = (pointer_expression "*(int *)(puVar11 + -0x134)" * (cast_expression "(int *)(puVar11 + -0x134)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x134)" ( (binary_expression "puVar11 + -0x134" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(puVar11 + -300);" (assignment_expression "iVar5 = *(int *)(puVar11 + -300)" identifier = (pointer_expression "*(int *)(puVar11 + -300)" * (cast_expression "(int *)(puVar11 + -300)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -300)" ( (binary_expression "puVar11 + -300" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar10 + -0xc)" * (cast_expression "(undefined4 *)(puVar10 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar8 = iVar12 - iVar7;" (assignment_expression "iVar8 = iVar12 - iVar7" identifier = (binary_expression "iVar12 - iVar7" identifier - identifier)) ;) (expression_statement "iVar7 = iVar7 * 4;" (assignment_expression "iVar7 = iVar7 * 4" identifier = (binary_expression "iVar7 * 4" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140);" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140)" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" * (cast_expression "(undefined4 *)(puVar10 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar11 + -0x140)" * (cast_expression "(undefined4 *)(puVar11 + -0x140)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x140)" ( (binary_expression "puVar11 + -0x140" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = iVar5 + iVar7;" (assignment_expression "iVar5 = iVar5 + iVar7" identifier = (binary_expression "iVar5 + iVar7" identifier + identifier)) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14);" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14)" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar11 + 0x14)" * (cast_expression "(undefined4 *)(puVar11 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar10 + -0x18) = iVar8;" (assignment_expression "*(int *)(puVar10 + -0x18) = iVar8" (pointer_expression "*(int *)(puVar10 + -0x18)" * (cast_expression "(int *)(puVar10 + -0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x18)" ( (binary_expression "puVar10 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar10 + -0x1c) = iVar7 + iVar3;" (assignment_expression "*(int *)(puVar10 + -0x1c) = iVar7 + iVar3" (pointer_expression "*(int *)(puVar10 + -0x1c)" * (cast_expression "(int *)(puVar10 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x1c)" ( (binary_expression "puVar10 + -0x1c" identifier + number_literal) )))) = (binary_expression "iVar7 + iVar3" identifier + identifier)) ;) (expression_statement "*(int *)(puVar10 + -0x20) = iVar5;" (assignment_expression "*(int *)(puVar10 + -0x20) = iVar5" (pointer_expression "*(int *)(puVar10 + -0x20)" * (cast_expression "(int *)(puVar10 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x20)" ( (binary_expression "puVar10 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar11 + -0x138) = iVar8;" (assignment_expression "*(int *)(puVar11 + -0x138) = iVar8" (pointer_expression "*(int *)(puVar11 + -0x138)" * (cast_expression "(int *)(puVar11 + -0x138)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x138)" ( (binary_expression "puVar11 + -0x138" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar11 + -0x134) = iVar5;" (assignment_expression "*(int *)(puVar11 + -0x134) = iVar5" (pointer_expression "*(int *)(puVar11 + -0x134)" * (cast_expression "(int *)(puVar11 + -0x134)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x134)" ( (binary_expression "puVar11 + -0x134" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x24) = 0x717a2;" (assignment_expression "*(undefined4 *)(puVar10 + -0x24) = 0x717a2" (pointer_expression "*(undefined4 *)(puVar10 + -0x24)" * (cast_expression "(undefined4 *)(puVar10 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x24)" ( (binary_expression "puVar10 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_pi1_bdiv_q_1();" (call_expression "__gmpn_pi1_bdiv_q_1()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar6 = *(int **)(puVar11 + -0x134);" (assignment_expression "piVar6 = *(int **)(puVar11 + -0x134)" identifier = (pointer_expression "*(int **)(puVar11 + -0x134)" * (cast_expression "(int **)(puVar11 + -0x134)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x134)" ( (binary_expression "puVar11 + -0x134" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(puVar11 + -0x138);" (assignment_expression "iVar7 = *(int *)(puVar11 + -0x138)" identifier = (pointer_expression "*(int *)(puVar11 + -0x138)" * (cast_expression "(int *)(puVar11 + -0x138)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x138)" ( (binary_expression "puVar11 + -0x138" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *piVar6;" (assignment_expression "iVar5 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (while_statement "while (iVar7 = iVar7 + -1, iVar5 == 0) {\n          if (iVar7 == 0) goto LAB_000717d0;\n          piVar6 = piVar6 + 1;\n          iVar5 = *piVar6;\n        }" while (parenthesized_expression "(iVar7 = iVar7 + -1, iVar5 == 0)" ( (comma_expression "iVar7 = iVar7 + -1, iVar5 == 0" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) , (binary_expression "iVar5 == 0" identifier == number_literal)) )) (compound_statement "{\n          if (iVar7 == 0) goto LAB_000717d0;\n          piVar6 = piVar6 + 1;\n          iVar5 = *piVar6;\n        }" { (if_statement "if (iVar7 == 0) goto LAB_000717d0;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000717d0;" goto statement_identifier ;)) (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" identifier = (binary_expression "piVar6 + 1" identifier + number_literal)) ;) (expression_statement "iVar5 = *piVar6;" (assignment_expression "iVar5 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) })) (expression_statement "*piVar6 = -iVar5;" (assignment_expression "*piVar6 = -iVar5" (pointer_expression "*piVar6" * identifier) = (unary_expression "-iVar5" - identifier)) ;) (if_statement "if (iVar7 != 0) {\n          *(int *)(puVar10 + -8) = iVar7;\n          *(int **)(puVar10 + -0xc) = piVar6 + 1;\n          *(int **)(puVar10 + -0x10) = piVar6 + 1;\n          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n          *(int *)(puVar10 + -8) = iVar7;\n          *(int **)(puVar10 + -0xc) = piVar6 + 1;\n          *(int **)(puVar10 + -0x10) = piVar6 + 1;\n          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }" { (expression_statement "*(int *)(puVar10 + -8) = iVar7;" (assignment_expression "*(int *)(puVar10 + -8) = iVar7" (pointer_expression "*(int *)(puVar10 + -8)" * (cast_expression "(int *)(puVar10 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -8)" ( (binary_expression "puVar10 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar10 + -0xc) = piVar6 + 1;" (assignment_expression "*(int **)(puVar10 + -0xc) = piVar6 + 1" (pointer_expression "*(int **)(puVar10 + -0xc)" * (cast_expression "(int **)(puVar10 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) = (binary_expression "piVar6 + 1" identifier + number_literal)) ;) (expression_statement "*(int **)(puVar10 + -0x10) = piVar6 + 1;" (assignment_expression "*(int **)(puVar10 + -0x10) = piVar6 + 1" (pointer_expression "*(int **)(puVar10 + -0x10)" * (cast_expression "(int **)(puVar10 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = (binary_expression "piVar6 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x7180e;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x7180e" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_com();" (call_expression "__gmpn_com()" identifier (argument_list "()" ( ))) ;) })) (labeled_statement "LAB_000717d0:\n        iVar7 = *(int *)(puVar11 + -0x13c);" statement_identifier : (expression_statement "iVar7 = *(int *)(puVar11 + -0x13c);" (assignment_expression "iVar7 = *(int *)(puVar11 + -0x13c)" identifier = (pointer_expression "*(int *)(puVar11 + -0x13c)" * (cast_expression "(int *)(puVar11 + -0x13c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x13c)" ( (binary_expression "puVar11 + -0x13c" identifier + number_literal) ))))) ;)) (if_statement "if (*(int *)(puVar11 + -0x148) == iVar7) break;" if (parenthesized_expression "(*(int *)(puVar11 + -0x148) == iVar7)" ( (binary_expression "*(int *)(puVar11 + -0x148) == iVar7" (pointer_expression "*(int *)(puVar11 + -0x148)" * (cast_expression "(int *)(puVar11 + -0x148)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x148)" ( (binary_expression "puVar11 + -0x148" identifier + number_literal) )))) == identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = *(int *)(iVar7 + -4);" (assignment_expression "iVar5 = *(int *)(iVar7 + -4)" identifier = (pointer_expression "*(int *)(iVar7 + -4)" * (cast_expression "(int *)(iVar7 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -4)" ( (binary_expression "iVar7 + -4" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar11 + -0x13c) = iVar7 + -4;" (assignment_expression "*(int *)(puVar11 + -0x13c) = iVar7 + -4" (pointer_expression "*(int *)(puVar11 + -0x13c)" * (cast_expression "(int *)(puVar11 + -0x13c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x13c)" ( (binary_expression "puVar11 + -0x13c" identifier + number_literal) )))) = (binary_expression "iVar7 + -4" identifier + number_literal)) ;) (expression_statement "iVar7 = iVar12;" (assignment_expression "iVar7 = iVar12" identifier = identifier) ;) (expression_statement "iVar12 = iVar5;" (assignment_expression "iVar12 = iVar5" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) })) (if_statement "if (*(int *)(puVar11 + -0x120) != 0) {\n    *(int *)(puVar10 + -0x10) = *(int *)(puVar11 + -0x120);\n    *(undefined4 *)(puVar10 + -0x14) = 0x71897;\n    __gmp_tmp_reentrant_free();\n  }" if (parenthesized_expression "(*(int *)(puVar11 + -0x120) != 0)" ( (binary_expression "*(int *)(puVar11 + -0x120) != 0" (pointer_expression "*(int *)(puVar11 + -0x120)" * (cast_expression "(int *)(puVar11 + -0x120)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x120)" ( (binary_expression "puVar11 + -0x120" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    *(int *)(puVar10 + -0x10) = *(int *)(puVar11 + -0x120);\n    *(undefined4 *)(puVar10 + -0x14) = 0x71897;\n    __gmp_tmp_reentrant_free();\n  }" { (expression_statement "*(int *)(puVar10 + -0x10) = *(int *)(puVar11 + -0x120);" (assignment_expression "*(int *)(puVar10 + -0x10) = *(int *)(puVar11 + -0x120)" (pointer_expression "*(int *)(puVar10 + -0x10)" * (cast_expression "(int *)(puVar10 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(int *)(puVar11 + -0x120)" * (cast_expression "(int *)(puVar11 + -0x120)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x120)" ( (binary_expression "puVar11 + -0x120" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x71897;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x71897" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmp_tmp_reentrant_free();" (call_expression "__gmp_tmp_reentrant_free()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(int *)(puVar11 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(*(int *)(puVar11 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "*(int *)(puVar11 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14)" (pointer_expression "*(int *)(puVar11 + -0x1c)" * (cast_expression "(int *)(puVar11 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x1c)" ( (binary_expression "puVar11 + -0x1c" identifier + number_literal) )))) == (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 *)(puVar10 + -4) = 0x718bf;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x718bf" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -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.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __gmpn_broot_invm1(mp_ptr rp,mp_srcptr ap,mp_size_t n,mp_limb_t k)\n\n{\n  int iVar1;\n  uint *puVar2;\n  uint uVar3;\n  void *pvVar4;\n  mp_limb_t mVar5;\n  int iVar6;\n  mp_limb_t *pmVar7;\n  int iVar8;\n  undefined1 *puVar9;\n  int iVar10;\n  int iVar11;\n  int in_GS_OFFSET;\n  uint auStackY_8090 [4];\n  mp_limb_t amStackY_8080 [2];\n  size_t sStackY_8078;\n  uint auStackY_8074 [8130];\n  undefined1 auStack_15c [8];\n  mp_limb_t *local_154;\n  uint *local_150 [3];\n  int local_144;\n  mp_size_t *local_140;\n  uint local_13c;\n  mp_ptr local_138;\n  void *local_134;\n  mp_ptr local_130;\n  mp_limb_t km1;\n  mp_limb_t kp1h;\n  tmp_reentrant_t *__tmp_marker;\n  mp_size_t sizes [64];\n  \n  local_130 = rp;\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  __tmp_marker = (tmp_reentrant_t *)0x0;\n  uVar3 = n * 0x10;\n  if (uVar3 < 0x7f01) {\n    puVar9 = auStack_15c + -(uVar3 + 0x10);\n    local_150[2] = (uint *)((int)local_150 + -(uVar3 + 0x10));\n  }\n  else {\n    local_150[2] = (uint *)__gmp_tmp_reentrant_alloc(&__tmp_marker,uVar3);\n    puVar9 = auStack_15c;\n  }\n  puVar2 = local_150[2];\n  local_138 = (mp_ptr)(n * 4);\n  local_150[0] = local_150[2] + n;\n  *(uint **)(puVar9 + -0xc) = local_150[0];\n  km1 = k - 1;\n  *(mp_size_t *)(puVar9 + -0x10) = n;\n  *(undefined4 *)(puVar9 + -0x14) = 1;\n  *(mp_limb_t **)(puVar9 + -0x18) = &km1;\n  *(mp_srcptr *)(puVar9 + -0x1c) = ap;\n  *(uint **)(puVar9 + -0x20) = local_150[2];\n  *(undefined4 *)(puVar9 + -0x24) = 0x7154e;\n  __gmpn_powlo(*(mp_ptr *)(puVar9 + -0x20),*(mp_srcptr *)(puVar9 + -0x1c),\n               *(mp_srcptr *)(puVar9 + -0x18),*(mp_size_t *)(puVar9 + -0x14),\n               *(mp_size_t *)(puVar9 + -0x10),*(mp_ptr *)(puVar9 + -0xc));\n  local_134 = (void *)*puVar2;\n  local_13c = k >> 1;\n  uVar3 = (uint)(byte)PTR___gmp_binvert_limb_table_00098ec8[local_13c & 0x7f];\n  iVar8 = uVar3 * 2 - uVar3 * uVar3 * k;\n  local_144 = iVar8 * 2 - iVar8 * iVar8 * k;\n  iVar8 = ((*ap << 2 ^ *ap * 2) & k << 2 & 8) + 1;\n  iVar10 = local_144 * iVar8;\n  uVar3 = k & 0x7f;\n  pvVar4 = local_134;\n  if (uVar3 != 0) {\n    iVar11 = 1;\n    do {\n      if ((uVar3 & 1) != 0) {\n        iVar11 = iVar11 * iVar8;\n      }\n      iVar8 = iVar8 * iVar8;\n      uVar3 = uVar3 >> 1;\n    } while (uVar3 != 0);\n    pvVar4 = (void *)((int)local_134 * iVar11);\n  }\n  iVar8 = k + 1;\n  iVar10 = iVar10 * (iVar8 - (int)pvVar4);\n  iVar11 = local_144 * iVar10;\n  uVar3 = k & 0x7fff;\n  if (uVar3 == 0) {\n    iVar10 = iVar8 - (int)local_134;\n    iVar11 = iVar11 * iVar10;\n    iVar6 = local_144 * iVar11;\n    if (k == 0) goto LAB_00071659;\n  }\n  else {\n    iVar6 = 1;\n    do {\n      if ((uVar3 & 1) != 0) {\n        iVar6 = iVar6 * iVar10;\n      }\n      iVar10 = iVar10 * iVar10;\n      uVar3 = uVar3 >> 1;\n    } while (uVar3 != 0);\n    iVar11 = iVar11 * (iVar8 - iVar6 * (int)local_134);\n    iVar6 = local_144 * iVar11;\n  }\n  iVar10 = 1;\n  mVar5 = k;\n  do {\n    if ((mVar5 & 1) != 0) {\n      iVar10 = iVar10 * iVar11;\n    }\n    iVar11 = iVar11 * iVar11;\n    mVar5 = mVar5 >> 1;\n  } while (mVar5 != 0);\n  iVar10 = iVar8 - iVar10 * (int)local_134;\nLAB_00071659:\n  *local_130 = iVar10 * iVar6;\n  if (n != 1) {\n    kp1h = local_13c + 1;\n    uVar3 = n * 8 + 4;\n    if (uVar3 < 0x7f01) {\n      iVar8 = -(n * 8 + 0x1fU & 0xfffffff0);\n      local_134 = (void *)((uint)(puVar9 + iVar8 + 0xf) & 0xfffffff0);\n      puVar9 = puVar9 + iVar8;\n    }\n    else {\n      *(uint *)(puVar9 + -0xc) = uVar3;\n      *(tmp_reentrant_t ***)(puVar9 + -0x10) = &__tmp_marker;\n      *(undefined4 *)(puVar9 + -0x14) = 0x718ac;\n      local_134 = __gmp_tmp_reentrant_alloc\n                            (*(tmp_reentrant_t ***)(puVar9 + -0x10),*(size_t *)(puVar9 + -0xc));\n    }\n    iVar8 = (int)local_138 + (int)local_134;\n    if (1 < n) {\n      local_150[1] = (uint *)sizes;\n      iVar10 = 0;\n      do {\n        iVar11 = n;\n        iVar6 = iVar10;\n        n = iVar11 + 1 >> 1;\n        sizes[iVar6] = iVar11;\n        iVar10 = iVar6 + 1;\n      } while (n != 1);\n      local_154 = &kp1h;\n      local_138 = (mp_ptr)n;\n      local_140 = (mp_size_t *)local_150[1] + iVar6;\n      do {\n        *(mp_ptr *)(puVar9 + -8) = local_138;\n        *(mp_ptr *)(puVar9 + -0xc) = local_130;\n        *(int *)(puVar9 + -0x10) = iVar8;\n        *(undefined4 *)(puVar9 + -0x14) = 0x71736;\n        __gmpn_sqr(*(mp_ptr *)(puVar9 + -0x10),*(mp_srcptr *)(puVar9 + -0xc),\n                   *(mp_size_t *)(puVar9 + -8));\n        *(uint **)(puVar9 + -0xc) = local_150[0];\n        *(int *)(puVar9 + -0x10) = iVar11;\n        *(undefined4 *)(puVar9 + -0x14) = 1;\n        *(mp_limb_t **)(puVar9 + -0x18) = local_154;\n        *(int *)(puVar9 + -0x1c) = iVar8;\n        *(void **)(puVar9 + -0x20) = local_134;\n        *(undefined4 *)(puVar9 + -0x24) = 0x71753;\n        __gmpn_powlo(*(mp_ptr *)(puVar9 + -0x20),*(mp_srcptr *)(puVar9 + -0x1c),\n                     *(mp_srcptr *)(puVar9 + -0x18),*(mp_size_t *)(puVar9 + -0x14),\n                     *(mp_size_t *)(puVar9 + -0x10),*(mp_ptr *)(puVar9 + -0xc));\n        *(int *)(puVar9 + -4) = iVar11;\n        *(uint **)(puVar9 + -8) = local_150[2];\n        *(void **)(puVar9 + -0xc) = local_134;\n        *(int *)(puVar9 + -0x10) = iVar8;\n        *(undefined4 *)(puVar9 + -0x14) = 0x71769;\n        __gmpn_mullo_n(*(mp_ptr *)(puVar9 + -0x10),*(mp_srcptr *)(puVar9 + -0xc),\n                       *(mp_srcptr *)(puVar9 + -8),*(mp_size_t *)(puVar9 + -4));\n        *(undefined4 *)(puVar9 + -0xc) = 0;\n        local_13c = iVar11 - (int)local_138;\n        iVar10 = (int)local_138 * 4;\n        *(int *)(puVar9 + -0x10) = local_144;\n        local_138 = local_130 + (int)local_138;\n        *(mp_limb_t *)(puVar9 + -0x14) = k;\n        *(uint *)(puVar9 + -0x18) = local_13c;\n        *(int *)(puVar9 + -0x1c) = iVar10 + iVar8;\n        *(mp_ptr *)(puVar9 + -0x20) = local_138;\n        *(undefined4 *)(puVar9 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        mVar5 = *local_138;\n        pmVar7 = local_138;\n        uVar3 = local_13c;\n        while (uVar3 = uVar3 - 1, mVar5 == 0) {\n          if (uVar3 == 0) goto LAB_000717d0;\n          pmVar7 = pmVar7 + 1;\n          mVar5 = *pmVar7;\n        }\n        *pmVar7 = -mVar5;\n        if (uVar3 != 0) {\n          *(uint *)(puVar9 + -8) = uVar3;\n          *(mp_limb_t **)(puVar9 + -0xc) = pmVar7 + 1;\n          *(mp_limb_t **)(puVar9 + -0x10) = pmVar7 + 1;\n          *(undefined4 *)(puVar9 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        if (local_150[1] == (uint *)local_140) break;\n        local_138 = (mp_ptr)iVar11;\n        iVar11 = local_140[-1];\n        local_140 = local_140 + -1;\n      } while( true );\n    }\n  }\n  if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n    *(tmp_reentrant_t **)(puVar9 + -0x10) = __tmp_marker;\n    *(undefined4 *)(puVar9 + -0x14) = 0x71897;\n    __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar9 + -0x10));\n  }\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)(puVar9 + -4) = 0x718bf;\n  __stack_chk_fail_local();\n}\n\n" comment (function_definition "void __gmpn_broot_invm1(mp_ptr rp,mp_srcptr ap,mp_size_t n,mp_limb_t k)\n\n{\n  int iVar1;\n  uint *puVar2;\n  uint uVar3;\n  void *pvVar4;\n  mp_limb_t mVar5;\n  int iVar6;\n  mp_limb_t *pmVar7;\n  int iVar8;\n  undefined1 *puVar9;\n  int iVar10;\n  int iVar11;\n  int in_GS_OFFSET;\n  uint auStackY_8090 [4];\n  mp_limb_t amStackY_8080 [2];\n  size_t sStackY_8078;\n  uint auStackY_8074 [8130];\n  undefined1 auStack_15c [8];\n  mp_limb_t *local_154;\n  uint *local_150 [3];\n  int local_144;\n  mp_size_t *local_140;\n  uint local_13c;\n  mp_ptr local_138;\n  void *local_134;\n  mp_ptr local_130;\n  mp_limb_t km1;\n  mp_limb_t kp1h;\n  tmp_reentrant_t *__tmp_marker;\n  mp_size_t sizes [64];\n  \n  local_130 = rp;\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  __tmp_marker = (tmp_reentrant_t *)0x0;\n  uVar3 = n * 0x10;\n  if (uVar3 < 0x7f01) {\n    puVar9 = auStack_15c + -(uVar3 + 0x10);\n    local_150[2] = (uint *)((int)local_150 + -(uVar3 + 0x10));\n  }\n  else {\n    local_150[2] = (uint *)__gmp_tmp_reentrant_alloc(&__tmp_marker,uVar3);\n    puVar9 = auStack_15c;\n  }\n  puVar2 = local_150[2];\n  local_138 = (mp_ptr)(n * 4);\n  local_150[0] = local_150[2] + n;\n  *(uint **)(puVar9 + -0xc) = local_150[0];\n  km1 = k - 1;\n  *(mp_size_t *)(puVar9 + -0x10) = n;\n  *(undefined4 *)(puVar9 + -0x14) = 1;\n  *(mp_limb_t **)(puVar9 + -0x18) = &km1;\n  *(mp_srcptr *)(puVar9 + -0x1c) = ap;\n  *(uint **)(puVar9 + -0x20) = local_150[2];\n  *(undefined4 *)(puVar9 + -0x24) = 0x7154e;\n  __gmpn_powlo(*(mp_ptr *)(puVar9 + -0x20),*(mp_srcptr *)(puVar9 + -0x1c),\n               *(mp_srcptr *)(puVar9 + -0x18),*(mp_size_t *)(puVar9 + -0x14),\n               *(mp_size_t *)(puVar9 + -0x10),*(mp_ptr *)(puVar9 + -0xc));\n  local_134 = (void *)*puVar2;\n  local_13c = k >> 1;\n  uVar3 = (uint)(byte)PTR___gmp_binvert_limb_table_00098ec8[local_13c & 0x7f];\n  iVar8 = uVar3 * 2 - uVar3 * uVar3 * k;\n  local_144 = iVar8 * 2 - iVar8 * iVar8 * k;\n  iVar8 = ((*ap << 2 ^ *ap * 2) & k << 2 & 8) + 1;\n  iVar10 = local_144 * iVar8;\n  uVar3 = k & 0x7f;\n  pvVar4 = local_134;\n  if (uVar3 != 0) {\n    iVar11 = 1;\n    do {\n      if ((uVar3 & 1) != 0) {\n        iVar11 = iVar11 * iVar8;\n      }\n      iVar8 = iVar8 * iVar8;\n      uVar3 = uVar3 >> 1;\n    } while (uVar3 != 0);\n    pvVar4 = (void *)((int)local_134 * iVar11);\n  }\n  iVar8 = k + 1;\n  iVar10 = iVar10 * (iVar8 - (int)pvVar4);\n  iVar11 = local_144 * iVar10;\n  uVar3 = k & 0x7fff;\n  if (uVar3 == 0) {\n    iVar10 = iVar8 - (int)local_134;\n    iVar11 = iVar11 * iVar10;\n    iVar6 = local_144 * iVar11;\n    if (k == 0) goto LAB_00071659;\n  }\n  else {\n    iVar6 = 1;\n    do {\n      if ((uVar3 & 1) != 0) {\n        iVar6 = iVar6 * iVar10;\n      }\n      iVar10 = iVar10 * iVar10;\n      uVar3 = uVar3 >> 1;\n    } while (uVar3 != 0);\n    iVar11 = iVar11 * (iVar8 - iVar6 * (int)local_134);\n    iVar6 = local_144 * iVar11;\n  }\n  iVar10 = 1;\n  mVar5 = k;\n  do {\n    if ((mVar5 & 1) != 0) {\n      iVar10 = iVar10 * iVar11;\n    }\n    iVar11 = iVar11 * iVar11;\n    mVar5 = mVar5 >> 1;\n  } while (mVar5 != 0);\n  iVar10 = iVar8 - iVar10 * (int)local_134;\nLAB_00071659:\n  *local_130 = iVar10 * iVar6;\n  if (n != 1) {\n    kp1h = local_13c + 1;\n    uVar3 = n * 8 + 4;\n    if (uVar3 < 0x7f01) {\n      iVar8 = -(n * 8 + 0x1fU & 0xfffffff0);\n      local_134 = (void *)((uint)(puVar9 + iVar8 + 0xf) & 0xfffffff0);\n      puVar9 = puVar9 + iVar8;\n    }\n    else {\n      *(uint *)(puVar9 + -0xc) = uVar3;\n      *(tmp_reentrant_t ***)(puVar9 + -0x10) = &__tmp_marker;\n      *(undefined4 *)(puVar9 + -0x14) = 0x718ac;\n      local_134 = __gmp_tmp_reentrant_alloc\n                            (*(tmp_reentrant_t ***)(puVar9 + -0x10),*(size_t *)(puVar9 + -0xc));\n    }\n    iVar8 = (int)local_138 + (int)local_134;\n    if (1 < n) {\n      local_150[1] = (uint *)sizes;\n      iVar10 = 0;\n      do {\n        iVar11 = n;\n        iVar6 = iVar10;\n        n = iVar11 + 1 >> 1;\n        sizes[iVar6] = iVar11;\n        iVar10 = iVar6 + 1;\n      } while (n != 1);\n      local_154 = &kp1h;\n      local_138 = (mp_ptr)n;\n      local_140 = (mp_size_t *)local_150[1] + iVar6;\n      do {\n        *(mp_ptr *)(puVar9 + -8) = local_138;\n        *(mp_ptr *)(puVar9 + -0xc) = local_130;\n        *(int *)(puVar9 + -0x10) = iVar8;\n        *(undefined4 *)(puVar9 + -0x14) = 0x71736;\n        __gmpn_sqr(*(mp_ptr *)(puVar9 + -0x10),*(mp_srcptr *)(puVar9 + -0xc),\n                   *(mp_size_t *)(puVar9 + -8));\n        *(uint **)(puVar9 + -0xc) = local_150[0];\n        *(int *)(puVar9 + -0x10) = iVar11;\n        *(undefined4 *)(puVar9 + -0x14) = 1;\n        *(mp_limb_t **)(puVar9 + -0x18) = local_154;\n        *(int *)(puVar9 + -0x1c) = iVar8;\n        *(void **)(puVar9 + -0x20) = local_134;\n        *(undefined4 *)(puVar9 + -0x24) = 0x71753;\n        __gmpn_powlo(*(mp_ptr *)(puVar9 + -0x20),*(mp_srcptr *)(puVar9 + -0x1c),\n                     *(mp_srcptr *)(puVar9 + -0x18),*(mp_size_t *)(puVar9 + -0x14),\n                     *(mp_size_t *)(puVar9 + -0x10),*(mp_ptr *)(puVar9 + -0xc));\n        *(int *)(puVar9 + -4) = iVar11;\n        *(uint **)(puVar9 + -8) = local_150[2];\n        *(void **)(puVar9 + -0xc) = local_134;\n        *(int *)(puVar9 + -0x10) = iVar8;\n        *(undefined4 *)(puVar9 + -0x14) = 0x71769;\n        __gmpn_mullo_n(*(mp_ptr *)(puVar9 + -0x10),*(mp_srcptr *)(puVar9 + -0xc),\n                       *(mp_srcptr *)(puVar9 + -8),*(mp_size_t *)(puVar9 + -4));\n        *(undefined4 *)(puVar9 + -0xc) = 0;\n        local_13c = iVar11 - (int)local_138;\n        iVar10 = (int)local_138 * 4;\n        *(int *)(puVar9 + -0x10) = local_144;\n        local_138 = local_130 + (int)local_138;\n        *(mp_limb_t *)(puVar9 + -0x14) = k;\n        *(uint *)(puVar9 + -0x18) = local_13c;\n        *(int *)(puVar9 + -0x1c) = iVar10 + iVar8;\n        *(mp_ptr *)(puVar9 + -0x20) = local_138;\n        *(undefined4 *)(puVar9 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        mVar5 = *local_138;\n        pmVar7 = local_138;\n        uVar3 = local_13c;\n        while (uVar3 = uVar3 - 1, mVar5 == 0) {\n          if (uVar3 == 0) goto LAB_000717d0;\n          pmVar7 = pmVar7 + 1;\n          mVar5 = *pmVar7;\n        }\n        *pmVar7 = -mVar5;\n        if (uVar3 != 0) {\n          *(uint *)(puVar9 + -8) = uVar3;\n          *(mp_limb_t **)(puVar9 + -0xc) = pmVar7 + 1;\n          *(mp_limb_t **)(puVar9 + -0x10) = pmVar7 + 1;\n          *(undefined4 *)(puVar9 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        if (local_150[1] == (uint *)local_140) break;\n        local_138 = (mp_ptr)iVar11;\n        iVar11 = local_140[-1];\n        local_140 = local_140 + -1;\n      } while( true );\n    }\n  }\n  if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n    *(tmp_reentrant_t **)(puVar9 + -0x10) = __tmp_marker;\n    *(undefined4 *)(puVar9 + -0x14) = 0x71897;\n    __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar9 + -0x10));\n  }\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)(puVar9 + -4) = 0x718bf;\n  __stack_chk_fail_local();\n}" primitive_type (function_declarator "__gmpn_broot_invm1(mp_ptr rp,mp_srcptr ap,mp_size_t n,mp_limb_t k)" identifier (parameter_list "(mp_ptr rp,mp_srcptr ap,mp_size_t n,mp_limb_t k)" ( (parameter_declaration "mp_ptr rp" type_identifier identifier) , (parameter_declaration "mp_srcptr ap" type_identifier identifier) , (parameter_declaration "mp_size_t n" type_identifier identifier) , (parameter_declaration "mp_limb_t k" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  uint *puVar2;\n  uint uVar3;\n  void *pvVar4;\n  mp_limb_t mVar5;\n  int iVar6;\n  mp_limb_t *pmVar7;\n  int iVar8;\n  undefined1 *puVar9;\n  int iVar10;\n  int iVar11;\n  int in_GS_OFFSET;\n  uint auStackY_8090 [4];\n  mp_limb_t amStackY_8080 [2];\n  size_t sStackY_8078;\n  uint auStackY_8074 [8130];\n  undefined1 auStack_15c [8];\n  mp_limb_t *local_154;\n  uint *local_150 [3];\n  int local_144;\n  mp_size_t *local_140;\n  uint local_13c;\n  mp_ptr local_138;\n  void *local_134;\n  mp_ptr local_130;\n  mp_limb_t km1;\n  mp_limb_t kp1h;\n  tmp_reentrant_t *__tmp_marker;\n  mp_size_t sizes [64];\n  \n  local_130 = rp;\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  __tmp_marker = (tmp_reentrant_t *)0x0;\n  uVar3 = n * 0x10;\n  if (uVar3 < 0x7f01) {\n    puVar9 = auStack_15c + -(uVar3 + 0x10);\n    local_150[2] = (uint *)((int)local_150 + -(uVar3 + 0x10));\n  }\n  else {\n    local_150[2] = (uint *)__gmp_tmp_reentrant_alloc(&__tmp_marker,uVar3);\n    puVar9 = auStack_15c;\n  }\n  puVar2 = local_150[2];\n  local_138 = (mp_ptr)(n * 4);\n  local_150[0] = local_150[2] + n;\n  *(uint **)(puVar9 + -0xc) = local_150[0];\n  km1 = k - 1;\n  *(mp_size_t *)(puVar9 + -0x10) = n;\n  *(undefined4 *)(puVar9 + -0x14) = 1;\n  *(mp_limb_t **)(puVar9 + -0x18) = &km1;\n  *(mp_srcptr *)(puVar9 + -0x1c) = ap;\n  *(uint **)(puVar9 + -0x20) = local_150[2];\n  *(undefined4 *)(puVar9 + -0x24) = 0x7154e;\n  __gmpn_powlo(*(mp_ptr *)(puVar9 + -0x20),*(mp_srcptr *)(puVar9 + -0x1c),\n               *(mp_srcptr *)(puVar9 + -0x18),*(mp_size_t *)(puVar9 + -0x14),\n               *(mp_size_t *)(puVar9 + -0x10),*(mp_ptr *)(puVar9 + -0xc));\n  local_134 = (void *)*puVar2;\n  local_13c = k >> 1;\n  uVar3 = (uint)(byte)PTR___gmp_binvert_limb_table_00098ec8[local_13c & 0x7f];\n  iVar8 = uVar3 * 2 - uVar3 * uVar3 * k;\n  local_144 = iVar8 * 2 - iVar8 * iVar8 * k;\n  iVar8 = ((*ap << 2 ^ *ap * 2) & k << 2 & 8) + 1;\n  iVar10 = local_144 * iVar8;\n  uVar3 = k & 0x7f;\n  pvVar4 = local_134;\n  if (uVar3 != 0) {\n    iVar11 = 1;\n    do {\n      if ((uVar3 & 1) != 0) {\n        iVar11 = iVar11 * iVar8;\n      }\n      iVar8 = iVar8 * iVar8;\n      uVar3 = uVar3 >> 1;\n    } while (uVar3 != 0);\n    pvVar4 = (void *)((int)local_134 * iVar11);\n  }\n  iVar8 = k + 1;\n  iVar10 = iVar10 * (iVar8 - (int)pvVar4);\n  iVar11 = local_144 * iVar10;\n  uVar3 = k & 0x7fff;\n  if (uVar3 == 0) {\n    iVar10 = iVar8 - (int)local_134;\n    iVar11 = iVar11 * iVar10;\n    iVar6 = local_144 * iVar11;\n    if (k == 0) goto LAB_00071659;\n  }\n  else {\n    iVar6 = 1;\n    do {\n      if ((uVar3 & 1) != 0) {\n        iVar6 = iVar6 * iVar10;\n      }\n      iVar10 = iVar10 * iVar10;\n      uVar3 = uVar3 >> 1;\n    } while (uVar3 != 0);\n    iVar11 = iVar11 * (iVar8 - iVar6 * (int)local_134);\n    iVar6 = local_144 * iVar11;\n  }\n  iVar10 = 1;\n  mVar5 = k;\n  do {\n    if ((mVar5 & 1) != 0) {\n      iVar10 = iVar10 * iVar11;\n    }\n    iVar11 = iVar11 * iVar11;\n    mVar5 = mVar5 >> 1;\n  } while (mVar5 != 0);\n  iVar10 = iVar8 - iVar10 * (int)local_134;\nLAB_00071659:\n  *local_130 = iVar10 * iVar6;\n  if (n != 1) {\n    kp1h = local_13c + 1;\n    uVar3 = n * 8 + 4;\n    if (uVar3 < 0x7f01) {\n      iVar8 = -(n * 8 + 0x1fU & 0xfffffff0);\n      local_134 = (void *)((uint)(puVar9 + iVar8 + 0xf) & 0xfffffff0);\n      puVar9 = puVar9 + iVar8;\n    }\n    else {\n      *(uint *)(puVar9 + -0xc) = uVar3;\n      *(tmp_reentrant_t ***)(puVar9 + -0x10) = &__tmp_marker;\n      *(undefined4 *)(puVar9 + -0x14) = 0x718ac;\n      local_134 = __gmp_tmp_reentrant_alloc\n                            (*(tmp_reentrant_t ***)(puVar9 + -0x10),*(size_t *)(puVar9 + -0xc));\n    }\n    iVar8 = (int)local_138 + (int)local_134;\n    if (1 < n) {\n      local_150[1] = (uint *)sizes;\n      iVar10 = 0;\n      do {\n        iVar11 = n;\n        iVar6 = iVar10;\n        n = iVar11 + 1 >> 1;\n        sizes[iVar6] = iVar11;\n        iVar10 = iVar6 + 1;\n      } while (n != 1);\n      local_154 = &kp1h;\n      local_138 = (mp_ptr)n;\n      local_140 = (mp_size_t *)local_150[1] + iVar6;\n      do {\n        *(mp_ptr *)(puVar9 + -8) = local_138;\n        *(mp_ptr *)(puVar9 + -0xc) = local_130;\n        *(int *)(puVar9 + -0x10) = iVar8;\n        *(undefined4 *)(puVar9 + -0x14) = 0x71736;\n        __gmpn_sqr(*(mp_ptr *)(puVar9 + -0x10),*(mp_srcptr *)(puVar9 + -0xc),\n                   *(mp_size_t *)(puVar9 + -8));\n        *(uint **)(puVar9 + -0xc) = local_150[0];\n        *(int *)(puVar9 + -0x10) = iVar11;\n        *(undefined4 *)(puVar9 + -0x14) = 1;\n        *(mp_limb_t **)(puVar9 + -0x18) = local_154;\n        *(int *)(puVar9 + -0x1c) = iVar8;\n        *(void **)(puVar9 + -0x20) = local_134;\n        *(undefined4 *)(puVar9 + -0x24) = 0x71753;\n        __gmpn_powlo(*(mp_ptr *)(puVar9 + -0x20),*(mp_srcptr *)(puVar9 + -0x1c),\n                     *(mp_srcptr *)(puVar9 + -0x18),*(mp_size_t *)(puVar9 + -0x14),\n                     *(mp_size_t *)(puVar9 + -0x10),*(mp_ptr *)(puVar9 + -0xc));\n        *(int *)(puVar9 + -4) = iVar11;\n        *(uint **)(puVar9 + -8) = local_150[2];\n        *(void **)(puVar9 + -0xc) = local_134;\n        *(int *)(puVar9 + -0x10) = iVar8;\n        *(undefined4 *)(puVar9 + -0x14) = 0x71769;\n        __gmpn_mullo_n(*(mp_ptr *)(puVar9 + -0x10),*(mp_srcptr *)(puVar9 + -0xc),\n                       *(mp_srcptr *)(puVar9 + -8),*(mp_size_t *)(puVar9 + -4));\n        *(undefined4 *)(puVar9 + -0xc) = 0;\n        local_13c = iVar11 - (int)local_138;\n        iVar10 = (int)local_138 * 4;\n        *(int *)(puVar9 + -0x10) = local_144;\n        local_138 = local_130 + (int)local_138;\n        *(mp_limb_t *)(puVar9 + -0x14) = k;\n        *(uint *)(puVar9 + -0x18) = local_13c;\n        *(int *)(puVar9 + -0x1c) = iVar10 + iVar8;\n        *(mp_ptr *)(puVar9 + -0x20) = local_138;\n        *(undefined4 *)(puVar9 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        mVar5 = *local_138;\n        pmVar7 = local_138;\n        uVar3 = local_13c;\n        while (uVar3 = uVar3 - 1, mVar5 == 0) {\n          if (uVar3 == 0) goto LAB_000717d0;\n          pmVar7 = pmVar7 + 1;\n          mVar5 = *pmVar7;\n        }\n        *pmVar7 = -mVar5;\n        if (uVar3 != 0) {\n          *(uint *)(puVar9 + -8) = uVar3;\n          *(mp_limb_t **)(puVar9 + -0xc) = pmVar7 + 1;\n          *(mp_limb_t **)(puVar9 + -0x10) = pmVar7 + 1;\n          *(undefined4 *)(puVar9 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        if (local_150[1] == (uint *)local_140) break;\n        local_138 = (mp_ptr)iVar11;\n        iVar11 = local_140[-1];\n        local_140 = local_140 + -1;\n      } while( true );\n    }\n  }\n  if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n    *(tmp_reentrant_t **)(puVar9 + -0x10) = __tmp_marker;\n    *(undefined4 *)(puVar9 + -0x14) = 0x71897;\n    __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar9 + -0x10));\n  }\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)(puVar9 + -4) = 0x718bf;\n  __stack_chk_fail_local();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "void *pvVar4;" primitive_type (pointer_declarator "*pvVar4" * identifier) ;) (declaration "mp_limb_t mVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "mp_limb_t *pmVar7;" type_identifier (pointer_declarator "*pmVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined1 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "uint auStackY_8090 [4];" type_identifier (array_declarator "auStackY_8090 [4]" identifier [ number_literal ]) ;) (declaration "mp_limb_t amStackY_8080 [2];" type_identifier (array_declarator "amStackY_8080 [2]" identifier [ number_literal ]) ;) (declaration "size_t sStackY_8078;" primitive_type identifier ;) (declaration "uint auStackY_8074 [8130];" type_identifier (array_declarator "auStackY_8074 [8130]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_15c [8];" type_identifier (array_declarator "auStack_15c [8]" identifier [ number_literal ]) ;) (declaration "mp_limb_t *local_154;" type_identifier (pointer_declarator "*local_154" * identifier) ;) (declaration "uint *local_150 [3];" type_identifier (pointer_declarator "*local_150 [3]" * (array_declarator "local_150 [3]" identifier [ number_literal ])) ;) (declaration "int local_144;" primitive_type identifier ;) (declaration "mp_size_t *local_140;" type_identifier (pointer_declarator "*local_140" * identifier) ;) (declaration "uint local_13c;" type_identifier identifier ;) (declaration "mp_ptr local_138;" type_identifier identifier ;) (declaration "void *local_134;" primitive_type (pointer_declarator "*local_134" * identifier) ;) (declaration "mp_ptr local_130;" type_identifier identifier ;) (declaration "mp_limb_t km1;" type_identifier identifier ;) (declaration "mp_limb_t kp1h;" type_identifier identifier ;) (declaration "tmp_reentrant_t *__tmp_marker;" type_identifier (pointer_declarator "*__tmp_marker" * identifier) ;) (declaration "mp_size_t sizes [64];" type_identifier (array_declarator "sizes [64]" identifier [ number_literal ]) ;) (expression_statement "local_130 = rp;" (assignment_expression "local_130 = rp" identifier = identifier) ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(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 "__tmp_marker = (tmp_reentrant_t *)0x0;" (assignment_expression "__tmp_marker = (tmp_reentrant_t *)0x0" identifier = (cast_expression "(tmp_reentrant_t *)0x0" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar3 = n * 0x10;" (assignment_expression "uVar3 = n * 0x10" identifier = (binary_expression "n * 0x10" identifier * number_literal)) ;) (if_statement "if (uVar3 < 0x7f01) {\n    puVar9 = auStack_15c + -(uVar3 + 0x10);\n    local_150[2] = (uint *)((int)local_150 + -(uVar3 + 0x10));\n  }\n  else {\n    local_150[2] = (uint *)__gmp_tmp_reentrant_alloc(&__tmp_marker,uVar3);\n    puVar9 = auStack_15c;\n  }" if (parenthesized_expression "(uVar3 < 0x7f01)" ( (binary_expression "uVar3 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n    puVar9 = auStack_15c + -(uVar3 + 0x10);\n    local_150[2] = (uint *)((int)local_150 + -(uVar3 + 0x10));\n  }" { (expression_statement "puVar9 = auStack_15c + -(uVar3 + 0x10);" (assignment_expression "puVar9 = auStack_15c + -(uVar3 + 0x10)" identifier = (binary_expression "auStack_15c + -(uVar3 + 0x10)" identifier + (unary_expression "-(uVar3 + 0x10)" - (parenthesized_expression "(uVar3 + 0x10)" ( (binary_expression "uVar3 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "local_150[2] = (uint *)((int)local_150 + -(uVar3 + 0x10));" (assignment_expression "local_150[2] = (uint *)((int)local_150 + -(uVar3 + 0x10))" (subscript_expression "local_150[2]" identifier [ number_literal ]) = (cast_expression "(uint *)((int)local_150 + -(uVar3 + 0x10))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_150 + -(uVar3 + 0x10))" ( (binary_expression "(int)local_150 + -(uVar3 + 0x10)" (cast_expression "(int)local_150" ( (type_descriptor "int" primitive_type) ) identifier) + (unary_expression "-(uVar3 + 0x10)" - (parenthesized_expression "(uVar3 + 0x10)" ( (binary_expression "uVar3 + 0x10" identifier + number_literal) )))) )))) ;) }) (else_clause "else {\n    local_150[2] = (uint *)__gmp_tmp_reentrant_alloc(&__tmp_marker,uVar3);\n    puVar9 = auStack_15c;\n  }" else (compound_statement "{\n    local_150[2] = (uint *)__gmp_tmp_reentrant_alloc(&__tmp_marker,uVar3);\n    puVar9 = auStack_15c;\n  }" { (expression_statement "local_150[2] = (uint *)__gmp_tmp_reentrant_alloc(&__tmp_marker,uVar3);" (assignment_expression "local_150[2] = (uint *)__gmp_tmp_reentrant_alloc(&__tmp_marker,uVar3)" (subscript_expression "local_150[2]" identifier [ number_literal ]) = (cast_expression "(uint *)__gmp_tmp_reentrant_alloc(&__tmp_marker,uVar3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__gmp_tmp_reentrant_alloc(&__tmp_marker,uVar3)" identifier (argument_list "(&__tmp_marker,uVar3)" ( (pointer_expression "&__tmp_marker" & identifier) , identifier ))))) ;) (expression_statement "puVar9 = auStack_15c;" (assignment_expression "puVar9 = auStack_15c" identifier = identifier) ;) }))) (expression_statement "puVar2 = local_150[2];" (assignment_expression "puVar2 = local_150[2]" identifier = (subscript_expression "local_150[2]" identifier [ number_literal ])) ;) (expression_statement "local_138 = (mp_ptr)(n * 4);" (assignment_expression "local_138 = (mp_ptr)(n * 4)" identifier = (call_expression "(mp_ptr)(n * 4)" (parenthesized_expression "(mp_ptr)" ( identifier )) (argument_list "(n * 4)" ( (binary_expression "n * 4" identifier * number_literal) )))) ;) (expression_statement "local_150[0] = local_150[2] + n;" (assignment_expression "local_150[0] = local_150[2] + n" (subscript_expression "local_150[0]" identifier [ number_literal ]) = (binary_expression "local_150[2] + n" (subscript_expression "local_150[2]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "*(uint **)(puVar9 + -0xc) = local_150[0];" (assignment_expression "*(uint **)(puVar9 + -0xc) = local_150[0]" (pointer_expression "*(uint **)(puVar9 + -0xc)" * (cast_expression "(uint **)(puVar9 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0xc)" ( (binary_expression "puVar9 + -0xc" identifier + number_literal) )))) = (subscript_expression "local_150[0]" identifier [ number_literal ])) ;) (expression_statement "km1 = k - 1;" (assignment_expression "km1 = k - 1" identifier = (binary_expression "k - 1" identifier - number_literal)) ;) (expression_statement "*(mp_size_t *)(puVar9 + -0x10) = n;" (assignment_expression "*(mp_size_t *)(puVar9 + -0x10) = n" (pointer_expression "*(mp_size_t *)(puVar9 + -0x10)" * (cast_expression "(mp_size_t *)(puVar9 + -0x10)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x10)" ( (binary_expression "puVar9 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x14) = 1;" (assignment_expression "*(undefined4 *)(puVar9 + -0x14) = 1" (pointer_expression "*(undefined4 *)(puVar9 + -0x14)" * (cast_expression "(undefined4 *)(puVar9 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x14)" ( (binary_expression "puVar9 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(mp_limb_t **)(puVar9 + -0x18) = &km1;" (assignment_expression "*(mp_limb_t **)(puVar9 + -0x18) = &km1" (pointer_expression "*(mp_limb_t **)(puVar9 + -0x18)" * (cast_expression "(mp_limb_t **)(puVar9 + -0x18)" ( (type_descriptor "mp_limb_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x18)" ( (binary_expression "puVar9 + -0x18" identifier + number_literal) )))) = (pointer_expression "&km1" & identifier)) ;) (expression_statement "*(mp_srcptr *)(puVar9 + -0x1c) = ap;" (assignment_expression "*(mp_srcptr *)(puVar9 + -0x1c) = ap" (pointer_expression "*(mp_srcptr *)(puVar9 + -0x1c)" * (cast_expression "(mp_srcptr *)(puVar9 + -0x1c)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x1c)" ( (binary_expression "puVar9 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar9 + -0x20) = local_150[2];" (assignment_expression "*(uint **)(puVar9 + -0x20) = local_150[2]" (pointer_expression "*(uint **)(puVar9 + -0x20)" * (cast_expression "(uint **)(puVar9 + -0x20)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x20)" ( (binary_expression "puVar9 + -0x20" identifier + number_literal) )))) = (subscript_expression "local_150[2]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x24) = 0x7154e;" (assignment_expression "*(undefined4 *)(puVar9 + -0x24) = 0x7154e" (pointer_expression "*(undefined4 *)(puVar9 + -0x24)" * (cast_expression "(undefined4 *)(puVar9 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x24)" ( (binary_expression "puVar9 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_powlo(*(mp_ptr *)(puVar9 + -0x20),*(mp_srcptr *)(puVar9 + -0x1c),\n               *(mp_srcptr *)(puVar9 + -0x18),*(mp_size_t *)(puVar9 + -0x14),\n               *(mp_size_t *)(puVar9 + -0x10),*(mp_ptr *)(puVar9 + -0xc));" (call_expression "__gmpn_powlo(*(mp_ptr *)(puVar9 + -0x20),*(mp_srcptr *)(puVar9 + -0x1c),\n               *(mp_srcptr *)(puVar9 + -0x18),*(mp_size_t *)(puVar9 + -0x14),\n               *(mp_size_t *)(puVar9 + -0x10),*(mp_ptr *)(puVar9 + -0xc))" identifier (argument_list "(*(mp_ptr *)(puVar9 + -0x20),*(mp_srcptr *)(puVar9 + -0x1c),\n               *(mp_srcptr *)(puVar9 + -0x18),*(mp_size_t *)(puVar9 + -0x14),\n               *(mp_size_t *)(puVar9 + -0x10),*(mp_ptr *)(puVar9 + -0xc))" ( (pointer_expression "*(mp_ptr *)(puVar9 + -0x20)" * (cast_expression "(mp_ptr *)(puVar9 + -0x20)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x20)" ( (binary_expression "puVar9 + -0x20" identifier + number_literal) )))) , (pointer_expression "*(mp_srcptr *)(puVar9 + -0x1c)" * (cast_expression "(mp_srcptr *)(puVar9 + -0x1c)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x1c)" ( (binary_expression "puVar9 + -0x1c" identifier + number_literal) )))) , (pointer_expression "*(mp_srcptr *)(puVar9 + -0x18)" * (cast_expression "(mp_srcptr *)(puVar9 + -0x18)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x18)" ( (binary_expression "puVar9 + -0x18" identifier + number_literal) )))) , (pointer_expression "*(mp_size_t *)(puVar9 + -0x14)" * (cast_expression "(mp_size_t *)(puVar9 + -0x14)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x14)" ( (binary_expression "puVar9 + -0x14" identifier + number_literal) )))) , (pointer_expression "*(mp_size_t *)(puVar9 + -0x10)" * (cast_expression "(mp_size_t *)(puVar9 + -0x10)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x10)" ( (binary_expression "puVar9 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(mp_ptr *)(puVar9 + -0xc)" * (cast_expression "(mp_ptr *)(puVar9 + -0xc)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0xc)" ( (binary_expression "puVar9 + -0xc" identifier + number_literal) )))) ))) ;) (expression_statement "local_134 = (void *)*puVar2;" (assignment_expression "local_134 = (void *)*puVar2" identifier = (cast_expression "(void *)*puVar2" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) ;) (expression_statement "local_13c = k >> 1;" (assignment_expression "local_13c = k >> 1" identifier = (binary_expression "k >> 1" identifier >> number_literal)) ;) (expression_statement "uVar3 = (uint)(byte)PTR___gmp_binvert_limb_table_00098ec8[local_13c & 0x7f];" (assignment_expression "uVar3 = (uint)(byte)PTR___gmp_binvert_limb_table_00098ec8[local_13c & 0x7f]" identifier = (cast_expression "(uint)(byte)PTR___gmp_binvert_limb_table_00098ec8[local_13c & 0x7f]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)PTR___gmp_binvert_limb_table_00098ec8[local_13c & 0x7f]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR___gmp_binvert_limb_table_00098ec8[local_13c & 0x7f]" identifier [ (binary_expression "local_13c & 0x7f" identifier & number_literal) ])))) ;) (expression_statement "iVar8 = uVar3 * 2 - uVar3 * uVar3 * k;" (assignment_expression "iVar8 = uVar3 * 2 - uVar3 * uVar3 * k" identifier = (binary_expression "uVar3 * 2 - uVar3 * uVar3 * k" (binary_expression "uVar3 * 2" identifier * number_literal) - (binary_expression "uVar3 * uVar3 * k" (binary_expression "uVar3 * uVar3" identifier * identifier) * identifier))) ;) (expression_statement "local_144 = iVar8 * 2 - iVar8 * iVar8 * k;" (assignment_expression "local_144 = iVar8 * 2 - iVar8 * iVar8 * k" identifier = (binary_expression "iVar8 * 2 - iVar8 * iVar8 * k" (binary_expression "iVar8 * 2" identifier * number_literal) - (binary_expression "iVar8 * iVar8 * k" (binary_expression "iVar8 * iVar8" identifier * identifier) * identifier))) ;) (expression_statement "iVar8 = ((*ap << 2 ^ *ap * 2) & k << 2 & 8) + 1;" (assignment_expression "iVar8 = ((*ap << 2 ^ *ap * 2) & k << 2 & 8) + 1" identifier = (binary_expression "((*ap << 2 ^ *ap * 2) & k << 2 & 8) + 1" (parenthesized_expression "((*ap << 2 ^ *ap * 2) & k << 2 & 8)" ( (binary_expression "(*ap << 2 ^ *ap * 2) & k << 2 & 8" (binary_expression "(*ap << 2 ^ *ap * 2) & k << 2" (parenthesized_expression "(*ap << 2 ^ *ap * 2)" ( (binary_expression "*ap << 2 ^ *ap * 2" (binary_expression "*ap << 2" (pointer_expression "*ap" * identifier) << number_literal) ^ (binary_expression "*ap * 2" (pointer_expression "*ap" * identifier) * number_literal)) )) & (binary_expression "k << 2" identifier << number_literal)) & number_literal) )) + number_literal)) ;) (expression_statement "iVar10 = local_144 * iVar8;" (assignment_expression "iVar10 = local_144 * iVar8" identifier = (binary_expression "local_144 * iVar8" identifier * identifier)) ;) (expression_statement "uVar3 = k & 0x7f;" (assignment_expression "uVar3 = k & 0x7f" identifier = (binary_expression "k & 0x7f" identifier & number_literal)) ;) (expression_statement "pvVar4 = local_134;" (assignment_expression "pvVar4 = local_134" identifier = identifier) ;) (if_statement "if (uVar3 != 0) {\n    iVar11 = 1;\n    do {\n      if ((uVar3 & 1) != 0) {\n        iVar11 = iVar11 * iVar8;\n      }\n      iVar8 = iVar8 * iVar8;\n      uVar3 = uVar3 >> 1;\n    } while (uVar3 != 0);\n    pvVar4 = (void *)((int)local_134 * iVar11);\n  }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar11 = 1;\n    do {\n      if ((uVar3 & 1) != 0) {\n        iVar11 = iVar11 * iVar8;\n      }\n      iVar8 = iVar8 * iVar8;\n      uVar3 = uVar3 >> 1;\n    } while (uVar3 != 0);\n    pvVar4 = (void *)((int)local_134 * iVar11);\n  }" { (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" identifier = number_literal) ;) (do_statement "do {\n      if ((uVar3 & 1) != 0) {\n        iVar11 = iVar11 * iVar8;\n      }\n      iVar8 = iVar8 * iVar8;\n      uVar3 = uVar3 >> 1;\n    } while (uVar3 != 0);" do (compound_statement "{\n      if ((uVar3 & 1) != 0) {\n        iVar11 = iVar11 * iVar8;\n      }\n      iVar8 = iVar8 * iVar8;\n      uVar3 = uVar3 >> 1;\n    }" { (if_statement "if ((uVar3 & 1) != 0) {\n        iVar11 = iVar11 * iVar8;\n      }" if (parenthesized_expression "((uVar3 & 1) != 0)" ( (binary_expression "(uVar3 & 1) != 0" (parenthesized_expression "(uVar3 & 1)" ( (binary_expression "uVar3 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        iVar11 = iVar11 * iVar8;\n      }" { (expression_statement "iVar11 = iVar11 * iVar8;" (assignment_expression "iVar11 = iVar11 * iVar8" identifier = (binary_expression "iVar11 * iVar8" identifier * identifier)) ;) })) (expression_statement "iVar8 = iVar8 * iVar8;" (assignment_expression "iVar8 = iVar8 * iVar8" identifier = (binary_expression "iVar8 * iVar8" identifier * identifier)) ;) (expression_statement "uVar3 = uVar3 >> 1;" (assignment_expression "uVar3 = uVar3 >> 1" identifier = (binary_expression "uVar3 >> 1" identifier >> number_literal)) ;) }) while (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) ;) (expression_statement "pvVar4 = (void *)((int)local_134 * iVar11);" (assignment_expression "pvVar4 = (void *)((int)local_134 * iVar11)" identifier = (cast_expression "(void *)((int)local_134 * iVar11)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_134 * iVar11)" ( (binary_expression "(int)local_134 * iVar11" (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier) * identifier) )))) ;) })) (expression_statement "iVar8 = k + 1;" (assignment_expression "iVar8 = k + 1" identifier = (binary_expression "k + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = iVar10 * (iVar8 - (int)pvVar4);" (assignment_expression "iVar10 = iVar10 * (iVar8 - (int)pvVar4)" identifier = (binary_expression "iVar10 * (iVar8 - (int)pvVar4)" identifier * (parenthesized_expression "(iVar8 - (int)pvVar4)" ( (binary_expression "iVar8 - (int)pvVar4" identifier - (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar11 = local_144 * iVar10;" (assignment_expression "iVar11 = local_144 * iVar10" identifier = (binary_expression "local_144 * iVar10" identifier * identifier)) ;) (expression_statement "uVar3 = k & 0x7fff;" (assignment_expression "uVar3 = k & 0x7fff" identifier = (binary_expression "k & 0x7fff" identifier & number_literal)) ;) (if_statement "if (uVar3 == 0) {\n    iVar10 = iVar8 - (int)local_134;\n    iVar11 = iVar11 * iVar10;\n    iVar6 = local_144 * iVar11;\n    if (k == 0) goto LAB_00071659;\n  }\n  else {\n    iVar6 = 1;\n    do {\n      if ((uVar3 & 1) != 0) {\n        iVar6 = iVar6 * iVar10;\n      }\n      iVar10 = iVar10 * iVar10;\n      uVar3 = uVar3 >> 1;\n    } while (uVar3 != 0);\n    iVar11 = iVar11 * (iVar8 - iVar6 * (int)local_134);\n    iVar6 = local_144 * iVar11;\n  }" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar10 = iVar8 - (int)local_134;\n    iVar11 = iVar11 * iVar10;\n    iVar6 = local_144 * iVar11;\n    if (k == 0) goto LAB_00071659;\n  }" { (expression_statement "iVar10 = iVar8 - (int)local_134;" (assignment_expression "iVar10 = iVar8 - (int)local_134" identifier = (binary_expression "iVar8 - (int)local_134" identifier - (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar11 = iVar11 * iVar10;" (assignment_expression "iVar11 = iVar11 * iVar10" identifier = (binary_expression "iVar11 * iVar10" identifier * identifier)) ;) (expression_statement "iVar6 = local_144 * iVar11;" (assignment_expression "iVar6 = local_144 * iVar11" identifier = (binary_expression "local_144 * iVar11" identifier * identifier)) ;) (if_statement "if (k == 0) goto LAB_00071659;" if (parenthesized_expression "(k == 0)" ( (binary_expression "k == 0" identifier == number_literal) )) (goto_statement "goto LAB_00071659;" goto statement_identifier ;)) }) (else_clause "else {\n    iVar6 = 1;\n    do {\n      if ((uVar3 & 1) != 0) {\n        iVar6 = iVar6 * iVar10;\n      }\n      iVar10 = iVar10 * iVar10;\n      uVar3 = uVar3 >> 1;\n    } while (uVar3 != 0);\n    iVar11 = iVar11 * (iVar8 - iVar6 * (int)local_134);\n    iVar6 = local_144 * iVar11;\n  }" else (compound_statement "{\n    iVar6 = 1;\n    do {\n      if ((uVar3 & 1) != 0) {\n        iVar6 = iVar6 * iVar10;\n      }\n      iVar10 = iVar10 * iVar10;\n      uVar3 = uVar3 >> 1;\n    } while (uVar3 != 0);\n    iVar11 = iVar11 * (iVar8 - iVar6 * (int)local_134);\n    iVar6 = local_144 * iVar11;\n  }" { (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" identifier = number_literal) ;) (do_statement "do {\n      if ((uVar3 & 1) != 0) {\n        iVar6 = iVar6 * iVar10;\n      }\n      iVar10 = iVar10 * iVar10;\n      uVar3 = uVar3 >> 1;\n    } while (uVar3 != 0);" do (compound_statement "{\n      if ((uVar3 & 1) != 0) {\n        iVar6 = iVar6 * iVar10;\n      }\n      iVar10 = iVar10 * iVar10;\n      uVar3 = uVar3 >> 1;\n    }" { (if_statement "if ((uVar3 & 1) != 0) {\n        iVar6 = iVar6 * iVar10;\n      }" if (parenthesized_expression "((uVar3 & 1) != 0)" ( (binary_expression "(uVar3 & 1) != 0" (parenthesized_expression "(uVar3 & 1)" ( (binary_expression "uVar3 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        iVar6 = iVar6 * iVar10;\n      }" { (expression_statement "iVar6 = iVar6 * iVar10;" (assignment_expression "iVar6 = iVar6 * iVar10" identifier = (binary_expression "iVar6 * iVar10" identifier * identifier)) ;) })) (expression_statement "iVar10 = iVar10 * iVar10;" (assignment_expression "iVar10 = iVar10 * iVar10" identifier = (binary_expression "iVar10 * iVar10" identifier * identifier)) ;) (expression_statement "uVar3 = uVar3 >> 1;" (assignment_expression "uVar3 = uVar3 >> 1" identifier = (binary_expression "uVar3 >> 1" identifier >> number_literal)) ;) }) while (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) ;) (expression_statement "iVar11 = iVar11 * (iVar8 - iVar6 * (int)local_134);" (assignment_expression "iVar11 = iVar11 * (iVar8 - iVar6 * (int)local_134)" identifier = (binary_expression "iVar11 * (iVar8 - iVar6 * (int)local_134)" identifier * (parenthesized_expression "(iVar8 - iVar6 * (int)local_134)" ( (binary_expression "iVar8 - iVar6 * (int)local_134" identifier - (binary_expression "iVar6 * (int)local_134" identifier * (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) (expression_statement "iVar6 = local_144 * iVar11;" (assignment_expression "iVar6 = local_144 * iVar11" identifier = (binary_expression "local_144 * iVar11" identifier * identifier)) ;) }))) (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) (expression_statement "mVar5 = k;" (assignment_expression "mVar5 = k" identifier = identifier) ;) (do_statement "do {\n    if ((mVar5 & 1) != 0) {\n      iVar10 = iVar10 * iVar11;\n    }\n    iVar11 = iVar11 * iVar11;\n    mVar5 = mVar5 >> 1;\n  } while (mVar5 != 0);" do (compound_statement "{\n    if ((mVar5 & 1) != 0) {\n      iVar10 = iVar10 * iVar11;\n    }\n    iVar11 = iVar11 * iVar11;\n    mVar5 = mVar5 >> 1;\n  }" { (if_statement "if ((mVar5 & 1) != 0) {\n      iVar10 = iVar10 * iVar11;\n    }" if (parenthesized_expression "((mVar5 & 1) != 0)" ( (binary_expression "(mVar5 & 1) != 0" (parenthesized_expression "(mVar5 & 1)" ( (binary_expression "mVar5 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      iVar10 = iVar10 * iVar11;\n    }" { (expression_statement "iVar10 = iVar10 * iVar11;" (assignment_expression "iVar10 = iVar10 * iVar11" identifier = (binary_expression "iVar10 * iVar11" identifier * identifier)) ;) })) (expression_statement "iVar11 = iVar11 * iVar11;" (assignment_expression "iVar11 = iVar11 * iVar11" identifier = (binary_expression "iVar11 * iVar11" identifier * identifier)) ;) (expression_statement "mVar5 = mVar5 >> 1;" (assignment_expression "mVar5 = mVar5 >> 1" identifier = (binary_expression "mVar5 >> 1" identifier >> number_literal)) ;) }) while (parenthesized_expression "(mVar5 != 0)" ( (binary_expression "mVar5 != 0" identifier != number_literal) )) ;) (expression_statement "iVar10 = iVar8 - iVar10 * (int)local_134;" (assignment_expression "iVar10 = iVar8 - iVar10 * (int)local_134" identifier = (binary_expression "iVar8 - iVar10 * (int)local_134" identifier - (binary_expression "iVar10 * (int)local_134" identifier * (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (labeled_statement "LAB_00071659:\n  *local_130 = iVar10 * iVar6;" statement_identifier : (expression_statement "*local_130 = iVar10 * iVar6;" (assignment_expression "*local_130 = iVar10 * iVar6" (pointer_expression "*local_130" * identifier) = (binary_expression "iVar10 * iVar6" identifier * identifier)) ;)) (if_statement "if (n != 1) {\n    kp1h = local_13c + 1;\n    uVar3 = n * 8 + 4;\n    if (uVar3 < 0x7f01) {\n      iVar8 = -(n * 8 + 0x1fU & 0xfffffff0);\n      local_134 = (void *)((uint)(puVar9 + iVar8 + 0xf) & 0xfffffff0);\n      puVar9 = puVar9 + iVar8;\n    }\n    else {\n      *(uint *)(puVar9 + -0xc) = uVar3;\n      *(tmp_reentrant_t ***)(puVar9 + -0x10) = &__tmp_marker;\n      *(undefined4 *)(puVar9 + -0x14) = 0x718ac;\n      local_134 = __gmp_tmp_reentrant_alloc\n                            (*(tmp_reentrant_t ***)(puVar9 + -0x10),*(size_t *)(puVar9 + -0xc));\n    }\n    iVar8 = (int)local_138 + (int)local_134;\n    if (1 < n) {\n      local_150[1] = (uint *)sizes;\n      iVar10 = 0;\n      do {\n        iVar11 = n;\n        iVar6 = iVar10;\n        n = iVar11 + 1 >> 1;\n        sizes[iVar6] = iVar11;\n        iVar10 = iVar6 + 1;\n      } while (n != 1);\n      local_154 = &kp1h;\n      local_138 = (mp_ptr)n;\n      local_140 = (mp_size_t *)local_150[1] + iVar6;\n      do {\n        *(mp_ptr *)(puVar9 + -8) = local_138;\n        *(mp_ptr *)(puVar9 + -0xc) = local_130;\n        *(int *)(puVar9 + -0x10) = iVar8;\n        *(undefined4 *)(puVar9 + -0x14) = 0x71736;\n        __gmpn_sqr(*(mp_ptr *)(puVar9 + -0x10),*(mp_srcptr *)(puVar9 + -0xc),\n                   *(mp_size_t *)(puVar9 + -8));\n        *(uint **)(puVar9 + -0xc) = local_150[0];\n        *(int *)(puVar9 + -0x10) = iVar11;\n        *(undefined4 *)(puVar9 + -0x14) = 1;\n        *(mp_limb_t **)(puVar9 + -0x18) = local_154;\n        *(int *)(puVar9 + -0x1c) = iVar8;\n        *(void **)(puVar9 + -0x20) = local_134;\n        *(undefined4 *)(puVar9 + -0x24) = 0x71753;\n        __gmpn_powlo(*(mp_ptr *)(puVar9 + -0x20),*(mp_srcptr *)(puVar9 + -0x1c),\n                     *(mp_srcptr *)(puVar9 + -0x18),*(mp_size_t *)(puVar9 + -0x14),\n                     *(mp_size_t *)(puVar9 + -0x10),*(mp_ptr *)(puVar9 + -0xc));\n        *(int *)(puVar9 + -4) = iVar11;\n        *(uint **)(puVar9 + -8) = local_150[2];\n        *(void **)(puVar9 + -0xc) = local_134;\n        *(int *)(puVar9 + -0x10) = iVar8;\n        *(undefined4 *)(puVar9 + -0x14) = 0x71769;\n        __gmpn_mullo_n(*(mp_ptr *)(puVar9 + -0x10),*(mp_srcptr *)(puVar9 + -0xc),\n                       *(mp_srcptr *)(puVar9 + -8),*(mp_size_t *)(puVar9 + -4));\n        *(undefined4 *)(puVar9 + -0xc) = 0;\n        local_13c = iVar11 - (int)local_138;\n        iVar10 = (int)local_138 * 4;\n        *(int *)(puVar9 + -0x10) = local_144;\n        local_138 = local_130 + (int)local_138;\n        *(mp_limb_t *)(puVar9 + -0x14) = k;\n        *(uint *)(puVar9 + -0x18) = local_13c;\n        *(int *)(puVar9 + -0x1c) = iVar10 + iVar8;\n        *(mp_ptr *)(puVar9 + -0x20) = local_138;\n        *(undefined4 *)(puVar9 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        mVar5 = *local_138;\n        pmVar7 = local_138;\n        uVar3 = local_13c;\n        while (uVar3 = uVar3 - 1, mVar5 == 0) {\n          if (uVar3 == 0) goto LAB_000717d0;\n          pmVar7 = pmVar7 + 1;\n          mVar5 = *pmVar7;\n        }\n        *pmVar7 = -mVar5;\n        if (uVar3 != 0) {\n          *(uint *)(puVar9 + -8) = uVar3;\n          *(mp_limb_t **)(puVar9 + -0xc) = pmVar7 + 1;\n          *(mp_limb_t **)(puVar9 + -0x10) = pmVar7 + 1;\n          *(undefined4 *)(puVar9 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        if (local_150[1] == (uint *)local_140) break;\n        local_138 = (mp_ptr)iVar11;\n        iVar11 = local_140[-1];\n        local_140 = local_140 + -1;\n      } while( true );\n    }\n  }" if (parenthesized_expression "(n != 1)" ( (binary_expression "n != 1" identifier != number_literal) )) (compound_statement "{\n    kp1h = local_13c + 1;\n    uVar3 = n * 8 + 4;\n    if (uVar3 < 0x7f01) {\n      iVar8 = -(n * 8 + 0x1fU & 0xfffffff0);\n      local_134 = (void *)((uint)(puVar9 + iVar8 + 0xf) & 0xfffffff0);\n      puVar9 = puVar9 + iVar8;\n    }\n    else {\n      *(uint *)(puVar9 + -0xc) = uVar3;\n      *(tmp_reentrant_t ***)(puVar9 + -0x10) = &__tmp_marker;\n      *(undefined4 *)(puVar9 + -0x14) = 0x718ac;\n      local_134 = __gmp_tmp_reentrant_alloc\n                            (*(tmp_reentrant_t ***)(puVar9 + -0x10),*(size_t *)(puVar9 + -0xc));\n    }\n    iVar8 = (int)local_138 + (int)local_134;\n    if (1 < n) {\n      local_150[1] = (uint *)sizes;\n      iVar10 = 0;\n      do {\n        iVar11 = n;\n        iVar6 = iVar10;\n        n = iVar11 + 1 >> 1;\n        sizes[iVar6] = iVar11;\n        iVar10 = iVar6 + 1;\n      } while (n != 1);\n      local_154 = &kp1h;\n      local_138 = (mp_ptr)n;\n      local_140 = (mp_size_t *)local_150[1] + iVar6;\n      do {\n        *(mp_ptr *)(puVar9 + -8) = local_138;\n        *(mp_ptr *)(puVar9 + -0xc) = local_130;\n        *(int *)(puVar9 + -0x10) = iVar8;\n        *(undefined4 *)(puVar9 + -0x14) = 0x71736;\n        __gmpn_sqr(*(mp_ptr *)(puVar9 + -0x10),*(mp_srcptr *)(puVar9 + -0xc),\n                   *(mp_size_t *)(puVar9 + -8));\n        *(uint **)(puVar9 + -0xc) = local_150[0];\n        *(int *)(puVar9 + -0x10) = iVar11;\n        *(undefined4 *)(puVar9 + -0x14) = 1;\n        *(mp_limb_t **)(puVar9 + -0x18) = local_154;\n        *(int *)(puVar9 + -0x1c) = iVar8;\n        *(void **)(puVar9 + -0x20) = local_134;\n        *(undefined4 *)(puVar9 + -0x24) = 0x71753;\n        __gmpn_powlo(*(mp_ptr *)(puVar9 + -0x20),*(mp_srcptr *)(puVar9 + -0x1c),\n                     *(mp_srcptr *)(puVar9 + -0x18),*(mp_size_t *)(puVar9 + -0x14),\n                     *(mp_size_t *)(puVar9 + -0x10),*(mp_ptr *)(puVar9 + -0xc));\n        *(int *)(puVar9 + -4) = iVar11;\n        *(uint **)(puVar9 + -8) = local_150[2];\n        *(void **)(puVar9 + -0xc) = local_134;\n        *(int *)(puVar9 + -0x10) = iVar8;\n        *(undefined4 *)(puVar9 + -0x14) = 0x71769;\n        __gmpn_mullo_n(*(mp_ptr *)(puVar9 + -0x10),*(mp_srcptr *)(puVar9 + -0xc),\n                       *(mp_srcptr *)(puVar9 + -8),*(mp_size_t *)(puVar9 + -4));\n        *(undefined4 *)(puVar9 + -0xc) = 0;\n        local_13c = iVar11 - (int)local_138;\n        iVar10 = (int)local_138 * 4;\n        *(int *)(puVar9 + -0x10) = local_144;\n        local_138 = local_130 + (int)local_138;\n        *(mp_limb_t *)(puVar9 + -0x14) = k;\n        *(uint *)(puVar9 + -0x18) = local_13c;\n        *(int *)(puVar9 + -0x1c) = iVar10 + iVar8;\n        *(mp_ptr *)(puVar9 + -0x20) = local_138;\n        *(undefined4 *)(puVar9 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        mVar5 = *local_138;\n        pmVar7 = local_138;\n        uVar3 = local_13c;\n        while (uVar3 = uVar3 - 1, mVar5 == 0) {\n          if (uVar3 == 0) goto LAB_000717d0;\n          pmVar7 = pmVar7 + 1;\n          mVar5 = *pmVar7;\n        }\n        *pmVar7 = -mVar5;\n        if (uVar3 != 0) {\n          *(uint *)(puVar9 + -8) = uVar3;\n          *(mp_limb_t **)(puVar9 + -0xc) = pmVar7 + 1;\n          *(mp_limb_t **)(puVar9 + -0x10) = pmVar7 + 1;\n          *(undefined4 *)(puVar9 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        if (local_150[1] == (uint *)local_140) break;\n        local_138 = (mp_ptr)iVar11;\n        iVar11 = local_140[-1];\n        local_140 = local_140 + -1;\n      } while( true );\n    }\n  }" { (expression_statement "kp1h = local_13c + 1;" (assignment_expression "kp1h = local_13c + 1" identifier = (binary_expression "local_13c + 1" identifier + number_literal)) ;) (expression_statement "uVar3 = n * 8 + 4;" (assignment_expression "uVar3 = n * 8 + 4" identifier = (binary_expression "n * 8 + 4" (binary_expression "n * 8" identifier * number_literal) + number_literal)) ;) (if_statement "if (uVar3 < 0x7f01) {\n      iVar8 = -(n * 8 + 0x1fU & 0xfffffff0);\n      local_134 = (void *)((uint)(puVar9 + iVar8 + 0xf) & 0xfffffff0);\n      puVar9 = puVar9 + iVar8;\n    }\n    else {\n      *(uint *)(puVar9 + -0xc) = uVar3;\n      *(tmp_reentrant_t ***)(puVar9 + -0x10) = &__tmp_marker;\n      *(undefined4 *)(puVar9 + -0x14) = 0x718ac;\n      local_134 = __gmp_tmp_reentrant_alloc\n                            (*(tmp_reentrant_t ***)(puVar9 + -0x10),*(size_t *)(puVar9 + -0xc));\n    }" if (parenthesized_expression "(uVar3 < 0x7f01)" ( (binary_expression "uVar3 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n      iVar8 = -(n * 8 + 0x1fU & 0xfffffff0);\n      local_134 = (void *)((uint)(puVar9 + iVar8 + 0xf) & 0xfffffff0);\n      puVar9 = puVar9 + iVar8;\n    }" { (expression_statement "iVar8 = -(n * 8 + 0x1fU & 0xfffffff0);" (assignment_expression "iVar8 = -(n * 8 + 0x1fU & 0xfffffff0)" identifier = (unary_expression "-(n * 8 + 0x1fU & 0xfffffff0)" - (parenthesized_expression "(n * 8 + 0x1fU & 0xfffffff0)" ( (binary_expression "n * 8 + 0x1fU & 0xfffffff0" (binary_expression "n * 8 + 0x1fU" (binary_expression "n * 8" identifier * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "local_134 = (void *)((uint)(puVar9 + iVar8 + 0xf) & 0xfffffff0);" (assignment_expression "local_134 = (void *)((uint)(puVar9 + iVar8 + 0xf) & 0xfffffff0)" identifier = (cast_expression "(void *)((uint)(puVar9 + iVar8 + 0xf) & 0xfffffff0)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(puVar9 + iVar8 + 0xf) & 0xfffffff0)" ( (binary_expression "(uint)(puVar9 + iVar8 + 0xf) & 0xfffffff0" (call_expression "(uint)(puVar9 + iVar8 + 0xf)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar9 + iVar8 + 0xf)" ( (binary_expression "puVar9 + iVar8 + 0xf" (binary_expression "puVar9 + iVar8" identifier + identifier) + number_literal) ))) & number_literal) )))) ;) (expression_statement "puVar9 = puVar9 + iVar8;" (assignment_expression "puVar9 = puVar9 + iVar8" identifier = (binary_expression "puVar9 + iVar8" identifier + identifier)) ;) }) (else_clause "else {\n      *(uint *)(puVar9 + -0xc) = uVar3;\n      *(tmp_reentrant_t ***)(puVar9 + -0x10) = &__tmp_marker;\n      *(undefined4 *)(puVar9 + -0x14) = 0x718ac;\n      local_134 = __gmp_tmp_reentrant_alloc\n                            (*(tmp_reentrant_t ***)(puVar9 + -0x10),*(size_t *)(puVar9 + -0xc));\n    }" else (compound_statement "{\n      *(uint *)(puVar9 + -0xc) = uVar3;\n      *(tmp_reentrant_t ***)(puVar9 + -0x10) = &__tmp_marker;\n      *(undefined4 *)(puVar9 + -0x14) = 0x718ac;\n      local_134 = __gmp_tmp_reentrant_alloc\n                            (*(tmp_reentrant_t ***)(puVar9 + -0x10),*(size_t *)(puVar9 + -0xc));\n    }" { (expression_statement "*(uint *)(puVar9 + -0xc) = uVar3;" (assignment_expression "*(uint *)(puVar9 + -0xc) = uVar3" (pointer_expression "*(uint *)(puVar9 + -0xc)" * (cast_expression "(uint *)(puVar9 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0xc)" ( (binary_expression "puVar9 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(tmp_reentrant_t ***)(puVar9 + -0x10) = &__tmp_marker;" (assignment_expression "*(tmp_reentrant_t ***)(puVar9 + -0x10) = &__tmp_marker" (pointer_expression "*(tmp_reentrant_t ***)(puVar9 + -0x10)" * (cast_expression "(tmp_reentrant_t ***)(puVar9 + -0x10)" ( (type_descriptor "tmp_reentrant_t ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar9 + -0x10)" ( (binary_expression "puVar9 + -0x10" identifier + number_literal) )))) = (pointer_expression "&__tmp_marker" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x14) = 0x718ac;" (assignment_expression "*(undefined4 *)(puVar9 + -0x14) = 0x718ac" (pointer_expression "*(undefined4 *)(puVar9 + -0x14)" * (cast_expression "(undefined4 *)(puVar9 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x14)" ( (binary_expression "puVar9 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_134 = __gmp_tmp_reentrant_alloc\n                            (*(tmp_reentrant_t ***)(puVar9 + -0x10),*(size_t *)(puVar9 + -0xc));" (assignment_expression "local_134 = __gmp_tmp_reentrant_alloc\n                            (*(tmp_reentrant_t ***)(puVar9 + -0x10),*(size_t *)(puVar9 + -0xc))" identifier = (call_expression "__gmp_tmp_reentrant_alloc\n                            (*(tmp_reentrant_t ***)(puVar9 + -0x10),*(size_t *)(puVar9 + -0xc))" identifier (argument_list "(*(tmp_reentrant_t ***)(puVar9 + -0x10),*(size_t *)(puVar9 + -0xc))" ( (pointer_expression "*(tmp_reentrant_t ***)(puVar9 + -0x10)" * (cast_expression "(tmp_reentrant_t ***)(puVar9 + -0x10)" ( (type_descriptor "tmp_reentrant_t ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar9 + -0x10)" ( (binary_expression "puVar9 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(size_t *)(puVar9 + -0xc)" * (cast_expression "(size_t *)(puVar9 + -0xc)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0xc)" ( (binary_expression "puVar9 + -0xc" identifier + number_literal) )))) )))) ;) }))) (expression_statement "iVar8 = (int)local_138 + (int)local_134;" (assignment_expression "iVar8 = (int)local_138 + (int)local_134" identifier = (binary_expression "(int)local_138 + (int)local_134" (cast_expression "(int)local_138" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_134" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (1 < n) {\n      local_150[1] = (uint *)sizes;\n      iVar10 = 0;\n      do {\n        iVar11 = n;\n        iVar6 = iVar10;\n        n = iVar11 + 1 >> 1;\n        sizes[iVar6] = iVar11;\n        iVar10 = iVar6 + 1;\n      } while (n != 1);\n      local_154 = &kp1h;\n      local_138 = (mp_ptr)n;\n      local_140 = (mp_size_t *)local_150[1] + iVar6;\n      do {\n        *(mp_ptr *)(puVar9 + -8) = local_138;\n        *(mp_ptr *)(puVar9 + -0xc) = local_130;\n        *(int *)(puVar9 + -0x10) = iVar8;\n        *(undefined4 *)(puVar9 + -0x14) = 0x71736;\n        __gmpn_sqr(*(mp_ptr *)(puVar9 + -0x10),*(mp_srcptr *)(puVar9 + -0xc),\n                   *(mp_size_t *)(puVar9 + -8));\n        *(uint **)(puVar9 + -0xc) = local_150[0];\n        *(int *)(puVar9 + -0x10) = iVar11;\n        *(undefined4 *)(puVar9 + -0x14) = 1;\n        *(mp_limb_t **)(puVar9 + -0x18) = local_154;\n        *(int *)(puVar9 + -0x1c) = iVar8;\n        *(void **)(puVar9 + -0x20) = local_134;\n        *(undefined4 *)(puVar9 + -0x24) = 0x71753;\n        __gmpn_powlo(*(mp_ptr *)(puVar9 + -0x20),*(mp_srcptr *)(puVar9 + -0x1c),\n                     *(mp_srcptr *)(puVar9 + -0x18),*(mp_size_t *)(puVar9 + -0x14),\n                     *(mp_size_t *)(puVar9 + -0x10),*(mp_ptr *)(puVar9 + -0xc));\n        *(int *)(puVar9 + -4) = iVar11;\n        *(uint **)(puVar9 + -8) = local_150[2];\n        *(void **)(puVar9 + -0xc) = local_134;\n        *(int *)(puVar9 + -0x10) = iVar8;\n        *(undefined4 *)(puVar9 + -0x14) = 0x71769;\n        __gmpn_mullo_n(*(mp_ptr *)(puVar9 + -0x10),*(mp_srcptr *)(puVar9 + -0xc),\n                       *(mp_srcptr *)(puVar9 + -8),*(mp_size_t *)(puVar9 + -4));\n        *(undefined4 *)(puVar9 + -0xc) = 0;\n        local_13c = iVar11 - (int)local_138;\n        iVar10 = (int)local_138 * 4;\n        *(int *)(puVar9 + -0x10) = local_144;\n        local_138 = local_130 + (int)local_138;\n        *(mp_limb_t *)(puVar9 + -0x14) = k;\n        *(uint *)(puVar9 + -0x18) = local_13c;\n        *(int *)(puVar9 + -0x1c) = iVar10 + iVar8;\n        *(mp_ptr *)(puVar9 + -0x20) = local_138;\n        *(undefined4 *)(puVar9 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        mVar5 = *local_138;\n        pmVar7 = local_138;\n        uVar3 = local_13c;\n        while (uVar3 = uVar3 - 1, mVar5 == 0) {\n          if (uVar3 == 0) goto LAB_000717d0;\n          pmVar7 = pmVar7 + 1;\n          mVar5 = *pmVar7;\n        }\n        *pmVar7 = -mVar5;\n        if (uVar3 != 0) {\n          *(uint *)(puVar9 + -8) = uVar3;\n          *(mp_limb_t **)(puVar9 + -0xc) = pmVar7 + 1;\n          *(mp_limb_t **)(puVar9 + -0x10) = pmVar7 + 1;\n          *(undefined4 *)(puVar9 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        if (local_150[1] == (uint *)local_140) break;\n        local_138 = (mp_ptr)iVar11;\n        iVar11 = local_140[-1];\n        local_140 = local_140 + -1;\n      } while( true );\n    }" if (parenthesized_expression "(1 < n)" ( (binary_expression "1 < n" number_literal < identifier) )) (compound_statement "{\n      local_150[1] = (uint *)sizes;\n      iVar10 = 0;\n      do {\n        iVar11 = n;\n        iVar6 = iVar10;\n        n = iVar11 + 1 >> 1;\n        sizes[iVar6] = iVar11;\n        iVar10 = iVar6 + 1;\n      } while (n != 1);\n      local_154 = &kp1h;\n      local_138 = (mp_ptr)n;\n      local_140 = (mp_size_t *)local_150[1] + iVar6;\n      do {\n        *(mp_ptr *)(puVar9 + -8) = local_138;\n        *(mp_ptr *)(puVar9 + -0xc) = local_130;\n        *(int *)(puVar9 + -0x10) = iVar8;\n        *(undefined4 *)(puVar9 + -0x14) = 0x71736;\n        __gmpn_sqr(*(mp_ptr *)(puVar9 + -0x10),*(mp_srcptr *)(puVar9 + -0xc),\n                   *(mp_size_t *)(puVar9 + -8));\n        *(uint **)(puVar9 + -0xc) = local_150[0];\n        *(int *)(puVar9 + -0x10) = iVar11;\n        *(undefined4 *)(puVar9 + -0x14) = 1;\n        *(mp_limb_t **)(puVar9 + -0x18) = local_154;\n        *(int *)(puVar9 + -0x1c) = iVar8;\n        *(void **)(puVar9 + -0x20) = local_134;\n        *(undefined4 *)(puVar9 + -0x24) = 0x71753;\n        __gmpn_powlo(*(mp_ptr *)(puVar9 + -0x20),*(mp_srcptr *)(puVar9 + -0x1c),\n                     *(mp_srcptr *)(puVar9 + -0x18),*(mp_size_t *)(puVar9 + -0x14),\n                     *(mp_size_t *)(puVar9 + -0x10),*(mp_ptr *)(puVar9 + -0xc));\n        *(int *)(puVar9 + -4) = iVar11;\n        *(uint **)(puVar9 + -8) = local_150[2];\n        *(void **)(puVar9 + -0xc) = local_134;\n        *(int *)(puVar9 + -0x10) = iVar8;\n        *(undefined4 *)(puVar9 + -0x14) = 0x71769;\n        __gmpn_mullo_n(*(mp_ptr *)(puVar9 + -0x10),*(mp_srcptr *)(puVar9 + -0xc),\n                       *(mp_srcptr *)(puVar9 + -8),*(mp_size_t *)(puVar9 + -4));\n        *(undefined4 *)(puVar9 + -0xc) = 0;\n        local_13c = iVar11 - (int)local_138;\n        iVar10 = (int)local_138 * 4;\n        *(int *)(puVar9 + -0x10) = local_144;\n        local_138 = local_130 + (int)local_138;\n        *(mp_limb_t *)(puVar9 + -0x14) = k;\n        *(uint *)(puVar9 + -0x18) = local_13c;\n        *(int *)(puVar9 + -0x1c) = iVar10 + iVar8;\n        *(mp_ptr *)(puVar9 + -0x20) = local_138;\n        *(undefined4 *)(puVar9 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        mVar5 = *local_138;\n        pmVar7 = local_138;\n        uVar3 = local_13c;\n        while (uVar3 = uVar3 - 1, mVar5 == 0) {\n          if (uVar3 == 0) goto LAB_000717d0;\n          pmVar7 = pmVar7 + 1;\n          mVar5 = *pmVar7;\n        }\n        *pmVar7 = -mVar5;\n        if (uVar3 != 0) {\n          *(uint *)(puVar9 + -8) = uVar3;\n          *(mp_limb_t **)(puVar9 + -0xc) = pmVar7 + 1;\n          *(mp_limb_t **)(puVar9 + -0x10) = pmVar7 + 1;\n          *(undefined4 *)(puVar9 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        if (local_150[1] == (uint *)local_140) break;\n        local_138 = (mp_ptr)iVar11;\n        iVar11 = local_140[-1];\n        local_140 = local_140 + -1;\n      } while( true );\n    }" { (expression_statement "local_150[1] = (uint *)sizes;" (assignment_expression "local_150[1] = (uint *)sizes" (subscript_expression "local_150[1]" identifier [ number_literal ]) = (cast_expression "(uint *)sizes" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n        iVar11 = n;\n        iVar6 = iVar10;\n        n = iVar11 + 1 >> 1;\n        sizes[iVar6] = iVar11;\n        iVar10 = iVar6 + 1;\n      } while (n != 1);" do (compound_statement "{\n        iVar11 = n;\n        iVar6 = iVar10;\n        n = iVar11 + 1 >> 1;\n        sizes[iVar6] = iVar11;\n        iVar10 = iVar6 + 1;\n      }" { (expression_statement "iVar11 = n;" (assignment_expression "iVar11 = n" identifier = identifier) ;) (expression_statement "iVar6 = iVar10;" (assignment_expression "iVar6 = iVar10" identifier = identifier) ;) (expression_statement "n = iVar11 + 1 >> 1;" (assignment_expression "n = iVar11 + 1 >> 1" identifier = (binary_expression "iVar11 + 1 >> 1" (binary_expression "iVar11 + 1" identifier + number_literal) >> number_literal)) ;) (expression_statement "sizes[iVar6] = iVar11;" (assignment_expression "sizes[iVar6] = iVar11" (subscript_expression "sizes[iVar6]" identifier [ identifier ]) = identifier) ;) (expression_statement "iVar10 = iVar6 + 1;" (assignment_expression "iVar10 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(n != 1)" ( (binary_expression "n != 1" identifier != number_literal) )) ;) (expression_statement "local_154 = &kp1h;" (assignment_expression "local_154 = &kp1h" identifier = (pointer_expression "&kp1h" & identifier)) ;) (expression_statement "local_138 = (mp_ptr)n;" (assignment_expression "local_138 = (mp_ptr)n" identifier = (cast_expression "(mp_ptr)n" ( (type_descriptor "mp_ptr" type_identifier) ) identifier)) ;) (expression_statement "local_140 = (mp_size_t *)local_150[1] + iVar6;" (assignment_expression "local_140 = (mp_size_t *)local_150[1] + iVar6" identifier = (binary_expression "(mp_size_t *)local_150[1] + iVar6" (cast_expression "(mp_size_t *)local_150[1]" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_150[1]" identifier [ number_literal ])) + identifier)) ;) (do_statement "do {\n        *(mp_ptr *)(puVar9 + -8) = local_138;\n        *(mp_ptr *)(puVar9 + -0xc) = local_130;\n        *(int *)(puVar9 + -0x10) = iVar8;\n        *(undefined4 *)(puVar9 + -0x14) = 0x71736;\n        __gmpn_sqr(*(mp_ptr *)(puVar9 + -0x10),*(mp_srcptr *)(puVar9 + -0xc),\n                   *(mp_size_t *)(puVar9 + -8));\n        *(uint **)(puVar9 + -0xc) = local_150[0];\n        *(int *)(puVar9 + -0x10) = iVar11;\n        *(undefined4 *)(puVar9 + -0x14) = 1;\n        *(mp_limb_t **)(puVar9 + -0x18) = local_154;\n        *(int *)(puVar9 + -0x1c) = iVar8;\n        *(void **)(puVar9 + -0x20) = local_134;\n        *(undefined4 *)(puVar9 + -0x24) = 0x71753;\n        __gmpn_powlo(*(mp_ptr *)(puVar9 + -0x20),*(mp_srcptr *)(puVar9 + -0x1c),\n                     *(mp_srcptr *)(puVar9 + -0x18),*(mp_size_t *)(puVar9 + -0x14),\n                     *(mp_size_t *)(puVar9 + -0x10),*(mp_ptr *)(puVar9 + -0xc));\n        *(int *)(puVar9 + -4) = iVar11;\n        *(uint **)(puVar9 + -8) = local_150[2];\n        *(void **)(puVar9 + -0xc) = local_134;\n        *(int *)(puVar9 + -0x10) = iVar8;\n        *(undefined4 *)(puVar9 + -0x14) = 0x71769;\n        __gmpn_mullo_n(*(mp_ptr *)(puVar9 + -0x10),*(mp_srcptr *)(puVar9 + -0xc),\n                       *(mp_srcptr *)(puVar9 + -8),*(mp_size_t *)(puVar9 + -4));\n        *(undefined4 *)(puVar9 + -0xc) = 0;\n        local_13c = iVar11 - (int)local_138;\n        iVar10 = (int)local_138 * 4;\n        *(int *)(puVar9 + -0x10) = local_144;\n        local_138 = local_130 + (int)local_138;\n        *(mp_limb_t *)(puVar9 + -0x14) = k;\n        *(uint *)(puVar9 + -0x18) = local_13c;\n        *(int *)(puVar9 + -0x1c) = iVar10 + iVar8;\n        *(mp_ptr *)(puVar9 + -0x20) = local_138;\n        *(undefined4 *)(puVar9 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        mVar5 = *local_138;\n        pmVar7 = local_138;\n        uVar3 = local_13c;\n        while (uVar3 = uVar3 - 1, mVar5 == 0) {\n          if (uVar3 == 0) goto LAB_000717d0;\n          pmVar7 = pmVar7 + 1;\n          mVar5 = *pmVar7;\n        }\n        *pmVar7 = -mVar5;\n        if (uVar3 != 0) {\n          *(uint *)(puVar9 + -8) = uVar3;\n          *(mp_limb_t **)(puVar9 + -0xc) = pmVar7 + 1;\n          *(mp_limb_t **)(puVar9 + -0x10) = pmVar7 + 1;\n          *(undefined4 *)(puVar9 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        if (local_150[1] == (uint *)local_140) break;\n        local_138 = (mp_ptr)iVar11;\n        iVar11 = local_140[-1];\n        local_140 = local_140 + -1;\n      } while( true );" do (compound_statement "{\n        *(mp_ptr *)(puVar9 + -8) = local_138;\n        *(mp_ptr *)(puVar9 + -0xc) = local_130;\n        *(int *)(puVar9 + -0x10) = iVar8;\n        *(undefined4 *)(puVar9 + -0x14) = 0x71736;\n        __gmpn_sqr(*(mp_ptr *)(puVar9 + -0x10),*(mp_srcptr *)(puVar9 + -0xc),\n                   *(mp_size_t *)(puVar9 + -8));\n        *(uint **)(puVar9 + -0xc) = local_150[0];\n        *(int *)(puVar9 + -0x10) = iVar11;\n        *(undefined4 *)(puVar9 + -0x14) = 1;\n        *(mp_limb_t **)(puVar9 + -0x18) = local_154;\n        *(int *)(puVar9 + -0x1c) = iVar8;\n        *(void **)(puVar9 + -0x20) = local_134;\n        *(undefined4 *)(puVar9 + -0x24) = 0x71753;\n        __gmpn_powlo(*(mp_ptr *)(puVar9 + -0x20),*(mp_srcptr *)(puVar9 + -0x1c),\n                     *(mp_srcptr *)(puVar9 + -0x18),*(mp_size_t *)(puVar9 + -0x14),\n                     *(mp_size_t *)(puVar9 + -0x10),*(mp_ptr *)(puVar9 + -0xc));\n        *(int *)(puVar9 + -4) = iVar11;\n        *(uint **)(puVar9 + -8) = local_150[2];\n        *(void **)(puVar9 + -0xc) = local_134;\n        *(int *)(puVar9 + -0x10) = iVar8;\n        *(undefined4 *)(puVar9 + -0x14) = 0x71769;\n        __gmpn_mullo_n(*(mp_ptr *)(puVar9 + -0x10),*(mp_srcptr *)(puVar9 + -0xc),\n                       *(mp_srcptr *)(puVar9 + -8),*(mp_size_t *)(puVar9 + -4));\n        *(undefined4 *)(puVar9 + -0xc) = 0;\n        local_13c = iVar11 - (int)local_138;\n        iVar10 = (int)local_138 * 4;\n        *(int *)(puVar9 + -0x10) = local_144;\n        local_138 = local_130 + (int)local_138;\n        *(mp_limb_t *)(puVar9 + -0x14) = k;\n        *(uint *)(puVar9 + -0x18) = local_13c;\n        *(int *)(puVar9 + -0x1c) = iVar10 + iVar8;\n        *(mp_ptr *)(puVar9 + -0x20) = local_138;\n        *(undefined4 *)(puVar9 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        mVar5 = *local_138;\n        pmVar7 = local_138;\n        uVar3 = local_13c;\n        while (uVar3 = uVar3 - 1, mVar5 == 0) {\n          if (uVar3 == 0) goto LAB_000717d0;\n          pmVar7 = pmVar7 + 1;\n          mVar5 = *pmVar7;\n        }\n        *pmVar7 = -mVar5;\n        if (uVar3 != 0) {\n          *(uint *)(puVar9 + -8) = uVar3;\n          *(mp_limb_t **)(puVar9 + -0xc) = pmVar7 + 1;\n          *(mp_limb_t **)(puVar9 + -0x10) = pmVar7 + 1;\n          *(undefined4 *)(puVar9 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        if (local_150[1] == (uint *)local_140) break;\n        local_138 = (mp_ptr)iVar11;\n        iVar11 = local_140[-1];\n        local_140 = local_140 + -1;\n      }" { (expression_statement "*(mp_ptr *)(puVar9 + -8) = local_138;" (assignment_expression "*(mp_ptr *)(puVar9 + -8) = local_138" (pointer_expression "*(mp_ptr *)(puVar9 + -8)" * (cast_expression "(mp_ptr *)(puVar9 + -8)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -8)" ( (binary_expression "puVar9 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mp_ptr *)(puVar9 + -0xc) = local_130;" (assignment_expression "*(mp_ptr *)(puVar9 + -0xc) = local_130" (pointer_expression "*(mp_ptr *)(puVar9 + -0xc)" * (cast_expression "(mp_ptr *)(puVar9 + -0xc)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0xc)" ( (binary_expression "puVar9 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar9 + -0x10) = iVar8;" (assignment_expression "*(int *)(puVar9 + -0x10) = iVar8" (pointer_expression "*(int *)(puVar9 + -0x10)" * (cast_expression "(int *)(puVar9 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x10)" ( (binary_expression "puVar9 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x14) = 0x71736;" (assignment_expression "*(undefined4 *)(puVar9 + -0x14) = 0x71736" (pointer_expression "*(undefined4 *)(puVar9 + -0x14)" * (cast_expression "(undefined4 *)(puVar9 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x14)" ( (binary_expression "puVar9 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_sqr(*(mp_ptr *)(puVar9 + -0x10),*(mp_srcptr *)(puVar9 + -0xc),\n                   *(mp_size_t *)(puVar9 + -8));" (call_expression "__gmpn_sqr(*(mp_ptr *)(puVar9 + -0x10),*(mp_srcptr *)(puVar9 + -0xc),\n                   *(mp_size_t *)(puVar9 + -8))" identifier (argument_list "(*(mp_ptr *)(puVar9 + -0x10),*(mp_srcptr *)(puVar9 + -0xc),\n                   *(mp_size_t *)(puVar9 + -8))" ( (pointer_expression "*(mp_ptr *)(puVar9 + -0x10)" * (cast_expression "(mp_ptr *)(puVar9 + -0x10)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x10)" ( (binary_expression "puVar9 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(mp_srcptr *)(puVar9 + -0xc)" * (cast_expression "(mp_srcptr *)(puVar9 + -0xc)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0xc)" ( (binary_expression "puVar9 + -0xc" identifier + number_literal) )))) , (pointer_expression "*(mp_size_t *)(puVar9 + -8)" * (cast_expression "(mp_size_t *)(puVar9 + -8)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -8)" ( (binary_expression "puVar9 + -8" identifier + number_literal) )))) ))) ;) (expression_statement "*(uint **)(puVar9 + -0xc) = local_150[0];" (assignment_expression "*(uint **)(puVar9 + -0xc) = local_150[0]" (pointer_expression "*(uint **)(puVar9 + -0xc)" * (cast_expression "(uint **)(puVar9 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0xc)" ( (binary_expression "puVar9 + -0xc" identifier + number_literal) )))) = (subscript_expression "local_150[0]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(puVar9 + -0x10) = iVar11;" (assignment_expression "*(int *)(puVar9 + -0x10) = iVar11" (pointer_expression "*(int *)(puVar9 + -0x10)" * (cast_expression "(int *)(puVar9 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x10)" ( (binary_expression "puVar9 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x14) = 1;" (assignment_expression "*(undefined4 *)(puVar9 + -0x14) = 1" (pointer_expression "*(undefined4 *)(puVar9 + -0x14)" * (cast_expression "(undefined4 *)(puVar9 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x14)" ( (binary_expression "puVar9 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(mp_limb_t **)(puVar9 + -0x18) = local_154;" (assignment_expression "*(mp_limb_t **)(puVar9 + -0x18) = local_154" (pointer_expression "*(mp_limb_t **)(puVar9 + -0x18)" * (cast_expression "(mp_limb_t **)(puVar9 + -0x18)" ( (type_descriptor "mp_limb_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x18)" ( (binary_expression "puVar9 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar9 + -0x1c) = iVar8;" (assignment_expression "*(int *)(puVar9 + -0x1c) = iVar8" (pointer_expression "*(int *)(puVar9 + -0x1c)" * (cast_expression "(int *)(puVar9 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x1c)" ( (binary_expression "puVar9 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(void **)(puVar9 + -0x20) = local_134;" (assignment_expression "*(void **)(puVar9 + -0x20) = local_134" (pointer_expression "*(void **)(puVar9 + -0x20)" * (cast_expression "(void **)(puVar9 + -0x20)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x20)" ( (binary_expression "puVar9 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x24) = 0x71753;" (assignment_expression "*(undefined4 *)(puVar9 + -0x24) = 0x71753" (pointer_expression "*(undefined4 *)(puVar9 + -0x24)" * (cast_expression "(undefined4 *)(puVar9 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x24)" ( (binary_expression "puVar9 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_powlo(*(mp_ptr *)(puVar9 + -0x20),*(mp_srcptr *)(puVar9 + -0x1c),\n                     *(mp_srcptr *)(puVar9 + -0x18),*(mp_size_t *)(puVar9 + -0x14),\n                     *(mp_size_t *)(puVar9 + -0x10),*(mp_ptr *)(puVar9 + -0xc));" (call_expression "__gmpn_powlo(*(mp_ptr *)(puVar9 + -0x20),*(mp_srcptr *)(puVar9 + -0x1c),\n                     *(mp_srcptr *)(puVar9 + -0x18),*(mp_size_t *)(puVar9 + -0x14),\n                     *(mp_size_t *)(puVar9 + -0x10),*(mp_ptr *)(puVar9 + -0xc))" identifier (argument_list "(*(mp_ptr *)(puVar9 + -0x20),*(mp_srcptr *)(puVar9 + -0x1c),\n                     *(mp_srcptr *)(puVar9 + -0x18),*(mp_size_t *)(puVar9 + -0x14),\n                     *(mp_size_t *)(puVar9 + -0x10),*(mp_ptr *)(puVar9 + -0xc))" ( (pointer_expression "*(mp_ptr *)(puVar9 + -0x20)" * (cast_expression "(mp_ptr *)(puVar9 + -0x20)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x20)" ( (binary_expression "puVar9 + -0x20" identifier + number_literal) )))) , (pointer_expression "*(mp_srcptr *)(puVar9 + -0x1c)" * (cast_expression "(mp_srcptr *)(puVar9 + -0x1c)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x1c)" ( (binary_expression "puVar9 + -0x1c" identifier + number_literal) )))) , (pointer_expression "*(mp_srcptr *)(puVar9 + -0x18)" * (cast_expression "(mp_srcptr *)(puVar9 + -0x18)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x18)" ( (binary_expression "puVar9 + -0x18" identifier + number_literal) )))) , (pointer_expression "*(mp_size_t *)(puVar9 + -0x14)" * (cast_expression "(mp_size_t *)(puVar9 + -0x14)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x14)" ( (binary_expression "puVar9 + -0x14" identifier + number_literal) )))) , (pointer_expression "*(mp_size_t *)(puVar9 + -0x10)" * (cast_expression "(mp_size_t *)(puVar9 + -0x10)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x10)" ( (binary_expression "puVar9 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(mp_ptr *)(puVar9 + -0xc)" * (cast_expression "(mp_ptr *)(puVar9 + -0xc)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0xc)" ( (binary_expression "puVar9 + -0xc" identifier + number_literal) )))) ))) ;) (expression_statement "*(int *)(puVar9 + -4) = iVar11;" (assignment_expression "*(int *)(puVar9 + -4) = iVar11" (pointer_expression "*(int *)(puVar9 + -4)" * (cast_expression "(int *)(puVar9 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -4)" ( (binary_expression "puVar9 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar9 + -8) = local_150[2];" (assignment_expression "*(uint **)(puVar9 + -8) = local_150[2]" (pointer_expression "*(uint **)(puVar9 + -8)" * (cast_expression "(uint **)(puVar9 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -8)" ( (binary_expression "puVar9 + -8" identifier + number_literal) )))) = (subscript_expression "local_150[2]" identifier [ number_literal ])) ;) (expression_statement "*(void **)(puVar9 + -0xc) = local_134;" (assignment_expression "*(void **)(puVar9 + -0xc) = local_134" (pointer_expression "*(void **)(puVar9 + -0xc)" * (cast_expression "(void **)(puVar9 + -0xc)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0xc)" ( (binary_expression "puVar9 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar9 + -0x10) = iVar8;" (assignment_expression "*(int *)(puVar9 + -0x10) = iVar8" (pointer_expression "*(int *)(puVar9 + -0x10)" * (cast_expression "(int *)(puVar9 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x10)" ( (binary_expression "puVar9 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x14) = 0x71769;" (assignment_expression "*(undefined4 *)(puVar9 + -0x14) = 0x71769" (pointer_expression "*(undefined4 *)(puVar9 + -0x14)" * (cast_expression "(undefined4 *)(puVar9 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x14)" ( (binary_expression "puVar9 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_mullo_n(*(mp_ptr *)(puVar9 + -0x10),*(mp_srcptr *)(puVar9 + -0xc),\n                       *(mp_srcptr *)(puVar9 + -8),*(mp_size_t *)(puVar9 + -4));" (call_expression "__gmpn_mullo_n(*(mp_ptr *)(puVar9 + -0x10),*(mp_srcptr *)(puVar9 + -0xc),\n                       *(mp_srcptr *)(puVar9 + -8),*(mp_size_t *)(puVar9 + -4))" identifier (argument_list "(*(mp_ptr *)(puVar9 + -0x10),*(mp_srcptr *)(puVar9 + -0xc),\n                       *(mp_srcptr *)(puVar9 + -8),*(mp_size_t *)(puVar9 + -4))" ( (pointer_expression "*(mp_ptr *)(puVar9 + -0x10)" * (cast_expression "(mp_ptr *)(puVar9 + -0x10)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x10)" ( (binary_expression "puVar9 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(mp_srcptr *)(puVar9 + -0xc)" * (cast_expression "(mp_srcptr *)(puVar9 + -0xc)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0xc)" ( (binary_expression "puVar9 + -0xc" identifier + number_literal) )))) , (pointer_expression "*(mp_srcptr *)(puVar9 + -8)" * (cast_expression "(mp_srcptr *)(puVar9 + -8)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -8)" ( (binary_expression "puVar9 + -8" identifier + number_literal) )))) , (pointer_expression "*(mp_size_t *)(puVar9 + -4)" * (cast_expression "(mp_size_t *)(puVar9 + -4)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -4)" ( (binary_expression "puVar9 + -4" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)(puVar9 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar9 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar9 + -0xc)" * (cast_expression "(undefined4 *)(puVar9 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0xc)" ( (binary_expression "puVar9 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_13c = iVar11 - (int)local_138;" (assignment_expression "local_13c = iVar11 - (int)local_138" identifier = (binary_expression "iVar11 - (int)local_138" identifier - (cast_expression "(int)local_138" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar10 = (int)local_138 * 4;" (assignment_expression "iVar10 = (int)local_138 * 4" identifier = (binary_expression "(int)local_138 * 4" (cast_expression "(int)local_138" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "*(int *)(puVar9 + -0x10) = local_144;" (assignment_expression "*(int *)(puVar9 + -0x10) = local_144" (pointer_expression "*(int *)(puVar9 + -0x10)" * (cast_expression "(int *)(puVar9 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x10)" ( (binary_expression "puVar9 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_138 = local_130 + (int)local_138;" (assignment_expression "local_138 = local_130 + (int)local_138" identifier = (binary_expression "local_130 + (int)local_138" identifier + (cast_expression "(int)local_138" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(mp_limb_t *)(puVar9 + -0x14) = k;" (assignment_expression "*(mp_limb_t *)(puVar9 + -0x14) = k" (pointer_expression "*(mp_limb_t *)(puVar9 + -0x14)" * (cast_expression "(mp_limb_t *)(puVar9 + -0x14)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x14)" ( (binary_expression "puVar9 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar9 + -0x18) = local_13c;" (assignment_expression "*(uint *)(puVar9 + -0x18) = local_13c" (pointer_expression "*(uint *)(puVar9 + -0x18)" * (cast_expression "(uint *)(puVar9 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x18)" ( (binary_expression "puVar9 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar9 + -0x1c) = iVar10 + iVar8;" (assignment_expression "*(int *)(puVar9 + -0x1c) = iVar10 + iVar8" (pointer_expression "*(int *)(puVar9 + -0x1c)" * (cast_expression "(int *)(puVar9 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x1c)" ( (binary_expression "puVar9 + -0x1c" identifier + number_literal) )))) = (binary_expression "iVar10 + iVar8" identifier + identifier)) ;) (expression_statement "*(mp_ptr *)(puVar9 + -0x20) = local_138;" (assignment_expression "*(mp_ptr *)(puVar9 + -0x20) = local_138" (pointer_expression "*(mp_ptr *)(puVar9 + -0x20)" * (cast_expression "(mp_ptr *)(puVar9 + -0x20)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x20)" ( (binary_expression "puVar9 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x24) = 0x717a2;" (assignment_expression "*(undefined4 *)(puVar9 + -0x24) = 0x717a2" (pointer_expression "*(undefined4 *)(puVar9 + -0x24)" * (cast_expression "(undefined4 *)(puVar9 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x24)" ( (binary_expression "puVar9 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_pi1_bdiv_q_1();" (call_expression "__gmpn_pi1_bdiv_q_1()" identifier (argument_list "()" ( ))) ;) (expression_statement "mVar5 = *local_138;" (assignment_expression "mVar5 = *local_138" identifier = (pointer_expression "*local_138" * identifier)) ;) (expression_statement "pmVar7 = local_138;" (assignment_expression "pmVar7 = local_138" identifier = identifier) ;) (expression_statement "uVar3 = local_13c;" (assignment_expression "uVar3 = local_13c" identifier = identifier) ;) (while_statement "while (uVar3 = uVar3 - 1, mVar5 == 0) {\n          if (uVar3 == 0) goto LAB_000717d0;\n          pmVar7 = pmVar7 + 1;\n          mVar5 = *pmVar7;\n        }" while (parenthesized_expression "(uVar3 = uVar3 - 1, mVar5 == 0)" ( (comma_expression "uVar3 = uVar3 - 1, mVar5 == 0" (assignment_expression "uVar3 = uVar3 - 1" identifier = (binary_expression "uVar3 - 1" identifier - number_literal)) , (binary_expression "mVar5 == 0" identifier == number_literal)) )) (compound_statement "{\n          if (uVar3 == 0) goto LAB_000717d0;\n          pmVar7 = pmVar7 + 1;\n          mVar5 = *pmVar7;\n        }" { (if_statement "if (uVar3 == 0) goto LAB_000717d0;" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000717d0;" goto statement_identifier ;)) (expression_statement "pmVar7 = pmVar7 + 1;" (assignment_expression "pmVar7 = pmVar7 + 1" identifier = (binary_expression "pmVar7 + 1" identifier + number_literal)) ;) (expression_statement "mVar5 = *pmVar7;" (assignment_expression "mVar5 = *pmVar7" identifier = (pointer_expression "*pmVar7" * identifier)) ;) })) (expression_statement "*pmVar7 = -mVar5;" (assignment_expression "*pmVar7 = -mVar5" (pointer_expression "*pmVar7" * identifier) = (unary_expression "-mVar5" - identifier)) ;) (if_statement "if (uVar3 != 0) {\n          *(uint *)(puVar9 + -8) = uVar3;\n          *(mp_limb_t **)(puVar9 + -0xc) = pmVar7 + 1;\n          *(mp_limb_t **)(puVar9 + -0x10) = pmVar7 + 1;\n          *(undefined4 *)(puVar9 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          *(uint *)(puVar9 + -8) = uVar3;\n          *(mp_limb_t **)(puVar9 + -0xc) = pmVar7 + 1;\n          *(mp_limb_t **)(puVar9 + -0x10) = pmVar7 + 1;\n          *(undefined4 *)(puVar9 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }" { (expression_statement "*(uint *)(puVar9 + -8) = uVar3;" (assignment_expression "*(uint *)(puVar9 + -8) = uVar3" (pointer_expression "*(uint *)(puVar9 + -8)" * (cast_expression "(uint *)(puVar9 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -8)" ( (binary_expression "puVar9 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mp_limb_t **)(puVar9 + -0xc) = pmVar7 + 1;" (assignment_expression "*(mp_limb_t **)(puVar9 + -0xc) = pmVar7 + 1" (pointer_expression "*(mp_limb_t **)(puVar9 + -0xc)" * (cast_expression "(mp_limb_t **)(puVar9 + -0xc)" ( (type_descriptor "mp_limb_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0xc)" ( (binary_expression "puVar9 + -0xc" identifier + number_literal) )))) = (binary_expression "pmVar7 + 1" identifier + number_literal)) ;) (expression_statement "*(mp_limb_t **)(puVar9 + -0x10) = pmVar7 + 1;" (assignment_expression "*(mp_limb_t **)(puVar9 + -0x10) = pmVar7 + 1" (pointer_expression "*(mp_limb_t **)(puVar9 + -0x10)" * (cast_expression "(mp_limb_t **)(puVar9 + -0x10)" ( (type_descriptor "mp_limb_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x10)" ( (binary_expression "puVar9 + -0x10" identifier + number_literal) )))) = (binary_expression "pmVar7 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x14) = 0x7180e;" (assignment_expression "*(undefined4 *)(puVar9 + -0x14) = 0x7180e" (pointer_expression "*(undefined4 *)(puVar9 + -0x14)" * (cast_expression "(undefined4 *)(puVar9 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x14)" ( (binary_expression "puVar9 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_com();" (call_expression "__gmpn_com()" identifier (argument_list "()" ( ))) ;) })) (labeled_statement "LAB_000717d0:\n        if (local_150[1] == (uint *)local_140) break;" statement_identifier : (if_statement "if (local_150[1] == (uint *)local_140) break;" if (parenthesized_expression "(local_150[1] == (uint *)local_140)" ( (binary_expression "local_150[1] == (uint *)local_140" (subscript_expression "local_150[1]" identifier [ number_literal ]) == (cast_expression "(uint *)local_140" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (break_statement "break;" break ;))) (expression_statement "local_138 = (mp_ptr)iVar11;" (assignment_expression "local_138 = (mp_ptr)iVar11" identifier = (cast_expression "(mp_ptr)iVar11" ( (type_descriptor "mp_ptr" type_identifier) ) identifier)) ;) (expression_statement "iVar11 = local_140[-1];" (assignment_expression "iVar11 = local_140[-1]" identifier = (subscript_expression "local_140[-1]" identifier [ number_literal ])) ;) (expression_statement "local_140 = local_140 + -1;" (assignment_expression "local_140 = local_140 + -1" identifier = (binary_expression "local_140 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) })) (if_statement "if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n    *(tmp_reentrant_t **)(puVar9 + -0x10) = __tmp_marker;\n    *(undefined4 *)(puVar9 + -0x14) = 0x71897;\n    __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar9 + -0x10));\n  }" if (parenthesized_expression "(__tmp_marker != (tmp_reentrant_t *)0x0)" ( (binary_expression "__tmp_marker != (tmp_reentrant_t *)0x0" identifier != (cast_expression "(tmp_reentrant_t *)0x0" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(tmp_reentrant_t **)(puVar9 + -0x10) = __tmp_marker;\n    *(undefined4 *)(puVar9 + -0x14) = 0x71897;\n    __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar9 + -0x10));\n  }" { (expression_statement "*(tmp_reentrant_t **)(puVar9 + -0x10) = __tmp_marker;" (assignment_expression "*(tmp_reentrant_t **)(puVar9 + -0x10) = __tmp_marker" (pointer_expression "*(tmp_reentrant_t **)(puVar9 + -0x10)" * (cast_expression "(tmp_reentrant_t **)(puVar9 + -0x10)" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x10)" ( (binary_expression "puVar9 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x14) = 0x71897;" (assignment_expression "*(undefined4 *)(puVar9 + -0x14) = 0x71897" (pointer_expression "*(undefined4 *)(puVar9 + -0x14)" * (cast_expression "(undefined4 *)(puVar9 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x14)" ( (binary_expression "puVar9 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar9 + -0x10));" (call_expression "__gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar9 + -0x10))" identifier (argument_list "(*(tmp_reentrant_t **)(puVar9 + -0x10))" ( (pointer_expression "*(tmp_reentrant_t **)(puVar9 + -0x10)" * (cast_expression "(tmp_reentrant_t **)(puVar9 + -0x10)" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x10)" ( (binary_expression "puVar9 + -0x10" identifier + number_literal) )))) ))) ;) })) (if_statement "if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(iVar1 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar1 == *(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 *)(puVar9 + -4) = 0x718bf;" (assignment_expression "*(undefined4 *)(puVar9 + -4) = 0x718bf" (pointer_expression "*(undefined4 *)(puVar9 + -4)" * (cast_expression "(undefined4 *)(puVar9 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -4)" ( (binary_expression "puVar9 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void __gmpn_broot_invm1(void)\n\n{\n  undefined4 *puVar1;\n  uint uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  int unaff_EBX;\n  int iVar9;\n  undefined1 *puVar10;\n  undefined1 *puVar11;\n  int iVar12;\n  int in_GS_OFFSET;\n  int aiStackY_8094 [8137];\n  undefined1 auStack_160 [332];\n  undefined4 uStack_14;\n  \n  puVar11 = &stack0xfffffffc;\n  uStack_14 = 0x714bb;\n  entry();\n  piVar6 = *(int **)(puVar11 + 0xc);\n  *(undefined4 *)(puVar11 + -300) = *(undefined4 *)(puVar11 + 8);\n  *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  *(undefined4 *)(puVar11 + -0x120) = 0;\n  uVar2 = *(int *)(puVar11 + 0x10) * 0x10;\n  if (uVar2 < 0x7f01) {\n    puVar10 = auStack_160 + -(uVar2 + 0x10);\n    *(undefined1 **)(puVar11 + -0x144) = auStack_160 + -(uVar2 + 0x10);\n  }\n  else {\n    uVar4 = __gmp_tmp_reentrant_alloc(puVar11 + -0x120,uVar2);\n    puVar10 = auStack_160;\n    *(undefined4 *)(puVar11 + -0x144) = uVar4;\n  }\n  puVar1 = *(undefined4 **)(puVar11 + -0x144);\n  *(int *)(puVar11 + -0x134) = *(int *)(puVar11 + 0x10) * 4;\n  *(undefined4 **)(puVar11 + -0x14c) = puVar1 + *(int *)(puVar11 + 0x10);\n  iVar3 = *(int *)(puVar11 + 0x14);\n  *(undefined4 **)(puVar10 + -0xc) = puVar1 + *(int *)(puVar11 + 0x10);\n  *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + 0x10);\n  *(int *)(puVar11 + -0x128) = iVar3 + -1;\n  *(undefined4 *)(puVar10 + -0x14) = 1;\n  *(undefined1 **)(puVar10 + -0x18) = puVar11 + -0x128;\n  *(int **)(puVar10 + -0x1c) = piVar6;\n  *(undefined4 **)(puVar10 + -0x20) = puVar1;\n  *(undefined4 *)(puVar10 + -0x24) = 0x7154e;\n  __gmpn_powlo();\n  iVar3 = *piVar6;\n  iVar7 = *(int *)(unaff_EBX + 0x27a0d);\n  uVar4 = *puVar1;\n  *(uint *)(puVar11 + -0x138) = *(uint *)(puVar11 + 0x14) >> 1;\n  *(undefined4 *)(puVar11 + -0x130) = uVar4;\n  uVar2 = (uint)*(byte *)(iVar7 + (*(uint *)(puVar11 + 0x14) >> 1 & 0x7f));\n  iVar7 = uVar2 * 2 - uVar2 * uVar2 * *(int *)(puVar11 + 0x14);\n  iVar7 = iVar7 * 2 - iVar7 * iVar7 * *(int *)(puVar11 + 0x14);\n  *(int *)(puVar11 + -0x140) = iVar7;\n  iVar3 = ((iVar3 << 2 ^ iVar3 * 2) & *(int *)(puVar11 + 0x14) << 2 & 8U) + 1;\n  iVar7 = iVar7 * iVar3;\n  uVar2 = *(uint *)(puVar11 + 0x14) & 0x7f;\n  if (uVar2 == 0) {\n    iVar12 = *(int *)(puVar11 + -0x130);\n  }\n  else {\n    iVar12 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar12 = iVar12 * iVar3;\n      }\n      iVar3 = iVar3 * iVar3;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = *(int *)(puVar11 + -0x130) * iVar12;\n  }\n  iVar3 = *(int *)(puVar11 + 0x14) + 1;\n  iVar7 = iVar7 * (iVar3 - iVar12);\n  iVar12 = *(int *)(puVar11 + -0x140) * iVar7;\n  uVar2 = *(uint *)(puVar11 + 0x14) & 0x7fff;\n  if (uVar2 == 0) {\n    iVar7 = iVar3 - *(int *)(puVar11 + -0x130);\n    iVar12 = iVar12 * iVar7;\n    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;\n    if (*(int *)(puVar11 + 0x14) == 0) goto LAB_00071659;\n  }\n  else {\n    iVar5 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar5 = iVar5 * iVar7;\n      }\n      iVar7 = iVar7 * iVar7;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = iVar12 * (iVar3 - iVar5 * *(int *)(puVar11 + -0x130));\n    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;\n  }\n  uVar2 = *(uint *)(puVar11 + 0x14);\n  iVar7 = 1;\n  do {\n    if ((uVar2 & 1) != 0) {\n      iVar7 = iVar7 * iVar12;\n    }\n    iVar12 = iVar12 * iVar12;\n    uVar2 = uVar2 >> 1;\n  } while (uVar2 != 0);\n  iVar7 = iVar3 - iVar7 * *(int *)(puVar11 + -0x130);\nLAB_00071659:\n  iVar3 = *(int *)(puVar11 + 0x10);\n  **(int **)(puVar11 + -300) = iVar7 * iVar5;\n  if (iVar3 != 1) {\n    *(int *)(puVar11 + -0x124) = *(int *)(puVar11 + -0x138) + 1;\n    uVar2 = *(int *)(puVar11 + 0x10) * 8 + 4;\n    if (uVar2 < 0x7f01) {\n      iVar3 = -(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0);\n      iVar9 = (int)puVar10 + iVar3;\n      puVar10 = puVar10 + iVar3;\n      *(int *)(puVar11 + -0x130) = iVar9;\n    }\n    else {\n      *(uint *)(puVar10 + -0xc) = uVar2;\n      *(undefined1 **)(puVar10 + -0x10) = puVar11 + -0x120;\n      *(undefined4 *)(puVar10 + -0x14) = 0x718ac;\n      uVar4 = __gmp_tmp_reentrant_alloc();\n      *(undefined4 *)(puVar11 + -0x130) = uVar4;\n    }\n    if (1 < *(int *)(puVar11 + 0x10)) {\n      *(int *)(puVar11 + -0x134) = *(int *)(puVar11 + -0x134) + *(int *)(puVar11 + -0x130);\n      *(undefined1 **)(puVar11 + -0x148) = puVar11 + -0x11c;\n      iVar3 = 0;\n      iVar7 = *(int *)(puVar11 + 0x10);\n      do {\n        iVar12 = iVar7;\n        iVar5 = iVar3;\n        iVar3 = iVar5 + 1;\n        iVar7 = iVar12 + 1 >> 1;\n        *(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12;\n      } while (iVar7 != 1);\n      iVar3 = *(int *)(puVar11 + -0x134);\n      *(int *)(puVar11 + 0x10) = iVar12;\n      *(int *)(puVar11 + -0x13c) = *(int *)(puVar11 + -0x148) + iVar5 * 4;\n      *(undefined1 **)(puVar11 + -0x150) = puVar11 + -0x124;\n      do {\n        *(int *)(puVar11 + -0x134) = iVar7;\n        *(int *)(puVar10 + -8) = iVar7;\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71736;\n        __gmpn_sqr();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c);\n        *(int *)(puVar10 + -0x10) = iVar12;\n        *(undefined4 *)(puVar10 + -0x14) = 1;\n        *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150);\n        *(int *)(puVar10 + -0x1c) = iVar3;\n        *(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130);\n        *(undefined4 *)(puVar10 + -0x24) = 0x71753;\n        __gmpn_powlo();\n        *(int *)(puVar10 + -4) = iVar12;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71769;\n        __gmpn_mullo_n();\n        iVar7 = *(int *)(puVar11 + -0x134);\n        iVar5 = *(int *)(puVar11 + -300);\n        *(undefined4 *)(puVar10 + -0xc) = 0;\n        iVar8 = iVar12 - iVar7;\n        iVar7 = iVar7 * 4;\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140);\n        iVar5 = iVar5 + iVar7;\n        *(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14);\n        *(int *)(puVar10 + -0x18) = iVar8;\n        *(int *)(puVar10 + -0x1c) = iVar7 + iVar3;\n        *(int *)(puVar10 + -0x20) = iVar5;\n        *(int *)(puVar11 + -0x138) = iVar8;\n        *(int *)(puVar11 + -0x134) = iVar5;\n        *(undefined4 *)(puVar10 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        piVar6 = *(int **)(puVar11 + -0x134);\n        iVar7 = *(int *)(puVar11 + -0x138);\n        iVar5 = *piVar6;\n        while (iVar7 = iVar7 + -1, iVar5 == 0) {\n          if (iVar7 == 0) goto LAB_000717d0;\n          piVar6 = piVar6 + 1;\n          iVar5 = *piVar6;\n        }\n        *piVar6 = -iVar5;\n        if (iVar7 != 0) {\n          *(int *)(puVar10 + -8) = iVar7;\n          *(int **)(puVar10 + -0xc) = piVar6 + 1;\n          *(int **)(puVar10 + -0x10) = piVar6 + 1;\n          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        iVar7 = *(int *)(puVar11 + -0x13c);\n        if (*(int *)(puVar11 + -0x148) == iVar7) break;\n        iVar5 = *(int *)(iVar7 + -4);\n        *(int *)(puVar11 + -0x13c) = iVar7 + -4;\n        iVar7 = iVar12;\n        iVar12 = iVar5;\n      } while( true );\n    }\n  }\n  if (*(int *)(puVar11 + -0x120) != 0) {\n    *(int *)(puVar10 + -0x10) = *(int *)(puVar11 + -0x120);\n    *(undefined4 *)(puVar10 + -0x14) = 0x71897;\n    __gmp_tmp_reentrant_free();\n  }\n  if (*(int *)(puVar11 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  *(undefined4 *)(puVar10 + -4) = 0x718bf;\n  FUN_00079d30();\n}\n\n" (function_definition "void __gmpn_broot_invm1(void)\n\n{\n  undefined4 *puVar1;\n  uint uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  int unaff_EBX;\n  int iVar9;\n  undefined1 *puVar10;\n  undefined1 *puVar11;\n  int iVar12;\n  int in_GS_OFFSET;\n  int aiStackY_8094 [8137];\n  undefined1 auStack_160 [332];\n  undefined4 uStack_14;\n  \n  puVar11 = &stack0xfffffffc;\n  uStack_14 = 0x714bb;\n  entry();\n  piVar6 = *(int **)(puVar11 + 0xc);\n  *(undefined4 *)(puVar11 + -300) = *(undefined4 *)(puVar11 + 8);\n  *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  *(undefined4 *)(puVar11 + -0x120) = 0;\n  uVar2 = *(int *)(puVar11 + 0x10) * 0x10;\n  if (uVar2 < 0x7f01) {\n    puVar10 = auStack_160 + -(uVar2 + 0x10);\n    *(undefined1 **)(puVar11 + -0x144) = auStack_160 + -(uVar2 + 0x10);\n  }\n  else {\n    uVar4 = __gmp_tmp_reentrant_alloc(puVar11 + -0x120,uVar2);\n    puVar10 = auStack_160;\n    *(undefined4 *)(puVar11 + -0x144) = uVar4;\n  }\n  puVar1 = *(undefined4 **)(puVar11 + -0x144);\n  *(int *)(puVar11 + -0x134) = *(int *)(puVar11 + 0x10) * 4;\n  *(undefined4 **)(puVar11 + -0x14c) = puVar1 + *(int *)(puVar11 + 0x10);\n  iVar3 = *(int *)(puVar11 + 0x14);\n  *(undefined4 **)(puVar10 + -0xc) = puVar1 + *(int *)(puVar11 + 0x10);\n  *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + 0x10);\n  *(int *)(puVar11 + -0x128) = iVar3 + -1;\n  *(undefined4 *)(puVar10 + -0x14) = 1;\n  *(undefined1 **)(puVar10 + -0x18) = puVar11 + -0x128;\n  *(int **)(puVar10 + -0x1c) = piVar6;\n  *(undefined4 **)(puVar10 + -0x20) = puVar1;\n  *(undefined4 *)(puVar10 + -0x24) = 0x7154e;\n  __gmpn_powlo();\n  iVar3 = *piVar6;\n  iVar7 = *(int *)(unaff_EBX + 0x27a0d);\n  uVar4 = *puVar1;\n  *(uint *)(puVar11 + -0x138) = *(uint *)(puVar11 + 0x14) >> 1;\n  *(undefined4 *)(puVar11 + -0x130) = uVar4;\n  uVar2 = (uint)*(byte *)(iVar7 + (*(uint *)(puVar11 + 0x14) >> 1 & 0x7f));\n  iVar7 = uVar2 * 2 - uVar2 * uVar2 * *(int *)(puVar11 + 0x14);\n  iVar7 = iVar7 * 2 - iVar7 * iVar7 * *(int *)(puVar11 + 0x14);\n  *(int *)(puVar11 + -0x140) = iVar7;\n  iVar3 = ((iVar3 << 2 ^ iVar3 * 2) & *(int *)(puVar11 + 0x14) << 2 & 8U) + 1;\n  iVar7 = iVar7 * iVar3;\n  uVar2 = *(uint *)(puVar11 + 0x14) & 0x7f;\n  if (uVar2 == 0) {\n    iVar12 = *(int *)(puVar11 + -0x130);\n  }\n  else {\n    iVar12 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar12 = iVar12 * iVar3;\n      }\n      iVar3 = iVar3 * iVar3;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = *(int *)(puVar11 + -0x130) * iVar12;\n  }\n  iVar3 = *(int *)(puVar11 + 0x14) + 1;\n  iVar7 = iVar7 * (iVar3 - iVar12);\n  iVar12 = *(int *)(puVar11 + -0x140) * iVar7;\n  uVar2 = *(uint *)(puVar11 + 0x14) & 0x7fff;\n  if (uVar2 == 0) {\n    iVar7 = iVar3 - *(int *)(puVar11 + -0x130);\n    iVar12 = iVar12 * iVar7;\n    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;\n    if (*(int *)(puVar11 + 0x14) == 0) goto LAB_00071659;\n  }\n  else {\n    iVar5 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar5 = iVar5 * iVar7;\n      }\n      iVar7 = iVar7 * iVar7;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = iVar12 * (iVar3 - iVar5 * *(int *)(puVar11 + -0x130));\n    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;\n  }\n  uVar2 = *(uint *)(puVar11 + 0x14);\n  iVar7 = 1;\n  do {\n    if ((uVar2 & 1) != 0) {\n      iVar7 = iVar7 * iVar12;\n    }\n    iVar12 = iVar12 * iVar12;\n    uVar2 = uVar2 >> 1;\n  } while (uVar2 != 0);\n  iVar7 = iVar3 - iVar7 * *(int *)(puVar11 + -0x130);\nLAB_00071659:\n  iVar3 = *(int *)(puVar11 + 0x10);\n  **(int **)(puVar11 + -300) = iVar7 * iVar5;\n  if (iVar3 != 1) {\n    *(int *)(puVar11 + -0x124) = *(int *)(puVar11 + -0x138) + 1;\n    uVar2 = *(int *)(puVar11 + 0x10) * 8 + 4;\n    if (uVar2 < 0x7f01) {\n      iVar3 = -(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0);\n      iVar9 = (int)puVar10 + iVar3;\n      puVar10 = puVar10 + iVar3;\n      *(int *)(puVar11 + -0x130) = iVar9;\n    }\n    else {\n      *(uint *)(puVar10 + -0xc) = uVar2;\n      *(undefined1 **)(puVar10 + -0x10) = puVar11 + -0x120;\n      *(undefined4 *)(puVar10 + -0x14) = 0x718ac;\n      uVar4 = __gmp_tmp_reentrant_alloc();\n      *(undefined4 *)(puVar11 + -0x130) = uVar4;\n    }\n    if (1 < *(int *)(puVar11 + 0x10)) {\n      *(int *)(puVar11 + -0x134) = *(int *)(puVar11 + -0x134) + *(int *)(puVar11 + -0x130);\n      *(undefined1 **)(puVar11 + -0x148) = puVar11 + -0x11c;\n      iVar3 = 0;\n      iVar7 = *(int *)(puVar11 + 0x10);\n      do {\n        iVar12 = iVar7;\n        iVar5 = iVar3;\n        iVar3 = iVar5 + 1;\n        iVar7 = iVar12 + 1 >> 1;\n        *(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12;\n      } while (iVar7 != 1);\n      iVar3 = *(int *)(puVar11 + -0x134);\n      *(int *)(puVar11 + 0x10) = iVar12;\n      *(int *)(puVar11 + -0x13c) = *(int *)(puVar11 + -0x148) + iVar5 * 4;\n      *(undefined1 **)(puVar11 + -0x150) = puVar11 + -0x124;\n      do {\n        *(int *)(puVar11 + -0x134) = iVar7;\n        *(int *)(puVar10 + -8) = iVar7;\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71736;\n        __gmpn_sqr();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c);\n        *(int *)(puVar10 + -0x10) = iVar12;\n        *(undefined4 *)(puVar10 + -0x14) = 1;\n        *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150);\n        *(int *)(puVar10 + -0x1c) = iVar3;\n        *(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130);\n        *(undefined4 *)(puVar10 + -0x24) = 0x71753;\n        __gmpn_powlo();\n        *(int *)(puVar10 + -4) = iVar12;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71769;\n        __gmpn_mullo_n();\n        iVar7 = *(int *)(puVar11 + -0x134);\n        iVar5 = *(int *)(puVar11 + -300);\n        *(undefined4 *)(puVar10 + -0xc) = 0;\n        iVar8 = iVar12 - iVar7;\n        iVar7 = iVar7 * 4;\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140);\n        iVar5 = iVar5 + iVar7;\n        *(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14);\n        *(int *)(puVar10 + -0x18) = iVar8;\n        *(int *)(puVar10 + -0x1c) = iVar7 + iVar3;\n        *(int *)(puVar10 + -0x20) = iVar5;\n        *(int *)(puVar11 + -0x138) = iVar8;\n        *(int *)(puVar11 + -0x134) = iVar5;\n        *(undefined4 *)(puVar10 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        piVar6 = *(int **)(puVar11 + -0x134);\n        iVar7 = *(int *)(puVar11 + -0x138);\n        iVar5 = *piVar6;\n        while (iVar7 = iVar7 + -1, iVar5 == 0) {\n          if (iVar7 == 0) goto LAB_000717d0;\n          piVar6 = piVar6 + 1;\n          iVar5 = *piVar6;\n        }\n        *piVar6 = -iVar5;\n        if (iVar7 != 0) {\n          *(int *)(puVar10 + -8) = iVar7;\n          *(int **)(puVar10 + -0xc) = piVar6 + 1;\n          *(int **)(puVar10 + -0x10) = piVar6 + 1;\n          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        iVar7 = *(int *)(puVar11 + -0x13c);\n        if (*(int *)(puVar11 + -0x148) == iVar7) break;\n        iVar5 = *(int *)(iVar7 + -4);\n        *(int *)(puVar11 + -0x13c) = iVar7 + -4;\n        iVar7 = iVar12;\n        iVar12 = iVar5;\n      } while( true );\n    }\n  }\n  if (*(int *)(puVar11 + -0x120) != 0) {\n    *(int *)(puVar10 + -0x10) = *(int *)(puVar11 + -0x120);\n    *(undefined4 *)(puVar10 + -0x14) = 0x71897;\n    __gmp_tmp_reentrant_free();\n  }\n  if (*(int *)(puVar11 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  *(undefined4 *)(puVar10 + -4) = 0x718bf;\n  FUN_00079d30();\n}" primitive_type (function_declarator "__gmpn_broot_invm1(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined4 *puVar1;\n  uint uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  int unaff_EBX;\n  int iVar9;\n  undefined1 *puVar10;\n  undefined1 *puVar11;\n  int iVar12;\n  int in_GS_OFFSET;\n  int aiStackY_8094 [8137];\n  undefined1 auStack_160 [332];\n  undefined4 uStack_14;\n  \n  puVar11 = &stack0xfffffffc;\n  uStack_14 = 0x714bb;\n  entry();\n  piVar6 = *(int **)(puVar11 + 0xc);\n  *(undefined4 *)(puVar11 + -300) = *(undefined4 *)(puVar11 + 8);\n  *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  *(undefined4 *)(puVar11 + -0x120) = 0;\n  uVar2 = *(int *)(puVar11 + 0x10) * 0x10;\n  if (uVar2 < 0x7f01) {\n    puVar10 = auStack_160 + -(uVar2 + 0x10);\n    *(undefined1 **)(puVar11 + -0x144) = auStack_160 + -(uVar2 + 0x10);\n  }\n  else {\n    uVar4 = __gmp_tmp_reentrant_alloc(puVar11 + -0x120,uVar2);\n    puVar10 = auStack_160;\n    *(undefined4 *)(puVar11 + -0x144) = uVar4;\n  }\n  puVar1 = *(undefined4 **)(puVar11 + -0x144);\n  *(int *)(puVar11 + -0x134) = *(int *)(puVar11 + 0x10) * 4;\n  *(undefined4 **)(puVar11 + -0x14c) = puVar1 + *(int *)(puVar11 + 0x10);\n  iVar3 = *(int *)(puVar11 + 0x14);\n  *(undefined4 **)(puVar10 + -0xc) = puVar1 + *(int *)(puVar11 + 0x10);\n  *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + 0x10);\n  *(int *)(puVar11 + -0x128) = iVar3 + -1;\n  *(undefined4 *)(puVar10 + -0x14) = 1;\n  *(undefined1 **)(puVar10 + -0x18) = puVar11 + -0x128;\n  *(int **)(puVar10 + -0x1c) = piVar6;\n  *(undefined4 **)(puVar10 + -0x20) = puVar1;\n  *(undefined4 *)(puVar10 + -0x24) = 0x7154e;\n  __gmpn_powlo();\n  iVar3 = *piVar6;\n  iVar7 = *(int *)(unaff_EBX + 0x27a0d);\n  uVar4 = *puVar1;\n  *(uint *)(puVar11 + -0x138) = *(uint *)(puVar11 + 0x14) >> 1;\n  *(undefined4 *)(puVar11 + -0x130) = uVar4;\n  uVar2 = (uint)*(byte *)(iVar7 + (*(uint *)(puVar11 + 0x14) >> 1 & 0x7f));\n  iVar7 = uVar2 * 2 - uVar2 * uVar2 * *(int *)(puVar11 + 0x14);\n  iVar7 = iVar7 * 2 - iVar7 * iVar7 * *(int *)(puVar11 + 0x14);\n  *(int *)(puVar11 + -0x140) = iVar7;\n  iVar3 = ((iVar3 << 2 ^ iVar3 * 2) & *(int *)(puVar11 + 0x14) << 2 & 8U) + 1;\n  iVar7 = iVar7 * iVar3;\n  uVar2 = *(uint *)(puVar11 + 0x14) & 0x7f;\n  if (uVar2 == 0) {\n    iVar12 = *(int *)(puVar11 + -0x130);\n  }\n  else {\n    iVar12 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar12 = iVar12 * iVar3;\n      }\n      iVar3 = iVar3 * iVar3;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = *(int *)(puVar11 + -0x130) * iVar12;\n  }\n  iVar3 = *(int *)(puVar11 + 0x14) + 1;\n  iVar7 = iVar7 * (iVar3 - iVar12);\n  iVar12 = *(int *)(puVar11 + -0x140) * iVar7;\n  uVar2 = *(uint *)(puVar11 + 0x14) & 0x7fff;\n  if (uVar2 == 0) {\n    iVar7 = iVar3 - *(int *)(puVar11 + -0x130);\n    iVar12 = iVar12 * iVar7;\n    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;\n    if (*(int *)(puVar11 + 0x14) == 0) goto LAB_00071659;\n  }\n  else {\n    iVar5 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar5 = iVar5 * iVar7;\n      }\n      iVar7 = iVar7 * iVar7;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = iVar12 * (iVar3 - iVar5 * *(int *)(puVar11 + -0x130));\n    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;\n  }\n  uVar2 = *(uint *)(puVar11 + 0x14);\n  iVar7 = 1;\n  do {\n    if ((uVar2 & 1) != 0) {\n      iVar7 = iVar7 * iVar12;\n    }\n    iVar12 = iVar12 * iVar12;\n    uVar2 = uVar2 >> 1;\n  } while (uVar2 != 0);\n  iVar7 = iVar3 - iVar7 * *(int *)(puVar11 + -0x130);\nLAB_00071659:\n  iVar3 = *(int *)(puVar11 + 0x10);\n  **(int **)(puVar11 + -300) = iVar7 * iVar5;\n  if (iVar3 != 1) {\n    *(int *)(puVar11 + -0x124) = *(int *)(puVar11 + -0x138) + 1;\n    uVar2 = *(int *)(puVar11 + 0x10) * 8 + 4;\n    if (uVar2 < 0x7f01) {\n      iVar3 = -(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0);\n      iVar9 = (int)puVar10 + iVar3;\n      puVar10 = puVar10 + iVar3;\n      *(int *)(puVar11 + -0x130) = iVar9;\n    }\n    else {\n      *(uint *)(puVar10 + -0xc) = uVar2;\n      *(undefined1 **)(puVar10 + -0x10) = puVar11 + -0x120;\n      *(undefined4 *)(puVar10 + -0x14) = 0x718ac;\n      uVar4 = __gmp_tmp_reentrant_alloc();\n      *(undefined4 *)(puVar11 + -0x130) = uVar4;\n    }\n    if (1 < *(int *)(puVar11 + 0x10)) {\n      *(int *)(puVar11 + -0x134) = *(int *)(puVar11 + -0x134) + *(int *)(puVar11 + -0x130);\n      *(undefined1 **)(puVar11 + -0x148) = puVar11 + -0x11c;\n      iVar3 = 0;\n      iVar7 = *(int *)(puVar11 + 0x10);\n      do {\n        iVar12 = iVar7;\n        iVar5 = iVar3;\n        iVar3 = iVar5 + 1;\n        iVar7 = iVar12 + 1 >> 1;\n        *(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12;\n      } while (iVar7 != 1);\n      iVar3 = *(int *)(puVar11 + -0x134);\n      *(int *)(puVar11 + 0x10) = iVar12;\n      *(int *)(puVar11 + -0x13c) = *(int *)(puVar11 + -0x148) + iVar5 * 4;\n      *(undefined1 **)(puVar11 + -0x150) = puVar11 + -0x124;\n      do {\n        *(int *)(puVar11 + -0x134) = iVar7;\n        *(int *)(puVar10 + -8) = iVar7;\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71736;\n        __gmpn_sqr();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c);\n        *(int *)(puVar10 + -0x10) = iVar12;\n        *(undefined4 *)(puVar10 + -0x14) = 1;\n        *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150);\n        *(int *)(puVar10 + -0x1c) = iVar3;\n        *(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130);\n        *(undefined4 *)(puVar10 + -0x24) = 0x71753;\n        __gmpn_powlo();\n        *(int *)(puVar10 + -4) = iVar12;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71769;\n        __gmpn_mullo_n();\n        iVar7 = *(int *)(puVar11 + -0x134);\n        iVar5 = *(int *)(puVar11 + -300);\n        *(undefined4 *)(puVar10 + -0xc) = 0;\n        iVar8 = iVar12 - iVar7;\n        iVar7 = iVar7 * 4;\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140);\n        iVar5 = iVar5 + iVar7;\n        *(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14);\n        *(int *)(puVar10 + -0x18) = iVar8;\n        *(int *)(puVar10 + -0x1c) = iVar7 + iVar3;\n        *(int *)(puVar10 + -0x20) = iVar5;\n        *(int *)(puVar11 + -0x138) = iVar8;\n        *(int *)(puVar11 + -0x134) = iVar5;\n        *(undefined4 *)(puVar10 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        piVar6 = *(int **)(puVar11 + -0x134);\n        iVar7 = *(int *)(puVar11 + -0x138);\n        iVar5 = *piVar6;\n        while (iVar7 = iVar7 + -1, iVar5 == 0) {\n          if (iVar7 == 0) goto LAB_000717d0;\n          piVar6 = piVar6 + 1;\n          iVar5 = *piVar6;\n        }\n        *piVar6 = -iVar5;\n        if (iVar7 != 0) {\n          *(int *)(puVar10 + -8) = iVar7;\n          *(int **)(puVar10 + -0xc) = piVar6 + 1;\n          *(int **)(puVar10 + -0x10) = piVar6 + 1;\n          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        iVar7 = *(int *)(puVar11 + -0x13c);\n        if (*(int *)(puVar11 + -0x148) == iVar7) break;\n        iVar5 = *(int *)(iVar7 + -4);\n        *(int *)(puVar11 + -0x13c) = iVar7 + -4;\n        iVar7 = iVar12;\n        iVar12 = iVar5;\n      } while( true );\n    }\n  }\n  if (*(int *)(puVar11 + -0x120) != 0) {\n    *(int *)(puVar10 + -0x10) = *(int *)(puVar11 + -0x120);\n    *(undefined4 *)(puVar10 + -0x14) = 0x71897;\n    __gmp_tmp_reentrant_free();\n  }\n  if (*(int *)(puVar11 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  *(undefined4 *)(puVar10 + -4) = 0x718bf;\n  FUN_00079d30();\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int unaff_EBX;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined1 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "int aiStackY_8094 [8137];" primitive_type (array_declarator "aiStackY_8094 [8137]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_160 [332];" type_identifier (array_declarator "auStack_160 [332]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "puVar11 = &stack0xfffffffc;" (assignment_expression "puVar11 = &stack0xfffffffc" identifier = (pointer_expression "&stack0xfffffffc" & identifier)) ;) (expression_statement "uStack_14 = 0x714bb;" (assignment_expression "uStack_14 = 0x714bb" identifier = number_literal) ;) (expression_statement "entry();" (call_expression "entry()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar6 = *(int **)(puVar11 + 0xc);" (assignment_expression "piVar6 = *(int **)(puVar11 + 0xc)" identifier = (pointer_expression "*(int **)(puVar11 + 0xc)" * (cast_expression "(int **)(puVar11 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0xc)" ( (binary_expression "puVar11 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar11 + -300) = *(undefined4 *)(puVar11 + 8);" (assignment_expression "*(undefined4 *)(puVar11 + -300) = *(undefined4 *)(puVar11 + 8)" (pointer_expression "*(undefined4 *)(puVar11 + -300)" * (cast_expression "(undefined4 *)(puVar11 + -300)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -300)" ( (binary_expression "puVar11 + -300" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar11 + 8)" * (cast_expression "(undefined4 *)(puVar11 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 8)" ( (binary_expression "puVar11 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(in_GS_OFFSET + 0x14);" (assignment_expression "*(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(in_GS_OFFSET + 0x14)" (pointer_expression "*(undefined4 *)(puVar11 + -0x1c)" * (cast_expression "(undefined4 *)(puVar11 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x1c)" ( (binary_expression "puVar11 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(in_GS_OFFSET + 0x14)" * (cast_expression "(undefined4 *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x120) = 0;" (assignment_expression "*(undefined4 *)(puVar11 + -0x120) = 0" (pointer_expression "*(undefined4 *)(puVar11 + -0x120)" * (cast_expression "(undefined4 *)(puVar11 + -0x120)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x120)" ( (binary_expression "puVar11 + -0x120" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar2 = *(int *)(puVar11 + 0x10) * 0x10;" (assignment_expression "uVar2 = *(int *)(puVar11 + 0x10) * 0x10" identifier = (binary_expression "*(int *)(puVar11 + 0x10) * 0x10" (pointer_expression "*(int *)(puVar11 + 0x10)" * (cast_expression "(int *)(puVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) )))) * number_literal)) ;) (if_statement "if (uVar2 < 0x7f01) {\n    puVar10 = auStack_160 + -(uVar2 + 0x10);\n    *(undefined1 **)(puVar11 + -0x144) = auStack_160 + -(uVar2 + 0x10);\n  }\n  else {\n    uVar4 = __gmp_tmp_reentrant_alloc(puVar11 + -0x120,uVar2);\n    puVar10 = auStack_160;\n    *(undefined4 *)(puVar11 + -0x144) = uVar4;\n  }" if (parenthesized_expression "(uVar2 < 0x7f01)" ( (binary_expression "uVar2 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n    puVar10 = auStack_160 + -(uVar2 + 0x10);\n    *(undefined1 **)(puVar11 + -0x144) = auStack_160 + -(uVar2 + 0x10);\n  }" { (expression_statement "puVar10 = auStack_160 + -(uVar2 + 0x10);" (assignment_expression "puVar10 = auStack_160 + -(uVar2 + 0x10)" identifier = (binary_expression "auStack_160 + -(uVar2 + 0x10)" identifier + (unary_expression "-(uVar2 + 0x10)" - (parenthesized_expression "(uVar2 + 0x10)" ( (binary_expression "uVar2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar11 + -0x144) = auStack_160 + -(uVar2 + 0x10);" (assignment_expression "*(undefined1 **)(puVar11 + -0x144) = auStack_160 + -(uVar2 + 0x10)" (pointer_expression "*(undefined1 **)(puVar11 + -0x144)" * (cast_expression "(undefined1 **)(puVar11 + -0x144)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x144)" ( (binary_expression "puVar11 + -0x144" identifier + number_literal) )))) = (binary_expression "auStack_160 + -(uVar2 + 0x10)" identifier + (unary_expression "-(uVar2 + 0x10)" - (parenthesized_expression "(uVar2 + 0x10)" ( (binary_expression "uVar2 + 0x10" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    uVar4 = __gmp_tmp_reentrant_alloc(puVar11 + -0x120,uVar2);\n    puVar10 = auStack_160;\n    *(undefined4 *)(puVar11 + -0x144) = uVar4;\n  }" else (compound_statement "{\n    uVar4 = __gmp_tmp_reentrant_alloc(puVar11 + -0x120,uVar2);\n    puVar10 = auStack_160;\n    *(undefined4 *)(puVar11 + -0x144) = uVar4;\n  }" { (expression_statement "uVar4 = __gmp_tmp_reentrant_alloc(puVar11 + -0x120,uVar2);" (assignment_expression "uVar4 = __gmp_tmp_reentrant_alloc(puVar11 + -0x120,uVar2)" identifier = (call_expression "__gmp_tmp_reentrant_alloc(puVar11 + -0x120,uVar2)" identifier (argument_list "(puVar11 + -0x120,uVar2)" ( (binary_expression "puVar11 + -0x120" identifier + number_literal) , identifier )))) ;) (expression_statement "puVar10 = auStack_160;" (assignment_expression "puVar10 = auStack_160" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x144) = uVar4;" (assignment_expression "*(undefined4 *)(puVar11 + -0x144) = uVar4" (pointer_expression "*(undefined4 *)(puVar11 + -0x144)" * (cast_expression "(undefined4 *)(puVar11 + -0x144)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x144)" ( (binary_expression "puVar11 + -0x144" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "puVar1 = *(undefined4 **)(puVar11 + -0x144);" (assignment_expression "puVar1 = *(undefined4 **)(puVar11 + -0x144)" identifier = (pointer_expression "*(undefined4 **)(puVar11 + -0x144)" * (cast_expression "(undefined4 **)(puVar11 + -0x144)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x144)" ( (binary_expression "puVar11 + -0x144" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar11 + -0x134) = *(int *)(puVar11 + 0x10) * 4;" (assignment_expression "*(int *)(puVar11 + -0x134) = *(int *)(puVar11 + 0x10) * 4" (pointer_expression "*(int *)(puVar11 + -0x134)" * (cast_expression "(int *)(puVar11 + -0x134)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x134)" ( (binary_expression "puVar11 + -0x134" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar11 + 0x10) * 4" (pointer_expression "*(int *)(puVar11 + 0x10)" * (cast_expression "(int *)(puVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) )))) * number_literal)) ;) (expression_statement "*(undefined4 **)(puVar11 + -0x14c) = puVar1 + *(int *)(puVar11 + 0x10);" (assignment_expression "*(undefined4 **)(puVar11 + -0x14c) = puVar1 + *(int *)(puVar11 + 0x10)" (pointer_expression "*(undefined4 **)(puVar11 + -0x14c)" * (cast_expression "(undefined4 **)(puVar11 + -0x14c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x14c)" ( (binary_expression "puVar11 + -0x14c" identifier + number_literal) )))) = (binary_expression "puVar1 + *(int *)(puVar11 + 0x10)" identifier + (pointer_expression "*(int *)(puVar11 + 0x10)" * (cast_expression "(int *)(puVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "iVar3 = *(int *)(puVar11 + 0x14);" (assignment_expression "iVar3 = *(int *)(puVar11 + 0x14)" identifier = (pointer_expression "*(int *)(puVar11 + 0x14)" * (cast_expression "(int *)(puVar11 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 **)(puVar10 + -0xc) = puVar1 + *(int *)(puVar11 + 0x10);" (assignment_expression "*(undefined4 **)(puVar10 + -0xc) = puVar1 + *(int *)(puVar11 + 0x10)" (pointer_expression "*(undefined4 **)(puVar10 + -0xc)" * (cast_expression "(undefined4 **)(puVar10 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) = (binary_expression "puVar1 + *(int *)(puVar11 + 0x10)" identifier + (pointer_expression "*(int *)(puVar11 + 0x10)" * (cast_expression "(int *)(puVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + 0x10);" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + 0x10)" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" * (cast_expression "(undefined4 *)(puVar10 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar11 + 0x10)" * (cast_expression "(undefined4 *)(puVar11 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar11 + -0x128) = iVar3 + -1;" (assignment_expression "*(int *)(puVar11 + -0x128) = iVar3 + -1" (pointer_expression "*(int *)(puVar11 + -0x128)" * (cast_expression "(int *)(puVar11 + -0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x128)" ( (binary_expression "puVar11 + -0x128" identifier + number_literal) )))) = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 1;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 1" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar10 + -0x18) = puVar11 + -0x128;" (assignment_expression "*(undefined1 **)(puVar10 + -0x18) = puVar11 + -0x128" (pointer_expression "*(undefined1 **)(puVar10 + -0x18)" * (cast_expression "(undefined1 **)(puVar10 + -0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x18)" ( (binary_expression "puVar10 + -0x18" identifier + number_literal) )))) = (binary_expression "puVar11 + -0x128" identifier + number_literal)) ;) (expression_statement "*(int **)(puVar10 + -0x1c) = piVar6;" (assignment_expression "*(int **)(puVar10 + -0x1c) = piVar6" (pointer_expression "*(int **)(puVar10 + -0x1c)" * (cast_expression "(int **)(puVar10 + -0x1c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x1c)" ( (binary_expression "puVar10 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar10 + -0x20) = puVar1;" (assignment_expression "*(undefined4 **)(puVar10 + -0x20) = puVar1" (pointer_expression "*(undefined4 **)(puVar10 + -0x20)" * (cast_expression "(undefined4 **)(puVar10 + -0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x20)" ( (binary_expression "puVar10 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x24) = 0x7154e;" (assignment_expression "*(undefined4 *)(puVar10 + -0x24) = 0x7154e" (pointer_expression "*(undefined4 *)(puVar10 + -0x24)" * (cast_expression "(undefined4 *)(puVar10 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x24)" ( (binary_expression "puVar10 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_powlo();" (call_expression "__gmpn_powlo()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar3 = *piVar6;" (assignment_expression "iVar3 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "iVar7 = *(int *)(unaff_EBX + 0x27a0d);" (assignment_expression "iVar7 = *(int *)(unaff_EBX + 0x27a0d)" identifier = (pointer_expression "*(int *)(unaff_EBX + 0x27a0d)" * (cast_expression "(int *)(unaff_EBX + 0x27a0d)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBX + 0x27a0d)" ( (binary_expression "unaff_EBX + 0x27a0d" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *puVar1;" (assignment_expression "uVar4 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "*(uint *)(puVar11 + -0x138) = *(uint *)(puVar11 + 0x14) >> 1;" (assignment_expression "*(uint *)(puVar11 + -0x138) = *(uint *)(puVar11 + 0x14) >> 1" (pointer_expression "*(uint *)(puVar11 + -0x138)" * (cast_expression "(uint *)(puVar11 + -0x138)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x138)" ( (binary_expression "puVar11 + -0x138" identifier + number_literal) )))) = (binary_expression "*(uint *)(puVar11 + 0x14) >> 1" (pointer_expression "*(uint *)(puVar11 + 0x14)" * (cast_expression "(uint *)(puVar11 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) )))) >> number_literal)) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x130) = uVar4;" (assignment_expression "*(undefined4 *)(puVar11 + -0x130) = uVar4" (pointer_expression "*(undefined4 *)(puVar11 + -0x130)" * (cast_expression "(undefined4 *)(puVar11 + -0x130)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x130)" ( (binary_expression "puVar11 + -0x130" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (uint)*(byte *)(iVar7 + (*(uint *)(puVar11 + 0x14) >> 1 & 0x7f));" (assignment_expression "uVar2 = (uint)*(byte *)(iVar7 + (*(uint *)(puVar11 + 0x14) >> 1 & 0x7f))" identifier = (binary_expression "(uint)*(byte *)(iVar7 + (*(uint *)(puVar11 + 0x14) >> 1 & 0x7f))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar7 + (*(uint *)(puVar11 + 0x14) >> 1 & 0x7f))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + (*(uint *)(puVar11 + 0x14) >> 1 & 0x7f))" ( (binary_expression "iVar7 + (*(uint *)(puVar11 + 0x14) >> 1 & 0x7f)" identifier + (parenthesized_expression "(*(uint *)(puVar11 + 0x14) >> 1 & 0x7f)" ( (binary_expression "*(uint *)(puVar11 + 0x14) >> 1 & 0x7f" (binary_expression "*(uint *)(puVar11 + 0x14) >> 1" (pointer_expression "*(uint *)(puVar11 + 0x14)" * (cast_expression "(uint *)(puVar11 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) )))) >> number_literal) & number_literal) ))) ))))) ;) (expression_statement "iVar7 = uVar2 * 2 - uVar2 * uVar2 * *(int *)(puVar11 + 0x14);" (assignment_expression "iVar7 = uVar2 * 2 - uVar2 * uVar2 * *(int *)(puVar11 + 0x14)" identifier = (binary_expression "uVar2 * 2 - uVar2 * uVar2 * *(int *)(puVar11 + 0x14)" (binary_expression "uVar2 * 2" identifier * number_literal) - (binary_expression "uVar2 * uVar2 * *(int *)(puVar11 + 0x14)" (binary_expression "uVar2 * uVar2" identifier * identifier) * (pointer_expression "*(int *)(puVar11 + 0x14)" * (cast_expression "(int *)(puVar11 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) ))))))) ;) (expression_statement "iVar7 = iVar7 * 2 - iVar7 * iVar7 * *(int *)(puVar11 + 0x14);" (assignment_expression "iVar7 = iVar7 * 2 - iVar7 * iVar7 * *(int *)(puVar11 + 0x14)" identifier = (binary_expression "iVar7 * 2 - iVar7 * iVar7 * *(int *)(puVar11 + 0x14)" (binary_expression "iVar7 * 2" identifier * number_literal) - (binary_expression "iVar7 * iVar7 * *(int *)(puVar11 + 0x14)" (binary_expression "iVar7 * iVar7" identifier * identifier) * (pointer_expression "*(int *)(puVar11 + 0x14)" * (cast_expression "(int *)(puVar11 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) ))))))) ;) (expression_statement "*(int *)(puVar11 + -0x140) = iVar7;" (assignment_expression "*(int *)(puVar11 + -0x140) = iVar7" (pointer_expression "*(int *)(puVar11 + -0x140)" * (cast_expression "(int *)(puVar11 + -0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x140)" ( (binary_expression "puVar11 + -0x140" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar3 = ((iVar3 << 2 ^ iVar3 * 2) & *(int *)(puVar11 + 0x14) << 2 & 8U) + 1;" (assignment_expression "iVar3 = ((iVar3 << 2 ^ iVar3 * 2) & *(int *)(puVar11 + 0x14) << 2 & 8U) + 1" identifier = (binary_expression "((iVar3 << 2 ^ iVar3 * 2) & *(int *)(puVar11 + 0x14) << 2 & 8U) + 1" (parenthesized_expression "((iVar3 << 2 ^ iVar3 * 2) & *(int *)(puVar11 + 0x14) << 2 & 8U)" ( (binary_expression "(iVar3 << 2 ^ iVar3 * 2) & *(int *)(puVar11 + 0x14) << 2 & 8U" (binary_expression "(iVar3 << 2 ^ iVar3 * 2) & *(int *)(puVar11 + 0x14) << 2" (parenthesized_expression "(iVar3 << 2 ^ iVar3 * 2)" ( (binary_expression "iVar3 << 2 ^ iVar3 * 2" (binary_expression "iVar3 << 2" identifier << number_literal) ^ (binary_expression "iVar3 * 2" identifier * number_literal)) )) & (binary_expression "*(int *)(puVar11 + 0x14) << 2" (pointer_expression "*(int *)(puVar11 + 0x14)" * (cast_expression "(int *)(puVar11 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) )))) << number_literal)) & number_literal) )) + number_literal)) ;) (expression_statement "iVar7 = iVar7 * iVar3;" (assignment_expression "iVar7 = iVar7 * iVar3" identifier = (binary_expression "iVar7 * iVar3" identifier * identifier)) ;) (expression_statement "uVar2 = *(uint *)(puVar11 + 0x14) & 0x7f;" (assignment_expression "uVar2 = *(uint *)(puVar11 + 0x14) & 0x7f" identifier = (binary_expression "*(uint *)(puVar11 + 0x14) & 0x7f" (pointer_expression "*(uint *)(puVar11 + 0x14)" * (cast_expression "(uint *)(puVar11 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (uVar2 == 0) {\n    iVar12 = *(int *)(puVar11 + -0x130);\n  }\n  else {\n    iVar12 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar12 = iVar12 * iVar3;\n      }\n      iVar3 = iVar3 * iVar3;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = *(int *)(puVar11 + -0x130) * iVar12;\n  }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar12 = *(int *)(puVar11 + -0x130);\n  }" { (expression_statement "iVar12 = *(int *)(puVar11 + -0x130);" (assignment_expression "iVar12 = *(int *)(puVar11 + -0x130)" identifier = (pointer_expression "*(int *)(puVar11 + -0x130)" * (cast_expression "(int *)(puVar11 + -0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x130)" ( (binary_expression "puVar11 + -0x130" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    iVar12 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar12 = iVar12 * iVar3;\n      }\n      iVar3 = iVar3 * iVar3;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = *(int *)(puVar11 + -0x130) * iVar12;\n  }" else (compound_statement "{\n    iVar12 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar12 = iVar12 * iVar3;\n      }\n      iVar3 = iVar3 * iVar3;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = *(int *)(puVar11 + -0x130) * iVar12;\n  }" { (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) (do_statement "do {\n      if ((uVar2 & 1) != 0) {\n        iVar12 = iVar12 * iVar3;\n      }\n      iVar3 = iVar3 * iVar3;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);" do (compound_statement "{\n      if ((uVar2 & 1) != 0) {\n        iVar12 = iVar12 * iVar3;\n      }\n      iVar3 = iVar3 * iVar3;\n      uVar2 = uVar2 >> 1;\n    }" { (if_statement "if ((uVar2 & 1) != 0) {\n        iVar12 = iVar12 * iVar3;\n      }" if (parenthesized_expression "((uVar2 & 1) != 0)" ( (binary_expression "(uVar2 & 1) != 0" (parenthesized_expression "(uVar2 & 1)" ( (binary_expression "uVar2 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        iVar12 = iVar12 * iVar3;\n      }" { (expression_statement "iVar12 = iVar12 * iVar3;" (assignment_expression "iVar12 = iVar12 * iVar3" identifier = (binary_expression "iVar12 * iVar3" identifier * identifier)) ;) })) (expression_statement "iVar3 = iVar3 * iVar3;" (assignment_expression "iVar3 = iVar3 * iVar3" identifier = (binary_expression "iVar3 * iVar3" identifier * identifier)) ;) (expression_statement "uVar2 = uVar2 >> 1;" (assignment_expression "uVar2 = uVar2 >> 1" identifier = (binary_expression "uVar2 >> 1" identifier >> number_literal)) ;) }) while (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) ;) (expression_statement "iVar12 = *(int *)(puVar11 + -0x130) * iVar12;" (assignment_expression "iVar12 = *(int *)(puVar11 + -0x130) * iVar12" identifier = (binary_expression "*(int *)(puVar11 + -0x130) * iVar12" (pointer_expression "*(int *)(puVar11 + -0x130)" * (cast_expression "(int *)(puVar11 + -0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x130)" ( (binary_expression "puVar11 + -0x130" identifier + number_literal) )))) * identifier)) ;) }))) (expression_statement "iVar3 = *(int *)(puVar11 + 0x14) + 1;" (assignment_expression "iVar3 = *(int *)(puVar11 + 0x14) + 1" identifier = (binary_expression "*(int *)(puVar11 + 0x14) + 1" (pointer_expression "*(int *)(puVar11 + 0x14)" * (cast_expression "(int *)(puVar11 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar7 = iVar7 * (iVar3 - iVar12);" (assignment_expression "iVar7 = iVar7 * (iVar3 - iVar12)" identifier = (binary_expression "iVar7 * (iVar3 - iVar12)" identifier * (parenthesized_expression "(iVar3 - iVar12)" ( (binary_expression "iVar3 - iVar12" identifier - identifier) )))) ;) (expression_statement "iVar12 = *(int *)(puVar11 + -0x140) * iVar7;" (assignment_expression "iVar12 = *(int *)(puVar11 + -0x140) * iVar7" identifier = (binary_expression "*(int *)(puVar11 + -0x140) * iVar7" (pointer_expression "*(int *)(puVar11 + -0x140)" * (cast_expression "(int *)(puVar11 + -0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x140)" ( (binary_expression "puVar11 + -0x140" identifier + number_literal) )))) * identifier)) ;) (expression_statement "uVar2 = *(uint *)(puVar11 + 0x14) & 0x7fff;" (assignment_expression "uVar2 = *(uint *)(puVar11 + 0x14) & 0x7fff" identifier = (binary_expression "*(uint *)(puVar11 + 0x14) & 0x7fff" (pointer_expression "*(uint *)(puVar11 + 0x14)" * (cast_expression "(uint *)(puVar11 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (uVar2 == 0) {\n    iVar7 = iVar3 - *(int *)(puVar11 + -0x130);\n    iVar12 = iVar12 * iVar7;\n    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;\n    if (*(int *)(puVar11 + 0x14) == 0) goto LAB_00071659;\n  }\n  else {\n    iVar5 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar5 = iVar5 * iVar7;\n      }\n      iVar7 = iVar7 * iVar7;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = iVar12 * (iVar3 - iVar5 * *(int *)(puVar11 + -0x130));\n    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;\n  }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar7 = iVar3 - *(int *)(puVar11 + -0x130);\n    iVar12 = iVar12 * iVar7;\n    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;\n    if (*(int *)(puVar11 + 0x14) == 0) goto LAB_00071659;\n  }" { (expression_statement "iVar7 = iVar3 - *(int *)(puVar11 + -0x130);" (assignment_expression "iVar7 = iVar3 - *(int *)(puVar11 + -0x130)" identifier = (binary_expression "iVar3 - *(int *)(puVar11 + -0x130)" identifier - (pointer_expression "*(int *)(puVar11 + -0x130)" * (cast_expression "(int *)(puVar11 + -0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x130)" ( (binary_expression "puVar11 + -0x130" identifier + number_literal) )))))) ;) (expression_statement "iVar12 = iVar12 * iVar7;" (assignment_expression "iVar12 = iVar12 * iVar7" identifier = (binary_expression "iVar12 * iVar7" identifier * identifier)) ;) (expression_statement "iVar5 = *(int *)(puVar11 + -0x140) * iVar12;" (assignment_expression "iVar5 = *(int *)(puVar11 + -0x140) * iVar12" identifier = (binary_expression "*(int *)(puVar11 + -0x140) * iVar12" (pointer_expression "*(int *)(puVar11 + -0x140)" * (cast_expression "(int *)(puVar11 + -0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x140)" ( (binary_expression "puVar11 + -0x140" identifier + number_literal) )))) * identifier)) ;) (if_statement "if (*(int *)(puVar11 + 0x14) == 0) goto LAB_00071659;" if (parenthesized_expression "(*(int *)(puVar11 + 0x14) == 0)" ( (binary_expression "*(int *)(puVar11 + 0x14) == 0" (pointer_expression "*(int *)(puVar11 + 0x14)" * (cast_expression "(int *)(puVar11 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00071659;" goto statement_identifier ;)) }) (else_clause "else {\n    iVar5 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar5 = iVar5 * iVar7;\n      }\n      iVar7 = iVar7 * iVar7;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = iVar12 * (iVar3 - iVar5 * *(int *)(puVar11 + -0x130));\n    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;\n  }" else (compound_statement "{\n    iVar5 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar5 = iVar5 * iVar7;\n      }\n      iVar7 = iVar7 * iVar7;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = iVar12 * (iVar3 - iVar5 * *(int *)(puVar11 + -0x130));\n    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;\n  }" { (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (do_statement "do {\n      if ((uVar2 & 1) != 0) {\n        iVar5 = iVar5 * iVar7;\n      }\n      iVar7 = iVar7 * iVar7;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);" do (compound_statement "{\n      if ((uVar2 & 1) != 0) {\n        iVar5 = iVar5 * iVar7;\n      }\n      iVar7 = iVar7 * iVar7;\n      uVar2 = uVar2 >> 1;\n    }" { (if_statement "if ((uVar2 & 1) != 0) {\n        iVar5 = iVar5 * iVar7;\n      }" if (parenthesized_expression "((uVar2 & 1) != 0)" ( (binary_expression "(uVar2 & 1) != 0" (parenthesized_expression "(uVar2 & 1)" ( (binary_expression "uVar2 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        iVar5 = iVar5 * iVar7;\n      }" { (expression_statement "iVar5 = iVar5 * iVar7;" (assignment_expression "iVar5 = iVar5 * iVar7" identifier = (binary_expression "iVar5 * iVar7" identifier * identifier)) ;) })) (expression_statement "iVar7 = iVar7 * iVar7;" (assignment_expression "iVar7 = iVar7 * iVar7" identifier = (binary_expression "iVar7 * iVar7" identifier * identifier)) ;) (expression_statement "uVar2 = uVar2 >> 1;" (assignment_expression "uVar2 = uVar2 >> 1" identifier = (binary_expression "uVar2 >> 1" identifier >> number_literal)) ;) }) while (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) ;) (expression_statement "iVar12 = iVar12 * (iVar3 - iVar5 * *(int *)(puVar11 + -0x130));" (assignment_expression "iVar12 = iVar12 * (iVar3 - iVar5 * *(int *)(puVar11 + -0x130))" identifier = (binary_expression "iVar12 * (iVar3 - iVar5 * *(int *)(puVar11 + -0x130))" identifier * (parenthesized_expression "(iVar3 - iVar5 * *(int *)(puVar11 + -0x130))" ( (binary_expression "iVar3 - iVar5 * *(int *)(puVar11 + -0x130)" identifier - (binary_expression "iVar5 * *(int *)(puVar11 + -0x130)" identifier * (pointer_expression "*(int *)(puVar11 + -0x130)" * (cast_expression "(int *)(puVar11 + -0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x130)" ( (binary_expression "puVar11 + -0x130" identifier + number_literal) )))))) )))) ;) (expression_statement "iVar5 = *(int *)(puVar11 + -0x140) * iVar12;" (assignment_expression "iVar5 = *(int *)(puVar11 + -0x140) * iVar12" identifier = (binary_expression "*(int *)(puVar11 + -0x140) * iVar12" (pointer_expression "*(int *)(puVar11 + -0x140)" * (cast_expression "(int *)(puVar11 + -0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x140)" ( (binary_expression "puVar11 + -0x140" identifier + number_literal) )))) * identifier)) ;) }))) (expression_statement "uVar2 = *(uint *)(puVar11 + 0x14);" (assignment_expression "uVar2 = *(uint *)(puVar11 + 0x14)" identifier = (pointer_expression "*(uint *)(puVar11 + 0x14)" * (cast_expression "(uint *)(puVar11 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (do_statement "do {\n    if ((uVar2 & 1) != 0) {\n      iVar7 = iVar7 * iVar12;\n    }\n    iVar12 = iVar12 * iVar12;\n    uVar2 = uVar2 >> 1;\n  } while (uVar2 != 0);" do (compound_statement "{\n    if ((uVar2 & 1) != 0) {\n      iVar7 = iVar7 * iVar12;\n    }\n    iVar12 = iVar12 * iVar12;\n    uVar2 = uVar2 >> 1;\n  }" { (if_statement "if ((uVar2 & 1) != 0) {\n      iVar7 = iVar7 * iVar12;\n    }" if (parenthesized_expression "((uVar2 & 1) != 0)" ( (binary_expression "(uVar2 & 1) != 0" (parenthesized_expression "(uVar2 & 1)" ( (binary_expression "uVar2 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      iVar7 = iVar7 * iVar12;\n    }" { (expression_statement "iVar7 = iVar7 * iVar12;" (assignment_expression "iVar7 = iVar7 * iVar12" identifier = (binary_expression "iVar7 * iVar12" identifier * identifier)) ;) })) (expression_statement "iVar12 = iVar12 * iVar12;" (assignment_expression "iVar12 = iVar12 * iVar12" identifier = (binary_expression "iVar12 * iVar12" identifier * identifier)) ;) (expression_statement "uVar2 = uVar2 >> 1;" (assignment_expression "uVar2 = uVar2 >> 1" identifier = (binary_expression "uVar2 >> 1" identifier >> number_literal)) ;) }) while (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) ;) (expression_statement "iVar7 = iVar3 - iVar7 * *(int *)(puVar11 + -0x130);" (assignment_expression "iVar7 = iVar3 - iVar7 * *(int *)(puVar11 + -0x130)" identifier = (binary_expression "iVar3 - iVar7 * *(int *)(puVar11 + -0x130)" identifier - (binary_expression "iVar7 * *(int *)(puVar11 + -0x130)" identifier * (pointer_expression "*(int *)(puVar11 + -0x130)" * (cast_expression "(int *)(puVar11 + -0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x130)" ( (binary_expression "puVar11 + -0x130" identifier + number_literal) ))))))) ;) (labeled_statement "LAB_00071659:\n  iVar3 = *(int *)(puVar11 + 0x10);" statement_identifier : (expression_statement "iVar3 = *(int *)(puVar11 + 0x10);" (assignment_expression "iVar3 = *(int *)(puVar11 + 0x10)" identifier = (pointer_expression "*(int *)(puVar11 + 0x10)" * (cast_expression "(int *)(puVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) ))))) ;)) (expression_statement "**(int **)(puVar11 + -300) = iVar7 * iVar5;" (assignment_expression "**(int **)(puVar11 + -300) = iVar7 * iVar5" (pointer_expression "**(int **)(puVar11 + -300)" * (pointer_expression "*(int **)(puVar11 + -300)" * (cast_expression "(int **)(puVar11 + -300)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -300)" ( (binary_expression "puVar11 + -300" identifier + number_literal) ))))) = (binary_expression "iVar7 * iVar5" identifier * identifier)) ;) (if_statement "if (iVar3 != 1) {\n    *(int *)(puVar11 + -0x124) = *(int *)(puVar11 + -0x138) + 1;\n    uVar2 = *(int *)(puVar11 + 0x10) * 8 + 4;\n    if (uVar2 < 0x7f01) {\n      iVar3 = -(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0);\n      iVar9 = (int)puVar10 + iVar3;\n      puVar10 = puVar10 + iVar3;\n      *(int *)(puVar11 + -0x130) = iVar9;\n    }\n    else {\n      *(uint *)(puVar10 + -0xc) = uVar2;\n      *(undefined1 **)(puVar10 + -0x10) = puVar11 + -0x120;\n      *(undefined4 *)(puVar10 + -0x14) = 0x718ac;\n      uVar4 = __gmp_tmp_reentrant_alloc();\n      *(undefined4 *)(puVar11 + -0x130) = uVar4;\n    }\n    if (1 < *(int *)(puVar11 + 0x10)) {\n      *(int *)(puVar11 + -0x134) = *(int *)(puVar11 + -0x134) + *(int *)(puVar11 + -0x130);\n      *(undefined1 **)(puVar11 + -0x148) = puVar11 + -0x11c;\n      iVar3 = 0;\n      iVar7 = *(int *)(puVar11 + 0x10);\n      do {\n        iVar12 = iVar7;\n        iVar5 = iVar3;\n        iVar3 = iVar5 + 1;\n        iVar7 = iVar12 + 1 >> 1;\n        *(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12;\n      } while (iVar7 != 1);\n      iVar3 = *(int *)(puVar11 + -0x134);\n      *(int *)(puVar11 + 0x10) = iVar12;\n      *(int *)(puVar11 + -0x13c) = *(int *)(puVar11 + -0x148) + iVar5 * 4;\n      *(undefined1 **)(puVar11 + -0x150) = puVar11 + -0x124;\n      do {\n        *(int *)(puVar11 + -0x134) = iVar7;\n        *(int *)(puVar10 + -8) = iVar7;\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71736;\n        __gmpn_sqr();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c);\n        *(int *)(puVar10 + -0x10) = iVar12;\n        *(undefined4 *)(puVar10 + -0x14) = 1;\n        *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150);\n        *(int *)(puVar10 + -0x1c) = iVar3;\n        *(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130);\n        *(undefined4 *)(puVar10 + -0x24) = 0x71753;\n        __gmpn_powlo();\n        *(int *)(puVar10 + -4) = iVar12;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71769;\n        __gmpn_mullo_n();\n        iVar7 = *(int *)(puVar11 + -0x134);\n        iVar5 = *(int *)(puVar11 + -300);\n        *(undefined4 *)(puVar10 + -0xc) = 0;\n        iVar8 = iVar12 - iVar7;\n        iVar7 = iVar7 * 4;\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140);\n        iVar5 = iVar5 + iVar7;\n        *(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14);\n        *(int *)(puVar10 + -0x18) = iVar8;\n        *(int *)(puVar10 + -0x1c) = iVar7 + iVar3;\n        *(int *)(puVar10 + -0x20) = iVar5;\n        *(int *)(puVar11 + -0x138) = iVar8;\n        *(int *)(puVar11 + -0x134) = iVar5;\n        *(undefined4 *)(puVar10 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        piVar6 = *(int **)(puVar11 + -0x134);\n        iVar7 = *(int *)(puVar11 + -0x138);\n        iVar5 = *piVar6;\n        while (iVar7 = iVar7 + -1, iVar5 == 0) {\n          if (iVar7 == 0) goto LAB_000717d0;\n          piVar6 = piVar6 + 1;\n          iVar5 = *piVar6;\n        }\n        *piVar6 = -iVar5;\n        if (iVar7 != 0) {\n          *(int *)(puVar10 + -8) = iVar7;\n          *(int **)(puVar10 + -0xc) = piVar6 + 1;\n          *(int **)(puVar10 + -0x10) = piVar6 + 1;\n          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        iVar7 = *(int *)(puVar11 + -0x13c);\n        if (*(int *)(puVar11 + -0x148) == iVar7) break;\n        iVar5 = *(int *)(iVar7 + -4);\n        *(int *)(puVar11 + -0x13c) = iVar7 + -4;\n        iVar7 = iVar12;\n        iVar12 = iVar5;\n      } while( true );\n    }\n  }" if (parenthesized_expression "(iVar3 != 1)" ( (binary_expression "iVar3 != 1" identifier != number_literal) )) (compound_statement "{\n    *(int *)(puVar11 + -0x124) = *(int *)(puVar11 + -0x138) + 1;\n    uVar2 = *(int *)(puVar11 + 0x10) * 8 + 4;\n    if (uVar2 < 0x7f01) {\n      iVar3 = -(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0);\n      iVar9 = (int)puVar10 + iVar3;\n      puVar10 = puVar10 + iVar3;\n      *(int *)(puVar11 + -0x130) = iVar9;\n    }\n    else {\n      *(uint *)(puVar10 + -0xc) = uVar2;\n      *(undefined1 **)(puVar10 + -0x10) = puVar11 + -0x120;\n      *(undefined4 *)(puVar10 + -0x14) = 0x718ac;\n      uVar4 = __gmp_tmp_reentrant_alloc();\n      *(undefined4 *)(puVar11 + -0x130) = uVar4;\n    }\n    if (1 < *(int *)(puVar11 + 0x10)) {\n      *(int *)(puVar11 + -0x134) = *(int *)(puVar11 + -0x134) + *(int *)(puVar11 + -0x130);\n      *(undefined1 **)(puVar11 + -0x148) = puVar11 + -0x11c;\n      iVar3 = 0;\n      iVar7 = *(int *)(puVar11 + 0x10);\n      do {\n        iVar12 = iVar7;\n        iVar5 = iVar3;\n        iVar3 = iVar5 + 1;\n        iVar7 = iVar12 + 1 >> 1;\n        *(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12;\n      } while (iVar7 != 1);\n      iVar3 = *(int *)(puVar11 + -0x134);\n      *(int *)(puVar11 + 0x10) = iVar12;\n      *(int *)(puVar11 + -0x13c) = *(int *)(puVar11 + -0x148) + iVar5 * 4;\n      *(undefined1 **)(puVar11 + -0x150) = puVar11 + -0x124;\n      do {\n        *(int *)(puVar11 + -0x134) = iVar7;\n        *(int *)(puVar10 + -8) = iVar7;\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71736;\n        __gmpn_sqr();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c);\n        *(int *)(puVar10 + -0x10) = iVar12;\n        *(undefined4 *)(puVar10 + -0x14) = 1;\n        *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150);\n        *(int *)(puVar10 + -0x1c) = iVar3;\n        *(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130);\n        *(undefined4 *)(puVar10 + -0x24) = 0x71753;\n        __gmpn_powlo();\n        *(int *)(puVar10 + -4) = iVar12;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71769;\n        __gmpn_mullo_n();\n        iVar7 = *(int *)(puVar11 + -0x134);\n        iVar5 = *(int *)(puVar11 + -300);\n        *(undefined4 *)(puVar10 + -0xc) = 0;\n        iVar8 = iVar12 - iVar7;\n        iVar7 = iVar7 * 4;\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140);\n        iVar5 = iVar5 + iVar7;\n        *(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14);\n        *(int *)(puVar10 + -0x18) = iVar8;\n        *(int *)(puVar10 + -0x1c) = iVar7 + iVar3;\n        *(int *)(puVar10 + -0x20) = iVar5;\n        *(int *)(puVar11 + -0x138) = iVar8;\n        *(int *)(puVar11 + -0x134) = iVar5;\n        *(undefined4 *)(puVar10 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        piVar6 = *(int **)(puVar11 + -0x134);\n        iVar7 = *(int *)(puVar11 + -0x138);\n        iVar5 = *piVar6;\n        while (iVar7 = iVar7 + -1, iVar5 == 0) {\n          if (iVar7 == 0) goto LAB_000717d0;\n          piVar6 = piVar6 + 1;\n          iVar5 = *piVar6;\n        }\n        *piVar6 = -iVar5;\n        if (iVar7 != 0) {\n          *(int *)(puVar10 + -8) = iVar7;\n          *(int **)(puVar10 + -0xc) = piVar6 + 1;\n          *(int **)(puVar10 + -0x10) = piVar6 + 1;\n          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        iVar7 = *(int *)(puVar11 + -0x13c);\n        if (*(int *)(puVar11 + -0x148) == iVar7) break;\n        iVar5 = *(int *)(iVar7 + -4);\n        *(int *)(puVar11 + -0x13c) = iVar7 + -4;\n        iVar7 = iVar12;\n        iVar12 = iVar5;\n      } while( true );\n    }\n  }" { (expression_statement "*(int *)(puVar11 + -0x124) = *(int *)(puVar11 + -0x138) + 1;" (assignment_expression "*(int *)(puVar11 + -0x124) = *(int *)(puVar11 + -0x138) + 1" (pointer_expression "*(int *)(puVar11 + -0x124)" * (cast_expression "(int *)(puVar11 + -0x124)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x124)" ( (binary_expression "puVar11 + -0x124" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar11 + -0x138) + 1" (pointer_expression "*(int *)(puVar11 + -0x138)" * (cast_expression "(int *)(puVar11 + -0x138)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x138)" ( (binary_expression "puVar11 + -0x138" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "uVar2 = *(int *)(puVar11 + 0x10) * 8 + 4;" (assignment_expression "uVar2 = *(int *)(puVar11 + 0x10) * 8 + 4" identifier = (binary_expression "*(int *)(puVar11 + 0x10) * 8 + 4" (binary_expression "*(int *)(puVar11 + 0x10) * 8" (pointer_expression "*(int *)(puVar11 + 0x10)" * (cast_expression "(int *)(puVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) )))) * number_literal) + number_literal)) ;) (if_statement "if (uVar2 < 0x7f01) {\n      iVar3 = -(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0);\n      iVar9 = (int)puVar10 + iVar3;\n      puVar10 = puVar10 + iVar3;\n      *(int *)(puVar11 + -0x130) = iVar9;\n    }\n    else {\n      *(uint *)(puVar10 + -0xc) = uVar2;\n      *(undefined1 **)(puVar10 + -0x10) = puVar11 + -0x120;\n      *(undefined4 *)(puVar10 + -0x14) = 0x718ac;\n      uVar4 = __gmp_tmp_reentrant_alloc();\n      *(undefined4 *)(puVar11 + -0x130) = uVar4;\n    }" if (parenthesized_expression "(uVar2 < 0x7f01)" ( (binary_expression "uVar2 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n      iVar3 = -(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0);\n      iVar9 = (int)puVar10 + iVar3;\n      puVar10 = puVar10 + iVar3;\n      *(int *)(puVar11 + -0x130) = iVar9;\n    }" { (expression_statement "iVar3 = -(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0);" (assignment_expression "iVar3 = -(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0)" identifier = (unary_expression "-(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0)" - (parenthesized_expression "(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0)" ( (binary_expression "*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0" (binary_expression "*(int *)(puVar11 + 0x10) * 8 + 0x1fU" (binary_expression "*(int *)(puVar11 + 0x10) * 8" (pointer_expression "*(int *)(puVar11 + 0x10)" * (cast_expression "(int *)(puVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) )))) * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "iVar9 = (int)puVar10 + iVar3;" (assignment_expression "iVar9 = (int)puVar10 + iVar3" identifier = (binary_expression "(int)puVar10 + iVar3" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "puVar10 = puVar10 + iVar3;" (assignment_expression "puVar10 = puVar10 + iVar3" identifier = (binary_expression "puVar10 + iVar3" identifier + identifier)) ;) (expression_statement "*(int *)(puVar11 + -0x130) = iVar9;" (assignment_expression "*(int *)(puVar11 + -0x130) = iVar9" (pointer_expression "*(int *)(puVar11 + -0x130)" * (cast_expression "(int *)(puVar11 + -0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x130)" ( (binary_expression "puVar11 + -0x130" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      *(uint *)(puVar10 + -0xc) = uVar2;\n      *(undefined1 **)(puVar10 + -0x10) = puVar11 + -0x120;\n      *(undefined4 *)(puVar10 + -0x14) = 0x718ac;\n      uVar4 = __gmp_tmp_reentrant_alloc();\n      *(undefined4 *)(puVar11 + -0x130) = uVar4;\n    }" else (compound_statement "{\n      *(uint *)(puVar10 + -0xc) = uVar2;\n      *(undefined1 **)(puVar10 + -0x10) = puVar11 + -0x120;\n      *(undefined4 *)(puVar10 + -0x14) = 0x718ac;\n      uVar4 = __gmp_tmp_reentrant_alloc();\n      *(undefined4 *)(puVar11 + -0x130) = uVar4;\n    }" { (expression_statement "*(uint *)(puVar10 + -0xc) = uVar2;" (assignment_expression "*(uint *)(puVar10 + -0xc) = uVar2" (pointer_expression "*(uint *)(puVar10 + -0xc)" * (cast_expression "(uint *)(puVar10 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar10 + -0x10) = puVar11 + -0x120;" (assignment_expression "*(undefined1 **)(puVar10 + -0x10) = puVar11 + -0x120" (pointer_expression "*(undefined1 **)(puVar10 + -0x10)" * (cast_expression "(undefined1 **)(puVar10 + -0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = (binary_expression "puVar11 + -0x120" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x718ac;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x718ac" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar4 = __gmp_tmp_reentrant_alloc();" (assignment_expression "uVar4 = __gmp_tmp_reentrant_alloc()" identifier = (call_expression "__gmp_tmp_reentrant_alloc()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x130) = uVar4;" (assignment_expression "*(undefined4 *)(puVar11 + -0x130) = uVar4" (pointer_expression "*(undefined4 *)(puVar11 + -0x130)" * (cast_expression "(undefined4 *)(puVar11 + -0x130)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x130)" ( (binary_expression "puVar11 + -0x130" identifier + number_literal) )))) = identifier) ;) }))) (if_statement "if (1 < *(int *)(puVar11 + 0x10)) {\n      *(int *)(puVar11 + -0x134) = *(int *)(puVar11 + -0x134) + *(int *)(puVar11 + -0x130);\n      *(undefined1 **)(puVar11 + -0x148) = puVar11 + -0x11c;\n      iVar3 = 0;\n      iVar7 = *(int *)(puVar11 + 0x10);\n      do {\n        iVar12 = iVar7;\n        iVar5 = iVar3;\n        iVar3 = iVar5 + 1;\n        iVar7 = iVar12 + 1 >> 1;\n        *(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12;\n      } while (iVar7 != 1);\n      iVar3 = *(int *)(puVar11 + -0x134);\n      *(int *)(puVar11 + 0x10) = iVar12;\n      *(int *)(puVar11 + -0x13c) = *(int *)(puVar11 + -0x148) + iVar5 * 4;\n      *(undefined1 **)(puVar11 + -0x150) = puVar11 + -0x124;\n      do {\n        *(int *)(puVar11 + -0x134) = iVar7;\n        *(int *)(puVar10 + -8) = iVar7;\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71736;\n        __gmpn_sqr();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c);\n        *(int *)(puVar10 + -0x10) = iVar12;\n        *(undefined4 *)(puVar10 + -0x14) = 1;\n        *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150);\n        *(int *)(puVar10 + -0x1c) = iVar3;\n        *(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130);\n        *(undefined4 *)(puVar10 + -0x24) = 0x71753;\n        __gmpn_powlo();\n        *(int *)(puVar10 + -4) = iVar12;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71769;\n        __gmpn_mullo_n();\n        iVar7 = *(int *)(puVar11 + -0x134);\n        iVar5 = *(int *)(puVar11 + -300);\n        *(undefined4 *)(puVar10 + -0xc) = 0;\n        iVar8 = iVar12 - iVar7;\n        iVar7 = iVar7 * 4;\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140);\n        iVar5 = iVar5 + iVar7;\n        *(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14);\n        *(int *)(puVar10 + -0x18) = iVar8;\n        *(int *)(puVar10 + -0x1c) = iVar7 + iVar3;\n        *(int *)(puVar10 + -0x20) = iVar5;\n        *(int *)(puVar11 + -0x138) = iVar8;\n        *(int *)(puVar11 + -0x134) = iVar5;\n        *(undefined4 *)(puVar10 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        piVar6 = *(int **)(puVar11 + -0x134);\n        iVar7 = *(int *)(puVar11 + -0x138);\n        iVar5 = *piVar6;\n        while (iVar7 = iVar7 + -1, iVar5 == 0) {\n          if (iVar7 == 0) goto LAB_000717d0;\n          piVar6 = piVar6 + 1;\n          iVar5 = *piVar6;\n        }\n        *piVar6 = -iVar5;\n        if (iVar7 != 0) {\n          *(int *)(puVar10 + -8) = iVar7;\n          *(int **)(puVar10 + -0xc) = piVar6 + 1;\n          *(int **)(puVar10 + -0x10) = piVar6 + 1;\n          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        iVar7 = *(int *)(puVar11 + -0x13c);\n        if (*(int *)(puVar11 + -0x148) == iVar7) break;\n        iVar5 = *(int *)(iVar7 + -4);\n        *(int *)(puVar11 + -0x13c) = iVar7 + -4;\n        iVar7 = iVar12;\n        iVar12 = iVar5;\n      } while( true );\n    }" if (parenthesized_expression "(1 < *(int *)(puVar11 + 0x10))" ( (binary_expression "1 < *(int *)(puVar11 + 0x10)" number_literal < (pointer_expression "*(int *)(puVar11 + 0x10)" * (cast_expression "(int *)(puVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) ))))) )) (compound_statement "{\n      *(int *)(puVar11 + -0x134) = *(int *)(puVar11 + -0x134) + *(int *)(puVar11 + -0x130);\n      *(undefined1 **)(puVar11 + -0x148) = puVar11 + -0x11c;\n      iVar3 = 0;\n      iVar7 = *(int *)(puVar11 + 0x10);\n      do {\n        iVar12 = iVar7;\n        iVar5 = iVar3;\n        iVar3 = iVar5 + 1;\n        iVar7 = iVar12 + 1 >> 1;\n        *(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12;\n      } while (iVar7 != 1);\n      iVar3 = *(int *)(puVar11 + -0x134);\n      *(int *)(puVar11 + 0x10) = iVar12;\n      *(int *)(puVar11 + -0x13c) = *(int *)(puVar11 + -0x148) + iVar5 * 4;\n      *(undefined1 **)(puVar11 + -0x150) = puVar11 + -0x124;\n      do {\n        *(int *)(puVar11 + -0x134) = iVar7;\n        *(int *)(puVar10 + -8) = iVar7;\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71736;\n        __gmpn_sqr();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c);\n        *(int *)(puVar10 + -0x10) = iVar12;\n        *(undefined4 *)(puVar10 + -0x14) = 1;\n        *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150);\n        *(int *)(puVar10 + -0x1c) = iVar3;\n        *(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130);\n        *(undefined4 *)(puVar10 + -0x24) = 0x71753;\n        __gmpn_powlo();\n        *(int *)(puVar10 + -4) = iVar12;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71769;\n        __gmpn_mullo_n();\n        iVar7 = *(int *)(puVar11 + -0x134);\n        iVar5 = *(int *)(puVar11 + -300);\n        *(undefined4 *)(puVar10 + -0xc) = 0;\n        iVar8 = iVar12 - iVar7;\n        iVar7 = iVar7 * 4;\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140);\n        iVar5 = iVar5 + iVar7;\n        *(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14);\n        *(int *)(puVar10 + -0x18) = iVar8;\n        *(int *)(puVar10 + -0x1c) = iVar7 + iVar3;\n        *(int *)(puVar10 + -0x20) = iVar5;\n        *(int *)(puVar11 + -0x138) = iVar8;\n        *(int *)(puVar11 + -0x134) = iVar5;\n        *(undefined4 *)(puVar10 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        piVar6 = *(int **)(puVar11 + -0x134);\n        iVar7 = *(int *)(puVar11 + -0x138);\n        iVar5 = *piVar6;\n        while (iVar7 = iVar7 + -1, iVar5 == 0) {\n          if (iVar7 == 0) goto LAB_000717d0;\n          piVar6 = piVar6 + 1;\n          iVar5 = *piVar6;\n        }\n        *piVar6 = -iVar5;\n        if (iVar7 != 0) {\n          *(int *)(puVar10 + -8) = iVar7;\n          *(int **)(puVar10 + -0xc) = piVar6 + 1;\n          *(int **)(puVar10 + -0x10) = piVar6 + 1;\n          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        iVar7 = *(int *)(puVar11 + -0x13c);\n        if (*(int *)(puVar11 + -0x148) == iVar7) break;\n        iVar5 = *(int *)(iVar7 + -4);\n        *(int *)(puVar11 + -0x13c) = iVar7 + -4;\n        iVar7 = iVar12;\n        iVar12 = iVar5;\n      } while( true );\n    }" { (expression_statement "*(int *)(puVar11 + -0x134) = *(int *)(puVar11 + -0x134) + *(int *)(puVar11 + -0x130);" (assignment_expression "*(int *)(puVar11 + -0x134) = *(int *)(puVar11 + -0x134) + *(int *)(puVar11 + -0x130)" (pointer_expression "*(int *)(puVar11 + -0x134)" * (cast_expression "(int *)(puVar11 + -0x134)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x134)" ( (binary_expression "puVar11 + -0x134" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar11 + -0x134) + *(int *)(puVar11 + -0x130)" (pointer_expression "*(int *)(puVar11 + -0x134)" * (cast_expression "(int *)(puVar11 + -0x134)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x134)" ( (binary_expression "puVar11 + -0x134" identifier + number_literal) )))) + (pointer_expression "*(int *)(puVar11 + -0x130)" * (cast_expression "(int *)(puVar11 + -0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x130)" ( (binary_expression "puVar11 + -0x130" identifier + number_literal) )))))) ;) (expression_statement "*(undefined1 **)(puVar11 + -0x148) = puVar11 + -0x11c;" (assignment_expression "*(undefined1 **)(puVar11 + -0x148) = puVar11 + -0x11c" (pointer_expression "*(undefined1 **)(puVar11 + -0x148)" * (cast_expression "(undefined1 **)(puVar11 + -0x148)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x148)" ( (binary_expression "puVar11 + -0x148" identifier + number_literal) )))) = (binary_expression "puVar11 + -0x11c" identifier + number_literal)) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = *(int *)(puVar11 + 0x10);" (assignment_expression "iVar7 = *(int *)(puVar11 + 0x10)" identifier = (pointer_expression "*(int *)(puVar11 + 0x10)" * (cast_expression "(int *)(puVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) ))))) ;) (do_statement "do {\n        iVar12 = iVar7;\n        iVar5 = iVar3;\n        iVar3 = iVar5 + 1;\n        iVar7 = iVar12 + 1 >> 1;\n        *(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12;\n      } while (iVar7 != 1);" do (compound_statement "{\n        iVar12 = iVar7;\n        iVar5 = iVar3;\n        iVar3 = iVar5 + 1;\n        iVar7 = iVar12 + 1 >> 1;\n        *(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12;\n      }" { (expression_statement "iVar12 = iVar7;" (assignment_expression "iVar12 = iVar7" identifier = identifier) ;) (expression_statement "iVar5 = iVar3;" (assignment_expression "iVar5 = iVar3" identifier = identifier) ;) (expression_statement "iVar3 = iVar5 + 1;" (assignment_expression "iVar3 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "iVar7 = iVar12 + 1 >> 1;" (assignment_expression "iVar7 = iVar12 + 1 >> 1" identifier = (binary_expression "iVar12 + 1 >> 1" (binary_expression "iVar12 + 1" identifier + number_literal) >> number_literal)) ;) (expression_statement "*(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12;" (assignment_expression "*(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12" (pointer_expression "*(int *)(puVar11 + iVar3 * 4 + -0x120)" * (cast_expression "(int *)(puVar11 + iVar3 * 4 + -0x120)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + iVar3 * 4 + -0x120)" ( (binary_expression "puVar11 + iVar3 * 4 + -0x120" (binary_expression "puVar11 + iVar3 * 4" identifier + (binary_expression "iVar3 * 4" identifier * number_literal)) + number_literal) )))) = identifier) ;) }) while (parenthesized_expression "(iVar7 != 1)" ( (binary_expression "iVar7 != 1" identifier != number_literal) )) ;) (expression_statement "iVar3 = *(int *)(puVar11 + -0x134);" (assignment_expression "iVar3 = *(int *)(puVar11 + -0x134)" identifier = (pointer_expression "*(int *)(puVar11 + -0x134)" * (cast_expression "(int *)(puVar11 + -0x134)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x134)" ( (binary_expression "puVar11 + -0x134" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar11 + 0x10) = iVar12;" (assignment_expression "*(int *)(puVar11 + 0x10) = iVar12" (pointer_expression "*(int *)(puVar11 + 0x10)" * (cast_expression "(int *)(puVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x10)" ( (binary_expression "puVar11 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar11 + -0x13c) = *(int *)(puVar11 + -0x148) + iVar5 * 4;" (assignment_expression "*(int *)(puVar11 + -0x13c) = *(int *)(puVar11 + -0x148) + iVar5 * 4" (pointer_expression "*(int *)(puVar11 + -0x13c)" * (cast_expression "(int *)(puVar11 + -0x13c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x13c)" ( (binary_expression "puVar11 + -0x13c" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar11 + -0x148) + iVar5 * 4" (pointer_expression "*(int *)(puVar11 + -0x148)" * (cast_expression "(int *)(puVar11 + -0x148)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x148)" ( (binary_expression "puVar11 + -0x148" identifier + number_literal) )))) + (binary_expression "iVar5 * 4" identifier * number_literal))) ;) (expression_statement "*(undefined1 **)(puVar11 + -0x150) = puVar11 + -0x124;" (assignment_expression "*(undefined1 **)(puVar11 + -0x150) = puVar11 + -0x124" (pointer_expression "*(undefined1 **)(puVar11 + -0x150)" * (cast_expression "(undefined1 **)(puVar11 + -0x150)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x150)" ( (binary_expression "puVar11 + -0x150" identifier + number_literal) )))) = (binary_expression "puVar11 + -0x124" identifier + number_literal)) ;) (do_statement "do {\n        *(int *)(puVar11 + -0x134) = iVar7;\n        *(int *)(puVar10 + -8) = iVar7;\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71736;\n        __gmpn_sqr();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c);\n        *(int *)(puVar10 + -0x10) = iVar12;\n        *(undefined4 *)(puVar10 + -0x14) = 1;\n        *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150);\n        *(int *)(puVar10 + -0x1c) = iVar3;\n        *(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130);\n        *(undefined4 *)(puVar10 + -0x24) = 0x71753;\n        __gmpn_powlo();\n        *(int *)(puVar10 + -4) = iVar12;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71769;\n        __gmpn_mullo_n();\n        iVar7 = *(int *)(puVar11 + -0x134);\n        iVar5 = *(int *)(puVar11 + -300);\n        *(undefined4 *)(puVar10 + -0xc) = 0;\n        iVar8 = iVar12 - iVar7;\n        iVar7 = iVar7 * 4;\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140);\n        iVar5 = iVar5 + iVar7;\n        *(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14);\n        *(int *)(puVar10 + -0x18) = iVar8;\n        *(int *)(puVar10 + -0x1c) = iVar7 + iVar3;\n        *(int *)(puVar10 + -0x20) = iVar5;\n        *(int *)(puVar11 + -0x138) = iVar8;\n        *(int *)(puVar11 + -0x134) = iVar5;\n        *(undefined4 *)(puVar10 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        piVar6 = *(int **)(puVar11 + -0x134);\n        iVar7 = *(int *)(puVar11 + -0x138);\n        iVar5 = *piVar6;\n        while (iVar7 = iVar7 + -1, iVar5 == 0) {\n          if (iVar7 == 0) goto LAB_000717d0;\n          piVar6 = piVar6 + 1;\n          iVar5 = *piVar6;\n        }\n        *piVar6 = -iVar5;\n        if (iVar7 != 0) {\n          *(int *)(puVar10 + -8) = iVar7;\n          *(int **)(puVar10 + -0xc) = piVar6 + 1;\n          *(int **)(puVar10 + -0x10) = piVar6 + 1;\n          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        iVar7 = *(int *)(puVar11 + -0x13c);\n        if (*(int *)(puVar11 + -0x148) == iVar7) break;\n        iVar5 = *(int *)(iVar7 + -4);\n        *(int *)(puVar11 + -0x13c) = iVar7 + -4;\n        iVar7 = iVar12;\n        iVar12 = iVar5;\n      } while( true );" do (compound_statement "{\n        *(int *)(puVar11 + -0x134) = iVar7;\n        *(int *)(puVar10 + -8) = iVar7;\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71736;\n        __gmpn_sqr();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c);\n        *(int *)(puVar10 + -0x10) = iVar12;\n        *(undefined4 *)(puVar10 + -0x14) = 1;\n        *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150);\n        *(int *)(puVar10 + -0x1c) = iVar3;\n        *(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130);\n        *(undefined4 *)(puVar10 + -0x24) = 0x71753;\n        __gmpn_powlo();\n        *(int *)(puVar10 + -4) = iVar12;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71769;\n        __gmpn_mullo_n();\n        iVar7 = *(int *)(puVar11 + -0x134);\n        iVar5 = *(int *)(puVar11 + -300);\n        *(undefined4 *)(puVar10 + -0xc) = 0;\n        iVar8 = iVar12 - iVar7;\n        iVar7 = iVar7 * 4;\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140);\n        iVar5 = iVar5 + iVar7;\n        *(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14);\n        *(int *)(puVar10 + -0x18) = iVar8;\n        *(int *)(puVar10 + -0x1c) = iVar7 + iVar3;\n        *(int *)(puVar10 + -0x20) = iVar5;\n        *(int *)(puVar11 + -0x138) = iVar8;\n        *(int *)(puVar11 + -0x134) = iVar5;\n        *(undefined4 *)(puVar10 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        piVar6 = *(int **)(puVar11 + -0x134);\n        iVar7 = *(int *)(puVar11 + -0x138);\n        iVar5 = *piVar6;\n        while (iVar7 = iVar7 + -1, iVar5 == 0) {\n          if (iVar7 == 0) goto LAB_000717d0;\n          piVar6 = piVar6 + 1;\n          iVar5 = *piVar6;\n        }\n        *piVar6 = -iVar5;\n        if (iVar7 != 0) {\n          *(int *)(puVar10 + -8) = iVar7;\n          *(int **)(puVar10 + -0xc) = piVar6 + 1;\n          *(int **)(puVar10 + -0x10) = piVar6 + 1;\n          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        iVar7 = *(int *)(puVar11 + -0x13c);\n        if (*(int *)(puVar11 + -0x148) == iVar7) break;\n        iVar5 = *(int *)(iVar7 + -4);\n        *(int *)(puVar11 + -0x13c) = iVar7 + -4;\n        iVar7 = iVar12;\n        iVar12 = iVar5;\n      }" { (expression_statement "*(int *)(puVar11 + -0x134) = iVar7;" (assignment_expression "*(int *)(puVar11 + -0x134) = iVar7" (pointer_expression "*(int *)(puVar11 + -0x134)" * (cast_expression "(int *)(puVar11 + -0x134)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x134)" ( (binary_expression "puVar11 + -0x134" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar10 + -8) = iVar7;" (assignment_expression "*(int *)(puVar10 + -8) = iVar7" (pointer_expression "*(int *)(puVar10 + -8)" * (cast_expression "(int *)(puVar10 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -8)" ( (binary_expression "puVar10 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300);" (assignment_expression "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300)" (pointer_expression "*(undefined4 *)(puVar10 + -0xc)" * (cast_expression "(undefined4 *)(puVar10 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar11 + -300)" * (cast_expression "(undefined4 *)(puVar11 + -300)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -300)" ( (binary_expression "puVar11 + -300" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar10 + -0x10) = iVar3;" (assignment_expression "*(int *)(puVar10 + -0x10) = iVar3" (pointer_expression "*(int *)(puVar10 + -0x10)" * (cast_expression "(int *)(puVar10 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x71736;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x71736" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_sqr();" (call_expression "__gmpn_sqr()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c);" (assignment_expression "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c)" (pointer_expression "*(undefined4 *)(puVar10 + -0xc)" * (cast_expression "(undefined4 *)(puVar10 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar11 + -0x14c)" * (cast_expression "(undefined4 *)(puVar11 + -0x14c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x14c)" ( (binary_expression "puVar11 + -0x14c" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar10 + -0x10) = iVar12;" (assignment_expression "*(int *)(puVar10 + -0x10) = iVar12" (pointer_expression "*(int *)(puVar10 + -0x10)" * (cast_expression "(int *)(puVar10 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 1;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 1" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150);" (assignment_expression "*(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150)" (pointer_expression "*(undefined4 *)(puVar10 + -0x18)" * (cast_expression "(undefined4 *)(puVar10 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x18)" ( (binary_expression "puVar10 + -0x18" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar11 + -0x150)" * (cast_expression "(undefined4 *)(puVar11 + -0x150)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x150)" ( (binary_expression "puVar11 + -0x150" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar10 + -0x1c) = iVar3;" (assignment_expression "*(int *)(puVar10 + -0x1c) = iVar3" (pointer_expression "*(int *)(puVar10 + -0x1c)" * (cast_expression "(int *)(puVar10 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x1c)" ( (binary_expression "puVar10 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130);" (assignment_expression "*(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130)" (pointer_expression "*(undefined4 *)(puVar10 + -0x20)" * (cast_expression "(undefined4 *)(puVar10 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x20)" ( (binary_expression "puVar10 + -0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar11 + -0x130)" * (cast_expression "(undefined4 *)(puVar11 + -0x130)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x130)" ( (binary_expression "puVar11 + -0x130" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x24) = 0x71753;" (assignment_expression "*(undefined4 *)(puVar10 + -0x24) = 0x71753" (pointer_expression "*(undefined4 *)(puVar10 + -0x24)" * (cast_expression "(undefined4 *)(puVar10 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x24)" ( (binary_expression "puVar10 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_powlo();" (call_expression "__gmpn_powlo()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(int *)(puVar10 + -4) = iVar12;" (assignment_expression "*(int *)(puVar10 + -4) = iVar12" (pointer_expression "*(int *)(puVar10 + -4)" * (cast_expression "(int *)(puVar10 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144);" (assignment_expression "*(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144)" (pointer_expression "*(undefined4 *)(puVar10 + -8)" * (cast_expression "(undefined4 *)(puVar10 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -8)" ( (binary_expression "puVar10 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar11 + -0x144)" * (cast_expression "(undefined4 *)(puVar11 + -0x144)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x144)" ( (binary_expression "puVar11 + -0x144" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130);" (assignment_expression "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130)" (pointer_expression "*(undefined4 *)(puVar10 + -0xc)" * (cast_expression "(undefined4 *)(puVar10 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar11 + -0x130)" * (cast_expression "(undefined4 *)(puVar11 + -0x130)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x130)" ( (binary_expression "puVar11 + -0x130" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar10 + -0x10) = iVar3;" (assignment_expression "*(int *)(puVar10 + -0x10) = iVar3" (pointer_expression "*(int *)(puVar10 + -0x10)" * (cast_expression "(int *)(puVar10 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x71769;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x71769" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_mullo_n();" (call_expression "__gmpn_mullo_n()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar7 = *(int *)(puVar11 + -0x134);" (assignment_expression "iVar7 = *(int *)(puVar11 + -0x134)" identifier = (pointer_expression "*(int *)(puVar11 + -0x134)" * (cast_expression "(int *)(puVar11 + -0x134)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x134)" ( (binary_expression "puVar11 + -0x134" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(puVar11 + -300);" (assignment_expression "iVar5 = *(int *)(puVar11 + -300)" identifier = (pointer_expression "*(int *)(puVar11 + -300)" * (cast_expression "(int *)(puVar11 + -300)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -300)" ( (binary_expression "puVar11 + -300" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar10 + -0xc)" * (cast_expression "(undefined4 *)(puVar10 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar8 = iVar12 - iVar7;" (assignment_expression "iVar8 = iVar12 - iVar7" identifier = (binary_expression "iVar12 - iVar7" identifier - identifier)) ;) (expression_statement "iVar7 = iVar7 * 4;" (assignment_expression "iVar7 = iVar7 * 4" identifier = (binary_expression "iVar7 * 4" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140);" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140)" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" * (cast_expression "(undefined4 *)(puVar10 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar11 + -0x140)" * (cast_expression "(undefined4 *)(puVar11 + -0x140)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x140)" ( (binary_expression "puVar11 + -0x140" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = iVar5 + iVar7;" (assignment_expression "iVar5 = iVar5 + iVar7" identifier = (binary_expression "iVar5 + iVar7" identifier + identifier)) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14);" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14)" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar11 + 0x14)" * (cast_expression "(undefined4 *)(puVar11 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar10 + -0x18) = iVar8;" (assignment_expression "*(int *)(puVar10 + -0x18) = iVar8" (pointer_expression "*(int *)(puVar10 + -0x18)" * (cast_expression "(int *)(puVar10 + -0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x18)" ( (binary_expression "puVar10 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar10 + -0x1c) = iVar7 + iVar3;" (assignment_expression "*(int *)(puVar10 + -0x1c) = iVar7 + iVar3" (pointer_expression "*(int *)(puVar10 + -0x1c)" * (cast_expression "(int *)(puVar10 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x1c)" ( (binary_expression "puVar10 + -0x1c" identifier + number_literal) )))) = (binary_expression "iVar7 + iVar3" identifier + identifier)) ;) (expression_statement "*(int *)(puVar10 + -0x20) = iVar5;" (assignment_expression "*(int *)(puVar10 + -0x20) = iVar5" (pointer_expression "*(int *)(puVar10 + -0x20)" * (cast_expression "(int *)(puVar10 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x20)" ( (binary_expression "puVar10 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar11 + -0x138) = iVar8;" (assignment_expression "*(int *)(puVar11 + -0x138) = iVar8" (pointer_expression "*(int *)(puVar11 + -0x138)" * (cast_expression "(int *)(puVar11 + -0x138)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x138)" ( (binary_expression "puVar11 + -0x138" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar11 + -0x134) = iVar5;" (assignment_expression "*(int *)(puVar11 + -0x134) = iVar5" (pointer_expression "*(int *)(puVar11 + -0x134)" * (cast_expression "(int *)(puVar11 + -0x134)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x134)" ( (binary_expression "puVar11 + -0x134" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x24) = 0x717a2;" (assignment_expression "*(undefined4 *)(puVar10 + -0x24) = 0x717a2" (pointer_expression "*(undefined4 *)(puVar10 + -0x24)" * (cast_expression "(undefined4 *)(puVar10 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x24)" ( (binary_expression "puVar10 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_pi1_bdiv_q_1();" (call_expression "__gmpn_pi1_bdiv_q_1()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar6 = *(int **)(puVar11 + -0x134);" (assignment_expression "piVar6 = *(int **)(puVar11 + -0x134)" identifier = (pointer_expression "*(int **)(puVar11 + -0x134)" * (cast_expression "(int **)(puVar11 + -0x134)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x134)" ( (binary_expression "puVar11 + -0x134" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(puVar11 + -0x138);" (assignment_expression "iVar7 = *(int *)(puVar11 + -0x138)" identifier = (pointer_expression "*(int *)(puVar11 + -0x138)" * (cast_expression "(int *)(puVar11 + -0x138)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x138)" ( (binary_expression "puVar11 + -0x138" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *piVar6;" (assignment_expression "iVar5 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (while_statement "while (iVar7 = iVar7 + -1, iVar5 == 0) {\n          if (iVar7 == 0) goto LAB_000717d0;\n          piVar6 = piVar6 + 1;\n          iVar5 = *piVar6;\n        }" while (parenthesized_expression "(iVar7 = iVar7 + -1, iVar5 == 0)" ( (comma_expression "iVar7 = iVar7 + -1, iVar5 == 0" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) , (binary_expression "iVar5 == 0" identifier == number_literal)) )) (compound_statement "{\n          if (iVar7 == 0) goto LAB_000717d0;\n          piVar6 = piVar6 + 1;\n          iVar5 = *piVar6;\n        }" { (if_statement "if (iVar7 == 0) goto LAB_000717d0;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000717d0;" goto statement_identifier ;)) (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" identifier = (binary_expression "piVar6 + 1" identifier + number_literal)) ;) (expression_statement "iVar5 = *piVar6;" (assignment_expression "iVar5 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) })) (expression_statement "*piVar6 = -iVar5;" (assignment_expression "*piVar6 = -iVar5" (pointer_expression "*piVar6" * identifier) = (unary_expression "-iVar5" - identifier)) ;) (if_statement "if (iVar7 != 0) {\n          *(int *)(puVar10 + -8) = iVar7;\n          *(int **)(puVar10 + -0xc) = piVar6 + 1;\n          *(int **)(puVar10 + -0x10) = piVar6 + 1;\n          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n          *(int *)(puVar10 + -8) = iVar7;\n          *(int **)(puVar10 + -0xc) = piVar6 + 1;\n          *(int **)(puVar10 + -0x10) = piVar6 + 1;\n          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }" { (expression_statement "*(int *)(puVar10 + -8) = iVar7;" (assignment_expression "*(int *)(puVar10 + -8) = iVar7" (pointer_expression "*(int *)(puVar10 + -8)" * (cast_expression "(int *)(puVar10 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -8)" ( (binary_expression "puVar10 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar10 + -0xc) = piVar6 + 1;" (assignment_expression "*(int **)(puVar10 + -0xc) = piVar6 + 1" (pointer_expression "*(int **)(puVar10 + -0xc)" * (cast_expression "(int **)(puVar10 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) = (binary_expression "piVar6 + 1" identifier + number_literal)) ;) (expression_statement "*(int **)(puVar10 + -0x10) = piVar6 + 1;" (assignment_expression "*(int **)(puVar10 + -0x10) = piVar6 + 1" (pointer_expression "*(int **)(puVar10 + -0x10)" * (cast_expression "(int **)(puVar10 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = (binary_expression "piVar6 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x7180e;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x7180e" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_com();" (call_expression "__gmpn_com()" identifier (argument_list "()" ( ))) ;) })) (labeled_statement "LAB_000717d0:\n        iVar7 = *(int *)(puVar11 + -0x13c);" statement_identifier : (expression_statement "iVar7 = *(int *)(puVar11 + -0x13c);" (assignment_expression "iVar7 = *(int *)(puVar11 + -0x13c)" identifier = (pointer_expression "*(int *)(puVar11 + -0x13c)" * (cast_expression "(int *)(puVar11 + -0x13c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x13c)" ( (binary_expression "puVar11 + -0x13c" identifier + number_literal) ))))) ;)) (if_statement "if (*(int *)(puVar11 + -0x148) == iVar7) break;" if (parenthesized_expression "(*(int *)(puVar11 + -0x148) == iVar7)" ( (binary_expression "*(int *)(puVar11 + -0x148) == iVar7" (pointer_expression "*(int *)(puVar11 + -0x148)" * (cast_expression "(int *)(puVar11 + -0x148)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x148)" ( (binary_expression "puVar11 + -0x148" identifier + number_literal) )))) == identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = *(int *)(iVar7 + -4);" (assignment_expression "iVar5 = *(int *)(iVar7 + -4)" identifier = (pointer_expression "*(int *)(iVar7 + -4)" * (cast_expression "(int *)(iVar7 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -4)" ( (binary_expression "iVar7 + -4" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar11 + -0x13c) = iVar7 + -4;" (assignment_expression "*(int *)(puVar11 + -0x13c) = iVar7 + -4" (pointer_expression "*(int *)(puVar11 + -0x13c)" * (cast_expression "(int *)(puVar11 + -0x13c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x13c)" ( (binary_expression "puVar11 + -0x13c" identifier + number_literal) )))) = (binary_expression "iVar7 + -4" identifier + number_literal)) ;) (expression_statement "iVar7 = iVar12;" (assignment_expression "iVar7 = iVar12" identifier = identifier) ;) (expression_statement "iVar12 = iVar5;" (assignment_expression "iVar12 = iVar5" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) })) (if_statement "if (*(int *)(puVar11 + -0x120) != 0) {\n    *(int *)(puVar10 + -0x10) = *(int *)(puVar11 + -0x120);\n    *(undefined4 *)(puVar10 + -0x14) = 0x71897;\n    __gmp_tmp_reentrant_free();\n  }" if (parenthesized_expression "(*(int *)(puVar11 + -0x120) != 0)" ( (binary_expression "*(int *)(puVar11 + -0x120) != 0" (pointer_expression "*(int *)(puVar11 + -0x120)" * (cast_expression "(int *)(puVar11 + -0x120)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x120)" ( (binary_expression "puVar11 + -0x120" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    *(int *)(puVar10 + -0x10) = *(int *)(puVar11 + -0x120);\n    *(undefined4 *)(puVar10 + -0x14) = 0x71897;\n    __gmp_tmp_reentrant_free();\n  }" { (expression_statement "*(int *)(puVar10 + -0x10) = *(int *)(puVar11 + -0x120);" (assignment_expression "*(int *)(puVar10 + -0x10) = *(int *)(puVar11 + -0x120)" (pointer_expression "*(int *)(puVar10 + -0x10)" * (cast_expression "(int *)(puVar10 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(int *)(puVar11 + -0x120)" * (cast_expression "(int *)(puVar11 + -0x120)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x120)" ( (binary_expression "puVar11 + -0x120" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x71897;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x71897" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" * (cast_expression "(undefined4 *)(puVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x14)" ( (binary_expression "puVar10 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmp_tmp_reentrant_free();" (call_expression "__gmp_tmp_reentrant_free()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(int *)(puVar11 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(*(int *)(puVar11 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "*(int *)(puVar11 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14)" (pointer_expression "*(int *)(puVar11 + -0x1c)" * (cast_expression "(int *)(puVar11 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x1c)" ( (binary_expression "puVar11 + -0x1c" identifier + number_literal) )))) == (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 *)(puVar10 + -4) = 0x718bf;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x718bf" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -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) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + (unary_expression - (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (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 *)) ) (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) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (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 (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) & LIT) ))) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) - (binary_expression (binary_expression IDENT * IDENT) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) - (binary_expression (binary_expression IDENT * IDENT) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) ^ (binary_expression IDENT * LIT)) )) & (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT)) & LIT) )) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (parenthesized_expression ( (binary_expression IDENT - (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT)) ;) }))) (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 = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = (binary_expression IDENT * 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) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT) + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) >> LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))) = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (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) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (do_statement do (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) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (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 ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (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 (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (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) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression IDENT == LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (unary_expression - 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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (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 IDENT (argument_list ( ))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( BOOL )) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (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 __gmpn_broot_invm1(void)\n\n{\n  undefined4 *puVar1;\n  uint uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  int unaff_EBX;\n  int iVar9;\n  undefined1 *puVar10;\n  undefined1 *puVar11;\n  int iVar12;\n  int in_GS_OFFSET;\n  int aiStackY_8094 [8137];\n  undefined1 auStack_160 [332];\n  undefined4 uStack_14;\n  \n  puVar11 = &stack0xfffffffc;\n  uStack_14 = 0x714bb;\n  entry();\n  piVar6 = *(int **)(puVar11 + 0xc);\n  *(undefined4 *)(puVar11 + -300) = *(undefined4 *)(puVar11 + 8);\n  *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  *(undefined4 *)(puVar11 + -0x120) = 0;\n  uVar2 = *(int *)(puVar11 + 0x10) * 0x10;\n  if (uVar2 < 0x7f01) {\n    puVar10 = auStack_160 + -(uVar2 + 0x10);\n    *(undefined1 **)(puVar11 + -0x144) = auStack_160 + -(uVar2 + 0x10);\n  }\n  else {\n    uVar4 = __gmp_tmp_reentrant_alloc(puVar11 + -0x120,uVar2);\n    puVar10 = auStack_160;\n    *(undefined4 *)(puVar11 + -0x144) = uVar4;\n  }\n  puVar1 = *(undefined4 **)(puVar11 + -0x144);\n  *(int *)(puVar11 + -0x134) = *(int *)(puVar11 + 0x10) * 4;\n  *(undefined4 **)(puVar11 + -0x14c) = puVar1 + *(int *)(puVar11 + 0x10);\n  iVar3 = *(int *)(puVar11 + 0x14);\n  *(undefined4 **)(puVar10 + -0xc) = puVar1 + *(int *)(puVar11 + 0x10);\n  *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + 0x10);\n  *(int *)(puVar11 + -0x128) = iVar3 + -1;\n  *(undefined4 *)(puVar10 + -0x14) = 1;\n  *(undefined1 **)(puVar10 + -0x18) = puVar11 + -0x128;\n  *(int **)(puVar10 + -0x1c) = piVar6;\n  *(undefined4 **)(puVar10 + -0x20) = puVar1;\n  *(undefined4 *)(puVar10 + -0x24) = 0x7154e;\n  __gmpn_powlo();\n  iVar3 = *piVar6;\n  iVar7 = *(int *)(unaff_EBX + 0x27a0d);\n  uVar4 = *puVar1;\n  *(uint *)(puVar11 + -0x138) = *(uint *)(puVar11 + 0x14) >> 1;\n  *(undefined4 *)(puVar11 + -0x130) = uVar4;\n  uVar2 = (uint)*(byte *)(iVar7 + (*(uint *)(puVar11 + 0x14) >> 1 & 0x7f));\n  iVar7 = uVar2 * 2 - uVar2 * uVar2 * *(int *)(puVar11 + 0x14);\n  iVar7 = iVar7 * 2 - iVar7 * iVar7 * *(int *)(puVar11 + 0x14);\n  *(int *)(puVar11 + -0x140) = iVar7;\n  iVar3 = ((iVar3 << 2 ^ iVar3 * 2) & *(int *)(puVar11 + 0x14) << 2 & 8U) + 1;\n  iVar7 = iVar7 * iVar3;\n  uVar2 = *(uint *)(puVar11 + 0x14) & 0x7f;\n  if (uVar2 == 0) {\n    iVar12 = *(int *)(puVar11 + -0x130);\n  }\n  else {\n    iVar12 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar12 = iVar12 * iVar3;\n      }\n      iVar3 = iVar3 * iVar3;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = *(int *)(puVar11 + -0x130) * iVar12;\n  }\n  iVar3 = *(int *)(puVar11 + 0x14) + 1;\n  iVar7 = iVar7 * (iVar3 - iVar12);\n  iVar12 = *(int *)(puVar11 + -0x140) * iVar7;\n  uVar2 = *(uint *)(puVar11 + 0x14) & 0x7fff;\n  if (uVar2 == 0) {\n    iVar7 = iVar3 - *(int *)(puVar11 + -0x130);\n    iVar12 = iVar12 * iVar7;\n    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;\n    if (*(int *)(puVar11 + 0x14) == 0) goto LAB_00071659;\n  }\n  else {\n    iVar5 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar5 = iVar5 * iVar7;\n      }\n      iVar7 = iVar7 * iVar7;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = iVar12 * (iVar3 - iVar5 * *(int *)(puVar11 + -0x130));\n    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;\n  }\n  uVar2 = *(uint *)(puVar11 + 0x14);\n  iVar7 = 1;\n  do {\n    if ((uVar2 & 1) != 0) {\n      iVar7 = iVar7 * iVar12;\n    }\n    iVar12 = iVar12 * iVar12;\n    uVar2 = uVar2 >> 1;\n  } while (uVar2 != 0);\n  iVar7 = iVar3 - iVar7 * *(int *)(puVar11 + -0x130);\nLAB_00071659:\n  iVar3 = *(int *)(puVar11 + 0x10);\n  **(int **)(puVar11 + -300) = iVar7 * iVar5;\n  if (iVar3 != 1) {\n    *(int *)(puVar11 + -0x124) = *(int *)(puVar11 + -0x138) + 1;\n    uVar2 = *(int *)(puVar11 + 0x10) * 8 + 4;\n    if (uVar2 < 0x7f01) {\n      iVar3 = -(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0);\n      iVar9 = (int)puVar10 + iVar3;\n      puVar10 = puVar10 + iVar3;\n      *(int *)(puVar11 + -0x130) = iVar9;\n    }\n    else {\n      *(uint *)(puVar10 + -0xc) = uVar2;\n      *(undefined1 **)(puVar10 + -0x10) = puVar11 + -0x120;\n      *(undefined4 *)(puVar10 + -0x14) = 0x718ac;\n      uVar4 = __gmp_tmp_reentrant_alloc();\n      *(undefined4 *)(puVar11 + -0x130) = uVar4;\n    }\n    if (1 < *(int *)(puVar11 + 0x10)) {\n      *(int *)(puVar11 + -0x134) = *(int *)(puVar11 + -0x134) + *(int *)(puVar11 + -0x130);\n      *(undefined1 **)(puVar11 + -0x148) = puVar11 + -0x11c;\n      iVar3 = 0;\n      iVar7 = *(int *)(puVar11 + 0x10);\n      do {\n        iVar12 = iVar7;\n        iVar5 = iVar3;\n        iVar3 = iVar5 + 1;\n        iVar7 = iVar12 + 1 >> 1;\n        *(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12;\n      } while (iVar7 != 1);\n      iVar3 = *(int *)(puVar11 + -0x134);\n      *(int *)(puVar11 + 0x10) = iVar12;\n      *(int *)(puVar11 + -0x13c) = *(int *)(puVar11 + -0x148) + iVar5 * 4;\n      *(undefined1 **)(puVar11 + -0x150) = puVar11 + -0x124;\n      do {\n        *(int *)(puVar11 + -0x134) = iVar7;\n        *(int *)(puVar10 + -8) = iVar7;\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71736;\n        __gmpn_sqr();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c);\n        *(int *)(puVar10 + -0x10) = iVar12;\n        *(undefined4 *)(puVar10 + -0x14) = 1;\n        *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150);\n        *(int *)(puVar10 + -0x1c) = iVar3;\n        *(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130);\n        *(undefined4 *)(puVar10 + -0x24) = 0x71753;\n        __gmpn_powlo();\n        *(int *)(puVar10 + -4) = iVar12;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71769;\n        __gmpn_mullo_n();\n        iVar7 = *(int *)(puVar11 + -0x134);\n        iVar5 = *(int *)(puVar11 + -300);\n        *(undefined4 *)(puVar10 + -0xc) = 0;\n        iVar8 = iVar12 - iVar7;\n        iVar7 = iVar7 * 4;\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140);\n        iVar5 = iVar5 + iVar7;\n        *(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14);\n        *(int *)(puVar10 + -0x18) = iVar8;\n        *(int *)(puVar10 + -0x1c) = iVar7 + iVar3;\n        *(int *)(puVar10 + -0x20) = iVar5;\n        *(int *)(puVar11 + -0x138) = iVar8;\n        *(int *)(puVar11 + -0x134) = iVar5;\n        *(undefined4 *)(puVar10 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        piVar6 = *(int **)(puVar11 + -0x134);\n        iVar7 = *(int *)(puVar11 + -0x138);\n        iVar5 = *piVar6;\n        while (iVar7 = iVar7 + -1, iVar5 == 0) {\n          if (iVar7 == 0) goto LAB_000717d0;\n          piVar6 = piVar6 + 1;\n          iVar5 = *piVar6;\n        }\n        *piVar6 = -iVar5;\n        if (iVar7 != 0) {\n          *(int *)(puVar10 + -8) = iVar7;\n          *(int **)(puVar10 + -0xc) = piVar6 + 1;\n          *(int **)(puVar10 + -0x10) = piVar6 + 1;\n          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        iVar7 = *(int *)(puVar11 + -0x13c);\n        if (*(int *)(puVar11 + -0x148) == iVar7) break;\n        iVar5 = *(int *)(iVar7 + -4);\n        *(int *)(puVar11 + -0x13c) = iVar7 + -4;\n        iVar7 = iVar12;\n        iVar12 = iVar5;\n      } while( true );\n    }\n  }\n  if (*(int *)(puVar11 + -0x120) != 0) {\n    *(int *)(puVar10 + -0x10) = *(int *)(puVar11 + -0x120);\n    *(undefined4 *)(puVar10 + -0x14) = 0x71897;\n    __gmp_tmp_reentrant_free();\n  }\n  if (*(int *)(puVar11 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  *(undefined4 *)(puVar10 + -4) = 0x718bf;\n  FUN_00079d30();\n}" (primitive_type "void") (function_declarator "__gmpn_broot_invm1(void)" (identifier "__gmpn_broot_invm1") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  undefined4 *puVar1;\n  uint uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar8;\n  int unaff_EBX;\n  int iVar9;\n  undefined1 *puVar10;\n  undefined1 *puVar11;\n  int iVar12;\n  int in_GS_OFFSET;\n  int aiStackY_8094 [8137];\n  undefined1 auStack_160 [332];\n  undefined4 uStack_14;\n  \n  puVar11 = &stack0xfffffffc;\n  uStack_14 = 0x714bb;\n  entry();\n  piVar6 = *(int **)(puVar11 + 0xc);\n  *(undefined4 *)(puVar11 + -300) = *(undefined4 *)(puVar11 + 8);\n  *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  *(undefined4 *)(puVar11 + -0x120) = 0;\n  uVar2 = *(int *)(puVar11 + 0x10) * 0x10;\n  if (uVar2 < 0x7f01) {\n    puVar10 = auStack_160 + -(uVar2 + 0x10);\n    *(undefined1 **)(puVar11 + -0x144) = auStack_160 + -(uVar2 + 0x10);\n  }\n  else {\n    uVar4 = __gmp_tmp_reentrant_alloc(puVar11 + -0x120,uVar2);\n    puVar10 = auStack_160;\n    *(undefined4 *)(puVar11 + -0x144) = uVar4;\n  }\n  puVar1 = *(undefined4 **)(puVar11 + -0x144);\n  *(int *)(puVar11 + -0x134) = *(int *)(puVar11 + 0x10) * 4;\n  *(undefined4 **)(puVar11 + -0x14c) = puVar1 + *(int *)(puVar11 + 0x10);\n  iVar3 = *(int *)(puVar11 + 0x14);\n  *(undefined4 **)(puVar10 + -0xc) = puVar1 + *(int *)(puVar11 + 0x10);\n  *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + 0x10);\n  *(int *)(puVar11 + -0x128) = iVar3 + -1;\n  *(undefined4 *)(puVar10 + -0x14) = 1;\n  *(undefined1 **)(puVar10 + -0x18) = puVar11 + -0x128;\n  *(int **)(puVar10 + -0x1c) = piVar6;\n  *(undefined4 **)(puVar10 + -0x20) = puVar1;\n  *(undefined4 *)(puVar10 + -0x24) = 0x7154e;\n  __gmpn_powlo();\n  iVar3 = *piVar6;\n  iVar7 = *(int *)(unaff_EBX + 0x27a0d);\n  uVar4 = *puVar1;\n  *(uint *)(puVar11 + -0x138) = *(uint *)(puVar11 + 0x14) >> 1;\n  *(undefined4 *)(puVar11 + -0x130) = uVar4;\n  uVar2 = (uint)*(byte *)(iVar7 + (*(uint *)(puVar11 + 0x14) >> 1 & 0x7f));\n  iVar7 = uVar2 * 2 - uVar2 * uVar2 * *(int *)(puVar11 + 0x14);\n  iVar7 = iVar7 * 2 - iVar7 * iVar7 * *(int *)(puVar11 + 0x14);\n  *(int *)(puVar11 + -0x140) = iVar7;\n  iVar3 = ((iVar3 << 2 ^ iVar3 * 2) & *(int *)(puVar11 + 0x14) << 2 & 8U) + 1;\n  iVar7 = iVar7 * iVar3;\n  uVar2 = *(uint *)(puVar11 + 0x14) & 0x7f;\n  if (uVar2 == 0) {\n    iVar12 = *(int *)(puVar11 + -0x130);\n  }\n  else {\n    iVar12 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar12 = iVar12 * iVar3;\n      }\n      iVar3 = iVar3 * iVar3;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = *(int *)(puVar11 + -0x130) * iVar12;\n  }\n  iVar3 = *(int *)(puVar11 + 0x14) + 1;\n  iVar7 = iVar7 * (iVar3 - iVar12);\n  iVar12 = *(int *)(puVar11 + -0x140) * iVar7;\n  uVar2 = *(uint *)(puVar11 + 0x14) & 0x7fff;\n  if (uVar2 == 0) {\n    iVar7 = iVar3 - *(int *)(puVar11 + -0x130);\n    iVar12 = iVar12 * iVar7;\n    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;\n    if (*(int *)(puVar11 + 0x14) == 0) goto LAB_00071659;\n  }\n  else {\n    iVar5 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar5 = iVar5 * iVar7;\n      }\n      iVar7 = iVar7 * iVar7;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = iVar12 * (iVar3 - iVar5 * *(int *)(puVar11 + -0x130));\n    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;\n  }\n  uVar2 = *(uint *)(puVar11 + 0x14);\n  iVar7 = 1;\n  do {\n    if ((uVar2 & 1) != 0) {\n      iVar7 = iVar7 * iVar12;\n    }\n    iVar12 = iVar12 * iVar12;\n    uVar2 = uVar2 >> 1;\n  } while (uVar2 != 0);\n  iVar7 = iVar3 - iVar7 * *(int *)(puVar11 + -0x130);\nLAB_00071659:\n  iVar3 = *(int *)(puVar11 + 0x10);\n  **(int **)(puVar11 + -300) = iVar7 * iVar5;\n  if (iVar3 != 1) {\n    *(int *)(puVar11 + -0x124) = *(int *)(puVar11 + -0x138) + 1;\n    uVar2 = *(int *)(puVar11 + 0x10) * 8 + 4;\n    if (uVar2 < 0x7f01) {\n      iVar3 = -(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0);\n      iVar9 = (int)puVar10 + iVar3;\n      puVar10 = puVar10 + iVar3;\n      *(int *)(puVar11 + -0x130) = iVar9;\n    }\n    else {\n      *(uint *)(puVar10 + -0xc) = uVar2;\n      *(undefined1 **)(puVar10 + -0x10) = puVar11 + -0x120;\n      *(undefined4 *)(puVar10 + -0x14) = 0x718ac;\n      uVar4 = __gmp_tmp_reentrant_alloc();\n      *(undefined4 *)(puVar11 + -0x130) = uVar4;\n    }\n    if (1 < *(int *)(puVar11 + 0x10)) {\n      *(int *)(puVar11 + -0x134) = *(int *)(puVar11 + -0x134) + *(int *)(puVar11 + -0x130);\n      *(undefined1 **)(puVar11 + -0x148) = puVar11 + -0x11c;\n      iVar3 = 0;\n      iVar7 = *(int *)(puVar11 + 0x10);\n      do {\n        iVar12 = iVar7;\n        iVar5 = iVar3;\n        iVar3 = iVar5 + 1;\n        iVar7 = iVar12 + 1 >> 1;\n        *(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12;\n      } while (iVar7 != 1);\n      iVar3 = *(int *)(puVar11 + -0x134);\n      *(int *)(puVar11 + 0x10) = iVar12;\n      *(int *)(puVar11 + -0x13c) = *(int *)(puVar11 + -0x148) + iVar5 * 4;\n      *(undefined1 **)(puVar11 + -0x150) = puVar11 + -0x124;\n      do {\n        *(int *)(puVar11 + -0x134) = iVar7;\n        *(int *)(puVar10 + -8) = iVar7;\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71736;\n        __gmpn_sqr();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c);\n        *(int *)(puVar10 + -0x10) = iVar12;\n        *(undefined4 *)(puVar10 + -0x14) = 1;\n        *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150);\n        *(int *)(puVar10 + -0x1c) = iVar3;\n        *(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130);\n        *(undefined4 *)(puVar10 + -0x24) = 0x71753;\n        __gmpn_powlo();\n        *(int *)(puVar10 + -4) = iVar12;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71769;\n        __gmpn_mullo_n();\n        iVar7 = *(int *)(puVar11 + -0x134);\n        iVar5 = *(int *)(puVar11 + -300);\n        *(undefined4 *)(puVar10 + -0xc) = 0;\n        iVar8 = iVar12 - iVar7;\n        iVar7 = iVar7 * 4;\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140);\n        iVar5 = iVar5 + iVar7;\n        *(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14);\n        *(int *)(puVar10 + -0x18) = iVar8;\n        *(int *)(puVar10 + -0x1c) = iVar7 + iVar3;\n        *(int *)(puVar10 + -0x20) = iVar5;\n        *(int *)(puVar11 + -0x138) = iVar8;\n        *(int *)(puVar11 + -0x134) = iVar5;\n        *(undefined4 *)(puVar10 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        piVar6 = *(int **)(puVar11 + -0x134);\n        iVar7 = *(int *)(puVar11 + -0x138);\n        iVar5 = *piVar6;\n        while (iVar7 = iVar7 + -1, iVar5 == 0) {\n          if (iVar7 == 0) goto LAB_000717d0;\n          piVar6 = piVar6 + 1;\n          iVar5 = *piVar6;\n        }\n        *piVar6 = -iVar5;\n        if (iVar7 != 0) {\n          *(int *)(puVar10 + -8) = iVar7;\n          *(int **)(puVar10 + -0xc) = piVar6 + 1;\n          *(int **)(puVar10 + -0x10) = piVar6 + 1;\n          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        iVar7 = *(int *)(puVar11 + -0x13c);\n        if (*(int *)(puVar11 + -0x148) == iVar7) break;\n        iVar5 = *(int *)(iVar7 + -4);\n        *(int *)(puVar11 + -0x13c) = iVar7 + -4;\n        iVar7 = iVar12;\n        iVar12 = iVar5;\n      } while( true );\n    }\n  }\n  if (*(int *)(puVar11 + -0x120) != 0) {\n    *(int *)(puVar10 + -0x10) = *(int *)(puVar11 + -0x120);\n    *(undefined4 *)(puVar10 + -0x14) = 0x71897;\n    __gmp_tmp_reentrant_free();\n  }\n  if (*(int *)(puVar11 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  *(undefined4 *)(puVar10 + -4) = 0x718bf;\n  FUN_00079d30();\n}" ({ "{") (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int unaff_EBX;" (primitive_type "int") (identifier "unaff_EBX") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "undefined1 *puVar10;" (type_identifier "undefined1") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "undefined1 *puVar11;" (type_identifier "undefined1") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "int aiStackY_8094 [8137];" (primitive_type "int") (array_declarator "aiStackY_8094 [8137]" (identifier "aiStackY_8094") ([ "[") (number_literal "8137") (] "]")) (; ";")) (declaration "undefined1 auStack_160 [332];" (type_identifier "undefined1") (array_declarator "auStack_160 [332]" (identifier "auStack_160") ([ "[") (number_literal "332") (] "]")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "puVar11 = &stack0xfffffffc;" (assignment_expression "puVar11 = &stack0xfffffffc" (identifier "puVar11") (= "=") (pointer_expression "&stack0xfffffffc" (& "&") (identifier "stack0xfffffffc"))) (; ";")) (expression_statement "uStack_14 = 0x714bb;" (assignment_expression "uStack_14 = 0x714bb" (identifier "uStack_14") (= "=") (number_literal "0x714bb")) (; ";")) (expression_statement "entry();" (call_expression "entry()" (identifier "entry") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar6 = *(int **)(puVar11 + 0xc);" (assignment_expression "piVar6 = *(int **)(puVar11 + 0xc)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(puVar11 + 0xc)" (* "*") (cast_expression "(int **)(puVar11 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0xc)" (( "(") (binary_expression "puVar11 + 0xc" (identifier "puVar11") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -300) = *(undefined4 *)(puVar11 + 8);" (assignment_expression "*(undefined4 *)(puVar11 + -300) = *(undefined4 *)(puVar11 + 8)" (pointer_expression "*(undefined4 *)(puVar11 + -300)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -300)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -300)" (( "(") (binary_expression "puVar11 + -300" (identifier "puVar11") (+ "+") (number_literal "-300")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar11 + 8)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 8)" (( "(") (binary_expression "puVar11 + 8" (identifier "puVar11") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(in_GS_OFFSET + 0x14);" (assignment_expression "*(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(in_GS_OFFSET + 0x14)" (pointer_expression "*(undefined4 *)(puVar11 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x1c)" (( "(") (binary_expression "puVar11 + -0x1c" (identifier "puVar11") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(undefined4 *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x120) = 0;" (assignment_expression "*(undefined4 *)(puVar11 + -0x120) = 0" (pointer_expression "*(undefined4 *)(puVar11 + -0x120)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x120)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x120)" (( "(") (binary_expression "puVar11 + -0x120" (identifier "puVar11") (+ "+") (number_literal "-0x120")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar2 = *(int *)(puVar11 + 0x10) * 0x10;" (assignment_expression "uVar2 = *(int *)(puVar11 + 0x10) * 0x10" (identifier "uVar2") (= "=") (binary_expression "*(int *)(puVar11 + 0x10) * 0x10" (pointer_expression "*(int *)(puVar11 + 0x10)" (* "*") (cast_expression "(int *)(puVar11 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x10)" (( "(") (binary_expression "puVar11 + 0x10" (identifier "puVar11") (+ "+") (number_literal "0x10")) () ")")))) (* "*") (number_literal "0x10"))) (; ";")) (if_statement "if (uVar2 < 0x7f01) {\n    puVar10 = auStack_160 + -(uVar2 + 0x10);\n    *(undefined1 **)(puVar11 + -0x144) = auStack_160 + -(uVar2 + 0x10);\n  }\n  else {\n    uVar4 = __gmp_tmp_reentrant_alloc(puVar11 + -0x120,uVar2);\n    puVar10 = auStack_160;\n    *(undefined4 *)(puVar11 + -0x144) = uVar4;\n  }" (if "if") (parenthesized_expression "(uVar2 < 0x7f01)" (( "(") (binary_expression "uVar2 < 0x7f01" (identifier "uVar2") (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n    puVar10 = auStack_160 + -(uVar2 + 0x10);\n    *(undefined1 **)(puVar11 + -0x144) = auStack_160 + -(uVar2 + 0x10);\n  }" ({ "{") (expression_statement "puVar10 = auStack_160 + -(uVar2 + 0x10);" (assignment_expression "puVar10 = auStack_160 + -(uVar2 + 0x10)" (identifier "puVar10") (= "=") (binary_expression "auStack_160 + -(uVar2 + 0x10)" (identifier "auStack_160") (+ "+") (unary_expression "-(uVar2 + 0x10)" (- "-") (parenthesized_expression "(uVar2 + 0x10)" (( "(") (binary_expression "uVar2 + 0x10" (identifier "uVar2") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar11 + -0x144) = auStack_160 + -(uVar2 + 0x10);" (assignment_expression "*(undefined1 **)(puVar11 + -0x144) = auStack_160 + -(uVar2 + 0x10)" (pointer_expression "*(undefined1 **)(puVar11 + -0x144)" (* "*") (cast_expression "(undefined1 **)(puVar11 + -0x144)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x144)" (( "(") (binary_expression "puVar11 + -0x144" (identifier "puVar11") (+ "+") (number_literal "-0x144")) () ")")))) (= "=") (binary_expression "auStack_160 + -(uVar2 + 0x10)" (identifier "auStack_160") (+ "+") (unary_expression "-(uVar2 + 0x10)" (- "-") (parenthesized_expression "(uVar2 + 0x10)" (( "(") (binary_expression "uVar2 + 0x10" (identifier "uVar2") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    uVar4 = __gmp_tmp_reentrant_alloc(puVar11 + -0x120,uVar2);\n    puVar10 = auStack_160;\n    *(undefined4 *)(puVar11 + -0x144) = uVar4;\n  }" (else "else") (compound_statement "{\n    uVar4 = __gmp_tmp_reentrant_alloc(puVar11 + -0x120,uVar2);\n    puVar10 = auStack_160;\n    *(undefined4 *)(puVar11 + -0x144) = uVar4;\n  }" ({ "{") (expression_statement "uVar4 = __gmp_tmp_reentrant_alloc(puVar11 + -0x120,uVar2);" (assignment_expression "uVar4 = __gmp_tmp_reentrant_alloc(puVar11 + -0x120,uVar2)" (identifier "uVar4") (= "=") (call_expression "__gmp_tmp_reentrant_alloc(puVar11 + -0x120,uVar2)" (identifier "__gmp_tmp_reentrant_alloc") (argument_list "(puVar11 + -0x120,uVar2)" (( "(") (binary_expression "puVar11 + -0x120" (identifier "puVar11") (+ "+") (number_literal "-0x120")) (, ",") (identifier "uVar2") () ")")))) (; ";")) (expression_statement "puVar10 = auStack_160;" (assignment_expression "puVar10 = auStack_160" (identifier "puVar10") (= "=") (identifier "auStack_160")) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x144) = uVar4;" (assignment_expression "*(undefined4 *)(puVar11 + -0x144) = uVar4" (pointer_expression "*(undefined4 *)(puVar11 + -0x144)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x144)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x144)" (( "(") (binary_expression "puVar11 + -0x144" (identifier "puVar11") (+ "+") (number_literal "-0x144")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (} "}")))) (expression_statement "puVar1 = *(undefined4 **)(puVar11 + -0x144);" (assignment_expression "puVar1 = *(undefined4 **)(puVar11 + -0x144)" (identifier "puVar1") (= "=") (pointer_expression "*(undefined4 **)(puVar11 + -0x144)" (* "*") (cast_expression "(undefined4 **)(puVar11 + -0x144)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x144)" (( "(") (binary_expression "puVar11 + -0x144" (identifier "puVar11") (+ "+") (number_literal "-0x144")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar11 + -0x134) = *(int *)(puVar11 + 0x10) * 4;" (assignment_expression "*(int *)(puVar11 + -0x134) = *(int *)(puVar11 + 0x10) * 4" (pointer_expression "*(int *)(puVar11 + -0x134)" (* "*") (cast_expression "(int *)(puVar11 + -0x134)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x134)" (( "(") (binary_expression "puVar11 + -0x134" (identifier "puVar11") (+ "+") (number_literal "-0x134")) () ")")))) (= "=") (binary_expression "*(int *)(puVar11 + 0x10) * 4" (pointer_expression "*(int *)(puVar11 + 0x10)" (* "*") (cast_expression "(int *)(puVar11 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x10)" (( "(") (binary_expression "puVar11 + 0x10" (identifier "puVar11") (+ "+") (number_literal "0x10")) () ")")))) (* "*") (number_literal "4"))) (; ";")) (expression_statement "*(undefined4 **)(puVar11 + -0x14c) = puVar1 + *(int *)(puVar11 + 0x10);" (assignment_expression "*(undefined4 **)(puVar11 + -0x14c) = puVar1 + *(int *)(puVar11 + 0x10)" (pointer_expression "*(undefined4 **)(puVar11 + -0x14c)" (* "*") (cast_expression "(undefined4 **)(puVar11 + -0x14c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x14c)" (( "(") (binary_expression "puVar11 + -0x14c" (identifier "puVar11") (+ "+") (number_literal "-0x14c")) () ")")))) (= "=") (binary_expression "puVar1 + *(int *)(puVar11 + 0x10)" (identifier "puVar1") (+ "+") (pointer_expression "*(int *)(puVar11 + 0x10)" (* "*") (cast_expression "(int *)(puVar11 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x10)" (( "(") (binary_expression "puVar11 + 0x10" (identifier "puVar11") (+ "+") (number_literal "0x10")) () ")")))))) (; ";")) (expression_statement "iVar3 = *(int *)(puVar11 + 0x14);" (assignment_expression "iVar3 = *(int *)(puVar11 + 0x14)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar11 + 0x14)" (* "*") (cast_expression "(int *)(puVar11 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x14)" (( "(") (binary_expression "puVar11 + 0x14" (identifier "puVar11") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "*(undefined4 **)(puVar10 + -0xc) = puVar1 + *(int *)(puVar11 + 0x10);" (assignment_expression "*(undefined4 **)(puVar10 + -0xc) = puVar1 + *(int *)(puVar11 + 0x10)" (pointer_expression "*(undefined4 **)(puVar10 + -0xc)" (* "*") (cast_expression "(undefined4 **)(puVar10 + -0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -0xc)" (( "(") (binary_expression "puVar10 + -0xc" (identifier "puVar10") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "puVar1 + *(int *)(puVar11 + 0x10)" (identifier "puVar1") (+ "+") (pointer_expression "*(int *)(puVar11 + 0x10)" (* "*") (cast_expression "(int *)(puVar11 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x10)" (( "(") (binary_expression "puVar11 + 0x10" (identifier "puVar11") (+ "+") (number_literal "0x10")) () ")")))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + 0x10);" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + 0x10)" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x10)" (( "(") (binary_expression "puVar10 + -0x10" (identifier "puVar10") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar11 + 0x10)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x10)" (( "(") (binary_expression "puVar11 + 0x10" (identifier "puVar11") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar11 + -0x128) = iVar3 + -1;" (assignment_expression "*(int *)(puVar11 + -0x128) = iVar3 + -1" (pointer_expression "*(int *)(puVar11 + -0x128)" (* "*") (cast_expression "(int *)(puVar11 + -0x128)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x128)" (( "(") (binary_expression "puVar11 + -0x128" (identifier "puVar11") (+ "+") (number_literal "-0x128")) () ")")))) (= "=") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 1;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 1" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x14)" (( "(") (binary_expression "puVar10 + -0x14" (identifier "puVar10") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined1 **)(puVar10 + -0x18) = puVar11 + -0x128;" (assignment_expression "*(undefined1 **)(puVar10 + -0x18) = puVar11 + -0x128" (pointer_expression "*(undefined1 **)(puVar10 + -0x18)" (* "*") (cast_expression "(undefined1 **)(puVar10 + -0x18)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -0x18)" (( "(") (binary_expression "puVar10 + -0x18" (identifier "puVar10") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (binary_expression "puVar11 + -0x128" (identifier "puVar11") (+ "+") (number_literal "-0x128"))) (; ";")) (expression_statement "*(int **)(puVar10 + -0x1c) = piVar6;" (assignment_expression "*(int **)(puVar10 + -0x1c) = piVar6" (pointer_expression "*(int **)(puVar10 + -0x1c)" (* "*") (cast_expression "(int **)(puVar10 + -0x1c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -0x1c)" (( "(") (binary_expression "puVar10 + -0x1c" (identifier "puVar10") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "piVar6")) (; ";")) (expression_statement "*(undefined4 **)(puVar10 + -0x20) = puVar1;" (assignment_expression "*(undefined4 **)(puVar10 + -0x20) = puVar1" (pointer_expression "*(undefined4 **)(puVar10 + -0x20)" (* "*") (cast_expression "(undefined4 **)(puVar10 + -0x20)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -0x20)" (( "(") (binary_expression "puVar10 + -0x20" (identifier "puVar10") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "puVar1")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x24) = 0x7154e;" (assignment_expression "*(undefined4 *)(puVar10 + -0x24) = 0x7154e" (pointer_expression "*(undefined4 *)(puVar10 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x24)" (( "(") (binary_expression "puVar10 + -0x24" (identifier "puVar10") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x7154e")) (; ";")) (expression_statement "__gmpn_powlo();" (call_expression "__gmpn_powlo()" (identifier "__gmpn_powlo") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar3 = *piVar6;" (assignment_expression "iVar3 = *piVar6" (identifier "iVar3") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (expression_statement "iVar7 = *(int *)(unaff_EBX + 0x27a0d);" (assignment_expression "iVar7 = *(int *)(unaff_EBX + 0x27a0d)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(unaff_EBX + 0x27a0d)" (* "*") (cast_expression "(int *)(unaff_EBX + 0x27a0d)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBX + 0x27a0d)" (( "(") (binary_expression "unaff_EBX + 0x27a0d" (identifier "unaff_EBX") (+ "+") (number_literal "0x27a0d")) () ")"))))) (; ";")) (expression_statement "uVar4 = *puVar1;" (assignment_expression "uVar4 = *puVar1" (identifier "uVar4") (= "=") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) (; ";")) (expression_statement "*(uint *)(puVar11 + -0x138) = *(uint *)(puVar11 + 0x14) >> 1;" (assignment_expression "*(uint *)(puVar11 + -0x138) = *(uint *)(puVar11 + 0x14) >> 1" (pointer_expression "*(uint *)(puVar11 + -0x138)" (* "*") (cast_expression "(uint *)(puVar11 + -0x138)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x138)" (( "(") (binary_expression "puVar11 + -0x138" (identifier "puVar11") (+ "+") (number_literal "-0x138")) () ")")))) (= "=") (binary_expression "*(uint *)(puVar11 + 0x14) >> 1" (pointer_expression "*(uint *)(puVar11 + 0x14)" (* "*") (cast_expression "(uint *)(puVar11 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x14)" (( "(") (binary_expression "puVar11 + 0x14" (identifier "puVar11") (+ "+") (number_literal "0x14")) () ")")))) (>> ">>") (number_literal "1"))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x130) = uVar4;" (assignment_expression "*(undefined4 *)(puVar11 + -0x130) = uVar4" (pointer_expression "*(undefined4 *)(puVar11 + -0x130)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x130)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x130)" (( "(") (binary_expression "puVar11 + -0x130" (identifier "puVar11") (+ "+") (number_literal "-0x130")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "uVar2 = (uint)*(byte *)(iVar7 + (*(uint *)(puVar11 + 0x14) >> 1 & 0x7f));" (assignment_expression "uVar2 = (uint)*(byte *)(iVar7 + (*(uint *)(puVar11 + 0x14) >> 1 & 0x7f))" (identifier "uVar2") (= "=") (binary_expression "(uint)*(byte *)(iVar7 + (*(uint *)(puVar11 + 0x14) >> 1 & 0x7f))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar7 + (*(uint *)(puVar11 + 0x14) >> 1 & 0x7f))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + (*(uint *)(puVar11 + 0x14) >> 1 & 0x7f))" (( "(") (binary_expression "iVar7 + (*(uint *)(puVar11 + 0x14) >> 1 & 0x7f)" (identifier "iVar7") (+ "+") (parenthesized_expression "(*(uint *)(puVar11 + 0x14) >> 1 & 0x7f)" (( "(") (binary_expression "*(uint *)(puVar11 + 0x14) >> 1 & 0x7f" (binary_expression "*(uint *)(puVar11 + 0x14) >> 1" (pointer_expression "*(uint *)(puVar11 + 0x14)" (* "*") (cast_expression "(uint *)(puVar11 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x14)" (( "(") (binary_expression "puVar11 + 0x14" (identifier "puVar11") (+ "+") (number_literal "0x14")) () ")")))) (>> ">>") (number_literal "1")) (& "&") (number_literal "0x7f")) () ")"))) () ")"))))) (; ";")) (expression_statement "iVar7 = uVar2 * 2 - uVar2 * uVar2 * *(int *)(puVar11 + 0x14);" (assignment_expression "iVar7 = uVar2 * 2 - uVar2 * uVar2 * *(int *)(puVar11 + 0x14)" (identifier "iVar7") (= "=") (binary_expression "uVar2 * 2 - uVar2 * uVar2 * *(int *)(puVar11 + 0x14)" (binary_expression "uVar2 * 2" (identifier "uVar2") (* "*") (number_literal "2")) (- "-") (binary_expression "uVar2 * uVar2 * *(int *)(puVar11 + 0x14)" (binary_expression "uVar2 * uVar2" (identifier "uVar2") (* "*") (identifier "uVar2")) (* "*") (pointer_expression "*(int *)(puVar11 + 0x14)" (* "*") (cast_expression "(int *)(puVar11 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x14)" (( "(") (binary_expression "puVar11 + 0x14" (identifier "puVar11") (+ "+") (number_literal "0x14")) () ")"))))))) (; ";")) (expression_statement "iVar7 = iVar7 * 2 - iVar7 * iVar7 * *(int *)(puVar11 + 0x14);" (assignment_expression "iVar7 = iVar7 * 2 - iVar7 * iVar7 * *(int *)(puVar11 + 0x14)" (identifier "iVar7") (= "=") (binary_expression "iVar7 * 2 - iVar7 * iVar7 * *(int *)(puVar11 + 0x14)" (binary_expression "iVar7 * 2" (identifier "iVar7") (* "*") (number_literal "2")) (- "-") (binary_expression "iVar7 * iVar7 * *(int *)(puVar11 + 0x14)" (binary_expression "iVar7 * iVar7" (identifier "iVar7") (* "*") (identifier "iVar7")) (* "*") (pointer_expression "*(int *)(puVar11 + 0x14)" (* "*") (cast_expression "(int *)(puVar11 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x14)" (( "(") (binary_expression "puVar11 + 0x14" (identifier "puVar11") (+ "+") (number_literal "0x14")) () ")"))))))) (; ";")) (expression_statement "*(int *)(puVar11 + -0x140) = iVar7;" (assignment_expression "*(int *)(puVar11 + -0x140) = iVar7" (pointer_expression "*(int *)(puVar11 + -0x140)" (* "*") (cast_expression "(int *)(puVar11 + -0x140)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x140)" (( "(") (binary_expression "puVar11 + -0x140" (identifier "puVar11") (+ "+") (number_literal "-0x140")) () ")")))) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "iVar3 = ((iVar3 << 2 ^ iVar3 * 2) & *(int *)(puVar11 + 0x14) << 2 & 8U) + 1;" (assignment_expression "iVar3 = ((iVar3 << 2 ^ iVar3 * 2) & *(int *)(puVar11 + 0x14) << 2 & 8U) + 1" (identifier "iVar3") (= "=") (binary_expression "((iVar3 << 2 ^ iVar3 * 2) & *(int *)(puVar11 + 0x14) << 2 & 8U) + 1" (parenthesized_expression "((iVar3 << 2 ^ iVar3 * 2) & *(int *)(puVar11 + 0x14) << 2 & 8U)" (( "(") (binary_expression "(iVar3 << 2 ^ iVar3 * 2) & *(int *)(puVar11 + 0x14) << 2 & 8U" (binary_expression "(iVar3 << 2 ^ iVar3 * 2) & *(int *)(puVar11 + 0x14) << 2" (parenthesized_expression "(iVar3 << 2 ^ iVar3 * 2)" (( "(") (binary_expression "iVar3 << 2 ^ iVar3 * 2" (binary_expression "iVar3 << 2" (identifier "iVar3") (<< "<<") (number_literal "2")) (^ "^") (binary_expression "iVar3 * 2" (identifier "iVar3") (* "*") (number_literal "2"))) () ")")) (& "&") (binary_expression "*(int *)(puVar11 + 0x14) << 2" (pointer_expression "*(int *)(puVar11 + 0x14)" (* "*") (cast_expression "(int *)(puVar11 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x14)" (( "(") (binary_expression "puVar11 + 0x14" (identifier "puVar11") (+ "+") (number_literal "0x14")) () ")")))) (<< "<<") (number_literal "2"))) (& "&") (number_literal "8U")) () ")")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar7 = iVar7 * iVar3;" (assignment_expression "iVar7 = iVar7 * iVar3" (identifier "iVar7") (= "=") (binary_expression "iVar7 * iVar3" (identifier "iVar7") (* "*") (identifier "iVar3"))) (; ";")) (expression_statement "uVar2 = *(uint *)(puVar11 + 0x14) & 0x7f;" (assignment_expression "uVar2 = *(uint *)(puVar11 + 0x14) & 0x7f" (identifier "uVar2") (= "=") (binary_expression "*(uint *)(puVar11 + 0x14) & 0x7f" (pointer_expression "*(uint *)(puVar11 + 0x14)" (* "*") (cast_expression "(uint *)(puVar11 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x14)" (( "(") (binary_expression "puVar11 + 0x14" (identifier "puVar11") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "0x7f"))) (; ";")) (if_statement "if (uVar2 == 0) {\n    iVar12 = *(int *)(puVar11 + -0x130);\n  }\n  else {\n    iVar12 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar12 = iVar12 * iVar3;\n      }\n      iVar3 = iVar3 * iVar3;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = *(int *)(puVar11 + -0x130) * iVar12;\n  }" (if "if") (parenthesized_expression "(uVar2 == 0)" (( "(") (binary_expression "uVar2 == 0" (identifier "uVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar12 = *(int *)(puVar11 + -0x130);\n  }" ({ "{") (expression_statement "iVar12 = *(int *)(puVar11 + -0x130);" (assignment_expression "iVar12 = *(int *)(puVar11 + -0x130)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(puVar11 + -0x130)" (* "*") (cast_expression "(int *)(puVar11 + -0x130)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x130)" (( "(") (binary_expression "puVar11 + -0x130" (identifier "puVar11") (+ "+") (number_literal "-0x130")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    iVar12 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar12 = iVar12 * iVar3;\n      }\n      iVar3 = iVar3 * iVar3;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = *(int *)(puVar11 + -0x130) * iVar12;\n  }" (else "else") (compound_statement "{\n    iVar12 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar12 = iVar12 * iVar3;\n      }\n      iVar3 = iVar3 * iVar3;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = *(int *)(puVar11 + -0x130) * iVar12;\n  }" ({ "{") (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" (identifier "iVar12") (= "=") (number_literal "1")) (; ";")) (do_statement "do {\n      if ((uVar2 & 1) != 0) {\n        iVar12 = iVar12 * iVar3;\n      }\n      iVar3 = iVar3 * iVar3;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);" (do "do") (compound_statement "{\n      if ((uVar2 & 1) != 0) {\n        iVar12 = iVar12 * iVar3;\n      }\n      iVar3 = iVar3 * iVar3;\n      uVar2 = uVar2 >> 1;\n    }" ({ "{") (if_statement "if ((uVar2 & 1) != 0) {\n        iVar12 = iVar12 * iVar3;\n      }" (if "if") (parenthesized_expression "((uVar2 & 1) != 0)" (( "(") (binary_expression "(uVar2 & 1) != 0" (parenthesized_expression "(uVar2 & 1)" (( "(") (binary_expression "uVar2 & 1" (identifier "uVar2") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar12 = iVar12 * iVar3;\n      }" ({ "{") (expression_statement "iVar12 = iVar12 * iVar3;" (assignment_expression "iVar12 = iVar12 * iVar3" (identifier "iVar12") (= "=") (binary_expression "iVar12 * iVar3" (identifier "iVar12") (* "*") (identifier "iVar3"))) (; ";")) (} "}"))) (expression_statement "iVar3 = iVar3 * iVar3;" (assignment_expression "iVar3 = iVar3 * iVar3" (identifier "iVar3") (= "=") (binary_expression "iVar3 * iVar3" (identifier "iVar3") (* "*") (identifier "iVar3"))) (; ";")) (expression_statement "uVar2 = uVar2 >> 1;" (assignment_expression "uVar2 = uVar2 >> 1" (identifier "uVar2") (= "=") (binary_expression "uVar2 >> 1" (identifier "uVar2") (>> ">>") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar2 != 0)" (( "(") (binary_expression "uVar2 != 0" (identifier "uVar2") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "iVar12 = *(int *)(puVar11 + -0x130) * iVar12;" (assignment_expression "iVar12 = *(int *)(puVar11 + -0x130) * iVar12" (identifier "iVar12") (= "=") (binary_expression "*(int *)(puVar11 + -0x130) * iVar12" (pointer_expression "*(int *)(puVar11 + -0x130)" (* "*") (cast_expression "(int *)(puVar11 + -0x130)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x130)" (( "(") (binary_expression "puVar11 + -0x130" (identifier "puVar11") (+ "+") (number_literal "-0x130")) () ")")))) (* "*") (identifier "iVar12"))) (; ";")) (} "}")))) (expression_statement "iVar3 = *(int *)(puVar11 + 0x14) + 1;" (assignment_expression "iVar3 = *(int *)(puVar11 + 0x14) + 1" (identifier "iVar3") (= "=") (binary_expression "*(int *)(puVar11 + 0x14) + 1" (pointer_expression "*(int *)(puVar11 + 0x14)" (* "*") (cast_expression "(int *)(puVar11 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x14)" (( "(") (binary_expression "puVar11 + 0x14" (identifier "puVar11") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar7 = iVar7 * (iVar3 - iVar12);" (assignment_expression "iVar7 = iVar7 * (iVar3 - iVar12)" (identifier "iVar7") (= "=") (binary_expression "iVar7 * (iVar3 - iVar12)" (identifier "iVar7") (* "*") (parenthesized_expression "(iVar3 - iVar12)" (( "(") (binary_expression "iVar3 - iVar12" (identifier "iVar3") (- "-") (identifier "iVar12")) () ")")))) (; ";")) (expression_statement "iVar12 = *(int *)(puVar11 + -0x140) * iVar7;" (assignment_expression "iVar12 = *(int *)(puVar11 + -0x140) * iVar7" (identifier "iVar12") (= "=") (binary_expression "*(int *)(puVar11 + -0x140) * iVar7" (pointer_expression "*(int *)(puVar11 + -0x140)" (* "*") (cast_expression "(int *)(puVar11 + -0x140)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x140)" (( "(") (binary_expression "puVar11 + -0x140" (identifier "puVar11") (+ "+") (number_literal "-0x140")) () ")")))) (* "*") (identifier "iVar7"))) (; ";")) (expression_statement "uVar2 = *(uint *)(puVar11 + 0x14) & 0x7fff;" (assignment_expression "uVar2 = *(uint *)(puVar11 + 0x14) & 0x7fff" (identifier "uVar2") (= "=") (binary_expression "*(uint *)(puVar11 + 0x14) & 0x7fff" (pointer_expression "*(uint *)(puVar11 + 0x14)" (* "*") (cast_expression "(uint *)(puVar11 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x14)" (( "(") (binary_expression "puVar11 + 0x14" (identifier "puVar11") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "0x7fff"))) (; ";")) (if_statement "if (uVar2 == 0) {\n    iVar7 = iVar3 - *(int *)(puVar11 + -0x130);\n    iVar12 = iVar12 * iVar7;\n    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;\n    if (*(int *)(puVar11 + 0x14) == 0) goto LAB_00071659;\n  }\n  else {\n    iVar5 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar5 = iVar5 * iVar7;\n      }\n      iVar7 = iVar7 * iVar7;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = iVar12 * (iVar3 - iVar5 * *(int *)(puVar11 + -0x130));\n    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;\n  }" (if "if") (parenthesized_expression "(uVar2 == 0)" (( "(") (binary_expression "uVar2 == 0" (identifier "uVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar7 = iVar3 - *(int *)(puVar11 + -0x130);\n    iVar12 = iVar12 * iVar7;\n    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;\n    if (*(int *)(puVar11 + 0x14) == 0) goto LAB_00071659;\n  }" ({ "{") (expression_statement "iVar7 = iVar3 - *(int *)(puVar11 + -0x130);" (assignment_expression "iVar7 = iVar3 - *(int *)(puVar11 + -0x130)" (identifier "iVar7") (= "=") (binary_expression "iVar3 - *(int *)(puVar11 + -0x130)" (identifier "iVar3") (- "-") (pointer_expression "*(int *)(puVar11 + -0x130)" (* "*") (cast_expression "(int *)(puVar11 + -0x130)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x130)" (( "(") (binary_expression "puVar11 + -0x130" (identifier "puVar11") (+ "+") (number_literal "-0x130")) () ")")))))) (; ";")) (expression_statement "iVar12 = iVar12 * iVar7;" (assignment_expression "iVar12 = iVar12 * iVar7" (identifier "iVar12") (= "=") (binary_expression "iVar12 * iVar7" (identifier "iVar12") (* "*") (identifier "iVar7"))) (; ";")) (expression_statement "iVar5 = *(int *)(puVar11 + -0x140) * iVar12;" (assignment_expression "iVar5 = *(int *)(puVar11 + -0x140) * iVar12" (identifier "iVar5") (= "=") (binary_expression "*(int *)(puVar11 + -0x140) * iVar12" (pointer_expression "*(int *)(puVar11 + -0x140)" (* "*") (cast_expression "(int *)(puVar11 + -0x140)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x140)" (( "(") (binary_expression "puVar11 + -0x140" (identifier "puVar11") (+ "+") (number_literal "-0x140")) () ")")))) (* "*") (identifier "iVar12"))) (; ";")) (if_statement "if (*(int *)(puVar11 + 0x14) == 0) goto LAB_00071659;" (if "if") (parenthesized_expression "(*(int *)(puVar11 + 0x14) == 0)" (( "(") (binary_expression "*(int *)(puVar11 + 0x14) == 0" (pointer_expression "*(int *)(puVar11 + 0x14)" (* "*") (cast_expression "(int *)(puVar11 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x14)" (( "(") (binary_expression "puVar11 + 0x14" (identifier "puVar11") (+ "+") (number_literal "0x14")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00071659;" (goto "goto") (statement_identifier "LAB_00071659") (; ";"))) (} "}")) (else_clause "else {\n    iVar5 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar5 = iVar5 * iVar7;\n      }\n      iVar7 = iVar7 * iVar7;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = iVar12 * (iVar3 - iVar5 * *(int *)(puVar11 + -0x130));\n    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;\n  }" (else "else") (compound_statement "{\n    iVar5 = 1;\n    do {\n      if ((uVar2 & 1) != 0) {\n        iVar5 = iVar5 * iVar7;\n      }\n      iVar7 = iVar7 * iVar7;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);\n    iVar12 = iVar12 * (iVar3 - iVar5 * *(int *)(puVar11 + -0x130));\n    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;\n  }" ({ "{") (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" (identifier "iVar5") (= "=") (number_literal "1")) (; ";")) (do_statement "do {\n      if ((uVar2 & 1) != 0) {\n        iVar5 = iVar5 * iVar7;\n      }\n      iVar7 = iVar7 * iVar7;\n      uVar2 = uVar2 >> 1;\n    } while (uVar2 != 0);" (do "do") (compound_statement "{\n      if ((uVar2 & 1) != 0) {\n        iVar5 = iVar5 * iVar7;\n      }\n      iVar7 = iVar7 * iVar7;\n      uVar2 = uVar2 >> 1;\n    }" ({ "{") (if_statement "if ((uVar2 & 1) != 0) {\n        iVar5 = iVar5 * iVar7;\n      }" (if "if") (parenthesized_expression "((uVar2 & 1) != 0)" (( "(") (binary_expression "(uVar2 & 1) != 0" (parenthesized_expression "(uVar2 & 1)" (( "(") (binary_expression "uVar2 & 1" (identifier "uVar2") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar5 = iVar5 * iVar7;\n      }" ({ "{") (expression_statement "iVar5 = iVar5 * iVar7;" (assignment_expression "iVar5 = iVar5 * iVar7" (identifier "iVar5") (= "=") (binary_expression "iVar5 * iVar7" (identifier "iVar5") (* "*") (identifier "iVar7"))) (; ";")) (} "}"))) (expression_statement "iVar7 = iVar7 * iVar7;" (assignment_expression "iVar7 = iVar7 * iVar7" (identifier "iVar7") (= "=") (binary_expression "iVar7 * iVar7" (identifier "iVar7") (* "*") (identifier "iVar7"))) (; ";")) (expression_statement "uVar2 = uVar2 >> 1;" (assignment_expression "uVar2 = uVar2 >> 1" (identifier "uVar2") (= "=") (binary_expression "uVar2 >> 1" (identifier "uVar2") (>> ">>") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar2 != 0)" (( "(") (binary_expression "uVar2 != 0" (identifier "uVar2") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "iVar12 = iVar12 * (iVar3 - iVar5 * *(int *)(puVar11 + -0x130));" (assignment_expression "iVar12 = iVar12 * (iVar3 - iVar5 * *(int *)(puVar11 + -0x130))" (identifier "iVar12") (= "=") (binary_expression "iVar12 * (iVar3 - iVar5 * *(int *)(puVar11 + -0x130))" (identifier "iVar12") (* "*") (parenthesized_expression "(iVar3 - iVar5 * *(int *)(puVar11 + -0x130))" (( "(") (binary_expression "iVar3 - iVar5 * *(int *)(puVar11 + -0x130)" (identifier "iVar3") (- "-") (binary_expression "iVar5 * *(int *)(puVar11 + -0x130)" (identifier "iVar5") (* "*") (pointer_expression "*(int *)(puVar11 + -0x130)" (* "*") (cast_expression "(int *)(puVar11 + -0x130)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x130)" (( "(") (binary_expression "puVar11 + -0x130" (identifier "puVar11") (+ "+") (number_literal "-0x130")) () ")")))))) () ")")))) (; ";")) (expression_statement "iVar5 = *(int *)(puVar11 + -0x140) * iVar12;" (assignment_expression "iVar5 = *(int *)(puVar11 + -0x140) * iVar12" (identifier "iVar5") (= "=") (binary_expression "*(int *)(puVar11 + -0x140) * iVar12" (pointer_expression "*(int *)(puVar11 + -0x140)" (* "*") (cast_expression "(int *)(puVar11 + -0x140)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x140)" (( "(") (binary_expression "puVar11 + -0x140" (identifier "puVar11") (+ "+") (number_literal "-0x140")) () ")")))) (* "*") (identifier "iVar12"))) (; ";")) (} "}")))) (expression_statement "uVar2 = *(uint *)(puVar11 + 0x14);" (assignment_expression "uVar2 = *(uint *)(puVar11 + 0x14)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(puVar11 + 0x14)" (* "*") (cast_expression "(uint *)(puVar11 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x14)" (( "(") (binary_expression "puVar11 + 0x14" (identifier "puVar11") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" (identifier "iVar7") (= "=") (number_literal "1")) (; ";")) (do_statement "do {\n    if ((uVar2 & 1) != 0) {\n      iVar7 = iVar7 * iVar12;\n    }\n    iVar12 = iVar12 * iVar12;\n    uVar2 = uVar2 >> 1;\n  } while (uVar2 != 0);" (do "do") (compound_statement "{\n    if ((uVar2 & 1) != 0) {\n      iVar7 = iVar7 * iVar12;\n    }\n    iVar12 = iVar12 * iVar12;\n    uVar2 = uVar2 >> 1;\n  }" ({ "{") (if_statement "if ((uVar2 & 1) != 0) {\n      iVar7 = iVar7 * iVar12;\n    }" (if "if") (parenthesized_expression "((uVar2 & 1) != 0)" (( "(") (binary_expression "(uVar2 & 1) != 0" (parenthesized_expression "(uVar2 & 1)" (( "(") (binary_expression "uVar2 & 1" (identifier "uVar2") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar7 = iVar7 * iVar12;\n    }" ({ "{") (expression_statement "iVar7 = iVar7 * iVar12;" (assignment_expression "iVar7 = iVar7 * iVar12" (identifier "iVar7") (= "=") (binary_expression "iVar7 * iVar12" (identifier "iVar7") (* "*") (identifier "iVar12"))) (; ";")) (} "}"))) (expression_statement "iVar12 = iVar12 * iVar12;" (assignment_expression "iVar12 = iVar12 * iVar12" (identifier "iVar12") (= "=") (binary_expression "iVar12 * iVar12" (identifier "iVar12") (* "*") (identifier "iVar12"))) (; ";")) (expression_statement "uVar2 = uVar2 >> 1;" (assignment_expression "uVar2 = uVar2 >> 1" (identifier "uVar2") (= "=") (binary_expression "uVar2 >> 1" (identifier "uVar2") (>> ">>") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar2 != 0)" (( "(") (binary_expression "uVar2 != 0" (identifier "uVar2") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "iVar7 = iVar3 - iVar7 * *(int *)(puVar11 + -0x130);" (assignment_expression "iVar7 = iVar3 - iVar7 * *(int *)(puVar11 + -0x130)" (identifier "iVar7") (= "=") (binary_expression "iVar3 - iVar7 * *(int *)(puVar11 + -0x130)" (identifier "iVar3") (- "-") (binary_expression "iVar7 * *(int *)(puVar11 + -0x130)" (identifier "iVar7") (* "*") (pointer_expression "*(int *)(puVar11 + -0x130)" (* "*") (cast_expression "(int *)(puVar11 + -0x130)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x130)" (( "(") (binary_expression "puVar11 + -0x130" (identifier "puVar11") (+ "+") (number_literal "-0x130")) () ")"))))))) (; ";")) (labeled_statement "LAB_00071659:\n  iVar3 = *(int *)(puVar11 + 0x10);" (statement_identifier "LAB_00071659") (: ":") (expression_statement "iVar3 = *(int *)(puVar11 + 0x10);" (assignment_expression "iVar3 = *(int *)(puVar11 + 0x10)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar11 + 0x10)" (* "*") (cast_expression "(int *)(puVar11 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x10)" (( "(") (binary_expression "puVar11 + 0x10" (identifier "puVar11") (+ "+") (number_literal "0x10")) () ")"))))) (; ";"))) (expression_statement "**(int **)(puVar11 + -300) = iVar7 * iVar5;" (assignment_expression "**(int **)(puVar11 + -300) = iVar7 * iVar5" (pointer_expression "**(int **)(puVar11 + -300)" (* "*") (pointer_expression "*(int **)(puVar11 + -300)" (* "*") (cast_expression "(int **)(puVar11 + -300)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -300)" (( "(") (binary_expression "puVar11 + -300" (identifier "puVar11") (+ "+") (number_literal "-300")) () ")"))))) (= "=") (binary_expression "iVar7 * iVar5" (identifier "iVar7") (* "*") (identifier "iVar5"))) (; ";")) (if_statement "if (iVar3 != 1) {\n    *(int *)(puVar11 + -0x124) = *(int *)(puVar11 + -0x138) + 1;\n    uVar2 = *(int *)(puVar11 + 0x10) * 8 + 4;\n    if (uVar2 < 0x7f01) {\n      iVar3 = -(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0);\n      iVar9 = (int)puVar10 + iVar3;\n      puVar10 = puVar10 + iVar3;\n      *(int *)(puVar11 + -0x130) = iVar9;\n    }\n    else {\n      *(uint *)(puVar10 + -0xc) = uVar2;\n      *(undefined1 **)(puVar10 + -0x10) = puVar11 + -0x120;\n      *(undefined4 *)(puVar10 + -0x14) = 0x718ac;\n      uVar4 = __gmp_tmp_reentrant_alloc();\n      *(undefined4 *)(puVar11 + -0x130) = uVar4;\n    }\n    if (1 < *(int *)(puVar11 + 0x10)) {\n      *(int *)(puVar11 + -0x134) = *(int *)(puVar11 + -0x134) + *(int *)(puVar11 + -0x130);\n      *(undefined1 **)(puVar11 + -0x148) = puVar11 + -0x11c;\n      iVar3 = 0;\n      iVar7 = *(int *)(puVar11 + 0x10);\n      do {\n        iVar12 = iVar7;\n        iVar5 = iVar3;\n        iVar3 = iVar5 + 1;\n        iVar7 = iVar12 + 1 >> 1;\n        *(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12;\n      } while (iVar7 != 1);\n      iVar3 = *(int *)(puVar11 + -0x134);\n      *(int *)(puVar11 + 0x10) = iVar12;\n      *(int *)(puVar11 + -0x13c) = *(int *)(puVar11 + -0x148) + iVar5 * 4;\n      *(undefined1 **)(puVar11 + -0x150) = puVar11 + -0x124;\n      do {\n        *(int *)(puVar11 + -0x134) = iVar7;\n        *(int *)(puVar10 + -8) = iVar7;\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71736;\n        __gmpn_sqr();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c);\n        *(int *)(puVar10 + -0x10) = iVar12;\n        *(undefined4 *)(puVar10 + -0x14) = 1;\n        *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150);\n        *(int *)(puVar10 + -0x1c) = iVar3;\n        *(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130);\n        *(undefined4 *)(puVar10 + -0x24) = 0x71753;\n        __gmpn_powlo();\n        *(int *)(puVar10 + -4) = iVar12;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71769;\n        __gmpn_mullo_n();\n        iVar7 = *(int *)(puVar11 + -0x134);\n        iVar5 = *(int *)(puVar11 + -300);\n        *(undefined4 *)(puVar10 + -0xc) = 0;\n        iVar8 = iVar12 - iVar7;\n        iVar7 = iVar7 * 4;\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140);\n        iVar5 = iVar5 + iVar7;\n        *(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14);\n        *(int *)(puVar10 + -0x18) = iVar8;\n        *(int *)(puVar10 + -0x1c) = iVar7 + iVar3;\n        *(int *)(puVar10 + -0x20) = iVar5;\n        *(int *)(puVar11 + -0x138) = iVar8;\n        *(int *)(puVar11 + -0x134) = iVar5;\n        *(undefined4 *)(puVar10 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        piVar6 = *(int **)(puVar11 + -0x134);\n        iVar7 = *(int *)(puVar11 + -0x138);\n        iVar5 = *piVar6;\n        while (iVar7 = iVar7 + -1, iVar5 == 0) {\n          if (iVar7 == 0) goto LAB_000717d0;\n          piVar6 = piVar6 + 1;\n          iVar5 = *piVar6;\n        }\n        *piVar6 = -iVar5;\n        if (iVar7 != 0) {\n          *(int *)(puVar10 + -8) = iVar7;\n          *(int **)(puVar10 + -0xc) = piVar6 + 1;\n          *(int **)(puVar10 + -0x10) = piVar6 + 1;\n          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        iVar7 = *(int *)(puVar11 + -0x13c);\n        if (*(int *)(puVar11 + -0x148) == iVar7) break;\n        iVar5 = *(int *)(iVar7 + -4);\n        *(int *)(puVar11 + -0x13c) = iVar7 + -4;\n        iVar7 = iVar12;\n        iVar12 = iVar5;\n      } while( true );\n    }\n  }" (if "if") (parenthesized_expression "(iVar3 != 1)" (( "(") (binary_expression "iVar3 != 1" (identifier "iVar3") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n    *(int *)(puVar11 + -0x124) = *(int *)(puVar11 + -0x138) + 1;\n    uVar2 = *(int *)(puVar11 + 0x10) * 8 + 4;\n    if (uVar2 < 0x7f01) {\n      iVar3 = -(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0);\n      iVar9 = (int)puVar10 + iVar3;\n      puVar10 = puVar10 + iVar3;\n      *(int *)(puVar11 + -0x130) = iVar9;\n    }\n    else {\n      *(uint *)(puVar10 + -0xc) = uVar2;\n      *(undefined1 **)(puVar10 + -0x10) = puVar11 + -0x120;\n      *(undefined4 *)(puVar10 + -0x14) = 0x718ac;\n      uVar4 = __gmp_tmp_reentrant_alloc();\n      *(undefined4 *)(puVar11 + -0x130) = uVar4;\n    }\n    if (1 < *(int *)(puVar11 + 0x10)) {\n      *(int *)(puVar11 + -0x134) = *(int *)(puVar11 + -0x134) + *(int *)(puVar11 + -0x130);\n      *(undefined1 **)(puVar11 + -0x148) = puVar11 + -0x11c;\n      iVar3 = 0;\n      iVar7 = *(int *)(puVar11 + 0x10);\n      do {\n        iVar12 = iVar7;\n        iVar5 = iVar3;\n        iVar3 = iVar5 + 1;\n        iVar7 = iVar12 + 1 >> 1;\n        *(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12;\n      } while (iVar7 != 1);\n      iVar3 = *(int *)(puVar11 + -0x134);\n      *(int *)(puVar11 + 0x10) = iVar12;\n      *(int *)(puVar11 + -0x13c) = *(int *)(puVar11 + -0x148) + iVar5 * 4;\n      *(undefined1 **)(puVar11 + -0x150) = puVar11 + -0x124;\n      do {\n        *(int *)(puVar11 + -0x134) = iVar7;\n        *(int *)(puVar10 + -8) = iVar7;\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71736;\n        __gmpn_sqr();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c);\n        *(int *)(puVar10 + -0x10) = iVar12;\n        *(undefined4 *)(puVar10 + -0x14) = 1;\n        *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150);\n        *(int *)(puVar10 + -0x1c) = iVar3;\n        *(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130);\n        *(undefined4 *)(puVar10 + -0x24) = 0x71753;\n        __gmpn_powlo();\n        *(int *)(puVar10 + -4) = iVar12;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71769;\n        __gmpn_mullo_n();\n        iVar7 = *(int *)(puVar11 + -0x134);\n        iVar5 = *(int *)(puVar11 + -300);\n        *(undefined4 *)(puVar10 + -0xc) = 0;\n        iVar8 = iVar12 - iVar7;\n        iVar7 = iVar7 * 4;\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140);\n        iVar5 = iVar5 + iVar7;\n        *(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14);\n        *(int *)(puVar10 + -0x18) = iVar8;\n        *(int *)(puVar10 + -0x1c) = iVar7 + iVar3;\n        *(int *)(puVar10 + -0x20) = iVar5;\n        *(int *)(puVar11 + -0x138) = iVar8;\n        *(int *)(puVar11 + -0x134) = iVar5;\n        *(undefined4 *)(puVar10 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        piVar6 = *(int **)(puVar11 + -0x134);\n        iVar7 = *(int *)(puVar11 + -0x138);\n        iVar5 = *piVar6;\n        while (iVar7 = iVar7 + -1, iVar5 == 0) {\n          if (iVar7 == 0) goto LAB_000717d0;\n          piVar6 = piVar6 + 1;\n          iVar5 = *piVar6;\n        }\n        *piVar6 = -iVar5;\n        if (iVar7 != 0) {\n          *(int *)(puVar10 + -8) = iVar7;\n          *(int **)(puVar10 + -0xc) = piVar6 + 1;\n          *(int **)(puVar10 + -0x10) = piVar6 + 1;\n          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        iVar7 = *(int *)(puVar11 + -0x13c);\n        if (*(int *)(puVar11 + -0x148) == iVar7) break;\n        iVar5 = *(int *)(iVar7 + -4);\n        *(int *)(puVar11 + -0x13c) = iVar7 + -4;\n        iVar7 = iVar12;\n        iVar12 = iVar5;\n      } while( true );\n    }\n  }" ({ "{") (expression_statement "*(int *)(puVar11 + -0x124) = *(int *)(puVar11 + -0x138) + 1;" (assignment_expression "*(int *)(puVar11 + -0x124) = *(int *)(puVar11 + -0x138) + 1" (pointer_expression "*(int *)(puVar11 + -0x124)" (* "*") (cast_expression "(int *)(puVar11 + -0x124)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x124)" (( "(") (binary_expression "puVar11 + -0x124" (identifier "puVar11") (+ "+") (number_literal "-0x124")) () ")")))) (= "=") (binary_expression "*(int *)(puVar11 + -0x138) + 1" (pointer_expression "*(int *)(puVar11 + -0x138)" (* "*") (cast_expression "(int *)(puVar11 + -0x138)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x138)" (( "(") (binary_expression "puVar11 + -0x138" (identifier "puVar11") (+ "+") (number_literal "-0x138")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar2 = *(int *)(puVar11 + 0x10) * 8 + 4;" (assignment_expression "uVar2 = *(int *)(puVar11 + 0x10) * 8 + 4" (identifier "uVar2") (= "=") (binary_expression "*(int *)(puVar11 + 0x10) * 8 + 4" (binary_expression "*(int *)(puVar11 + 0x10) * 8" (pointer_expression "*(int *)(puVar11 + 0x10)" (* "*") (cast_expression "(int *)(puVar11 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x10)" (( "(") (binary_expression "puVar11 + 0x10" (identifier "puVar11") (+ "+") (number_literal "0x10")) () ")")))) (* "*") (number_literal "8")) (+ "+") (number_literal "4"))) (; ";")) (if_statement "if (uVar2 < 0x7f01) {\n      iVar3 = -(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0);\n      iVar9 = (int)puVar10 + iVar3;\n      puVar10 = puVar10 + iVar3;\n      *(int *)(puVar11 + -0x130) = iVar9;\n    }\n    else {\n      *(uint *)(puVar10 + -0xc) = uVar2;\n      *(undefined1 **)(puVar10 + -0x10) = puVar11 + -0x120;\n      *(undefined4 *)(puVar10 + -0x14) = 0x718ac;\n      uVar4 = __gmp_tmp_reentrant_alloc();\n      *(undefined4 *)(puVar11 + -0x130) = uVar4;\n    }" (if "if") (parenthesized_expression "(uVar2 < 0x7f01)" (( "(") (binary_expression "uVar2 < 0x7f01" (identifier "uVar2") (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n      iVar3 = -(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0);\n      iVar9 = (int)puVar10 + iVar3;\n      puVar10 = puVar10 + iVar3;\n      *(int *)(puVar11 + -0x130) = iVar9;\n    }" ({ "{") (expression_statement "iVar3 = -(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0);" (assignment_expression "iVar3 = -(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0)" (identifier "iVar3") (= "=") (unary_expression "-(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0)" (- "-") (parenthesized_expression "(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0)" (( "(") (binary_expression "*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0" (binary_expression "*(int *)(puVar11 + 0x10) * 8 + 0x1fU" (binary_expression "*(int *)(puVar11 + 0x10) * 8" (pointer_expression "*(int *)(puVar11 + 0x10)" (* "*") (cast_expression "(int *)(puVar11 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x10)" (( "(") (binary_expression "puVar11 + 0x10" (identifier "puVar11") (+ "+") (number_literal "0x10")) () ")")))) (* "*") (number_literal "8")) (+ "+") (number_literal "0x1fU")) (& "&") (number_literal "0xfffffff0")) () ")")))) (; ";")) (expression_statement "iVar9 = (int)puVar10 + iVar3;" (assignment_expression "iVar9 = (int)puVar10 + iVar3" (identifier "iVar9") (= "=") (binary_expression "(int)puVar10 + iVar3" (cast_expression "(int)puVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar10")) (+ "+") (identifier "iVar3"))) (; ";")) (expression_statement "puVar10 = puVar10 + iVar3;" (assignment_expression "puVar10 = puVar10 + iVar3" (identifier "puVar10") (= "=") (binary_expression "puVar10 + iVar3" (identifier "puVar10") (+ "+") (identifier "iVar3"))) (; ";")) (expression_statement "*(int *)(puVar11 + -0x130) = iVar9;" (assignment_expression "*(int *)(puVar11 + -0x130) = iVar9" (pointer_expression "*(int *)(puVar11 + -0x130)" (* "*") (cast_expression "(int *)(puVar11 + -0x130)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x130)" (( "(") (binary_expression "puVar11 + -0x130" (identifier "puVar11") (+ "+") (number_literal "-0x130")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (} "}")) (else_clause "else {\n      *(uint *)(puVar10 + -0xc) = uVar2;\n      *(undefined1 **)(puVar10 + -0x10) = puVar11 + -0x120;\n      *(undefined4 *)(puVar10 + -0x14) = 0x718ac;\n      uVar4 = __gmp_tmp_reentrant_alloc();\n      *(undefined4 *)(puVar11 + -0x130) = uVar4;\n    }" (else "else") (compound_statement "{\n      *(uint *)(puVar10 + -0xc) = uVar2;\n      *(undefined1 **)(puVar10 + -0x10) = puVar11 + -0x120;\n      *(undefined4 *)(puVar10 + -0x14) = 0x718ac;\n      uVar4 = __gmp_tmp_reentrant_alloc();\n      *(undefined4 *)(puVar11 + -0x130) = uVar4;\n    }" ({ "{") (expression_statement "*(uint *)(puVar10 + -0xc) = uVar2;" (assignment_expression "*(uint *)(puVar10 + -0xc) = uVar2" (pointer_expression "*(uint *)(puVar10 + -0xc)" (* "*") (cast_expression "(uint *)(puVar10 + -0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0xc)" (( "(") (binary_expression "puVar10 + -0xc" (identifier "puVar10") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "*(undefined1 **)(puVar10 + -0x10) = puVar11 + -0x120;" (assignment_expression "*(undefined1 **)(puVar10 + -0x10) = puVar11 + -0x120" (pointer_expression "*(undefined1 **)(puVar10 + -0x10)" (* "*") (cast_expression "(undefined1 **)(puVar10 + -0x10)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -0x10)" (( "(") (binary_expression "puVar10 + -0x10" (identifier "puVar10") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "puVar11 + -0x120" (identifier "puVar11") (+ "+") (number_literal "-0x120"))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x718ac;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x718ac" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x14)" (( "(") (binary_expression "puVar10 + -0x14" (identifier "puVar10") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x718ac")) (; ";")) (expression_statement "uVar4 = __gmp_tmp_reentrant_alloc();" (assignment_expression "uVar4 = __gmp_tmp_reentrant_alloc()" (identifier "uVar4") (= "=") (call_expression "__gmp_tmp_reentrant_alloc()" (identifier "__gmp_tmp_reentrant_alloc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x130) = uVar4;" (assignment_expression "*(undefined4 *)(puVar11 + -0x130) = uVar4" (pointer_expression "*(undefined4 *)(puVar11 + -0x130)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x130)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x130)" (( "(") (binary_expression "puVar11 + -0x130" (identifier "puVar11") (+ "+") (number_literal "-0x130")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (} "}")))) (if_statement "if (1 < *(int *)(puVar11 + 0x10)) {\n      *(int *)(puVar11 + -0x134) = *(int *)(puVar11 + -0x134) + *(int *)(puVar11 + -0x130);\n      *(undefined1 **)(puVar11 + -0x148) = puVar11 + -0x11c;\n      iVar3 = 0;\n      iVar7 = *(int *)(puVar11 + 0x10);\n      do {\n        iVar12 = iVar7;\n        iVar5 = iVar3;\n        iVar3 = iVar5 + 1;\n        iVar7 = iVar12 + 1 >> 1;\n        *(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12;\n      } while (iVar7 != 1);\n      iVar3 = *(int *)(puVar11 + -0x134);\n      *(int *)(puVar11 + 0x10) = iVar12;\n      *(int *)(puVar11 + -0x13c) = *(int *)(puVar11 + -0x148) + iVar5 * 4;\n      *(undefined1 **)(puVar11 + -0x150) = puVar11 + -0x124;\n      do {\n        *(int *)(puVar11 + -0x134) = iVar7;\n        *(int *)(puVar10 + -8) = iVar7;\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71736;\n        __gmpn_sqr();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c);\n        *(int *)(puVar10 + -0x10) = iVar12;\n        *(undefined4 *)(puVar10 + -0x14) = 1;\n        *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150);\n        *(int *)(puVar10 + -0x1c) = iVar3;\n        *(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130);\n        *(undefined4 *)(puVar10 + -0x24) = 0x71753;\n        __gmpn_powlo();\n        *(int *)(puVar10 + -4) = iVar12;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71769;\n        __gmpn_mullo_n();\n        iVar7 = *(int *)(puVar11 + -0x134);\n        iVar5 = *(int *)(puVar11 + -300);\n        *(undefined4 *)(puVar10 + -0xc) = 0;\n        iVar8 = iVar12 - iVar7;\n        iVar7 = iVar7 * 4;\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140);\n        iVar5 = iVar5 + iVar7;\n        *(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14);\n        *(int *)(puVar10 + -0x18) = iVar8;\n        *(int *)(puVar10 + -0x1c) = iVar7 + iVar3;\n        *(int *)(puVar10 + -0x20) = iVar5;\n        *(int *)(puVar11 + -0x138) = iVar8;\n        *(int *)(puVar11 + -0x134) = iVar5;\n        *(undefined4 *)(puVar10 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        piVar6 = *(int **)(puVar11 + -0x134);\n        iVar7 = *(int *)(puVar11 + -0x138);\n        iVar5 = *piVar6;\n        while (iVar7 = iVar7 + -1, iVar5 == 0) {\n          if (iVar7 == 0) goto LAB_000717d0;\n          piVar6 = piVar6 + 1;\n          iVar5 = *piVar6;\n        }\n        *piVar6 = -iVar5;\n        if (iVar7 != 0) {\n          *(int *)(puVar10 + -8) = iVar7;\n          *(int **)(puVar10 + -0xc) = piVar6 + 1;\n          *(int **)(puVar10 + -0x10) = piVar6 + 1;\n          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        iVar7 = *(int *)(puVar11 + -0x13c);\n        if (*(int *)(puVar11 + -0x148) == iVar7) break;\n        iVar5 = *(int *)(iVar7 + -4);\n        *(int *)(puVar11 + -0x13c) = iVar7 + -4;\n        iVar7 = iVar12;\n        iVar12 = iVar5;\n      } while( true );\n    }" (if "if") (parenthesized_expression "(1 < *(int *)(puVar11 + 0x10))" (( "(") (binary_expression "1 < *(int *)(puVar11 + 0x10)" (number_literal "1") (< "<") (pointer_expression "*(int *)(puVar11 + 0x10)" (* "*") (cast_expression "(int *)(puVar11 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x10)" (( "(") (binary_expression "puVar11 + 0x10" (identifier "puVar11") (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (compound_statement "{\n      *(int *)(puVar11 + -0x134) = *(int *)(puVar11 + -0x134) + *(int *)(puVar11 + -0x130);\n      *(undefined1 **)(puVar11 + -0x148) = puVar11 + -0x11c;\n      iVar3 = 0;\n      iVar7 = *(int *)(puVar11 + 0x10);\n      do {\n        iVar12 = iVar7;\n        iVar5 = iVar3;\n        iVar3 = iVar5 + 1;\n        iVar7 = iVar12 + 1 >> 1;\n        *(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12;\n      } while (iVar7 != 1);\n      iVar3 = *(int *)(puVar11 + -0x134);\n      *(int *)(puVar11 + 0x10) = iVar12;\n      *(int *)(puVar11 + -0x13c) = *(int *)(puVar11 + -0x148) + iVar5 * 4;\n      *(undefined1 **)(puVar11 + -0x150) = puVar11 + -0x124;\n      do {\n        *(int *)(puVar11 + -0x134) = iVar7;\n        *(int *)(puVar10 + -8) = iVar7;\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71736;\n        __gmpn_sqr();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c);\n        *(int *)(puVar10 + -0x10) = iVar12;\n        *(undefined4 *)(puVar10 + -0x14) = 1;\n        *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150);\n        *(int *)(puVar10 + -0x1c) = iVar3;\n        *(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130);\n        *(undefined4 *)(puVar10 + -0x24) = 0x71753;\n        __gmpn_powlo();\n        *(int *)(puVar10 + -4) = iVar12;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71769;\n        __gmpn_mullo_n();\n        iVar7 = *(int *)(puVar11 + -0x134);\n        iVar5 = *(int *)(puVar11 + -300);\n        *(undefined4 *)(puVar10 + -0xc) = 0;\n        iVar8 = iVar12 - iVar7;\n        iVar7 = iVar7 * 4;\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140);\n        iVar5 = iVar5 + iVar7;\n        *(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14);\n        *(int *)(puVar10 + -0x18) = iVar8;\n        *(int *)(puVar10 + -0x1c) = iVar7 + iVar3;\n        *(int *)(puVar10 + -0x20) = iVar5;\n        *(int *)(puVar11 + -0x138) = iVar8;\n        *(int *)(puVar11 + -0x134) = iVar5;\n        *(undefined4 *)(puVar10 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        piVar6 = *(int **)(puVar11 + -0x134);\n        iVar7 = *(int *)(puVar11 + -0x138);\n        iVar5 = *piVar6;\n        while (iVar7 = iVar7 + -1, iVar5 == 0) {\n          if (iVar7 == 0) goto LAB_000717d0;\n          piVar6 = piVar6 + 1;\n          iVar5 = *piVar6;\n        }\n        *piVar6 = -iVar5;\n        if (iVar7 != 0) {\n          *(int *)(puVar10 + -8) = iVar7;\n          *(int **)(puVar10 + -0xc) = piVar6 + 1;\n          *(int **)(puVar10 + -0x10) = piVar6 + 1;\n          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        iVar7 = *(int *)(puVar11 + -0x13c);\n        if (*(int *)(puVar11 + -0x148) == iVar7) break;\n        iVar5 = *(int *)(iVar7 + -4);\n        *(int *)(puVar11 + -0x13c) = iVar7 + -4;\n        iVar7 = iVar12;\n        iVar12 = iVar5;\n      } while( true );\n    }" ({ "{") (expression_statement "*(int *)(puVar11 + -0x134) = *(int *)(puVar11 + -0x134) + *(int *)(puVar11 + -0x130);" (assignment_expression "*(int *)(puVar11 + -0x134) = *(int *)(puVar11 + -0x134) + *(int *)(puVar11 + -0x130)" (pointer_expression "*(int *)(puVar11 + -0x134)" (* "*") (cast_expression "(int *)(puVar11 + -0x134)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x134)" (( "(") (binary_expression "puVar11 + -0x134" (identifier "puVar11") (+ "+") (number_literal "-0x134")) () ")")))) (= "=") (binary_expression "*(int *)(puVar11 + -0x134) + *(int *)(puVar11 + -0x130)" (pointer_expression "*(int *)(puVar11 + -0x134)" (* "*") (cast_expression "(int *)(puVar11 + -0x134)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x134)" (( "(") (binary_expression "puVar11 + -0x134" (identifier "puVar11") (+ "+") (number_literal "-0x134")) () ")")))) (+ "+") (pointer_expression "*(int *)(puVar11 + -0x130)" (* "*") (cast_expression "(int *)(puVar11 + -0x130)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x130)" (( "(") (binary_expression "puVar11 + -0x130" (identifier "puVar11") (+ "+") (number_literal "-0x130")) () ")")))))) (; ";")) (expression_statement "*(undefined1 **)(puVar11 + -0x148) = puVar11 + -0x11c;" (assignment_expression "*(undefined1 **)(puVar11 + -0x148) = puVar11 + -0x11c" (pointer_expression "*(undefined1 **)(puVar11 + -0x148)" (* "*") (cast_expression "(undefined1 **)(puVar11 + -0x148)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x148)" (( "(") (binary_expression "puVar11 + -0x148" (identifier "puVar11") (+ "+") (number_literal "-0x148")) () ")")))) (= "=") (binary_expression "puVar11 + -0x11c" (identifier "puVar11") (+ "+") (number_literal "-0x11c"))) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar7 = *(int *)(puVar11 + 0x10);" (assignment_expression "iVar7 = *(int *)(puVar11 + 0x10)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(puVar11 + 0x10)" (* "*") (cast_expression "(int *)(puVar11 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x10)" (( "(") (binary_expression "puVar11 + 0x10" (identifier "puVar11") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (do_statement "do {\n        iVar12 = iVar7;\n        iVar5 = iVar3;\n        iVar3 = iVar5 + 1;\n        iVar7 = iVar12 + 1 >> 1;\n        *(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12;\n      } while (iVar7 != 1);" (do "do") (compound_statement "{\n        iVar12 = iVar7;\n        iVar5 = iVar3;\n        iVar3 = iVar5 + 1;\n        iVar7 = iVar12 + 1 >> 1;\n        *(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12;\n      }" ({ "{") (expression_statement "iVar12 = iVar7;" (assignment_expression "iVar12 = iVar7" (identifier "iVar12") (= "=") (identifier "iVar7")) (; ";")) (expression_statement "iVar5 = iVar3;" (assignment_expression "iVar5 = iVar3" (identifier "iVar5") (= "=") (identifier "iVar3")) (; ";")) (expression_statement "iVar3 = iVar5 + 1;" (assignment_expression "iVar3 = iVar5 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar7 = iVar12 + 1 >> 1;" (assignment_expression "iVar7 = iVar12 + 1 >> 1" (identifier "iVar7") (= "=") (binary_expression "iVar12 + 1 >> 1" (binary_expression "iVar12 + 1" (identifier "iVar12") (+ "+") (number_literal "1")) (>> ">>") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12;" (assignment_expression "*(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12" (pointer_expression "*(int *)(puVar11 + iVar3 * 4 + -0x120)" (* "*") (cast_expression "(int *)(puVar11 + iVar3 * 4 + -0x120)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + iVar3 * 4 + -0x120)" (( "(") (binary_expression "puVar11 + iVar3 * 4 + -0x120" (binary_expression "puVar11 + iVar3 * 4" (identifier "puVar11") (+ "+") (binary_expression "iVar3 * 4" (identifier "iVar3") (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x120")) () ")")))) (= "=") (identifier "iVar12")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar7 != 1)" (( "(") (binary_expression "iVar7 != 1" (identifier "iVar7") (!= "!=") (number_literal "1")) () ")")) (; ";")) (expression_statement "iVar3 = *(int *)(puVar11 + -0x134);" (assignment_expression "iVar3 = *(int *)(puVar11 + -0x134)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar11 + -0x134)" (* "*") (cast_expression "(int *)(puVar11 + -0x134)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x134)" (( "(") (binary_expression "puVar11 + -0x134" (identifier "puVar11") (+ "+") (number_literal "-0x134")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar11 + 0x10) = iVar12;" (assignment_expression "*(int *)(puVar11 + 0x10) = iVar12" (pointer_expression "*(int *)(puVar11 + 0x10)" (* "*") (cast_expression "(int *)(puVar11 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x10)" (( "(") (binary_expression "puVar11 + 0x10" (identifier "puVar11") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "iVar12")) (; ";")) (expression_statement "*(int *)(puVar11 + -0x13c) = *(int *)(puVar11 + -0x148) + iVar5 * 4;" (assignment_expression "*(int *)(puVar11 + -0x13c) = *(int *)(puVar11 + -0x148) + iVar5 * 4" (pointer_expression "*(int *)(puVar11 + -0x13c)" (* "*") (cast_expression "(int *)(puVar11 + -0x13c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x13c)" (( "(") (binary_expression "puVar11 + -0x13c" (identifier "puVar11") (+ "+") (number_literal "-0x13c")) () ")")))) (= "=") (binary_expression "*(int *)(puVar11 + -0x148) + iVar5 * 4" (pointer_expression "*(int *)(puVar11 + -0x148)" (* "*") (cast_expression "(int *)(puVar11 + -0x148)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x148)" (( "(") (binary_expression "puVar11 + -0x148" (identifier "puVar11") (+ "+") (number_literal "-0x148")) () ")")))) (+ "+") (binary_expression "iVar5 * 4" (identifier "iVar5") (* "*") (number_literal "4")))) (; ";")) (expression_statement "*(undefined1 **)(puVar11 + -0x150) = puVar11 + -0x124;" (assignment_expression "*(undefined1 **)(puVar11 + -0x150) = puVar11 + -0x124" (pointer_expression "*(undefined1 **)(puVar11 + -0x150)" (* "*") (cast_expression "(undefined1 **)(puVar11 + -0x150)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x150)" (( "(") (binary_expression "puVar11 + -0x150" (identifier "puVar11") (+ "+") (number_literal "-0x150")) () ")")))) (= "=") (binary_expression "puVar11 + -0x124" (identifier "puVar11") (+ "+") (number_literal "-0x124"))) (; ";")) (do_statement "do {\n        *(int *)(puVar11 + -0x134) = iVar7;\n        *(int *)(puVar10 + -8) = iVar7;\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71736;\n        __gmpn_sqr();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c);\n        *(int *)(puVar10 + -0x10) = iVar12;\n        *(undefined4 *)(puVar10 + -0x14) = 1;\n        *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150);\n        *(int *)(puVar10 + -0x1c) = iVar3;\n        *(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130);\n        *(undefined4 *)(puVar10 + -0x24) = 0x71753;\n        __gmpn_powlo();\n        *(int *)(puVar10 + -4) = iVar12;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71769;\n        __gmpn_mullo_n();\n        iVar7 = *(int *)(puVar11 + -0x134);\n        iVar5 = *(int *)(puVar11 + -300);\n        *(undefined4 *)(puVar10 + -0xc) = 0;\n        iVar8 = iVar12 - iVar7;\n        iVar7 = iVar7 * 4;\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140);\n        iVar5 = iVar5 + iVar7;\n        *(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14);\n        *(int *)(puVar10 + -0x18) = iVar8;\n        *(int *)(puVar10 + -0x1c) = iVar7 + iVar3;\n        *(int *)(puVar10 + -0x20) = iVar5;\n        *(int *)(puVar11 + -0x138) = iVar8;\n        *(int *)(puVar11 + -0x134) = iVar5;\n        *(undefined4 *)(puVar10 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        piVar6 = *(int **)(puVar11 + -0x134);\n        iVar7 = *(int *)(puVar11 + -0x138);\n        iVar5 = *piVar6;\n        while (iVar7 = iVar7 + -1, iVar5 == 0) {\n          if (iVar7 == 0) goto LAB_000717d0;\n          piVar6 = piVar6 + 1;\n          iVar5 = *piVar6;\n        }\n        *piVar6 = -iVar5;\n        if (iVar7 != 0) {\n          *(int *)(puVar10 + -8) = iVar7;\n          *(int **)(puVar10 + -0xc) = piVar6 + 1;\n          *(int **)(puVar10 + -0x10) = piVar6 + 1;\n          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        iVar7 = *(int *)(puVar11 + -0x13c);\n        if (*(int *)(puVar11 + -0x148) == iVar7) break;\n        iVar5 = *(int *)(iVar7 + -4);\n        *(int *)(puVar11 + -0x13c) = iVar7 + -4;\n        iVar7 = iVar12;\n        iVar12 = iVar5;\n      } while( true );" (do "do") (compound_statement "{\n        *(int *)(puVar11 + -0x134) = iVar7;\n        *(int *)(puVar10 + -8) = iVar7;\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71736;\n        __gmpn_sqr();\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c);\n        *(int *)(puVar10 + -0x10) = iVar12;\n        *(undefined4 *)(puVar10 + -0x14) = 1;\n        *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150);\n        *(int *)(puVar10 + -0x1c) = iVar3;\n        *(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130);\n        *(undefined4 *)(puVar10 + -0x24) = 0x71753;\n        __gmpn_powlo();\n        *(int *)(puVar10 + -4) = iVar12;\n        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144);\n        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130);\n        *(int *)(puVar10 + -0x10) = iVar3;\n        *(undefined4 *)(puVar10 + -0x14) = 0x71769;\n        __gmpn_mullo_n();\n        iVar7 = *(int *)(puVar11 + -0x134);\n        iVar5 = *(int *)(puVar11 + -300);\n        *(undefined4 *)(puVar10 + -0xc) = 0;\n        iVar8 = iVar12 - iVar7;\n        iVar7 = iVar7 * 4;\n        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140);\n        iVar5 = iVar5 + iVar7;\n        *(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14);\n        *(int *)(puVar10 + -0x18) = iVar8;\n        *(int *)(puVar10 + -0x1c) = iVar7 + iVar3;\n        *(int *)(puVar10 + -0x20) = iVar5;\n        *(int *)(puVar11 + -0x138) = iVar8;\n        *(int *)(puVar11 + -0x134) = iVar5;\n        *(undefined4 *)(puVar10 + -0x24) = 0x717a2;\n        __gmpn_pi1_bdiv_q_1();\n        piVar6 = *(int **)(puVar11 + -0x134);\n        iVar7 = *(int *)(puVar11 + -0x138);\n        iVar5 = *piVar6;\n        while (iVar7 = iVar7 + -1, iVar5 == 0) {\n          if (iVar7 == 0) goto LAB_000717d0;\n          piVar6 = piVar6 + 1;\n          iVar5 = *piVar6;\n        }\n        *piVar6 = -iVar5;\n        if (iVar7 != 0) {\n          *(int *)(puVar10 + -8) = iVar7;\n          *(int **)(puVar10 + -0xc) = piVar6 + 1;\n          *(int **)(puVar10 + -0x10) = piVar6 + 1;\n          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }\nLAB_000717d0:\n        iVar7 = *(int *)(puVar11 + -0x13c);\n        if (*(int *)(puVar11 + -0x148) == iVar7) break;\n        iVar5 = *(int *)(iVar7 + -4);\n        *(int *)(puVar11 + -0x13c) = iVar7 + -4;\n        iVar7 = iVar12;\n        iVar12 = iVar5;\n      }" ({ "{") (expression_statement "*(int *)(puVar11 + -0x134) = iVar7;" (assignment_expression "*(int *)(puVar11 + -0x134) = iVar7" (pointer_expression "*(int *)(puVar11 + -0x134)" (* "*") (cast_expression "(int *)(puVar11 + -0x134)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x134)" (( "(") (binary_expression "puVar11 + -0x134" (identifier "puVar11") (+ "+") (number_literal "-0x134")) () ")")))) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "*(int *)(puVar10 + -8) = iVar7;" (assignment_expression "*(int *)(puVar10 + -8) = iVar7" (pointer_expression "*(int *)(puVar10 + -8)" (* "*") (cast_expression "(int *)(puVar10 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -8)" (( "(") (binary_expression "puVar10 + -8" (identifier "puVar10") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300);" (assignment_expression "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300)" (pointer_expression "*(undefined4 *)(puVar10 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0xc)" (( "(") (binary_expression "puVar10 + -0xc" (identifier "puVar10") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar11 + -300)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -300)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -300)" (( "(") (binary_expression "puVar11 + -300" (identifier "puVar11") (+ "+") (number_literal "-300")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar10 + -0x10) = iVar3;" (assignment_expression "*(int *)(puVar10 + -0x10) = iVar3" (pointer_expression "*(int *)(puVar10 + -0x10)" (* "*") (cast_expression "(int *)(puVar10 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x10)" (( "(") (binary_expression "puVar10 + -0x10" (identifier "puVar10") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x71736;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x71736" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x14)" (( "(") (binary_expression "puVar10 + -0x14" (identifier "puVar10") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x71736")) (; ";")) (expression_statement "__gmpn_sqr();" (call_expression "__gmpn_sqr()" (identifier "__gmpn_sqr") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c);" (assignment_expression "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c)" (pointer_expression "*(undefined4 *)(puVar10 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0xc)" (( "(") (binary_expression "puVar10 + -0xc" (identifier "puVar10") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar11 + -0x14c)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x14c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x14c)" (( "(") (binary_expression "puVar11 + -0x14c" (identifier "puVar11") (+ "+") (number_literal "-0x14c")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar10 + -0x10) = iVar12;" (assignment_expression "*(int *)(puVar10 + -0x10) = iVar12" (pointer_expression "*(int *)(puVar10 + -0x10)" (* "*") (cast_expression "(int *)(puVar10 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x10)" (( "(") (binary_expression "puVar10 + -0x10" (identifier "puVar10") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "iVar12")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 1;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 1" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x14)" (( "(") (binary_expression "puVar10 + -0x14" (identifier "puVar10") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150);" (assignment_expression "*(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150)" (pointer_expression "*(undefined4 *)(puVar10 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x18)" (( "(") (binary_expression "puVar10 + -0x18" (identifier "puVar10") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar11 + -0x150)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x150)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x150)" (( "(") (binary_expression "puVar11 + -0x150" (identifier "puVar11") (+ "+") (number_literal "-0x150")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar10 + -0x1c) = iVar3;" (assignment_expression "*(int *)(puVar10 + -0x1c) = iVar3" (pointer_expression "*(int *)(puVar10 + -0x1c)" (* "*") (cast_expression "(int *)(puVar10 + -0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x1c)" (( "(") (binary_expression "puVar10 + -0x1c" (identifier "puVar10") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130);" (assignment_expression "*(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130)" (pointer_expression "*(undefined4 *)(puVar10 + -0x20)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x20)" (( "(") (binary_expression "puVar10 + -0x20" (identifier "puVar10") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar11 + -0x130)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x130)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x130)" (( "(") (binary_expression "puVar11 + -0x130" (identifier "puVar11") (+ "+") (number_literal "-0x130")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x24) = 0x71753;" (assignment_expression "*(undefined4 *)(puVar10 + -0x24) = 0x71753" (pointer_expression "*(undefined4 *)(puVar10 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x24)" (( "(") (binary_expression "puVar10 + -0x24" (identifier "puVar10") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x71753")) (; ";")) (expression_statement "__gmpn_powlo();" (call_expression "__gmpn_powlo()" (identifier "__gmpn_powlo") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(int *)(puVar10 + -4) = iVar12;" (assignment_expression "*(int *)(puVar10 + -4) = iVar12" (pointer_expression "*(int *)(puVar10 + -4)" (* "*") (cast_expression "(int *)(puVar10 + -4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -4)" (( "(") (binary_expression "puVar10 + -4" (identifier "puVar10") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "iVar12")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144);" (assignment_expression "*(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144)" (pointer_expression "*(undefined4 *)(puVar10 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -8)" (( "(") (binary_expression "puVar10 + -8" (identifier "puVar10") (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar11 + -0x144)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x144)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x144)" (( "(") (binary_expression "puVar11 + -0x144" (identifier "puVar11") (+ "+") (number_literal "-0x144")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130);" (assignment_expression "*(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130)" (pointer_expression "*(undefined4 *)(puVar10 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0xc)" (( "(") (binary_expression "puVar10 + -0xc" (identifier "puVar10") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar11 + -0x130)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x130)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x130)" (( "(") (binary_expression "puVar11 + -0x130" (identifier "puVar11") (+ "+") (number_literal "-0x130")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar10 + -0x10) = iVar3;" (assignment_expression "*(int *)(puVar10 + -0x10) = iVar3" (pointer_expression "*(int *)(puVar10 + -0x10)" (* "*") (cast_expression "(int *)(puVar10 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x10)" (( "(") (binary_expression "puVar10 + -0x10" (identifier "puVar10") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x71769;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x71769" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x14)" (( "(") (binary_expression "puVar10 + -0x14" (identifier "puVar10") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x71769")) (; ";")) (expression_statement "__gmpn_mullo_n();" (call_expression "__gmpn_mullo_n()" (identifier "__gmpn_mullo_n") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar7 = *(int *)(puVar11 + -0x134);" (assignment_expression "iVar7 = *(int *)(puVar11 + -0x134)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(puVar11 + -0x134)" (* "*") (cast_expression "(int *)(puVar11 + -0x134)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x134)" (( "(") (binary_expression "puVar11 + -0x134" (identifier "puVar11") (+ "+") (number_literal "-0x134")) () ")"))))) (; ";")) (expression_statement "iVar5 = *(int *)(puVar11 + -300);" (assignment_expression "iVar5 = *(int *)(puVar11 + -300)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(puVar11 + -300)" (* "*") (cast_expression "(int *)(puVar11 + -300)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -300)" (( "(") (binary_expression "puVar11 + -300" (identifier "puVar11") (+ "+") (number_literal "-300")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + -0xc) = 0" (pointer_expression "*(undefined4 *)(puVar10 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0xc)" (( "(") (binary_expression "puVar10 + -0xc" (identifier "puVar10") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar8 = iVar12 - iVar7;" (assignment_expression "iVar8 = iVar12 - iVar7" (identifier "iVar8") (= "=") (binary_expression "iVar12 - iVar7" (identifier "iVar12") (- "-") (identifier "iVar7"))) (; ";")) (expression_statement "iVar7 = iVar7 * 4;" (assignment_expression "iVar7 = iVar7 * 4" (identifier "iVar7") (= "=") (binary_expression "iVar7 * 4" (identifier "iVar7") (* "*") (number_literal "4"))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140);" (assignment_expression "*(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140)" (pointer_expression "*(undefined4 *)(puVar10 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x10)" (( "(") (binary_expression "puVar10 + -0x10" (identifier "puVar10") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar11 + -0x140)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x140)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x140)" (( "(") (binary_expression "puVar11 + -0x140" (identifier "puVar11") (+ "+") (number_literal "-0x140")) () ")"))))) (; ";")) (expression_statement "iVar5 = iVar5 + iVar7;" (assignment_expression "iVar5 = iVar5 + iVar7" (identifier "iVar5") (= "=") (binary_expression "iVar5 + iVar7" (identifier "iVar5") (+ "+") (identifier "iVar7"))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14);" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14)" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x14)" (( "(") (binary_expression "puVar10 + -0x14" (identifier "puVar10") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar11 + 0x14)" (* "*") (cast_expression "(undefined4 *)(puVar11 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x14)" (( "(") (binary_expression "puVar11 + 0x14" (identifier "puVar11") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar10 + -0x18) = iVar8;" (assignment_expression "*(int *)(puVar10 + -0x18) = iVar8" (pointer_expression "*(int *)(puVar10 + -0x18)" (* "*") (cast_expression "(int *)(puVar10 + -0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x18)" (( "(") (binary_expression "puVar10 + -0x18" (identifier "puVar10") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "*(int *)(puVar10 + -0x1c) = iVar7 + iVar3;" (assignment_expression "*(int *)(puVar10 + -0x1c) = iVar7 + iVar3" (pointer_expression "*(int *)(puVar10 + -0x1c)" (* "*") (cast_expression "(int *)(puVar10 + -0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x1c)" (( "(") (binary_expression "puVar10 + -0x1c" (identifier "puVar10") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (binary_expression "iVar7 + iVar3" (identifier "iVar7") (+ "+") (identifier "iVar3"))) (; ";")) (expression_statement "*(int *)(puVar10 + -0x20) = iVar5;" (assignment_expression "*(int *)(puVar10 + -0x20) = iVar5" (pointer_expression "*(int *)(puVar10 + -0x20)" (* "*") (cast_expression "(int *)(puVar10 + -0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x20)" (( "(") (binary_expression "puVar10 + -0x20" (identifier "puVar10") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(int *)(puVar11 + -0x138) = iVar8;" (assignment_expression "*(int *)(puVar11 + -0x138) = iVar8" (pointer_expression "*(int *)(puVar11 + -0x138)" (* "*") (cast_expression "(int *)(puVar11 + -0x138)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x138)" (( "(") (binary_expression "puVar11 + -0x138" (identifier "puVar11") (+ "+") (number_literal "-0x138")) () ")")))) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "*(int *)(puVar11 + -0x134) = iVar5;" (assignment_expression "*(int *)(puVar11 + -0x134) = iVar5" (pointer_expression "*(int *)(puVar11 + -0x134)" (* "*") (cast_expression "(int *)(puVar11 + -0x134)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x134)" (( "(") (binary_expression "puVar11 + -0x134" (identifier "puVar11") (+ "+") (number_literal "-0x134")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x24) = 0x717a2;" (assignment_expression "*(undefined4 *)(puVar10 + -0x24) = 0x717a2" (pointer_expression "*(undefined4 *)(puVar10 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x24)" (( "(") (binary_expression "puVar10 + -0x24" (identifier "puVar10") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x717a2")) (; ";")) (expression_statement "__gmpn_pi1_bdiv_q_1();" (call_expression "__gmpn_pi1_bdiv_q_1()" (identifier "__gmpn_pi1_bdiv_q_1") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar6 = *(int **)(puVar11 + -0x134);" (assignment_expression "piVar6 = *(int **)(puVar11 + -0x134)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(puVar11 + -0x134)" (* "*") (cast_expression "(int **)(puVar11 + -0x134)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x134)" (( "(") (binary_expression "puVar11 + -0x134" (identifier "puVar11") (+ "+") (number_literal "-0x134")) () ")"))))) (; ";")) (expression_statement "iVar7 = *(int *)(puVar11 + -0x138);" (assignment_expression "iVar7 = *(int *)(puVar11 + -0x138)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(puVar11 + -0x138)" (* "*") (cast_expression "(int *)(puVar11 + -0x138)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x138)" (( "(") (binary_expression "puVar11 + -0x138" (identifier "puVar11") (+ "+") (number_literal "-0x138")) () ")"))))) (; ";")) (expression_statement "iVar5 = *piVar6;" (assignment_expression "iVar5 = *piVar6" (identifier "iVar5") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (while_statement "while (iVar7 = iVar7 + -1, iVar5 == 0) {\n          if (iVar7 == 0) goto LAB_000717d0;\n          piVar6 = piVar6 + 1;\n          iVar5 = *piVar6;\n        }" (while "while") (parenthesized_expression "(iVar7 = iVar7 + -1, iVar5 == 0)" (( "(") (comma_expression "iVar7 = iVar7 + -1, iVar5 == 0" (assignment_expression "iVar7 = iVar7 + -1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + -1" (identifier "iVar7") (+ "+") (number_literal "-1"))) (, ",") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n          if (iVar7 == 0) goto LAB_000717d0;\n          piVar6 = piVar6 + 1;\n          iVar5 = *piVar6;\n        }" ({ "{") (if_statement "if (iVar7 == 0) goto LAB_000717d0;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000717d0;" (goto "goto") (statement_identifier "LAB_000717d0") (; ";"))) (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" (identifier "piVar6") (= "=") (binary_expression "piVar6 + 1" (identifier "piVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar5 = *piVar6;" (assignment_expression "iVar5 = *piVar6" (identifier "iVar5") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (} "}"))) (expression_statement "*piVar6 = -iVar5;" (assignment_expression "*piVar6 = -iVar5" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (= "=") (unary_expression "-iVar5" (- "-") (identifier "iVar5"))) (; ";")) (if_statement "if (iVar7 != 0) {\n          *(int *)(puVar10 + -8) = iVar7;\n          *(int **)(puVar10 + -0xc) = piVar6 + 1;\n          *(int **)(puVar10 + -0x10) = piVar6 + 1;\n          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          *(int *)(puVar10 + -8) = iVar7;\n          *(int **)(puVar10 + -0xc) = piVar6 + 1;\n          *(int **)(puVar10 + -0x10) = piVar6 + 1;\n          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;\n          __gmpn_com();\n        }" ({ "{") (expression_statement "*(int *)(puVar10 + -8) = iVar7;" (assignment_expression "*(int *)(puVar10 + -8) = iVar7" (pointer_expression "*(int *)(puVar10 + -8)" (* "*") (cast_expression "(int *)(puVar10 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -8)" (( "(") (binary_expression "puVar10 + -8" (identifier "puVar10") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "*(int **)(puVar10 + -0xc) = piVar6 + 1;" (assignment_expression "*(int **)(puVar10 + -0xc) = piVar6 + 1" (pointer_expression "*(int **)(puVar10 + -0xc)" (* "*") (cast_expression "(int **)(puVar10 + -0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -0xc)" (( "(") (binary_expression "puVar10 + -0xc" (identifier "puVar10") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "piVar6 + 1" (identifier "piVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int **)(puVar10 + -0x10) = piVar6 + 1;" (assignment_expression "*(int **)(puVar10 + -0x10) = piVar6 + 1" (pointer_expression "*(int **)(puVar10 + -0x10)" (* "*") (cast_expression "(int **)(puVar10 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -0x10)" (( "(") (binary_expression "puVar10 + -0x10" (identifier "puVar10") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "piVar6 + 1" (identifier "piVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x7180e;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x7180e" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x14)" (( "(") (binary_expression "puVar10 + -0x14" (identifier "puVar10") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x7180e")) (; ";")) (expression_statement "__gmpn_com();" (call_expression "__gmpn_com()" (identifier "__gmpn_com") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_000717d0:\n        iVar7 = *(int *)(puVar11 + -0x13c);" (statement_identifier "LAB_000717d0") (: ":") (expression_statement "iVar7 = *(int *)(puVar11 + -0x13c);" (assignment_expression "iVar7 = *(int *)(puVar11 + -0x13c)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(puVar11 + -0x13c)" (* "*") (cast_expression "(int *)(puVar11 + -0x13c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x13c)" (( "(") (binary_expression "puVar11 + -0x13c" (identifier "puVar11") (+ "+") (number_literal "-0x13c")) () ")"))))) (; ";"))) (if_statement "if (*(int *)(puVar11 + -0x148) == iVar7) break;" (if "if") (parenthesized_expression "(*(int *)(puVar11 + -0x148) == iVar7)" (( "(") (binary_expression "*(int *)(puVar11 + -0x148) == iVar7" (pointer_expression "*(int *)(puVar11 + -0x148)" (* "*") (cast_expression "(int *)(puVar11 + -0x148)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x148)" (( "(") (binary_expression "puVar11 + -0x148" (identifier "puVar11") (+ "+") (number_literal "-0x148")) () ")")))) (== "==") (identifier "iVar7")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = *(int *)(iVar7 + -4);" (assignment_expression "iVar5 = *(int *)(iVar7 + -4)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar7 + -4)" (* "*") (cast_expression "(int *)(iVar7 + -4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + -4)" (( "(") (binary_expression "iVar7 + -4" (identifier "iVar7") (+ "+") (number_literal "-4")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar11 + -0x13c) = iVar7 + -4;" (assignment_expression "*(int *)(puVar11 + -0x13c) = iVar7 + -4" (pointer_expression "*(int *)(puVar11 + -0x13c)" (* "*") (cast_expression "(int *)(puVar11 + -0x13c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x13c)" (( "(") (binary_expression "puVar11 + -0x13c" (identifier "puVar11") (+ "+") (number_literal "-0x13c")) () ")")))) (= "=") (binary_expression "iVar7 + -4" (identifier "iVar7") (+ "+") (number_literal "-4"))) (; ";")) (expression_statement "iVar7 = iVar12;" (assignment_expression "iVar7 = iVar12" (identifier "iVar7") (= "=") (identifier "iVar12")) (; ";")) (expression_statement "iVar12 = iVar5;" (assignment_expression "iVar12 = iVar5" (identifier "iVar12") (= "=") (identifier "iVar5")) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (} "}"))) (if_statement "if (*(int *)(puVar11 + -0x120) != 0) {\n    *(int *)(puVar10 + -0x10) = *(int *)(puVar11 + -0x120);\n    *(undefined4 *)(puVar10 + -0x14) = 0x71897;\n    __gmp_tmp_reentrant_free();\n  }" (if "if") (parenthesized_expression "(*(int *)(puVar11 + -0x120) != 0)" (( "(") (binary_expression "*(int *)(puVar11 + -0x120) != 0" (pointer_expression "*(int *)(puVar11 + -0x120)" (* "*") (cast_expression "(int *)(puVar11 + -0x120)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x120)" (( "(") (binary_expression "puVar11 + -0x120" (identifier "puVar11") (+ "+") (number_literal "-0x120")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    *(int *)(puVar10 + -0x10) = *(int *)(puVar11 + -0x120);\n    *(undefined4 *)(puVar10 + -0x14) = 0x71897;\n    __gmp_tmp_reentrant_free();\n  }" ({ "{") (expression_statement "*(int *)(puVar10 + -0x10) = *(int *)(puVar11 + -0x120);" (assignment_expression "*(int *)(puVar10 + -0x10) = *(int *)(puVar11 + -0x120)" (pointer_expression "*(int *)(puVar10 + -0x10)" (* "*") (cast_expression "(int *)(puVar10 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x10)" (( "(") (binary_expression "puVar10 + -0x10" (identifier "puVar10") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(int *)(puVar11 + -0x120)" (* "*") (cast_expression "(int *)(puVar11 + -0x120)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x120)" (( "(") (binary_expression "puVar11 + -0x120" (identifier "puVar11") (+ "+") (number_literal "-0x120")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0x14) = 0x71897;" (assignment_expression "*(undefined4 *)(puVar10 + -0x14) = 0x71897" (pointer_expression "*(undefined4 *)(puVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0x14)" (( "(") (binary_expression "puVar10 + -0x14" (identifier "puVar10") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x71897")) (; ";")) (expression_statement "__gmp_tmp_reentrant_free();" (call_expression "__gmp_tmp_reentrant_free()" (identifier "__gmp_tmp_reentrant_free") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(puVar11 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" (if "if") (parenthesized_expression "(*(int *)(puVar11 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "*(int *)(puVar11 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14)" (pointer_expression "*(int *)(puVar11 + -0x1c)" (* "*") (cast_expression "(int *)(puVar11 + -0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x1c)" (( "(") (binary_expression "puVar11 + -0x1c" (identifier "puVar11") (+ "+") (number_literal "-0x1c")) () ")")))) (== "==") (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 *)(puVar10 + -4) = 0x718bf;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = 0x718bf" (pointer_expression "*(undefined4 *)(puVar10 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -4)" (( "(") (binary_expression "puVar10 + -4" (identifier "puVar10") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x718bf")) (; ";")) (expression_statement "FUN_00079d30();" (call_expression "FUN_00079d30()" (identifier "FUN_00079d30") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void function_1(type_1 rp,type_2 ap,type_3 var_2,type_4 var_7)

{
  int var_25;
  type_5 *puVar2;
  type_5 var_3;
  void *pvVar4;
  type_4 var_15;
  int var_14;
  type_4 *var_20;
  int var_10;
  type_6 *var_6;
  int var_13;
  int var_12;
  int var_1;
  type_5 auStackY_8090 [4];
  type_4 amStackY_8080 [2];
  size_t sStackY_8078;
  type_5 auStackY_8074 [8130];
  type_6 var_4 [8];
  type_4 *local_154;
  type_5 *local_150 [3];
  int var_11;
  type_3 *var_22;
  type_5 var_9;
  type_1 local_138;
  void *local_134;
  type_1 var_18;
  type_4 km1;
  type_4 kp1h;
  type_7 *var_23;
  type_3 sizes [64];
  
  var_18 = rp;
  var_25 = *(int *)(var_1 + 0x14);
  var_23 = (type_7 *)0x0;
  var_3 = var_2 * 0x10;
  if (var_3 < 0x7f01) {
    var_6 = var_4 + -(var_3 + 0x10);
    local_150[2] = (type_5 *)((int)local_150 + -(var_3 + 0x10));
  }
  else {
    local_150[2] = (type_5 *)var_5(&var_23,var_3);
    var_6 = var_4;
  }
  puVar2 = local_150[2];
  local_138 = (type_1)(var_2 * 4);
  local_150[0] = local_150[2] + var_2;
  *(type_5 **)(var_6 + -0xc) = local_150[0];
  km1 = var_7 - 1;
  *(type_3 *)(var_6 + -0x10) = var_2;
  *(type_8 *)(var_6 + -0x14) = 1;
  *(type_4 **)(var_6 + -0x18) = &km1;
  *(type_2 *)(var_6 + -0x1c) = ap;
  *(type_5 **)(var_6 + -0x20) = local_150[2];
  *(type_8 *)(var_6 + -0x24) = 0x7154e;
  var_8(*(type_1 *)(var_6 + -0x20),*(type_2 *)(var_6 + -0x1c),
               *(type_2 *)(var_6 + -0x18),*(type_3 *)(var_6 + -0x14),
               *(type_3 *)(var_6 + -0x10),*(type_1 *)(var_6 + -0xc));
  local_134 = (void *)*puVar2;
  var_9 = var_7 >> 1;
  var_3 = (type_5)(type_9)PTR___gmp_binvert_limb_table_00098ec8[var_9 & 0x7f];
  var_10 = var_3 * 2 - var_3 * var_3 * var_7;
  var_11 = var_10 * 2 - var_10 * var_10 * var_7;
  var_10 = ((*ap << 2 ^ *ap * 2) & var_7 << 2 & 8) + 1;
  var_13 = var_11 * var_10;
  var_3 = var_7 & 0x7f;
  pvVar4 = local_134;
  if (var_3 != 0) {
    var_12 = 1;
    do {
      if ((var_3 & 1) != 0) {
        var_12 = var_12 * var_10;
      }
      var_10 = var_10 * var_10;
      var_3 = var_3 >> 1;
    } while (var_3 != 0);
    pvVar4 = (void *)((int)local_134 * var_12);
  }
  var_10 = var_7 + 1;
  var_13 = var_13 * (var_10 - (int)pvVar4);
  var_12 = var_11 * var_13;
  var_3 = var_7 & 0x7fff;
  if (var_3 == 0) {
    var_13 = var_10 - (int)local_134;
    var_12 = var_12 * var_13;
    var_14 = var_11 * var_12;
    if (var_7 == 0) goto LAB_00071659;
  }
  else {
    var_14 = 1;
    do {
      if ((var_3 & 1) != 0) {
        var_14 = var_14 * var_13;
      }
      var_13 = var_13 * var_13;
      var_3 = var_3 >> 1;
    } while (var_3 != 0);
    var_12 = var_12 * (var_10 - var_14 * (int)local_134);
    var_14 = var_11 * var_12;
  }
  var_13 = 1;
  var_15 = var_7;
  do {
    if ((var_15 & 1) != 0) {
      var_13 = var_13 * var_12;
    }
    var_12 = var_12 * var_12;
    var_15 = var_15 >> 1;
  } while (var_15 != 0);
  var_13 = var_10 - var_13 * (int)local_134;
LAB_00071659:
  *var_18 = var_13 * var_14;
  if (var_2 != 1) {
    kp1h = var_9 + 1;
    var_3 = var_2 * 8 + 4;
    if (var_3 < 0x7f01) {
      var_10 = -(var_2 * 8 + 0x1fU & 0xfffffff0);
      local_134 = (void *)((type_5)(var_6 + var_10 + 0xf) & 0xfffffff0);
      var_6 = var_6 + var_10;
    }
    else {
      *(type_5 *)(var_6 + -0xc) = var_3;
      *(type_7 ***)(var_6 + -0x10) = &var_23;
      *(type_8 *)(var_6 + -0x14) = 0x718ac;
      local_134 = var_5
                            (*(type_7 ***)(var_6 + -0x10),*(size_t *)(var_6 + -0xc));
    }
    var_10 = (int)local_138 + (int)local_134;
    if (1 < var_2) {
      local_150[1] = (type_5 *)sizes;
      var_13 = 0;
      do {
        var_12 = var_2;
        var_14 = var_13;
        var_2 = var_12 + 1 >> 1;
        sizes[var_14] = var_12;
        var_13 = var_14 + 1;
      } while (var_2 != 1);
      local_154 = &kp1h;
      local_138 = (type_1)var_2;
      var_22 = (type_3 *)local_150[1] + var_14;
      do {
        *(type_1 *)(var_6 + -8) = local_138;
        *(type_1 *)(var_6 + -0xc) = var_18;
        *(int *)(var_6 + -0x10) = var_10;
        *(type_8 *)(var_6 + -0x14) = 0x71736;
        var_16(*(type_1 *)(var_6 + -0x10),*(type_2 *)(var_6 + -0xc),
                   *(type_3 *)(var_6 + -8));
        *(type_5 **)(var_6 + -0xc) = local_150[0];
        *(int *)(var_6 + -0x10) = var_12;
        *(type_8 *)(var_6 + -0x14) = 1;
        *(type_4 **)(var_6 + -0x18) = local_154;
        *(int *)(var_6 + -0x1c) = var_10;
        *(void **)(var_6 + -0x20) = local_134;
        *(type_8 *)(var_6 + -0x24) = 0x71753;
        var_8(*(type_1 *)(var_6 + -0x20),*(type_2 *)(var_6 + -0x1c),
                     *(type_2 *)(var_6 + -0x18),*(type_3 *)(var_6 + -0x14),
                     *(type_3 *)(var_6 + -0x10),*(type_1 *)(var_6 + -0xc));
        *(int *)(var_6 + -4) = var_12;
        *(type_5 **)(var_6 + -8) = local_150[2];
        *(void **)(var_6 + -0xc) = local_134;
        *(int *)(var_6 + -0x10) = var_10;
        *(type_8 *)(var_6 + -0x14) = 0x71769;
        var_17(*(type_1 *)(var_6 + -0x10),*(type_2 *)(var_6 + -0xc),
                       *(type_2 *)(var_6 + -8),*(type_3 *)(var_6 + -4));
        *(type_8 *)(var_6 + -0xc) = 0;
        var_9 = var_12 - (int)local_138;
        var_13 = (int)local_138 * 4;
        *(int *)(var_6 + -0x10) = var_11;
        local_138 = var_18 + (int)local_138;
        *(type_4 *)(var_6 + -0x14) = var_7;
        *(type_5 *)(var_6 + -0x18) = var_9;
        *(int *)(var_6 + -0x1c) = var_13 + var_10;
        *(type_1 *)(var_6 + -0x20) = local_138;
        *(type_8 *)(var_6 + -0x24) = 0x717a2;
        var_19();
        var_15 = *local_138;
        var_20 = local_138;
        var_3 = var_9;
        while (var_3 = var_3 - 1, var_15 == 0) {
          if (var_3 == 0) goto LAB_000717d0;
          var_20 = var_20 + 1;
          var_15 = *var_20;
        }
        *var_20 = -var_15;
        if (var_3 != 0) {
          *(type_5 *)(var_6 + -8) = var_3;
          *(type_4 **)(var_6 + -0xc) = var_20 + 1;
          *(type_4 **)(var_6 + -0x10) = var_20 + 1;
          *(type_8 *)(var_6 + -0x14) = 0x7180e;
          var_21();
        }
LAB_000717d0:
        if (local_150[1] == (type_5 *)var_22) break;
        local_138 = (type_1)var_12;
        var_12 = var_22[-1];
        var_22 = var_22 + -1;
      } while( true );
    }
  }
  if (var_23 != (type_7 *)0x0) {
    *(type_7 **)(var_6 + -0x10) = var_23;
    *(type_8 *)(var_6 + -0x14) = 0x71897;
    var_24(*(type_7 **)(var_6 + -0x10));
  }
  if (var_25 == *(int *)(var_1 + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  *(type_8 *)(var_6 + -4) = 0x718bf;
  var_26();
}


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

void MASKED(void)

{
  undefined4 *puVar1;
  uint uVar2;
  int iVar3;
  undefined4 uVar4;
  int iVar5;
  int *piVar6;
  int iVar7;
  int iVar8;
  int unaff_EBX;
  int iVar9;
  undefined1 *puVar10;
  undefined1 *puVar11;
  int iVar12;
  int in_GS_OFFSET;
  int aiStackY_8094 [8137];
  undefined1 auStack_160 [332];
  undefined4 uStack_14;
  
  puVar11 = &stack0xfffffffc;
  uStack_14 = 0x714bb;
  entry();
  piVar6 = *(int **)(puVar11 + 0xc);
  *(undefined4 *)(puVar11 + -300) = *(undefined4 *)(puVar11 + 8);
  *(undefined4 *)(puVar11 + -0x1c) = *(undefined4 *)(in_GS_OFFSET + 0x14);
  *(undefined4 *)(puVar11 + -0x120) = 0;
  uVar2 = *(int *)(puVar11 + 0x10) * 0x10;
  if (uVar2 < 0x7f01) {
    puVar10 = auStack_160 + -(uVar2 + 0x10);
    *(undefined1 **)(puVar11 + -0x144) = auStack_160 + -(uVar2 + 0x10);
  }
  else {
    uVar4 = __gmp_tmp_reentrant_alloc(puVar11 + -0x120,uVar2);
    puVar10 = auStack_160;
    *(undefined4 *)(puVar11 + -0x144) = uVar4;
  }
  puVar1 = *(undefined4 **)(puVar11 + -0x144);
  *(int *)(puVar11 + -0x134) = *(int *)(puVar11 + 0x10) * 4;
  *(undefined4 **)(puVar11 + -0x14c) = puVar1 + *(int *)(puVar11 + 0x10);
  iVar3 = *(int *)(puVar11 + 0x14);
  *(undefined4 **)(puVar10 + -0xc) = puVar1 + *(int *)(puVar11 + 0x10);
  *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + 0x10);
  *(int *)(puVar11 + -0x128) = iVar3 + -1;
  *(undefined4 *)(puVar10 + -0x14) = 1;
  *(undefined1 **)(puVar10 + -0x18) = puVar11 + -0x128;
  *(int **)(puVar10 + -0x1c) = piVar6;
  *(undefined4 **)(puVar10 + -0x20) = puVar1;
  *(undefined4 *)(puVar10 + -0x24) = 0x7154e;
  __gmpn_powlo();
  iVar3 = *piVar6;
  iVar7 = *(int *)(unaff_EBX + 0x27a0d);
  uVar4 = *puVar1;
  *(uint *)(puVar11 + -0x138) = *(uint *)(puVar11 + 0x14) >> 1;
  *(undefined4 *)(puVar11 + -0x130) = uVar4;
  uVar2 = (uint)*(byte *)(iVar7 + (*(uint *)(puVar11 + 0x14) >> 1 & 0x7f));
  iVar7 = uVar2 * 2 - uVar2 * uVar2 * *(int *)(puVar11 + 0x14);
  iVar7 = iVar7 * 2 - iVar7 * iVar7 * *(int *)(puVar11 + 0x14);
  *(int *)(puVar11 + -0x140) = iVar7;
  iVar3 = ((iVar3 << 2 ^ iVar3 * 2) & *(int *)(puVar11 + 0x14) << 2 & 8U) + 1;
  iVar7 = iVar7 * iVar3;
  uVar2 = *(uint *)(puVar11 + 0x14) & 0x7f;
  if (uVar2 == 0) {
    iVar12 = *(int *)(puVar11 + -0x130);
  }
  else {
    iVar12 = 1;
    do {
      if ((uVar2 & 1) != 0) {
        iVar12 = iVar12 * iVar3;
      }
      iVar3 = iVar3 * iVar3;
      uVar2 = uVar2 >> 1;
    } while (uVar2 != 0);
    iVar12 = *(int *)(puVar11 + -0x130) * iVar12;
  }
  iVar3 = *(int *)(puVar11 + 0x14) + 1;
  iVar7 = iVar7 * (iVar3 - iVar12);
  iVar12 = *(int *)(puVar11 + -0x140) * iVar7;
  uVar2 = *(uint *)(puVar11 + 0x14) & 0x7fff;
  if (uVar2 == 0) {
    iVar7 = iVar3 - *(int *)(puVar11 + -0x130);
    iVar12 = iVar12 * iVar7;
    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;
    if (*(int *)(puVar11 + 0x14) == 0) goto LAB_00071659;
  }
  else {
    iVar5 = 1;
    do {
      if ((uVar2 & 1) != 0) {
        iVar5 = iVar5 * iVar7;
      }
      iVar7 = iVar7 * iVar7;
      uVar2 = uVar2 >> 1;
    } while (uVar2 != 0);
    iVar12 = iVar12 * (iVar3 - iVar5 * *(int *)(puVar11 + -0x130));
    iVar5 = *(int *)(puVar11 + -0x140) * iVar12;
  }
  uVar2 = *(uint *)(puVar11 + 0x14);
  iVar7 = 1;
  do {
    if ((uVar2 & 1) != 0) {
      iVar7 = iVar7 * iVar12;
    }
    iVar12 = iVar12 * iVar12;
    uVar2 = uVar2 >> 1;
  } while (uVar2 != 0);
  iVar7 = iVar3 - iVar7 * *(int *)(puVar11 + -0x130);
LAB_00071659:
  iVar3 = *(int *)(puVar11 + 0x10);
  **(int **)(puVar11 + -300) = iVar7 * iVar5;
  if (iVar3 != 1) {
    *(int *)(puVar11 + -0x124) = *(int *)(puVar11 + -0x138) + 1;
    uVar2 = *(int *)(puVar11 + 0x10) * 8 + 4;
    if (uVar2 < 0x7f01) {
      iVar3 = -(*(int *)(puVar11 + 0x10) * 8 + 0x1fU & 0xfffffff0);
      iVar9 = (int)puVar10 + iVar3;
      puVar10 = puVar10 + iVar3;
      *(int *)(puVar11 + -0x130) = iVar9;
    }
    else {
      *(uint *)(puVar10 + -0xc) = uVar2;
      *(undefined1 **)(puVar10 + -0x10) = puVar11 + -0x120;
      *(undefined4 *)(puVar10 + -0x14) = 0x718ac;
      uVar4 = __gmp_tmp_reentrant_alloc();
      *(undefined4 *)(puVar11 + -0x130) = uVar4;
    }
    if (1 < *(int *)(puVar11 + 0x10)) {
      *(int *)(puVar11 + -0x134) = *(int *)(puVar11 + -0x134) + *(int *)(puVar11 + -0x130);
      *(undefined1 **)(puVar11 + -0x148) = puVar11 + -0x11c;
      iVar3 = 0;
      iVar7 = *(int *)(puVar11 + 0x10);
      do {
        iVar12 = iVar7;
        iVar5 = iVar3;
        iVar3 = iVar5 + 1;
        iVar7 = iVar12 + 1 >> 1;
        *(int *)(puVar11 + iVar3 * 4 + -0x120) = iVar12;
      } while (iVar7 != 1);
      iVar3 = *(int *)(puVar11 + -0x134);
      *(int *)(puVar11 + 0x10) = iVar12;
      *(int *)(puVar11 + -0x13c) = *(int *)(puVar11 + -0x148) + iVar5 * 4;
      *(undefined1 **)(puVar11 + -0x150) = puVar11 + -0x124;
      do {
        *(int *)(puVar11 + -0x134) = iVar7;
        *(int *)(puVar10 + -8) = iVar7;
        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -300);
        *(int *)(puVar10 + -0x10) = iVar3;
        *(undefined4 *)(puVar10 + -0x14) = 0x71736;
        __gmpn_sqr();
        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x14c);
        *(int *)(puVar10 + -0x10) = iVar12;
        *(undefined4 *)(puVar10 + -0x14) = 1;
        *(undefined4 *)(puVar10 + -0x18) = *(undefined4 *)(puVar11 + -0x150);
        *(int *)(puVar10 + -0x1c) = iVar3;
        *(undefined4 *)(puVar10 + -0x20) = *(undefined4 *)(puVar11 + -0x130);
        *(undefined4 *)(puVar10 + -0x24) = 0x71753;
        __gmpn_powlo();
        *(int *)(puVar10 + -4) = iVar12;
        *(undefined4 *)(puVar10 + -8) = *(undefined4 *)(puVar11 + -0x144);
        *(undefined4 *)(puVar10 + -0xc) = *(undefined4 *)(puVar11 + -0x130);
        *(int *)(puVar10 + -0x10) = iVar3;
        *(undefined4 *)(puVar10 + -0x14) = 0x71769;
        __gmpn_mullo_n();
        iVar7 = *(int *)(puVar11 + -0x134);
        iVar5 = *(int *)(puVar11 + -300);
        *(undefined4 *)(puVar10 + -0xc) = 0;
        iVar8 = iVar12 - iVar7;
        iVar7 = iVar7 * 4;
        *(undefined4 *)(puVar10 + -0x10) = *(undefined4 *)(puVar11 + -0x140);
        iVar5 = iVar5 + iVar7;
        *(undefined4 *)(puVar10 + -0x14) = *(undefined4 *)(puVar11 + 0x14);
        *(int *)(puVar10 + -0x18) = iVar8;
        *(int *)(puVar10 + -0x1c) = iVar7 + iVar3;
        *(int *)(puVar10 + -0x20) = iVar5;
        *(int *)(puVar11 + -0x138) = iVar8;
        *(int *)(puVar11 + -0x134) = iVar5;
        *(undefined4 *)(puVar10 + -0x24) = 0x717a2;
        __gmpn_pi1_bdiv_q_1();
        piVar6 = *(int **)(puVar11 + -0x134);
        iVar7 = *(int *)(puVar11 + -0x138);
        iVar5 = *piVar6;
        while (iVar7 = iVar7 + -1, iVar5 == 0) {
          if (iVar7 == 0) goto LAB_000717d0;
          piVar6 = piVar6 + 1;
          iVar5 = *piVar6;
        }
        *piVar6 = -iVar5;
        if (iVar7 != 0) {
          *(int *)(puVar10 + -8) = iVar7;
          *(int **)(puVar10 + -0xc) = piVar6 + 1;
          *(int **)(puVar10 + -0x10) = piVar6 + 1;
          *(undefined4 *)(puVar10 + -0x14) = 0x7180e;
          __gmpn_com();
        }
LAB_000717d0:
        iVar7 = *(int *)(puVar11 + -0x13c);
        if (*(int *)(puVar11 + -0x148) == iVar7) break;
        iVar5 = *(int *)(iVar7 + -4);
        *(int *)(puVar11 + -0x13c) = iVar7 + -4;
        iVar7 = iVar12;
        iVar12 = iVar5;
      } while( true );
    }
  }
  if (*(int *)(puVar11 + -0x120) != 0) {
    *(int *)(puVar10 + -0x10) = *(int *)(puVar11 + -0x120);
    *(undefined4 *)(puVar10 + -0x14) = 0x71897;
    __gmp_tmp_reentrant_free();
  }
  if (*(int *)(puVar11 + -0x1c) == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  *(undefined4 *)(puVar10 + -4) = 0x718bf;
  FUN_00079d30();
}

