
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

int __gmpn_divisible_p(mp_srcptr ap,mp_size_t an,mp_srcptr dp,mp_size_t dn)

{
  undefined *puVar1;
  code *pcVar2;
  int *piVar3;
  byte bVar4;
  uint *puVar5;
  undefined **ppuVar6;
  uint uVar7;
  int iVar8;
  uint *puVar9;
  mp_size_t mVar10;
  void *pvVar11;
  uint uVar12;
  uint *puVar13;
  undefined1 *puVar14;
  undefined1 *puVar15;
  int in_GS_OFFSET;
  undefined1 auStack_5c [4];
  uint *puStack_58;
  uint *puStack_54;
  uint *apuStack_50 [4];
  uint *puStack_40;
  uint *puStack_3c;
  uint *local_38;
  undefined **local_34;
  uint *local_30;
  tmp_reentrant_t *__tmp_marker;
  int local_20;
  
  puVar15 = auStack_5c;
  puVar14 = auStack_5c;
  local_34 = &_GLOBAL_OFFSET_TABLE_;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (an < dn) {
    puVar9 = (uint *)(uint)(an == 0);
    goto LAB_000452d0;
  }
  puVar9 = (uint *)*dp;
  uVar7 = *ap;
  puVar13 = (uint *)an;
  if (puVar9 == (uint *)0x0) {
    do {
      if (uVar7 != 0) goto LAB_000452ce;
      puVar13 = (uint *)((int)puVar13 + -1);
      dp = dp + 1;
      ap = ap + 1;
      uVar7 = *ap;
      local_30 = (uint *)((int)puVar13 + (dn - an));
      puVar9 = (uint *)*dp;
    } while (puVar9 == (uint *)0x0);
  }
  else {
    local_30 = (uint *)dn;
  }
  uVar12 = (-(int)puVar9 & (uint)puVar9) - 1;
  puVar15 = auStack_5c;
  if ((uVar7 & uVar12) != 0) {
LAB_000452ce:
    puVar9 = (uint *)0x0;
    puVar14 = puVar15;
    goto LAB_000452d0;
  }
  if (local_30 == (uint *)0x1) {
    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {
      local_38 = puVar13;
      local_30 = puVar9;
      __gmpn_cpuvec_init();
      puVar9 = local_30;
      puVar13 = local_38;
    }
    puVar1 = local_34[-0x9b];
    if ((int)puVar13 < *(int *)(puVar1 + 0xa4)) {
      bVar4 = 0;
      for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;
          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {
        bVar4 = bVar4 + 1;
      }
      iVar8 = (**(code **)(puVar1 + 0x60))(ap,puVar13,(uint)puVar9 >> (bVar4 & 0x1f),0);
      puVar9 = (uint *)(uint)(iVar8 == 0);
      puVar14 = auStack_5c;
    }
    else {
      iVar8 = (**(code **)(puVar1 + 0x40))(ap,puVar13,puVar9);
      puVar9 = (uint *)(uint)(iVar8 == 0);
      puVar14 = auStack_5c;
    }
    goto LAB_000452d0;
  }
  apuStack_50[3] = (uint *)0x0;
  for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000))
  {
    apuStack_50[3] = (uint *)((int)apuStack_50[3] + 1);
  }
  if ((local_30 == (uint *)0x2) && (dp[1] <= uVar12)) {
    bVar4 = 0;
    for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)
        ) {
      bVar4 = bVar4 + 1;
    }
    uVar7 = dp[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f);
    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {
      local_30 = puVar13;
      __gmpn_cpuvec_init();
      puVar13 = local_30;
    }
    puVar1 = local_34[-0x9b];
    if ((int)puVar13 < *(int *)(puVar1 + 0xa4)) {
      iVar8 = (**(code **)(puVar1 + 0x60))(ap,puVar13,uVar7,0);
      puVar9 = (uint *)(uint)(iVar8 == 0);
      puVar14 = auStack_5c;
    }
    else {
      iVar8 = (**(code **)(puVar1 + 0x40))(ap,puVar13,uVar7);
      puVar9 = (uint *)(uint)(iVar8 == 0);
      puVar14 = auStack_5c;
    }
    goto LAB_000452d0;
  }
  puStack_54 = (uint *)((int)puVar13 + 1);
  __tmp_marker = (tmp_reentrant_t *)0x0;
  puStack_40 = (uint *)((int)puVar13 - (int)local_30);
  uVar7 = (((int)puVar13 - (int)local_30) + 1 + (int)puStack_54) * 4;
  if (uVar7 < 0x7f01) {
    iVar8 = -(uVar7 + 0x1b & 0xfffffff0);
    puVar15 = auStack_5c + iVar8;
    local_38 = (uint *)((int)apuStack_50 + iVar8);
  }
  else {
    apuStack_50[2] = puStack_54;
    puStack_3c = puVar13;
    local_38 = (uint *)__gmp_tmp_reentrant_alloc(&__tmp_marker,uVar7);
    puVar15 = auStack_5c;
    puStack_54 = apuStack_50[2];
    puVar13 = puStack_3c;
  }
  ppuVar6 = local_34;
  apuStack_50[2] = (uint *)((int)puStack_54 * 4);
  apuStack_50[0] = local_38 + (int)puStack_54;
  if (apuStack_50[3] == (uint *)0x0) {
    *(uint **)(puVar15 + -8) = puVar13;
    *(mp_srcptr *)(puVar15 + -0xc) = ap;
    puVar1 = ppuVar6[-0x9b];
    *(uint **)(puVar15 + -0x10) = local_38;
    pcVar2 = *(code **)(puVar1 + 0x28);
    apuStack_50[1] = (uint *)puVar1;
    apuStack_50[3] = puVar13;
    *(undefined4 *)(puVar15 + -0x14) = 0x45555;
    (*pcVar2)();
    puStack_3c = dp;
    puVar9 = puStack_54;
  }
  else {
    uVar7 = (int)local_30 * 4;
    if (uVar7 < 0x7f01) {
      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);
      puStack_3c = (uint *)((uint)(puVar15 + iVar8 + 0xf) & 0xfffffff0);
      apuStack_50[1] = puVar13;
      puVar15 = puVar15 + iVar8;
    }
    else {
      *(uint *)(puVar15 + -0xc) = uVar7;
      *(tmp_reentrant_t ***)(puVar15 + -0x10) = &__tmp_marker;
      apuStack_50[1] = puVar13;
      *(undefined4 *)(puVar15 + -0x14) = 0x45770;
      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc
                                     (*(tmp_reentrant_t ***)(puVar15 + -0x10),
                                      *(size_t *)(puVar15 + -0xc));
    }
    puVar13 = apuStack_50[3];
    puVar1 = local_34[-0x9b];
    puStack_58 = puStack_54;
    puStack_54 = apuStack_50[1];
    *(uint **)(puVar15 + -4) = apuStack_50[3];
    *(uint **)(puVar15 + -8) = local_30;
    *(mp_srcptr *)(puVar15 + -0xc) = dp;
    *(uint **)(puVar15 + -0x10) = puStack_3c;
    pcVar2 = *(code **)(puVar1 + 0x80);
    apuStack_50[1] = (uint *)puVar1;
    *(undefined4 *)(puVar15 + -0x14) = 0x453c5;
    (*pcVar2)();
    puVar9 = puStack_54;
    *(uint **)(puVar15 + -0x14) = puVar13;
    *(uint **)(puVar15 + -0x18) = puVar9;
    *(mp_srcptr *)(puVar15 + -0x1c) = ap;
    *(uint **)(puVar15 + -0x20) = local_38;
    apuStack_50[3] = puVar9;
    pcVar2 = *(code **)(puVar1 + 0x80);
    *(undefined4 *)(puVar15 + -0x24) = 0x453d7;
    (*pcVar2)();
    puVar9 = puStack_58;
  }
  if (*(uint *)((int)local_38 + (int)apuStack_50[2] + -8) < puStack_3c[(int)local_30 + -1]) {
    if (local_30 == apuStack_50[3]) {
LAB_000454ba:
      if (__tmp_marker != (tmp_reentrant_t *)0x0) {
        *(tmp_reentrant_t **)(puVar15 + -0x10) = __tmp_marker;
        *(undefined4 *)(puVar15 + -0x14) = 0x454d1;
        __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar15 + -0x10));
      }
      goto LAB_000452ce;
    }
  }
  else {
    *(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0;
    puStack_40 = (uint *)((int)puVar9 - (int)local_30);
    apuStack_50[3] = puVar9;
  }
  piVar3 = (int *)local_34[-0xaa];
  puVar9 = apuStack_50[3];
  if (*piVar3 == 0) {
    *(undefined4 *)(puVar15 + -4) = 0x45702;
    __gmpn_cpuvec_init();
    puVar9 = apuStack_50[3];
  }
  apuStack_50[3] = *(uint **)((int)apuStack_50[1] + 0x94);
  iVar8 = (int)apuStack_50[3] * 2;
  if (SBORROW4((int)local_30,iVar8) == (int)local_30 + (int)apuStack_50[3] * -2 < 0) {
    if (*piVar3 == 0) {
      apuStack_50[3] = puVar9;
      *(undefined4 *)(puVar15 + -4) = 0x4572e;
      __gmpn_cpuvec_init();
      iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;
      puVar9 = apuStack_50[3];
    }
    puVar13 = puStack_3c;
    if ((int)puStack_40 < iVar8) goto LAB_00045444;
    if ((int)local_30 < 2000) {
      uVar7 = *puStack_3c;
      uVar12 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];
      iVar8 = uVar12 * 2 - uVar12 * uVar12 * uVar7;
      *(uint *)(puVar15 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;
      *(uint **)(puVar15 + -0x10) = local_30;
      *(uint **)(puVar15 + -0x14) = puVar13;
      puVar13 = local_38;
      *(uint **)(puVar15 + -0x18) = puVar9;
      *(uint **)(puVar15 + -0x1c) = puVar13;
      *(uint **)(puVar15 + -0x20) = apuStack_50[0];
      *(undefined4 *)(puVar15 + -0x24) = 0x456e7;
      __gmpn_dcpi1_bdiv_qr
                (*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),
                 *(mp_size_t *)(puVar15 + -0x18),*(mp_srcptr *)(puVar15 + -0x14),
                 *(mp_size_t *)(puVar15 + -0x10),*(mp_limb_t *)(puVar15 + -0xc));
      local_38 = puVar13 + (int)puStack_40;
    }
    else {
      *(uint **)(puVar15 + -0xc) = local_30;
      *(uint **)(puVar15 + -0x10) = puVar9;
      puStack_40 = puVar9;
      *(undefined4 *)(puVar15 + -0x14) = 0x45613;
      mVar10 = __gmpn_mu_bdiv_qr_itch
                         (*(mp_size_t *)(puVar15 + -0x10),*(mp_size_t *)(puVar15 + -0xc));
      uVar7 = mVar10 * 4;
      if (uVar7 < 0x7f01) {
        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);
        pvVar11 = (void *)((uint)(puVar15 + iVar8 + 0xf) & 0xfffffff0);
        puVar15 = puVar15 + iVar8;
      }
      else {
        *(uint *)(puVar15 + -0xc) = uVar7;
        *(tmp_reentrant_t ***)(puVar15 + -0x10) = &__tmp_marker;
        *(undefined4 *)(puVar15 + -0x14) = 0x45794;
        pvVar11 = __gmp_tmp_reentrant_alloc
                            (*(tmp_reentrant_t ***)(puVar15 + -0x10),*(size_t *)(puVar15 + -0xc));
      }
      puVar9 = puStack_40;
      *(void **)(puVar15 + -8) = pvVar11;
      puVar13 = local_38;
      *(uint **)(puVar15 + -0xc) = local_30;
      *(uint **)(puVar15 + -0x10) = puStack_3c;
      *(uint **)(puVar15 + -0x14) = puVar9;
      *(uint **)(puVar15 + -0x18) = puVar13;
      *(uint **)(puVar15 + -0x1c) = puVar13;
      *(uint **)(puVar15 + -0x20) = apuStack_50[0];
      *(undefined4 *)(puVar15 + -0x24) = 0x45651;
      __gmpn_mu_bdiv_qr(*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),
                        *(mp_srcptr *)(puVar15 + -0x18),*(mp_size_t *)(puVar15 + -0x14),
                        *(mp_srcptr *)(puVar15 + -0x10),*(mp_size_t *)(puVar15 + -0xc),
                        *(mp_ptr *)(puVar15 + -8));
    }
  }
  else {
LAB_00045444:
    puVar13 = puStack_3c;
    uVar7 = *puStack_3c;
    uVar12 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];
    iVar8 = uVar12 * 2 - uVar12 * uVar12 * uVar7;
    *(uint *)(puVar15 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;
    *(uint **)(puVar15 + -0x10) = local_30;
    *(uint **)(puVar15 + -0x14) = puVar13;
    puVar13 = local_38;
    *(uint **)(puVar15 + -0x18) = puVar9;
    *(uint **)(puVar15 + -0x1c) = puVar13;
    *(uint **)(puVar15 + -0x20) = apuStack_50[0];
    *(undefined4 *)(puVar15 + -0x24) = 0x4548b;
    __gmpn_sbpi1_bdiv_qr
              (*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),
               *(mp_size_t *)(puVar15 + -0x18),*(mp_srcptr *)(puVar15 + -0x14),
               *(mp_size_t *)(puVar15 + -0x10),*(mp_limb_t *)(puVar15 + -0xc));
    local_38 = puVar13 + (int)puStack_40;
  }
  iVar8 = 0;
  do {
    if (local_38[iVar8] != 0) goto LAB_000454ba;
    iVar8 = iVar8 + 1;
  } while (iVar8 < (int)local_30);
  puVar9 = (uint *)0x1;
  puVar14 = puVar15;
  if (__tmp_marker != (tmp_reentrant_t *)0x0) {
    local_30 = (uint *)0x1;
    *(tmp_reentrant_t **)(puVar15 + -0x10) = __tmp_marker;
    *(undefined4 *)(puVar15 + -0x14) = 0x45585;
    __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar15 + -0x10));
    puVar9 = local_30;
  }
LAB_000452d0:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    *(undefined4 *)(puVar14 + -4) = 0x457b7;
    __stack_chk_fail_local();
  }
  return (int)puVar9;
}



/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

uint * __gmpn_divisible_p(uint *param_1,uint *param_2,uint *param_3,uint *param_4)

{
  undefined *puVar1;
  code *pcVar2;
  int *piVar3;
  byte bVar4;
  uint *puVar5;
  undefined **ppuVar6;
  uint uVar7;
  int iVar8;
  uint *puVar9;
  uint uVar10;
  uint *puVar11;
  undefined1 *puVar12;
  undefined1 *puVar13;
  int in_GS_OFFSET;
  undefined1 auStack_5c [4];
  uint *puStack_58;
  uint *puStack_54;
  uint *apuStack_50 [4];
  uint *puStack_40;
  uint *puStack_3c;
  uint *local_38;
  undefined **local_34;
  uint *local_30;
  int iStack_24;
  int local_20;
  
  puVar13 = auStack_5c;
  puVar12 = auStack_5c;
  local_34 = &__DT_PLTGOT;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if ((int)param_2 < (int)param_4) {
    puVar9 = (uint *)(uint)(param_2 == (uint *)0x0);
    local_34 = &__DT_PLTGOT;
    goto LAB_000452d0;
  }
  puVar9 = (uint *)*param_3;
  uVar7 = *param_1;
  puVar11 = param_2;
  if (puVar9 == (uint *)0x0) {
    do {
      if (uVar7 != 0) goto LAB_000452ce;
      puVar11 = (uint *)((int)puVar11 + -1);
      param_3 = param_3 + 1;
      param_1 = param_1 + 1;
      uVar7 = *param_1;
      local_30 = (uint *)(((int)puVar11 + (int)param_4) - (int)param_2);
      puVar9 = (uint *)*param_3;
    } while (puVar9 == (uint *)0x0);
  }
  else {
    local_30 = param_4;
  }
  uVar10 = (-(int)puVar9 & (uint)puVar9) - 1;
  puVar13 = auStack_5c;
  local_34 = &__DT_PLTGOT;
  if ((uVar7 & uVar10) != 0) {
LAB_000452ce:
    puVar9 = (uint *)0x0;
    puVar12 = puVar13;
    goto LAB_000452d0;
  }
  if (local_30 == (uint *)0x1) {
    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {
      local_38 = puVar11;
      local_30 = puVar9;
      __gmpn_cpuvec_init();
      puVar9 = local_30;
      puVar11 = local_38;
    }
    puVar1 = local_34[-0x9b];
    if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {
      bVar4 = 0;
      for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;
          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {
        bVar4 = bVar4 + 1;
      }
      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0);
      puVar9 = (uint *)(uint)(iVar8 == 0);
      puVar12 = auStack_5c;
    }
    else {
      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9);
      puVar9 = (uint *)(uint)(iVar8 == 0);
      puVar12 = auStack_5c;
    }
    goto LAB_000452d0;
  }
  apuStack_50[3] = (uint *)0x0;
  for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000))
  {
    apuStack_50[3] = (uint *)((int)apuStack_50[3] + 1);
  }
  if ((local_30 == (uint *)0x2) && (param_3[1] <= uVar10)) {
    bVar4 = 0;
    for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)
        ) {
      bVar4 = bVar4 + 1;
    }
    uVar7 = param_3[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f);
    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {
      local_30 = puVar11;
      __gmpn_cpuvec_init();
      puVar11 = local_30;
    }
    puVar1 = local_34[-0x9b];
    if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {
      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,uVar7,0);
      puVar9 = (uint *)(uint)(iVar8 == 0);
      puVar12 = auStack_5c;
    }
    else {
      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7);
      puVar9 = (uint *)(uint)(iVar8 == 0);
      puVar12 = auStack_5c;
    }
    goto LAB_000452d0;
  }
  puStack_54 = (uint *)((int)puVar11 + 1);
  puStack_40 = (uint *)((int)puVar11 - (int)local_30);
  iStack_24 = 0;
  uVar7 = ((int)puStack_40 + 1 + (int)puStack_54) * 4;
  if (uVar7 < 0x7f01) {
    iVar8 = -(uVar7 + 0x1b & 0xfffffff0);
    puVar13 = auStack_5c + iVar8;
    local_38 = (uint *)((int)apuStack_50 + iVar8);
  }
  else {
    apuStack_50[2] = puStack_54;
    puStack_3c = puVar11;
    local_38 = (uint *)__gmp_tmp_reentrant_alloc(&iStack_24,uVar7);
    puVar13 = auStack_5c;
    puStack_54 = apuStack_50[2];
    puVar11 = puStack_3c;
  }
  ppuVar6 = local_34;
  apuStack_50[2] = (uint *)((int)puStack_54 * 4);
  apuStack_50[0] = local_38 + (int)puStack_54;
  if (apuStack_50[3] == (uint *)0x0) {
    *(uint **)(puVar13 + -8) = puVar11;
    *(uint **)(puVar13 + -0xc) = param_1;
    puVar1 = ppuVar6[-0x9b];
    *(uint **)(puVar13 + -0x10) = local_38;
    pcVar2 = *(code **)(puVar1 + 0x28);
    apuStack_50[1] = (uint *)puVar1;
    apuStack_50[3] = puVar11;
    *(undefined4 *)(puVar13 + -0x14) = 0x45555;
    (*pcVar2)();
    puVar9 = puStack_54;
    puStack_3c = param_3;
  }
  else {
    uVar7 = (int)local_30 * 4;
    apuStack_50[1] = puVar11;
    if (uVar7 < 0x7f01) {
      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);
      puStack_3c = (uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0);
      puVar13 = puVar13 + iVar8;
    }
    else {
      *(uint *)(puVar13 + -0xc) = uVar7;
      *(int **)(puVar13 + -0x10) = &iStack_24;
      *(undefined4 *)(puVar13 + -0x14) = 0x45770;
      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc();
    }
    puVar11 = apuStack_50[3];
    puVar1 = local_34[-0x9b];
    puStack_58 = puStack_54;
    puStack_54 = apuStack_50[1];
    *(uint **)(puVar13 + -4) = apuStack_50[3];
    *(uint **)(puVar13 + -8) = local_30;
    *(uint **)(puVar13 + -0xc) = param_3;
    *(uint **)(puVar13 + -0x10) = puStack_3c;
    pcVar2 = *(code **)(puVar1 + 0x80);
    apuStack_50[1] = (uint *)puVar1;
    *(undefined4 *)(puVar13 + -0x14) = 0x453c5;
    (*pcVar2)();
    puVar9 = puStack_54;
    *(uint **)(puVar13 + -0x14) = puVar11;
    *(uint **)(puVar13 + -0x18) = puVar9;
    *(uint **)(puVar13 + -0x1c) = param_1;
    *(uint **)(puVar13 + -0x20) = local_38;
    apuStack_50[3] = puVar9;
    pcVar2 = *(code **)(puVar1 + 0x80);
    *(undefined4 *)(puVar13 + -0x24) = 0x453d7;
    (*pcVar2)();
    puVar9 = puStack_58;
  }
  if (*(uint *)((int)local_38 + (int)apuStack_50[2] + -8) < puStack_3c[(int)local_30 + -1]) {
    if (local_30 == apuStack_50[3]) {
LAB_000454ba:
      if (iStack_24 != 0) {
        *(int *)(puVar13 + -0x10) = iStack_24;
        *(undefined4 *)(puVar13 + -0x14) = 0x454d1;
        __gmp_tmp_reentrant_free();
      }
      goto LAB_000452ce;
    }
  }
  else {
    *(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0;
    puStack_40 = (uint *)((int)puVar9 - (int)local_30);
    apuStack_50[3] = puVar9;
  }
  piVar3 = (int *)local_34[-0xaa];
  puVar9 = apuStack_50[3];
  if (*piVar3 == 0) {
    *(undefined4 *)(puVar13 + -4) = 0x45702;
    __gmpn_cpuvec_init();
    puVar9 = apuStack_50[3];
  }
  apuStack_50[3] = *(uint **)((int)apuStack_50[1] + 0x94);
  iVar8 = (int)apuStack_50[3] * 2;
  if (SBORROW4((int)local_30,iVar8) == (int)local_30 + (int)apuStack_50[3] * -2 < 0) {
    if (*piVar3 == 0) {
      apuStack_50[3] = puVar9;
      *(undefined4 *)(puVar13 + -4) = 0x4572e;
      __gmpn_cpuvec_init();
      iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;
      puVar9 = apuStack_50[3];
    }
    puVar11 = puStack_3c;
    if ((int)puStack_40 < iVar8) goto LAB_00045444;
    if ((int)local_30 < 2000) {
      uVar7 = *puStack_3c;
      uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];
      iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;
      *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;
      *(uint **)(puVar13 + -0x10) = local_30;
      *(uint **)(puVar13 + -0x14) = puVar11;
      puVar11 = local_38;
      *(uint **)(puVar13 + -0x18) = puVar9;
      *(uint **)(puVar13 + -0x1c) = puVar11;
      *(uint **)(puVar13 + -0x20) = apuStack_50[0];
      *(undefined4 *)(puVar13 + -0x24) = 0x456e7;
      __gmpn_dcpi1_bdiv_qr();
      local_38 = puVar11 + (int)puStack_40;
    }
    else {
      *(uint **)(puVar13 + -0xc) = local_30;
      *(uint **)(puVar13 + -0x10) = puVar9;
      puStack_40 = puVar9;
      *(undefined4 *)(puVar13 + -0x14) = 0x45613;
      iVar8 = __gmpn_mu_bdiv_qr_itch();
      uVar7 = iVar8 * 4;
      if (uVar7 < 0x7f01) {
        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);
        uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;
        puVar13 = puVar13 + iVar8;
      }
      else {
        *(uint *)(puVar13 + -0xc) = uVar7;
        *(int **)(puVar13 + -0x10) = &iStack_24;
        *(undefined4 *)(puVar13 + -0x14) = 0x45794;
        uVar7 = __gmp_tmp_reentrant_alloc();
      }
      puVar9 = puStack_40;
      *(uint *)(puVar13 + -8) = uVar7;
      puVar11 = local_38;
      *(uint **)(puVar13 + -0xc) = local_30;
      *(uint **)(puVar13 + -0x10) = puStack_3c;
      *(uint **)(puVar13 + -0x14) = puVar9;
      *(uint **)(puVar13 + -0x18) = puVar11;
      *(uint **)(puVar13 + -0x1c) = puVar11;
      *(uint **)(puVar13 + -0x20) = apuStack_50[0];
      *(undefined4 *)(puVar13 + -0x24) = 0x45651;
      __gmpn_mu_bdiv_qr();
    }
  }
  else {
LAB_00045444:
    puVar11 = puStack_3c;
    uVar7 = *puStack_3c;
    uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];
    iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;
    *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;
    *(uint **)(puVar13 + -0x10) = local_30;
    *(uint **)(puVar13 + -0x14) = puVar11;
    puVar11 = local_38;
    *(uint **)(puVar13 + -0x18) = puVar9;
    *(uint **)(puVar13 + -0x1c) = puVar11;
    *(uint **)(puVar13 + -0x20) = apuStack_50[0];
    *(undefined4 *)(puVar13 + -0x24) = 0x4548b;
    __gmpn_sbpi1_bdiv_qr();
    local_38 = puVar11 + (int)puStack_40;
  }
  iVar8 = 0;
  do {
    if (local_38[iVar8] != 0) goto LAB_000454ba;
    iVar8 = iVar8 + 1;
  } while (iVar8 < (int)local_30);
  puVar9 = (uint *)0x1;
  puVar12 = puVar13;
  if (iStack_24 != 0) {
    local_30 = (uint *)0x1;
    *(int *)(puVar13 + -0x10) = iStack_24;
    *(undefined4 *)(puVar13 + -0x14) = 0x45585;
    __gmp_tmp_reentrant_free();
    puVar9 = local_30;
  }
LAB_000452d0:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    *(undefined4 *)(puVar12 + -4) = 0x457b7;
    FUN_00079d30();
  }
  return puVar9;
}


CALL 0x0001c5b1
ADD EAX,0x53d8b
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x4c
MOV ESI,dword ptr [EBP + 0x8]
MOV EDI,dword ptr [EBP + 0x10]
MOV dword ptr [EBP + -0x30],EAX
MOV ECX,dword ptr [EBP + 0x14]
MOV EAX,GS:[0x14]
MOV dword ptr [EBP + -0x1c],EAX
XOR EAX,EAX
CMP dword ptr [EBP + 0xc],ECX
JL 0x000452f0
MOV EAX,dword ptr [EDI]
MOV EBX,dword ptr [ESI]
MOV EDX,dword ptr [EBP + 0xc]
TEST EAX,EAX
JZ 0x000452ca
JMP 0x000452fc
SUB EDX,0x1
ADD EDI,0x4
ADD ESI,0x4
MOV EBX,dword ptr [ESI]
LEA EAX,[EDX + ECX*0x1]
SUB EAX,dword ptr [EBP + 0xc]
MOV dword ptr [EBP + -0x2c],EAX
MOV EAX,dword ptr [EDI]
TEST EAX,EAX
JNZ 0x00045300
TEST EBX,EBX
JZ 0x000452b0
XOR EAX,EAX
MOV EBX,dword ptr [EBP + -0x1c]
XOR EBX,dword ptr GS:[0x14]
JNZ 0x000457b2
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EBX,dword ptr [EBP + 0xc]
XOR EAX,EAX
TEST EBX,EBX
SETZ AL
JMP 0x000452d0
MOV dword ptr [EBP + -0x2c],ECX
NOP
MOV ECX,EAX
NEG ECX
AND ECX,EAX
SUB ECX,0x1
TEST EBX,ECX
JNZ 0x000452ce
CMP dword ptr [EBP + -0x2c],0x1
JZ 0x000454e0
XOR EBX,EBX
TZCNT EBX,EAX
CMP dword ptr [EBP + -0x2c],0x2
MOV dword ptr [EBP + -0x40],EBX
JZ 0x00045590
LEA ECX,[EDX + 0x1]
MOV EAX,EDX
SUB EAX,dword ptr [EBP + -0x2c]
MOV dword ptr [EBP + -0x20],0x0
MOV dword ptr [EBP + -0x3c],EAX
LEA EAX,[EAX + ECX*0x1 + 0x1]
SHL EAX,0x2
CMP EAX,0x7f00
JA 0x00045679
ADD EAX,0x1b
AND EAX,0xfffffff0
SUB ESP,EAX
LEA EAX,[ESP + 0xf]
AND EAX,0xfffffff0
MOV dword ptr [EBP + -0x34],EAX
MOV EBX,dword ptr [EBP + -0x34]
LEA EAX,[ECX*0x4 + 0x0]
MOV dword ptr [EBP + -0x44],EAX
ADD EBX,EAX
MOV EAX,dword ptr [EBP + -0x40]
MOV dword ptr [EBP + -0x4c],EBX
TEST EAX,EAX
JZ 0x00045538
MOV EAX,dword ptr [EBP + -0x2c]
SHL EAX,0x2
CMP EAX,0x7f00
JA 0x0004575a
ADD EAX,0x1b
AND EAX,0xfffffff0
SUB ESP,EAX
LEA EAX,[ESP + 0xf]
AND EAX,0xfffffff0
MOV dword ptr [EBP + -0x38],EAX
MOV EAX,dword ptr [EBP + -0x30]
MOV EBX,dword ptr [EBP + -0x40]
MOV dword ptr [EBP + -0x54],ECX
MOV dword ptr [EBP + -0x50],EDX
MOV EAX,dword ptr [EAX + 0xfffffd94]
PUSH EBX
PUSH dword ptr [EBP + -0x2c]
PUSH EDI
MOV EDI,EAX
PUSH dword ptr [EBP + -0x38]
MOV dword ptr [EBP + -0x48],EAX
CALL dword ptr [EDI + 0x80]
MOV EDX,dword ptr [EBP + -0x50]
PUSH EBX
PUSH EDX
PUSH ESI
PUSH dword ptr [EBP + -0x34]
MOV dword ptr [EBP + -0x40],EDX
CALL dword ptr [EDI + 0x80]
MOV EDX,dword ptr [EBP + -0x40]
MOV ECX,dword ptr [EBP + -0x54]
ADD ESP,0x20
MOV EBX,dword ptr [EBP + -0x38]
MOV ESI,dword ptr [EBP + -0x2c]
MOV EAX,dword ptr [EBP + -0x34]
MOV EDI,dword ptr [EBP + -0x44]
MOV EBX,dword ptr [EBX + ESI*0x4 + -0x4]
CMP dword ptr [EAX + EDI*0x1 + -0x8],EBX
JC 0x00045528
MOV dword ptr [EAX + EDI*0x1 + -0x4],0x0
MOV EAX,ECX
MOV EDX,ECX
SUB EAX,ESI
MOV dword ptr [EBP + -0x3c],EAX
MOV EAX,dword ptr [EBP + -0x30]
MOV ESI,dword ptr [EAX + 0xfffffd58]
MOV EDI,dword ptr [ESI]
TEST EDI,EDI
JZ 0x000456f8
MOV EAX,dword ptr [EBP + -0x48]
MOV EAX,dword ptr [EAX + 0x94]
MOV dword ptr [EBP + -0x40],EAX
ADD EAX,EAX
CMP dword ptr [EBP + -0x2c],EAX
JL 0x00045444
MOV ESI,dword ptr [ESI]
TEST ESI,ESI
JZ 0x00045723
CMP EAX,dword ptr [EBP + -0x3c]
JLE 0x000455f4
MOV ESI,dword ptr [EBP + -0x38]
MOV EDI,dword ptr [EBP + -0x30]
SUB ESP,0x8
MOV EBX,dword ptr [ESI]
MOV ECX,dword ptr [EDI + 0xfffffec8]
MOV EAX,EBX
SHR EAX,0x1
AND EAX,0x7f
MOVZX ECX,byte ptr [ECX + EAX*0x1]
LEA EAX,[ECX + ECX*0x1]
IMUL ECX,ECX
IMUL ECX,EBX
SUB EAX,ECX
MOV ECX,EAX
IMUL ECX,EAX
ADD EAX,EAX
IMUL ECX,EBX
MOV EBX,EDI
SUB ECX,EAX
PUSH ECX
PUSH dword ptr [EBP + -0x2c]
PUSH ESI
MOV ESI,dword ptr [EBP + -0x34]
PUSH EDX
PUSH ESI
PUSH dword ptr [EBP + -0x4c]
CALL 0x0001b850
MOV ECX,dword ptr [EBP + -0x3c]
ADD ESP,0x20
LEA EAX,[ESI + ECX*0x4]
MOV dword ptr [EBP + -0x34],EAX
XOR EAX,EAX
MOV ECX,dword ptr [EBP + -0x2c]
MOV EDX,dword ptr [EBP + -0x34]
JMP 0x000454b3
ADD EAX,0x1
CMP ECX,EAX
JLE 0x00045566
MOV EBX,dword ptr [EDX + EAX*0x4]
TEST EBX,EBX
JZ 0x000454a8
MOV EAX,dword ptr [EBP + -0x20]
TEST EAX,EAX
JZ 0x000452ce
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x30]
PUSH EAX
CALL 0x0001b050
ADD ESP,0x10
JMP 0x000452ce
MOV ECX,dword ptr [EBP + -0x30]
MOV ECX,dword ptr [ECX + 0xfffffd58]
MOV ECX,dword ptr [ECX]
TEST ECX,ECX
JZ 0x00045741
MOV ECX,dword ptr [EBP + -0x30]
MOV EBX,dword ptr [ECX + 0xfffffd94]
CMP dword ptr [EBX + 0xa4],EDX
JG 0x00045659
SUB ESP,0x4
PUSH EAX
PUSH EDX
PUSH ESI
CALL dword ptr [EBX + 0x40]
ADD ESP,0x10
TEST EAX,EAX
SETZ AL
MOVZX EAX,AL
JMP 0x000452d0
CMP dword ptr [EBP + -0x2c],EDX
JNZ 0x0004540b
JMP 0x000454ba
SUB ESP,0x4
MOV EAX,dword ptr [EBP + -0x30]
MOV dword ptr [EBP + -0x50],ECX
PUSH EDX
PUSH ESI
MOV EAX,dword ptr [EAX + 0xfffffd94]
PUSH dword ptr [EBP + -0x34]
MOV dword ptr [EBP + -0x40],EDX
MOV dword ptr [EBP + -0x48],EAX
CALL dword ptr [EAX + 0x28]
ADD ESP,0x10
MOV dword ptr [EBP + -0x38],EDI
MOV ECX,dword ptr [EBP + -0x50]
MOV EDX,dword ptr [EBP + -0x40]
JMP 0x000453e0
MOV EDX,dword ptr [EBP + -0x20]
MOV EAX,0x1
TEST EDX,EDX
JZ 0x000452d0
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x30]
MOV dword ptr [EBP + -0x2c],EAX
PUSH EDX
CALL 0x0001b050
ADD ESP,0x10
MOV EAX,dword ptr [EBP + -0x2c]
JMP 0x000452d0
MOV EBX,dword ptr [EDI + 0x4]
CMP ECX,EBX
JC 0x0004532a
XOR EDI,EDI
TZCNT EDI,EAX
MOV ECX,EDI
SHR EAX,CL
MOV ECX,0x20
SUB ECX,EDI
SHL EBX,CL
MOV ECX,EBX
OR ECX,EAX
MOV EAX,dword ptr [EBP + -0x30]
MOV EDI,ECX
MOV EAX,dword ptr [EAX + 0xfffffd58]
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JZ 0x0004579f
MOV EAX,dword ptr [EBP + -0x30]
MOV EAX,dword ptr [EAX + 0xfffffd94]
CMP dword ptr [EAX + 0xa4],EDX
JLE 0x0004570a
PUSH 0x0
PUSH EDI
PUSH EDX
PUSH ESI
CALL dword ptr [EAX + 0x60]
ADD ESP,0x10
TEST EAX,EAX
SETZ AL
MOVZX EAX,AL
JMP 0x000452d0
CMP dword ptr [EBP + -0x2c],0x7cf
JLE 0x000456a0
SUB ESP,0x8
PUSH dword ptr [EBP + -0x2c]
MOV EBX,dword ptr [EBP + -0x30]
PUSH EDX
MOV dword ptr [EBP + -0x3c],EDX
CALL 0x0001c000
ADD ESP,0x10
MOV EDX,dword ptr [EBP + -0x3c]
SHL EAX,0x2
CMP EAX,0x7f00
JA 0x00045781
ADD EAX,0x1b
AND EAX,0xfffffff0
SUB ESP,EAX
LEA EAX,[ESP + 0xf]
AND EAX,0xfffffff0
SUB ESP,0x4
MOV EBX,dword ptr [EBP + -0x30]
PUSH EAX
MOV EAX,dword ptr [EBP + -0x34]
PUSH dword ptr [EBP + -0x2c]
PUSH dword ptr [EBP + -0x38]
PUSH EDX
PUSH EAX
PUSH EAX
PUSH dword ptr [EBP + -0x4c]
CALL 0x0001bbc0
ADD ESP,0x20
JMP 0x00045497
XOR ECX,ECX
PUSH 0x0
TZCNT ECX,EAX
SHR EAX,CL
PUSH EAX
PUSH EDX
PUSH ESI
CALL dword ptr [EBX + 0x60]
ADD ESP,0x10
TEST EAX,EAX
SETZ AL
MOVZX EAX,AL
JMP 0x000452d0
SUB ESP,0x8
MOV EBX,dword ptr [EBP + -0x30]
MOV dword ptr [EBP + -0x44],ECX
PUSH EAX
LEA EAX,[EBP + -0x20]
PUSH EAX
MOV dword ptr [EBP + -0x38],EDX
CALL 0x0001baf0
ADD ESP,0x10
MOV ECX,dword ptr [EBP + -0x44]
MOV EDX,dword ptr [EBP + -0x38]
MOV dword ptr [EBP + -0x34],EAX
JMP 0x00045360
MOV ESI,dword ptr [EBP + -0x38]
MOV EDI,dword ptr [EBP + -0x30]
SUB ESP,0x8
MOV EBX,dword ptr [ESI]
MOV ECX,dword ptr [EDI + 0xfffffec8]
MOV EAX,EBX
SHR EAX,0x1
AND EAX,0x7f
MOVZX EAX,byte ptr [ECX + EAX*0x1]
LEA ECX,[EAX + EAX*0x1]
IMUL EAX,EAX
IMUL EAX,EBX
SUB ECX,EAX
MOV EAX,ECX
IMUL EAX,ECX
ADD ECX,ECX
IMUL EAX,EBX
MOV EBX,EDI
SUB EAX,ECX
PUSH EAX
PUSH dword ptr [EBP + -0x2c]
PUSH ESI
MOV ESI,dword ptr [EBP + -0x34]
PUSH EDX
PUSH ESI
PUSH dword ptr [EBP + -0x4c]
CALL 0x0001b650
MOV EDX,dword ptr [EBP + -0x3c]
ADD ESP,0x20
LEA EAX,[ESI + EDX*0x4]
MOV dword ptr [EBP + -0x34],EAX
JMP 0x00045497
MOV EBX,EAX
MOV dword ptr [EBP + -0x40],EDX
CALL 0x0001b6f0
MOV EDX,dword ptr [EBP + -0x40]
JMP 0x0004541e
SUB ESP,0x4
PUSH EDI
PUSH EDX
PUSH ESI
CALL dword ptr [EAX + 0x40]
ADD ESP,0x10
TEST EAX,EAX
SETZ AL
MOVZX EAX,AL
JMP 0x000452d0
MOV EBX,dword ptr [EBP + -0x30]
MOV dword ptr [EBP + -0x40],EDX
CALL 0x0001b6f0
MOV EAX,dword ptr [EBP + -0x48]
MOV EDX,dword ptr [EBP + -0x40]
MOV EAX,dword ptr [EAX + 0x94]
ADD EAX,EAX
JMP 0x0004543b
MOV EBX,dword ptr [EBP + -0x30]
MOV dword ptr [EBP + -0x34],EDX
MOV dword ptr [EBP + -0x2c],EAX
CALL 0x0001b6f0
MOV EDX,dword ptr [EBP + -0x34]
MOV EAX,dword ptr [EBP + -0x2c]
JMP 0x000454f3
SUB ESP,0x8
MOV EBX,dword ptr [EBP + -0x30]
MOV dword ptr [EBP + -0x50],ECX
PUSH EAX
LEA EAX,[EBP + -0x20]
PUSH EAX
MOV dword ptr [EBP + -0x48],EDX
CALL 0x0001baf0
ADD ESP,0x10
MOV ECX,dword ptr [EBP + -0x50]
MOV EDX,dword ptr [EBP + -0x48]
MOV dword ptr [EBP + -0x38],EAX
JMP 0x000453a0
SUB ESP,0x8
MOV EBX,dword ptr [EBP + -0x30]
MOV dword ptr [EBP + -0x3c],EDX
PUSH EAX
LEA EAX,[EBP + -0x20]
PUSH EAX
CALL 0x0001baf0
ADD ESP,0x10
MOV EDX,dword ptr [EBP + -0x3c]
JMP 0x00045636
MOV EBX,dword ptr [EBP + -0x30]
MOV dword ptr [EBP + -0x2c],EDX
CALL 0x0001b6f0
MOV EDX,dword ptr [EBP + -0x2c]
JMP 0x000455c7
CALL 0x00079d30
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nuint * __gmpn_divisible_p(uint *param_1,uint *param_2,uint *param_3,uint *param_4)\n\n{\n  undefined *puVar1;\n  code *pcVar2;\n  int *piVar3;\n  byte bVar4;\n  uint *puVar5;\n  undefined **ppuVar6;\n  uint uVar7;\n  int iVar8;\n  uint *puVar9;\n  uint uVar10;\n  uint *puVar11;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  int in_GS_OFFSET;\n  undefined1 auStack_5c [4];\n  uint *puStack_58;\n  uint *puStack_54;\n  uint *apuStack_50 [4];\n  uint *puStack_40;\n  uint *puStack_3c;\n  uint *local_38;\n  undefined **local_34;\n  uint *local_30;\n  int iStack_24;\n  int local_20;\n  \n  puVar13 = auStack_5c;\n  puVar12 = auStack_5c;\n  local_34 = &__DT_PLTGOT;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if ((int)param_2 < (int)param_4) {\n    puVar9 = (uint *)(uint)(param_2 == (uint *)0x0);\n    local_34 = &__DT_PLTGOT;\n    goto LAB_000452d0;\n  }\n  puVar9 = (uint *)*param_3;\n  uVar7 = *param_1;\n  puVar11 = param_2;\n  if (puVar9 == (uint *)0x0) {\n    do {\n      if (uVar7 != 0) goto LAB_000452ce;\n      puVar11 = (uint *)((int)puVar11 + -1);\n      param_3 = param_3 + 1;\n      param_1 = param_1 + 1;\n      uVar7 = *param_1;\n      local_30 = (uint *)(((int)puVar11 + (int)param_4) - (int)param_2);\n      puVar9 = (uint *)*param_3;\n    } while (puVar9 == (uint *)0x0);\n  }\n  else {\n    local_30 = param_4;\n  }\n  uVar10 = (-(int)puVar9 & (uint)puVar9) - 1;\n  puVar13 = auStack_5c;\n  local_34 = &__DT_PLTGOT;\n  if ((uVar7 & uVar10) != 0) {\nLAB_000452ce:\n    puVar9 = (uint *)0x0;\n    puVar12 = puVar13;\n    goto LAB_000452d0;\n  }\n  if (local_30 == (uint *)0x1) {\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_38 = puVar11;\n      local_30 = puVar9;\n      __gmpn_cpuvec_init();\n      puVar9 = local_30;\n      puVar11 = local_38;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      bVar4 = 0;\n      for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;\n          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {\n        bVar4 = bVar4 + 1;\n      }\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }\n  apuStack_50[3] = (uint *)0x0;\n  for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000))\n  {\n    apuStack_50[3] = (uint *)((int)apuStack_50[3] + 1);\n  }\n  if ((local_30 == (uint *)0x2) && (param_3[1] <= uVar10)) {\n    bVar4 = 0;\n    for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)\n        ) {\n      bVar4 = bVar4 + 1;\n    }\n    uVar7 = param_3[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f);\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_30 = puVar11;\n      __gmpn_cpuvec_init();\n      puVar11 = local_30;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,uVar7,0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }\n  puStack_54 = (uint *)((int)puVar11 + 1);\n  puStack_40 = (uint *)((int)puVar11 - (int)local_30);\n  iStack_24 = 0;\n  uVar7 = ((int)puStack_40 + 1 + (int)puStack_54) * 4;\n  if (uVar7 < 0x7f01) {\n    iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n    puVar13 = auStack_5c + iVar8;\n    local_38 = (uint *)((int)apuStack_50 + iVar8);\n  }\n  else {\n    apuStack_50[2] = puStack_54;\n    puStack_3c = puVar11;\n    local_38 = (uint *)__gmp_tmp_reentrant_alloc(&iStack_24,uVar7);\n    puVar13 = auStack_5c;\n    puStack_54 = apuStack_50[2];\n    puVar11 = puStack_3c;\n  }\n  ppuVar6 = local_34;\n  apuStack_50[2] = (uint *)((int)puStack_54 * 4);\n  apuStack_50[0] = local_38 + (int)puStack_54;\n  if (apuStack_50[3] == (uint *)0x0) {\n    *(uint **)(puVar13 + -8) = puVar11;\n    *(uint **)(puVar13 + -0xc) = param_1;\n    puVar1 = ppuVar6[-0x9b];\n    *(uint **)(puVar13 + -0x10) = local_38;\n    pcVar2 = *(code **)(puVar1 + 0x28);\n    apuStack_50[1] = (uint *)puVar1;\n    apuStack_50[3] = puVar11;\n    *(undefined4 *)(puVar13 + -0x14) = 0x45555;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    puStack_3c = param_3;\n  }\n  else {\n    uVar7 = (int)local_30 * 4;\n    apuStack_50[1] = puVar11;\n    if (uVar7 < 0x7f01) {\n      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n      puStack_3c = (uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0);\n      puVar13 = puVar13 + iVar8;\n    }\n    else {\n      *(uint *)(puVar13 + -0xc) = uVar7;\n      *(int **)(puVar13 + -0x10) = &iStack_24;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc();\n    }\n    puVar11 = apuStack_50[3];\n    puVar1 = local_34[-0x9b];\n    puStack_58 = puStack_54;\n    puStack_54 = apuStack_50[1];\n    *(uint **)(puVar13 + -4) = apuStack_50[3];\n    *(uint **)(puVar13 + -8) = local_30;\n    *(uint **)(puVar13 + -0xc) = param_3;\n    *(uint **)(puVar13 + -0x10) = puStack_3c;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    apuStack_50[1] = (uint *)puVar1;\n    *(undefined4 *)(puVar13 + -0x14) = 0x453c5;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = param_1;\n    *(uint **)(puVar13 + -0x20) = local_38;\n    apuStack_50[3] = puVar9;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    *(undefined4 *)(puVar13 + -0x24) = 0x453d7;\n    (*pcVar2)();\n    puVar9 = puStack_58;\n  }\n  if (*(uint *)((int)local_38 + (int)apuStack_50[2] + -8) < puStack_3c[(int)local_30 + -1]) {\n    if (local_30 == apuStack_50[3]) {\nLAB_000454ba:\n      if (iStack_24 != 0) {\n        *(int *)(puVar13 + -0x10) = iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free();\n      }\n      goto LAB_000452ce;\n    }\n  }\n  else {\n    *(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0;\n    puStack_40 = (uint *)((int)puVar9 - (int)local_30);\n    apuStack_50[3] = puVar9;\n  }\n  piVar3 = (int *)local_34[-0xaa];\n  puVar9 = apuStack_50[3];\n  if (*piVar3 == 0) {\n    *(undefined4 *)(puVar13 + -4) = 0x45702;\n    __gmpn_cpuvec_init();\n    puVar9 = apuStack_50[3];\n  }\n  apuStack_50[3] = *(uint **)((int)apuStack_50[1] + 0x94);\n  iVar8 = (int)apuStack_50[3] * 2;\n  if (SBORROW4((int)local_30,iVar8) == (int)local_30 + (int)apuStack_50[3] * -2 < 0) {\n    if (*piVar3 == 0) {\n      apuStack_50[3] = puVar9;\n      *(undefined4 *)(puVar13 + -4) = 0x4572e;\n      __gmpn_cpuvec_init();\n      iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;\n      puVar9 = apuStack_50[3];\n    }\n    puVar11 = puStack_3c;\n    if ((int)puStack_40 < iVar8) goto LAB_00045444;\n    if ((int)local_30 < 2000) {\n      uVar7 = *puStack_3c;\n      uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n      iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n      *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n      *(uint **)(puVar13 + -0x10) = local_30;\n      *(uint **)(puVar13 + -0x14) = puVar11;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0x18) = puVar9;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x456e7;\n      __gmpn_dcpi1_bdiv_qr();\n      local_38 = puVar11 + (int)puStack_40;\n    }\n    else {\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puVar9;\n      puStack_40 = puVar9;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45613;\n      iVar8 = __gmpn_mu_bdiv_qr_itch();\n      uVar7 = iVar8 * 4;\n      if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;\n        puVar13 = puVar13 + iVar8;\n      }\n      else {\n        *(uint *)(puVar13 + -0xc) = uVar7;\n        *(int **)(puVar13 + -0x10) = &iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x45794;\n        uVar7 = __gmp_tmp_reentrant_alloc();\n      }\n      puVar9 = puStack_40;\n      *(uint *)(puVar13 + -8) = uVar7;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puStack_3c;\n      *(uint **)(puVar13 + -0x14) = puVar9;\n      *(uint **)(puVar13 + -0x18) = puVar11;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x45651;\n      __gmpn_mu_bdiv_qr();\n    }\n  }\n  else {\nLAB_00045444:\n    puVar11 = puStack_3c;\n    uVar7 = *puStack_3c;\n    uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n    iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n    *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n    *(uint **)(puVar13 + -0x10) = local_30;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    puVar11 = local_38;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = puVar11;\n    *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n    *(undefined4 *)(puVar13 + -0x24) = 0x4548b;\n    __gmpn_sbpi1_bdiv_qr();\n    local_38 = puVar11 + (int)puStack_40;\n  }\n  iVar8 = 0;\n  do {\n    if (local_38[iVar8] != 0) goto LAB_000454ba;\n    iVar8 = iVar8 + 1;\n  } while (iVar8 < (int)local_30);\n  puVar9 = (uint *)0x1;\n  puVar12 = puVar13;\n  if (iStack_24 != 0) {\n    local_30 = (uint *)0x1;\n    *(int *)(puVar13 + -0x10) = iStack_24;\n    *(undefined4 *)(puVar13 + -0x14) = 0x45585;\n    __gmp_tmp_reentrant_free();\n    puVar9 = local_30;\n  }\nLAB_000452d0:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)(puVar12 + -4) = 0x457b7;\n    FUN_00079d30();\n  }\n  return puVar9;\n}\n\n" comment (function_definition "uint * __gmpn_divisible_p(uint *param_1,uint *param_2,uint *param_3,uint *param_4)\n\n{\n  undefined *puVar1;\n  code *pcVar2;\n  int *piVar3;\n  byte bVar4;\n  uint *puVar5;\n  undefined **ppuVar6;\n  uint uVar7;\n  int iVar8;\n  uint *puVar9;\n  uint uVar10;\n  uint *puVar11;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  int in_GS_OFFSET;\n  undefined1 auStack_5c [4];\n  uint *puStack_58;\n  uint *puStack_54;\n  uint *apuStack_50 [4];\n  uint *puStack_40;\n  uint *puStack_3c;\n  uint *local_38;\n  undefined **local_34;\n  uint *local_30;\n  int iStack_24;\n  int local_20;\n  \n  puVar13 = auStack_5c;\n  puVar12 = auStack_5c;\n  local_34 = &__DT_PLTGOT;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if ((int)param_2 < (int)param_4) {\n    puVar9 = (uint *)(uint)(param_2 == (uint *)0x0);\n    local_34 = &__DT_PLTGOT;\n    goto LAB_000452d0;\n  }\n  puVar9 = (uint *)*param_3;\n  uVar7 = *param_1;\n  puVar11 = param_2;\n  if (puVar9 == (uint *)0x0) {\n    do {\n      if (uVar7 != 0) goto LAB_000452ce;\n      puVar11 = (uint *)((int)puVar11 + -1);\n      param_3 = param_3 + 1;\n      param_1 = param_1 + 1;\n      uVar7 = *param_1;\n      local_30 = (uint *)(((int)puVar11 + (int)param_4) - (int)param_2);\n      puVar9 = (uint *)*param_3;\n    } while (puVar9 == (uint *)0x0);\n  }\n  else {\n    local_30 = param_4;\n  }\n  uVar10 = (-(int)puVar9 & (uint)puVar9) - 1;\n  puVar13 = auStack_5c;\n  local_34 = &__DT_PLTGOT;\n  if ((uVar7 & uVar10) != 0) {\nLAB_000452ce:\n    puVar9 = (uint *)0x0;\n    puVar12 = puVar13;\n    goto LAB_000452d0;\n  }\n  if (local_30 == (uint *)0x1) {\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_38 = puVar11;\n      local_30 = puVar9;\n      __gmpn_cpuvec_init();\n      puVar9 = local_30;\n      puVar11 = local_38;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      bVar4 = 0;\n      for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;\n          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {\n        bVar4 = bVar4 + 1;\n      }\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }\n  apuStack_50[3] = (uint *)0x0;\n  for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000))\n  {\n    apuStack_50[3] = (uint *)((int)apuStack_50[3] + 1);\n  }\n  if ((local_30 == (uint *)0x2) && (param_3[1] <= uVar10)) {\n    bVar4 = 0;\n    for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)\n        ) {\n      bVar4 = bVar4 + 1;\n    }\n    uVar7 = param_3[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f);\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_30 = puVar11;\n      __gmpn_cpuvec_init();\n      puVar11 = local_30;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,uVar7,0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }\n  puStack_54 = (uint *)((int)puVar11 + 1);\n  puStack_40 = (uint *)((int)puVar11 - (int)local_30);\n  iStack_24 = 0;\n  uVar7 = ((int)puStack_40 + 1 + (int)puStack_54) * 4;\n  if (uVar7 < 0x7f01) {\n    iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n    puVar13 = auStack_5c + iVar8;\n    local_38 = (uint *)((int)apuStack_50 + iVar8);\n  }\n  else {\n    apuStack_50[2] = puStack_54;\n    puStack_3c = puVar11;\n    local_38 = (uint *)__gmp_tmp_reentrant_alloc(&iStack_24,uVar7);\n    puVar13 = auStack_5c;\n    puStack_54 = apuStack_50[2];\n    puVar11 = puStack_3c;\n  }\n  ppuVar6 = local_34;\n  apuStack_50[2] = (uint *)((int)puStack_54 * 4);\n  apuStack_50[0] = local_38 + (int)puStack_54;\n  if (apuStack_50[3] == (uint *)0x0) {\n    *(uint **)(puVar13 + -8) = puVar11;\n    *(uint **)(puVar13 + -0xc) = param_1;\n    puVar1 = ppuVar6[-0x9b];\n    *(uint **)(puVar13 + -0x10) = local_38;\n    pcVar2 = *(code **)(puVar1 + 0x28);\n    apuStack_50[1] = (uint *)puVar1;\n    apuStack_50[3] = puVar11;\n    *(undefined4 *)(puVar13 + -0x14) = 0x45555;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    puStack_3c = param_3;\n  }\n  else {\n    uVar7 = (int)local_30 * 4;\n    apuStack_50[1] = puVar11;\n    if (uVar7 < 0x7f01) {\n      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n      puStack_3c = (uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0);\n      puVar13 = puVar13 + iVar8;\n    }\n    else {\n      *(uint *)(puVar13 + -0xc) = uVar7;\n      *(int **)(puVar13 + -0x10) = &iStack_24;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc();\n    }\n    puVar11 = apuStack_50[3];\n    puVar1 = local_34[-0x9b];\n    puStack_58 = puStack_54;\n    puStack_54 = apuStack_50[1];\n    *(uint **)(puVar13 + -4) = apuStack_50[3];\n    *(uint **)(puVar13 + -8) = local_30;\n    *(uint **)(puVar13 + -0xc) = param_3;\n    *(uint **)(puVar13 + -0x10) = puStack_3c;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    apuStack_50[1] = (uint *)puVar1;\n    *(undefined4 *)(puVar13 + -0x14) = 0x453c5;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = param_1;\n    *(uint **)(puVar13 + -0x20) = local_38;\n    apuStack_50[3] = puVar9;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    *(undefined4 *)(puVar13 + -0x24) = 0x453d7;\n    (*pcVar2)();\n    puVar9 = puStack_58;\n  }\n  if (*(uint *)((int)local_38 + (int)apuStack_50[2] + -8) < puStack_3c[(int)local_30 + -1]) {\n    if (local_30 == apuStack_50[3]) {\nLAB_000454ba:\n      if (iStack_24 != 0) {\n        *(int *)(puVar13 + -0x10) = iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free();\n      }\n      goto LAB_000452ce;\n    }\n  }\n  else {\n    *(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0;\n    puStack_40 = (uint *)((int)puVar9 - (int)local_30);\n    apuStack_50[3] = puVar9;\n  }\n  piVar3 = (int *)local_34[-0xaa];\n  puVar9 = apuStack_50[3];\n  if (*piVar3 == 0) {\n    *(undefined4 *)(puVar13 + -4) = 0x45702;\n    __gmpn_cpuvec_init();\n    puVar9 = apuStack_50[3];\n  }\n  apuStack_50[3] = *(uint **)((int)apuStack_50[1] + 0x94);\n  iVar8 = (int)apuStack_50[3] * 2;\n  if (SBORROW4((int)local_30,iVar8) == (int)local_30 + (int)apuStack_50[3] * -2 < 0) {\n    if (*piVar3 == 0) {\n      apuStack_50[3] = puVar9;\n      *(undefined4 *)(puVar13 + -4) = 0x4572e;\n      __gmpn_cpuvec_init();\n      iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;\n      puVar9 = apuStack_50[3];\n    }\n    puVar11 = puStack_3c;\n    if ((int)puStack_40 < iVar8) goto LAB_00045444;\n    if ((int)local_30 < 2000) {\n      uVar7 = *puStack_3c;\n      uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n      iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n      *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n      *(uint **)(puVar13 + -0x10) = local_30;\n      *(uint **)(puVar13 + -0x14) = puVar11;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0x18) = puVar9;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x456e7;\n      __gmpn_dcpi1_bdiv_qr();\n      local_38 = puVar11 + (int)puStack_40;\n    }\n    else {\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puVar9;\n      puStack_40 = puVar9;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45613;\n      iVar8 = __gmpn_mu_bdiv_qr_itch();\n      uVar7 = iVar8 * 4;\n      if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;\n        puVar13 = puVar13 + iVar8;\n      }\n      else {\n        *(uint *)(puVar13 + -0xc) = uVar7;\n        *(int **)(puVar13 + -0x10) = &iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x45794;\n        uVar7 = __gmp_tmp_reentrant_alloc();\n      }\n      puVar9 = puStack_40;\n      *(uint *)(puVar13 + -8) = uVar7;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puStack_3c;\n      *(uint **)(puVar13 + -0x14) = puVar9;\n      *(uint **)(puVar13 + -0x18) = puVar11;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x45651;\n      __gmpn_mu_bdiv_qr();\n    }\n  }\n  else {\nLAB_00045444:\n    puVar11 = puStack_3c;\n    uVar7 = *puStack_3c;\n    uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n    iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n    *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n    *(uint **)(puVar13 + -0x10) = local_30;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    puVar11 = local_38;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = puVar11;\n    *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n    *(undefined4 *)(puVar13 + -0x24) = 0x4548b;\n    __gmpn_sbpi1_bdiv_qr();\n    local_38 = puVar11 + (int)puStack_40;\n  }\n  iVar8 = 0;\n  do {\n    if (local_38[iVar8] != 0) goto LAB_000454ba;\n    iVar8 = iVar8 + 1;\n  } while (iVar8 < (int)local_30);\n  puVar9 = (uint *)0x1;\n  puVar12 = puVar13;\n  if (iStack_24 != 0) {\n    local_30 = (uint *)0x1;\n    *(int *)(puVar13 + -0x10) = iStack_24;\n    *(undefined4 *)(puVar13 + -0x14) = 0x45585;\n    __gmp_tmp_reentrant_free();\n    puVar9 = local_30;\n  }\nLAB_000452d0:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)(puVar12 + -4) = 0x457b7;\n    FUN_00079d30();\n  }\n  return puVar9;\n}" type_identifier (pointer_declarator "* __gmpn_divisible_p(uint *param_1,uint *param_2,uint *param_3,uint *param_4)" * (function_declarator "__gmpn_divisible_p(uint *param_1,uint *param_2,uint *param_3,uint *param_4)" identifier (parameter_list "(uint *param_1,uint *param_2,uint *param_3,uint *param_4)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) )))) (compound_statement "{\n  undefined *puVar1;\n  code *pcVar2;\n  int *piVar3;\n  byte bVar4;\n  uint *puVar5;\n  undefined **ppuVar6;\n  uint uVar7;\n  int iVar8;\n  uint *puVar9;\n  uint uVar10;\n  uint *puVar11;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  int in_GS_OFFSET;\n  undefined1 auStack_5c [4];\n  uint *puStack_58;\n  uint *puStack_54;\n  uint *apuStack_50 [4];\n  uint *puStack_40;\n  uint *puStack_3c;\n  uint *local_38;\n  undefined **local_34;\n  uint *local_30;\n  int iStack_24;\n  int local_20;\n  \n  puVar13 = auStack_5c;\n  puVar12 = auStack_5c;\n  local_34 = &__DT_PLTGOT;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if ((int)param_2 < (int)param_4) {\n    puVar9 = (uint *)(uint)(param_2 == (uint *)0x0);\n    local_34 = &__DT_PLTGOT;\n    goto LAB_000452d0;\n  }\n  puVar9 = (uint *)*param_3;\n  uVar7 = *param_1;\n  puVar11 = param_2;\n  if (puVar9 == (uint *)0x0) {\n    do {\n      if (uVar7 != 0) goto LAB_000452ce;\n      puVar11 = (uint *)((int)puVar11 + -1);\n      param_3 = param_3 + 1;\n      param_1 = param_1 + 1;\n      uVar7 = *param_1;\n      local_30 = (uint *)(((int)puVar11 + (int)param_4) - (int)param_2);\n      puVar9 = (uint *)*param_3;\n    } while (puVar9 == (uint *)0x0);\n  }\n  else {\n    local_30 = param_4;\n  }\n  uVar10 = (-(int)puVar9 & (uint)puVar9) - 1;\n  puVar13 = auStack_5c;\n  local_34 = &__DT_PLTGOT;\n  if ((uVar7 & uVar10) != 0) {\nLAB_000452ce:\n    puVar9 = (uint *)0x0;\n    puVar12 = puVar13;\n    goto LAB_000452d0;\n  }\n  if (local_30 == (uint *)0x1) {\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_38 = puVar11;\n      local_30 = puVar9;\n      __gmpn_cpuvec_init();\n      puVar9 = local_30;\n      puVar11 = local_38;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      bVar4 = 0;\n      for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;\n          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {\n        bVar4 = bVar4 + 1;\n      }\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }\n  apuStack_50[3] = (uint *)0x0;\n  for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000))\n  {\n    apuStack_50[3] = (uint *)((int)apuStack_50[3] + 1);\n  }\n  if ((local_30 == (uint *)0x2) && (param_3[1] <= uVar10)) {\n    bVar4 = 0;\n    for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)\n        ) {\n      bVar4 = bVar4 + 1;\n    }\n    uVar7 = param_3[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f);\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_30 = puVar11;\n      __gmpn_cpuvec_init();\n      puVar11 = local_30;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,uVar7,0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }\n  puStack_54 = (uint *)((int)puVar11 + 1);\n  puStack_40 = (uint *)((int)puVar11 - (int)local_30);\n  iStack_24 = 0;\n  uVar7 = ((int)puStack_40 + 1 + (int)puStack_54) * 4;\n  if (uVar7 < 0x7f01) {\n    iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n    puVar13 = auStack_5c + iVar8;\n    local_38 = (uint *)((int)apuStack_50 + iVar8);\n  }\n  else {\n    apuStack_50[2] = puStack_54;\n    puStack_3c = puVar11;\n    local_38 = (uint *)__gmp_tmp_reentrant_alloc(&iStack_24,uVar7);\n    puVar13 = auStack_5c;\n    puStack_54 = apuStack_50[2];\n    puVar11 = puStack_3c;\n  }\n  ppuVar6 = local_34;\n  apuStack_50[2] = (uint *)((int)puStack_54 * 4);\n  apuStack_50[0] = local_38 + (int)puStack_54;\n  if (apuStack_50[3] == (uint *)0x0) {\n    *(uint **)(puVar13 + -8) = puVar11;\n    *(uint **)(puVar13 + -0xc) = param_1;\n    puVar1 = ppuVar6[-0x9b];\n    *(uint **)(puVar13 + -0x10) = local_38;\n    pcVar2 = *(code **)(puVar1 + 0x28);\n    apuStack_50[1] = (uint *)puVar1;\n    apuStack_50[3] = puVar11;\n    *(undefined4 *)(puVar13 + -0x14) = 0x45555;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    puStack_3c = param_3;\n  }\n  else {\n    uVar7 = (int)local_30 * 4;\n    apuStack_50[1] = puVar11;\n    if (uVar7 < 0x7f01) {\n      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n      puStack_3c = (uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0);\n      puVar13 = puVar13 + iVar8;\n    }\n    else {\n      *(uint *)(puVar13 + -0xc) = uVar7;\n      *(int **)(puVar13 + -0x10) = &iStack_24;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc();\n    }\n    puVar11 = apuStack_50[3];\n    puVar1 = local_34[-0x9b];\n    puStack_58 = puStack_54;\n    puStack_54 = apuStack_50[1];\n    *(uint **)(puVar13 + -4) = apuStack_50[3];\n    *(uint **)(puVar13 + -8) = local_30;\n    *(uint **)(puVar13 + -0xc) = param_3;\n    *(uint **)(puVar13 + -0x10) = puStack_3c;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    apuStack_50[1] = (uint *)puVar1;\n    *(undefined4 *)(puVar13 + -0x14) = 0x453c5;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = param_1;\n    *(uint **)(puVar13 + -0x20) = local_38;\n    apuStack_50[3] = puVar9;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    *(undefined4 *)(puVar13 + -0x24) = 0x453d7;\n    (*pcVar2)();\n    puVar9 = puStack_58;\n  }\n  if (*(uint *)((int)local_38 + (int)apuStack_50[2] + -8) < puStack_3c[(int)local_30 + -1]) {\n    if (local_30 == apuStack_50[3]) {\nLAB_000454ba:\n      if (iStack_24 != 0) {\n        *(int *)(puVar13 + -0x10) = iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free();\n      }\n      goto LAB_000452ce;\n    }\n  }\n  else {\n    *(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0;\n    puStack_40 = (uint *)((int)puVar9 - (int)local_30);\n    apuStack_50[3] = puVar9;\n  }\n  piVar3 = (int *)local_34[-0xaa];\n  puVar9 = apuStack_50[3];\n  if (*piVar3 == 0) {\n    *(undefined4 *)(puVar13 + -4) = 0x45702;\n    __gmpn_cpuvec_init();\n    puVar9 = apuStack_50[3];\n  }\n  apuStack_50[3] = *(uint **)((int)apuStack_50[1] + 0x94);\n  iVar8 = (int)apuStack_50[3] * 2;\n  if (SBORROW4((int)local_30,iVar8) == (int)local_30 + (int)apuStack_50[3] * -2 < 0) {\n    if (*piVar3 == 0) {\n      apuStack_50[3] = puVar9;\n      *(undefined4 *)(puVar13 + -4) = 0x4572e;\n      __gmpn_cpuvec_init();\n      iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;\n      puVar9 = apuStack_50[3];\n    }\n    puVar11 = puStack_3c;\n    if ((int)puStack_40 < iVar8) goto LAB_00045444;\n    if ((int)local_30 < 2000) {\n      uVar7 = *puStack_3c;\n      uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n      iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n      *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n      *(uint **)(puVar13 + -0x10) = local_30;\n      *(uint **)(puVar13 + -0x14) = puVar11;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0x18) = puVar9;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x456e7;\n      __gmpn_dcpi1_bdiv_qr();\n      local_38 = puVar11 + (int)puStack_40;\n    }\n    else {\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puVar9;\n      puStack_40 = puVar9;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45613;\n      iVar8 = __gmpn_mu_bdiv_qr_itch();\n      uVar7 = iVar8 * 4;\n      if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;\n        puVar13 = puVar13 + iVar8;\n      }\n      else {\n        *(uint *)(puVar13 + -0xc) = uVar7;\n        *(int **)(puVar13 + -0x10) = &iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x45794;\n        uVar7 = __gmp_tmp_reentrant_alloc();\n      }\n      puVar9 = puStack_40;\n      *(uint *)(puVar13 + -8) = uVar7;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puStack_3c;\n      *(uint **)(puVar13 + -0x14) = puVar9;\n      *(uint **)(puVar13 + -0x18) = puVar11;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x45651;\n      __gmpn_mu_bdiv_qr();\n    }\n  }\n  else {\nLAB_00045444:\n    puVar11 = puStack_3c;\n    uVar7 = *puStack_3c;\n    uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n    iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n    *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n    *(uint **)(puVar13 + -0x10) = local_30;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    puVar11 = local_38;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = puVar11;\n    *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n    *(undefined4 *)(puVar13 + -0x24) = 0x4548b;\n    __gmpn_sbpi1_bdiv_qr();\n    local_38 = puVar11 + (int)puStack_40;\n  }\n  iVar8 = 0;\n  do {\n    if (local_38[iVar8] != 0) goto LAB_000454ba;\n    iVar8 = iVar8 + 1;\n  } while (iVar8 < (int)local_30);\n  puVar9 = (uint *)0x1;\n  puVar12 = puVar13;\n  if (iStack_24 != 0) {\n    local_30 = (uint *)0x1;\n    *(int *)(puVar13 + -0x10) = iStack_24;\n    *(undefined4 *)(puVar13 + -0x14) = 0x45585;\n    __gmp_tmp_reentrant_free();\n    puVar9 = local_30;\n  }\nLAB_000452d0:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)(puVar12 + -4) = 0x457b7;\n    FUN_00079d30();\n  }\n  return puVar9;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "code *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined **ppuVar6;" type_identifier (pointer_declarator "**ppuVar6" * (pointer_declarator "*ppuVar6" * identifier)) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined1 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined1 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined1 auStack_5c [4];" type_identifier (array_declarator "auStack_5c [4]" identifier [ number_literal ]) ;) (declaration "uint *puStack_58;" type_identifier (pointer_declarator "*puStack_58" * identifier) ;) (declaration "uint *puStack_54;" type_identifier (pointer_declarator "*puStack_54" * identifier) ;) (declaration "uint *apuStack_50 [4];" type_identifier (pointer_declarator "*apuStack_50 [4]" * (array_declarator "apuStack_50 [4]" identifier [ number_literal ])) ;) (declaration "uint *puStack_40;" type_identifier (pointer_declarator "*puStack_40" * identifier) ;) (declaration "uint *puStack_3c;" type_identifier (pointer_declarator "*puStack_3c" * identifier) ;) (declaration "uint *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "undefined **local_34;" type_identifier (pointer_declarator "**local_34" * (pointer_declarator "*local_34" * identifier)) ;) (declaration "uint *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "int iStack_24;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "puVar13 = auStack_5c;" (assignment_expression "puVar13 = auStack_5c" identifier = identifier) ;) (expression_statement "puVar12 = auStack_5c;" (assignment_expression "puVar12 = auStack_5c" identifier = identifier) ;) (expression_statement "local_34 = &__DT_PLTGOT;" (assignment_expression "local_34 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if ((int)param_2 < (int)param_4) {\n    puVar9 = (uint *)(uint)(param_2 == (uint *)0x0);\n    local_34 = &__DT_PLTGOT;\n    goto LAB_000452d0;\n  }" if (parenthesized_expression "((int)param_2 < (int)param_4)" ( (binary_expression "(int)param_2 < (int)param_4" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    puVar9 = (uint *)(uint)(param_2 == (uint *)0x0);\n    local_34 = &__DT_PLTGOT;\n    goto LAB_000452d0;\n  }" { (expression_statement "puVar9 = (uint *)(uint)(param_2 == (uint *)0x0);" (assignment_expression "puVar9 = (uint *)(uint)(param_2 == (uint *)0x0)" identifier = (cast_expression "(uint *)(uint)(param_2 == (uint *)0x0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(param_2 == (uint *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_2 == (uint *)0x0)" ( (binary_expression "param_2 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))))) ;) (expression_statement "local_34 = &__DT_PLTGOT;" (assignment_expression "local_34 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (goto_statement "goto LAB_000452d0;" goto statement_identifier ;) })) (expression_statement "puVar9 = (uint *)*param_3;" (assignment_expression "puVar9 = (uint *)*param_3" identifier = (cast_expression "(uint *)*param_3" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) (expression_statement "uVar7 = *param_1;" (assignment_expression "uVar7 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "puVar11 = param_2;" (assignment_expression "puVar11 = param_2" identifier = identifier) ;) (if_statement "if (puVar9 == (uint *)0x0) {\n    do {\n      if (uVar7 != 0) goto LAB_000452ce;\n      puVar11 = (uint *)((int)puVar11 + -1);\n      param_3 = param_3 + 1;\n      param_1 = param_1 + 1;\n      uVar7 = *param_1;\n      local_30 = (uint *)(((int)puVar11 + (int)param_4) - (int)param_2);\n      puVar9 = (uint *)*param_3;\n    } while (puVar9 == (uint *)0x0);\n  }\n  else {\n    local_30 = param_4;\n  }" if (parenthesized_expression "(puVar9 == (uint *)0x0)" ( (binary_expression "puVar9 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      if (uVar7 != 0) goto LAB_000452ce;\n      puVar11 = (uint *)((int)puVar11 + -1);\n      param_3 = param_3 + 1;\n      param_1 = param_1 + 1;\n      uVar7 = *param_1;\n      local_30 = (uint *)(((int)puVar11 + (int)param_4) - (int)param_2);\n      puVar9 = (uint *)*param_3;\n    } while (puVar9 == (uint *)0x0);\n  }" { (do_statement "do {\n      if (uVar7 != 0) goto LAB_000452ce;\n      puVar11 = (uint *)((int)puVar11 + -1);\n      param_3 = param_3 + 1;\n      param_1 = param_1 + 1;\n      uVar7 = *param_1;\n      local_30 = (uint *)(((int)puVar11 + (int)param_4) - (int)param_2);\n      puVar9 = (uint *)*param_3;\n    } while (puVar9 == (uint *)0x0);" do (compound_statement "{\n      if (uVar7 != 0) goto LAB_000452ce;\n      puVar11 = (uint *)((int)puVar11 + -1);\n      param_3 = param_3 + 1;\n      param_1 = param_1 + 1;\n      uVar7 = *param_1;\n      local_30 = (uint *)(((int)puVar11 + (int)param_4) - (int)param_2);\n      puVar9 = (uint *)*param_3;\n    }" { (if_statement "if (uVar7 != 0) goto LAB_000452ce;" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000452ce;" goto statement_identifier ;)) (expression_statement "puVar11 = (uint *)((int)puVar11 + -1);" (assignment_expression "puVar11 = (uint *)((int)puVar11 + -1)" identifier = (cast_expression "(uint *)((int)puVar11 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + -1)" ( (binary_expression "(int)puVar11 + -1" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "uVar7 = *param_1;" (assignment_expression "uVar7 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "local_30 = (uint *)(((int)puVar11 + (int)param_4) - (int)param_2);" (assignment_expression "local_30 = (uint *)(((int)puVar11 + (int)param_4) - (int)param_2)" identifier = (cast_expression "(uint *)(((int)puVar11 + (int)param_4) - (int)param_2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)puVar11 + (int)param_4) - (int)param_2)" ( (binary_expression "((int)puVar11 + (int)param_4) - (int)param_2" (parenthesized_expression "((int)puVar11 + (int)param_4)" ( (binary_expression "(int)puVar11 + (int)param_4" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) )) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar9 = (uint *)*param_3;" (assignment_expression "puVar9 = (uint *)*param_3" identifier = (cast_expression "(uint *)*param_3" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) }) while (parenthesized_expression "(puVar9 == (uint *)0x0)" ( (binary_expression "puVar9 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }) (else_clause "else {\n    local_30 = param_4;\n  }" else (compound_statement "{\n    local_30 = param_4;\n  }" { (expression_statement "local_30 = param_4;" (assignment_expression "local_30 = param_4" identifier = identifier) ;) }))) (expression_statement "uVar10 = (-(int)puVar9 & (uint)puVar9) - 1;" (assignment_expression "uVar10 = (-(int)puVar9 & (uint)puVar9) - 1" identifier = (binary_expression "(-(int)puVar9 & (uint)puVar9) - 1" (parenthesized_expression "(-(int)puVar9 & (uint)puVar9)" ( (binary_expression "-(int)puVar9 & (uint)puVar9" (unary_expression "-(int)puVar9" - (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier)) & (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier)) )) - number_literal)) ;) (expression_statement "puVar13 = auStack_5c;" (assignment_expression "puVar13 = auStack_5c" identifier = identifier) ;) (expression_statement "local_34 = &__DT_PLTGOT;" (assignment_expression "local_34 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (if_statement "if ((uVar7 & uVar10) != 0) {\nLAB_000452ce:\n    puVar9 = (uint *)0x0;\n    puVar12 = puVar13;\n    goto LAB_000452d0;\n  }" if (parenthesized_expression "((uVar7 & uVar10) != 0)" ( (binary_expression "(uVar7 & uVar10) != 0" (parenthesized_expression "(uVar7 & uVar10)" ( (binary_expression "uVar7 & uVar10" identifier & identifier) )) != number_literal) )) (compound_statement "{\nLAB_000452ce:\n    puVar9 = (uint *)0x0;\n    puVar12 = puVar13;\n    goto LAB_000452d0;\n  }" { (labeled_statement "LAB_000452ce:\n    puVar9 = (uint *)0x0;" statement_identifier : (expression_statement "puVar9 = (uint *)0x0;" (assignment_expression "puVar9 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "puVar12 = puVar13;" (assignment_expression "puVar12 = puVar13" identifier = identifier) ;) (goto_statement "goto LAB_000452d0;" goto statement_identifier ;) })) (if_statement "if (local_30 == (uint *)0x1) {\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_38 = puVar11;\n      local_30 = puVar9;\n      __gmpn_cpuvec_init();\n      puVar9 = local_30;\n      puVar11 = local_38;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      bVar4 = 0;\n      for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;\n          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {\n        bVar4 = bVar4 + 1;\n      }\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }" if (parenthesized_expression "(local_30 == (uint *)0x1)" ( (binary_expression "local_30 == (uint *)0x1" identifier == (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_38 = puVar11;\n      local_30 = puVar9;\n      __gmpn_cpuvec_init();\n      puVar9 = local_30;\n      puVar11 = local_38;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      bVar4 = 0;\n      for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;\n          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {\n        bVar4 = bVar4 + 1;\n      }\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }" { (if_statement "if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_38 = puVar11;\n      local_30 = puVar9;\n      __gmpn_cpuvec_init();\n      puVar9 = local_30;\n      puVar11 = local_38;\n    }" if (parenthesized_expression "(*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0)" ( (binary_expression "*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0" (pointer_expression "*(int *)PTR___gmpn_cpuvec_initialized_00098d58" * (cast_expression "(int *)PTR___gmpn_cpuvec_initialized_00098d58" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n      local_38 = puVar11;\n      local_30 = puVar9;\n      __gmpn_cpuvec_init();\n      puVar9 = local_30;\n      puVar11 = local_38;\n    }" { (expression_statement "local_38 = puVar11;" (assignment_expression "local_38 = puVar11" identifier = identifier) ;) (expression_statement "local_30 = puVar9;" (assignment_expression "local_30 = puVar9" identifier = identifier) ;) (expression_statement "__gmpn_cpuvec_init();" (call_expression "__gmpn_cpuvec_init()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar9 = local_30;" (assignment_expression "puVar9 = local_30" identifier = identifier) ;) (expression_statement "puVar11 = local_38;" (assignment_expression "puVar11 = local_38" identifier = identifier) ;) })) (expression_statement "puVar1 = local_34[-0x9b];" (assignment_expression "puVar1 = local_34[-0x9b]" identifier = (subscript_expression "local_34[-0x9b]" identifier [ number_literal ])) ;) (if_statement "if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      bVar4 = 0;\n      for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;\n          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {\n        bVar4 = bVar4 + 1;\n      }\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }" if (parenthesized_expression "((int)puVar11 < *(int *)(puVar1 + 0xa4))" ( (binary_expression "(int)puVar11 < *(int *)(puVar1 + 0xa4)" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(puVar1 + 0xa4)" * (cast_expression "(int *)(puVar1 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0xa4)" ( (binary_expression "puVar1 + 0xa4" identifier + number_literal) ))))) )) (compound_statement "{\n      bVar4 = 0;\n      for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;\n          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {\n        bVar4 = bVar4 + 1;\n      }\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }" { (expression_statement "bVar4 = 0;" (assignment_expression "bVar4 = 0" identifier = number_literal) ;) (for_statement "for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;\n          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {\n        bVar4 = bVar4 + 1;\n      }" for ( (assignment_expression "puVar5 = puVar9" identifier = identifier) ; (binary_expression "((uint)puVar5 & 1) == 0" (parenthesized_expression "((uint)puVar5 & 1)" ( (binary_expression "(uint)puVar5 & 1" (cast_expression "(uint)puVar5" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) ; (assignment_expression "puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)" identifier = (cast_expression "(uint *)((uint)puVar5 >> 1 | 0x80000000)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)puVar5 >> 1 | 0x80000000)" ( (binary_expression "(uint)puVar5 >> 1 | 0x80000000" (binary_expression "(uint)puVar5 >> 1" (cast_expression "(uint)puVar5" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) | number_literal) )))) ) (compound_statement "{\n        bVar4 = bVar4 + 1;\n      }" { (expression_statement "bVar4 = bVar4 + 1;" (assignment_expression "bVar4 = bVar4 + 1" identifier = (binary_expression "bVar4 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0);" (assignment_expression "iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0)" identifier = (call_expression "(**(code **)(puVar1 + 0x60))(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0)" (parenthesized_expression "(**(code **)(puVar1 + 0x60))" ( (pointer_expression "**(code **)(puVar1 + 0x60)" * (pointer_expression "*(code **)(puVar1 + 0x60)" * (cast_expression "(code **)(puVar1 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + 0x60)" ( (binary_expression "puVar1 + 0x60" identifier + number_literal) ))))) )) (argument_list "(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0)" ( identifier , identifier , (binary_expression "(uint)puVar9 >> (bVar4 & 0x1f)" (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier) >> (parenthesized_expression "(bVar4 & 0x1f)" ( (binary_expression "bVar4 & 0x1f" identifier & number_literal) ))) , number_literal )))) ;) (expression_statement "puVar9 = (uint *)(uint)(iVar8 == 0);" (assignment_expression "puVar9 = (uint *)(uint)(iVar8 == 0)" identifier = (cast_expression "(uint *)(uint)(iVar8 == 0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(iVar8 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) ))))) ;) (expression_statement "puVar12 = auStack_5c;" (assignment_expression "puVar12 = auStack_5c" identifier = identifier) ;) }) (else_clause "else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }" else (compound_statement "{\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }" { (expression_statement "iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9);" (assignment_expression "iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9)" identifier = (call_expression "(**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9)" (parenthesized_expression "(**(code **)(puVar1 + 0x40))" ( (pointer_expression "**(code **)(puVar1 + 0x40)" * (pointer_expression "*(code **)(puVar1 + 0x40)" * (cast_expression "(code **)(puVar1 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + 0x40)" ( (binary_expression "puVar1 + 0x40" identifier + number_literal) ))))) )) (argument_list "(param_1,puVar11,puVar9)" ( identifier , identifier , identifier )))) ;) (expression_statement "puVar9 = (uint *)(uint)(iVar8 == 0);" (assignment_expression "puVar9 = (uint *)(uint)(iVar8 == 0)" identifier = (cast_expression "(uint *)(uint)(iVar8 == 0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(iVar8 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) ))))) ;) (expression_statement "puVar12 = auStack_5c;" (assignment_expression "puVar12 = auStack_5c" identifier = identifier) ;) }))) (goto_statement "goto LAB_000452d0;" goto statement_identifier ;) })) (expression_statement "apuStack_50[3] = (uint *)0x0;" (assignment_expression "apuStack_50[3] = (uint *)0x0" (subscript_expression "apuStack_50[3]" identifier [ number_literal ]) = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (for_statement "for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000))\n  {\n    apuStack_50[3] = (uint *)((int)apuStack_50[3] + 1);\n  }" for ( (assignment_expression "puVar5 = puVar9" identifier = identifier) ; (binary_expression "((uint)puVar5 & 1) == 0" (parenthesized_expression "((uint)puVar5 & 1)" ( (binary_expression "(uint)puVar5 & 1" (cast_expression "(uint)puVar5" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) ; (assignment_expression "puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)" identifier = (cast_expression "(uint *)((uint)puVar5 >> 1 | 0x80000000)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)puVar5 >> 1 | 0x80000000)" ( (binary_expression "(uint)puVar5 >> 1 | 0x80000000" (binary_expression "(uint)puVar5 >> 1" (cast_expression "(uint)puVar5" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) | number_literal) )))) ) (compound_statement "{\n    apuStack_50[3] = (uint *)((int)apuStack_50[3] + 1);\n  }" { (expression_statement "apuStack_50[3] = (uint *)((int)apuStack_50[3] + 1);" (assignment_expression "apuStack_50[3] = (uint *)((int)apuStack_50[3] + 1)" (subscript_expression "apuStack_50[3]" identifier [ number_literal ]) = (cast_expression "(uint *)((int)apuStack_50[3] + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)apuStack_50[3] + 1)" ( (binary_expression "(int)apuStack_50[3] + 1" (cast_expression "(int)apuStack_50[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "apuStack_50[3]" identifier [ number_literal ])) + number_literal) )))) ;) })) (if_statement "if ((local_30 == (uint *)0x2) && (param_3[1] <= uVar10)) {\n    bVar4 = 0;\n    for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)\n        ) {\n      bVar4 = bVar4 + 1;\n    }\n    uVar7 = param_3[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f);\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_30 = puVar11;\n      __gmpn_cpuvec_init();\n      puVar11 = local_30;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,uVar7,0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }" if (parenthesized_expression "((local_30 == (uint *)0x2) && (param_3[1] <= uVar10))" ( (binary_expression "(local_30 == (uint *)0x2) && (param_3[1] <= uVar10)" (parenthesized_expression "(local_30 == (uint *)0x2)" ( (binary_expression "local_30 == (uint *)0x2" identifier == (cast_expression "(uint *)0x2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(param_3[1] <= uVar10)" ( (binary_expression "param_3[1] <= uVar10" (subscript_expression "param_3[1]" identifier [ number_literal ]) <= identifier) ))) )) (compound_statement "{\n    bVar4 = 0;\n    for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)\n        ) {\n      bVar4 = bVar4 + 1;\n    }\n    uVar7 = param_3[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f);\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_30 = puVar11;\n      __gmpn_cpuvec_init();\n      puVar11 = local_30;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,uVar7,0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }" { (expression_statement "bVar4 = 0;" (assignment_expression "bVar4 = 0" identifier = number_literal) ;) (for_statement "for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)\n        ) {\n      bVar4 = bVar4 + 1;\n    }" for ( (assignment_expression "puVar5 = puVar9" identifier = identifier) ; (binary_expression "((uint)puVar5 & 1) == 0" (parenthesized_expression "((uint)puVar5 & 1)" ( (binary_expression "(uint)puVar5 & 1" (cast_expression "(uint)puVar5" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) ; (assignment_expression "puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)" identifier = (cast_expression "(uint *)((uint)puVar5 >> 1 | 0x80000000)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)puVar5 >> 1 | 0x80000000)" ( (binary_expression "(uint)puVar5 >> 1 | 0x80000000" (binary_expression "(uint)puVar5 >> 1" (cast_expression "(uint)puVar5" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) | number_literal) )))) ) (compound_statement "{\n      bVar4 = bVar4 + 1;\n    }" { (expression_statement "bVar4 = bVar4 + 1;" (assignment_expression "bVar4 = bVar4 + 1" identifier = (binary_expression "bVar4 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar7 = param_3[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f);" (assignment_expression "uVar7 = param_3[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f)" identifier = (binary_expression "param_3[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f)" (binary_expression "param_3[1] << (0x20 - bVar4 & 0x1f)" (subscript_expression "param_3[1]" identifier [ number_literal ]) << (parenthesized_expression "(0x20 - bVar4 & 0x1f)" ( (binary_expression "0x20 - bVar4 & 0x1f" (binary_expression "0x20 - bVar4" number_literal - identifier) & number_literal) ))) | (binary_expression "(uint)puVar9 >> (bVar4 & 0x1f)" (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier) >> (parenthesized_expression "(bVar4 & 0x1f)" ( (binary_expression "bVar4 & 0x1f" identifier & number_literal) ))))) ;) (if_statement "if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_30 = puVar11;\n      __gmpn_cpuvec_init();\n      puVar11 = local_30;\n    }" if (parenthesized_expression "(*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0)" ( (binary_expression "*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0" (pointer_expression "*(int *)PTR___gmpn_cpuvec_initialized_00098d58" * (cast_expression "(int *)PTR___gmpn_cpuvec_initialized_00098d58" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n      local_30 = puVar11;\n      __gmpn_cpuvec_init();\n      puVar11 = local_30;\n    }" { (expression_statement "local_30 = puVar11;" (assignment_expression "local_30 = puVar11" identifier = identifier) ;) (expression_statement "__gmpn_cpuvec_init();" (call_expression "__gmpn_cpuvec_init()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar11 = local_30;" (assignment_expression "puVar11 = local_30" identifier = identifier) ;) })) (expression_statement "puVar1 = local_34[-0x9b];" (assignment_expression "puVar1 = local_34[-0x9b]" identifier = (subscript_expression "local_34[-0x9b]" identifier [ number_literal ])) ;) (if_statement "if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,uVar7,0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }" if (parenthesized_expression "((int)puVar11 < *(int *)(puVar1 + 0xa4))" ( (binary_expression "(int)puVar11 < *(int *)(puVar1 + 0xa4)" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(puVar1 + 0xa4)" * (cast_expression "(int *)(puVar1 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0xa4)" ( (binary_expression "puVar1 + 0xa4" identifier + number_literal) ))))) )) (compound_statement "{\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,uVar7,0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }" { (expression_statement "iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,uVar7,0);" (assignment_expression "iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,uVar7,0)" identifier = (call_expression "(**(code **)(puVar1 + 0x60))(param_1,puVar11,uVar7,0)" (parenthesized_expression "(**(code **)(puVar1 + 0x60))" ( (pointer_expression "**(code **)(puVar1 + 0x60)" * (pointer_expression "*(code **)(puVar1 + 0x60)" * (cast_expression "(code **)(puVar1 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + 0x60)" ( (binary_expression "puVar1 + 0x60" identifier + number_literal) ))))) )) (argument_list "(param_1,puVar11,uVar7,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "puVar9 = (uint *)(uint)(iVar8 == 0);" (assignment_expression "puVar9 = (uint *)(uint)(iVar8 == 0)" identifier = (cast_expression "(uint *)(uint)(iVar8 == 0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(iVar8 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) ))))) ;) (expression_statement "puVar12 = auStack_5c;" (assignment_expression "puVar12 = auStack_5c" identifier = identifier) ;) }) (else_clause "else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }" else (compound_statement "{\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }" { (expression_statement "iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7);" (assignment_expression "iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7)" identifier = (call_expression "(**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7)" (parenthesized_expression "(**(code **)(puVar1 + 0x40))" ( (pointer_expression "**(code **)(puVar1 + 0x40)" * (pointer_expression "*(code **)(puVar1 + 0x40)" * (cast_expression "(code **)(puVar1 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + 0x40)" ( (binary_expression "puVar1 + 0x40" identifier + number_literal) ))))) )) (argument_list "(param_1,puVar11,uVar7)" ( identifier , identifier , identifier )))) ;) (expression_statement "puVar9 = (uint *)(uint)(iVar8 == 0);" (assignment_expression "puVar9 = (uint *)(uint)(iVar8 == 0)" identifier = (cast_expression "(uint *)(uint)(iVar8 == 0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(iVar8 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) ))))) ;) (expression_statement "puVar12 = auStack_5c;" (assignment_expression "puVar12 = auStack_5c" identifier = identifier) ;) }))) (goto_statement "goto LAB_000452d0;" goto statement_identifier ;) })) (expression_statement "puStack_54 = (uint *)((int)puVar11 + 1);" (assignment_expression "puStack_54 = (uint *)((int)puVar11 + 1)" identifier = (cast_expression "(uint *)((int)puVar11 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 1)" ( (binary_expression "(int)puVar11 + 1" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puStack_40 = (uint *)((int)puVar11 - (int)local_30);" (assignment_expression "puStack_40 = (uint *)((int)puVar11 - (int)local_30)" identifier = (cast_expression "(uint *)((int)puVar11 - (int)local_30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 - (int)local_30)" ( (binary_expression "(int)puVar11 - (int)local_30" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iStack_24 = 0;" (assignment_expression "iStack_24 = 0" identifier = number_literal) ;) (expression_statement "uVar7 = ((int)puStack_40 + 1 + (int)puStack_54) * 4;" (assignment_expression "uVar7 = ((int)puStack_40 + 1 + (int)puStack_54) * 4" identifier = (binary_expression "((int)puStack_40 + 1 + (int)puStack_54) * 4" (parenthesized_expression "((int)puStack_40 + 1 + (int)puStack_54)" ( (binary_expression "(int)puStack_40 + 1 + (int)puStack_54" (binary_expression "(int)puStack_40 + 1" (cast_expression "(int)puStack_40" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) + (cast_expression "(int)puStack_54" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal)) ;) (if_statement "if (uVar7 < 0x7f01) {\n    iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n    puVar13 = auStack_5c + iVar8;\n    local_38 = (uint *)((int)apuStack_50 + iVar8);\n  }\n  else {\n    apuStack_50[2] = puStack_54;\n    puStack_3c = puVar11;\n    local_38 = (uint *)__gmp_tmp_reentrant_alloc(&iStack_24,uVar7);\n    puVar13 = auStack_5c;\n    puStack_54 = apuStack_50[2];\n    puVar11 = puStack_3c;\n  }" if (parenthesized_expression "(uVar7 < 0x7f01)" ( (binary_expression "uVar7 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n    iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n    puVar13 = auStack_5c + iVar8;\n    local_38 = (uint *)((int)apuStack_50 + iVar8);\n  }" { (expression_statement "iVar8 = -(uVar7 + 0x1b & 0xfffffff0);" (assignment_expression "iVar8 = -(uVar7 + 0x1b & 0xfffffff0)" identifier = (unary_expression "-(uVar7 + 0x1b & 0xfffffff0)" - (parenthesized_expression "(uVar7 + 0x1b & 0xfffffff0)" ( (binary_expression "uVar7 + 0x1b & 0xfffffff0" (binary_expression "uVar7 + 0x1b" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar13 = auStack_5c + iVar8;" (assignment_expression "puVar13 = auStack_5c + iVar8" identifier = (binary_expression "auStack_5c + iVar8" identifier + identifier)) ;) (expression_statement "local_38 = (uint *)((int)apuStack_50 + iVar8);" (assignment_expression "local_38 = (uint *)((int)apuStack_50 + iVar8)" identifier = (cast_expression "(uint *)((int)apuStack_50 + iVar8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)apuStack_50 + iVar8)" ( (binary_expression "(int)apuStack_50 + iVar8" (cast_expression "(int)apuStack_50" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n    apuStack_50[2] = puStack_54;\n    puStack_3c = puVar11;\n    local_38 = (uint *)__gmp_tmp_reentrant_alloc(&iStack_24,uVar7);\n    puVar13 = auStack_5c;\n    puStack_54 = apuStack_50[2];\n    puVar11 = puStack_3c;\n  }" else (compound_statement "{\n    apuStack_50[2] = puStack_54;\n    puStack_3c = puVar11;\n    local_38 = (uint *)__gmp_tmp_reentrant_alloc(&iStack_24,uVar7);\n    puVar13 = auStack_5c;\n    puStack_54 = apuStack_50[2];\n    puVar11 = puStack_3c;\n  }" { (expression_statement "apuStack_50[2] = puStack_54;" (assignment_expression "apuStack_50[2] = puStack_54" (subscript_expression "apuStack_50[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puStack_3c = puVar11;" (assignment_expression "puStack_3c = puVar11" identifier = identifier) ;) (expression_statement "local_38 = (uint *)__gmp_tmp_reentrant_alloc(&iStack_24,uVar7);" (assignment_expression "local_38 = (uint *)__gmp_tmp_reentrant_alloc(&iStack_24,uVar7)" identifier = (cast_expression "(uint *)__gmp_tmp_reentrant_alloc(&iStack_24,uVar7)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__gmp_tmp_reentrant_alloc(&iStack_24,uVar7)" identifier (argument_list "(&iStack_24,uVar7)" ( (pointer_expression "&iStack_24" & identifier) , identifier ))))) ;) (expression_statement "puVar13 = auStack_5c;" (assignment_expression "puVar13 = auStack_5c" identifier = identifier) ;) (expression_statement "puStack_54 = apuStack_50[2];" (assignment_expression "puStack_54 = apuStack_50[2]" identifier = (subscript_expression "apuStack_50[2]" identifier [ number_literal ])) ;) (expression_statement "puVar11 = puStack_3c;" (assignment_expression "puVar11 = puStack_3c" identifier = identifier) ;) }))) (expression_statement "ppuVar6 = local_34;" (assignment_expression "ppuVar6 = local_34" identifier = identifier) ;) (expression_statement "apuStack_50[2] = (uint *)((int)puStack_54 * 4);" (assignment_expression "apuStack_50[2] = (uint *)((int)puStack_54 * 4)" (subscript_expression "apuStack_50[2]" identifier [ number_literal ]) = (cast_expression "(uint *)((int)puStack_54 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puStack_54 * 4)" ( (binary_expression "(int)puStack_54 * 4" (cast_expression "(int)puStack_54" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "apuStack_50[0] = local_38 + (int)puStack_54;" (assignment_expression "apuStack_50[0] = local_38 + (int)puStack_54" (subscript_expression "apuStack_50[0]" identifier [ number_literal ]) = (binary_expression "local_38 + (int)puStack_54" identifier + (cast_expression "(int)puStack_54" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (apuStack_50[3] == (uint *)0x0) {\n    *(uint **)(puVar13 + -8) = puVar11;\n    *(uint **)(puVar13 + -0xc) = param_1;\n    puVar1 = ppuVar6[-0x9b];\n    *(uint **)(puVar13 + -0x10) = local_38;\n    pcVar2 = *(code **)(puVar1 + 0x28);\n    apuStack_50[1] = (uint *)puVar1;\n    apuStack_50[3] = puVar11;\n    *(undefined4 *)(puVar13 + -0x14) = 0x45555;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    puStack_3c = param_3;\n  }\n  else {\n    uVar7 = (int)local_30 * 4;\n    apuStack_50[1] = puVar11;\n    if (uVar7 < 0x7f01) {\n      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n      puStack_3c = (uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0);\n      puVar13 = puVar13 + iVar8;\n    }\n    else {\n      *(uint *)(puVar13 + -0xc) = uVar7;\n      *(int **)(puVar13 + -0x10) = &iStack_24;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc();\n    }\n    puVar11 = apuStack_50[3];\n    puVar1 = local_34[-0x9b];\n    puStack_58 = puStack_54;\n    puStack_54 = apuStack_50[1];\n    *(uint **)(puVar13 + -4) = apuStack_50[3];\n    *(uint **)(puVar13 + -8) = local_30;\n    *(uint **)(puVar13 + -0xc) = param_3;\n    *(uint **)(puVar13 + -0x10) = puStack_3c;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    apuStack_50[1] = (uint *)puVar1;\n    *(undefined4 *)(puVar13 + -0x14) = 0x453c5;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = param_1;\n    *(uint **)(puVar13 + -0x20) = local_38;\n    apuStack_50[3] = puVar9;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    *(undefined4 *)(puVar13 + -0x24) = 0x453d7;\n    (*pcVar2)();\n    puVar9 = puStack_58;\n  }" if (parenthesized_expression "(apuStack_50[3] == (uint *)0x0)" ( (binary_expression "apuStack_50[3] == (uint *)0x0" (subscript_expression "apuStack_50[3]" identifier [ number_literal ]) == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(uint **)(puVar13 + -8) = puVar11;\n    *(uint **)(puVar13 + -0xc) = param_1;\n    puVar1 = ppuVar6[-0x9b];\n    *(uint **)(puVar13 + -0x10) = local_38;\n    pcVar2 = *(code **)(puVar1 + 0x28);\n    apuStack_50[1] = (uint *)puVar1;\n    apuStack_50[3] = puVar11;\n    *(undefined4 *)(puVar13 + -0x14) = 0x45555;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    puStack_3c = param_3;\n  }" { (expression_statement "*(uint **)(puVar13 + -8) = puVar11;" (assignment_expression "*(uint **)(puVar13 + -8) = puVar11" (pointer_expression "*(uint **)(puVar13 + -8)" * (cast_expression "(uint **)(puVar13 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -8)" ( (binary_expression "puVar13 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0xc) = param_1;" (assignment_expression "*(uint **)(puVar13 + -0xc) = param_1" (pointer_expression "*(uint **)(puVar13 + -0xc)" * (cast_expression "(uint **)(puVar13 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0xc)" ( (binary_expression "puVar13 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar1 = ppuVar6[-0x9b];" (assignment_expression "puVar1 = ppuVar6[-0x9b]" identifier = (subscript_expression "ppuVar6[-0x9b]" identifier [ number_literal ])) ;) (expression_statement "*(uint **)(puVar13 + -0x10) = local_38;" (assignment_expression "*(uint **)(puVar13 + -0x10) = local_38" (pointer_expression "*(uint **)(puVar13 + -0x10)" * (cast_expression "(uint **)(puVar13 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(puVar1 + 0x28);" (assignment_expression "pcVar2 = *(code **)(puVar1 + 0x28)" identifier = (pointer_expression "*(code **)(puVar1 + 0x28)" * (cast_expression "(code **)(puVar1 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + 0x28)" ( (binary_expression "puVar1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "apuStack_50[1] = (uint *)puVar1;" (assignment_expression "apuStack_50[1] = (uint *)puVar1" (subscript_expression "apuStack_50[1]" identifier [ number_literal ]) = (cast_expression "(uint *)puVar1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "apuStack_50[3] = puVar11;" (assignment_expression "apuStack_50[3] = puVar11" (subscript_expression "apuStack_50[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0x45555;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0x45555" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" * (cast_expression "(undefined4 *)(puVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar9 = puStack_54;" (assignment_expression "puVar9 = puStack_54" identifier = identifier) ;) (expression_statement "puStack_3c = param_3;" (assignment_expression "puStack_3c = param_3" identifier = identifier) ;) }) (else_clause "else {\n    uVar7 = (int)local_30 * 4;\n    apuStack_50[1] = puVar11;\n    if (uVar7 < 0x7f01) {\n      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n      puStack_3c = (uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0);\n      puVar13 = puVar13 + iVar8;\n    }\n    else {\n      *(uint *)(puVar13 + -0xc) = uVar7;\n      *(int **)(puVar13 + -0x10) = &iStack_24;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc();\n    }\n    puVar11 = apuStack_50[3];\n    puVar1 = local_34[-0x9b];\n    puStack_58 = puStack_54;\n    puStack_54 = apuStack_50[1];\n    *(uint **)(puVar13 + -4) = apuStack_50[3];\n    *(uint **)(puVar13 + -8) = local_30;\n    *(uint **)(puVar13 + -0xc) = param_3;\n    *(uint **)(puVar13 + -0x10) = puStack_3c;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    apuStack_50[1] = (uint *)puVar1;\n    *(undefined4 *)(puVar13 + -0x14) = 0x453c5;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = param_1;\n    *(uint **)(puVar13 + -0x20) = local_38;\n    apuStack_50[3] = puVar9;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    *(undefined4 *)(puVar13 + -0x24) = 0x453d7;\n    (*pcVar2)();\n    puVar9 = puStack_58;\n  }" else (compound_statement "{\n    uVar7 = (int)local_30 * 4;\n    apuStack_50[1] = puVar11;\n    if (uVar7 < 0x7f01) {\n      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n      puStack_3c = (uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0);\n      puVar13 = puVar13 + iVar8;\n    }\n    else {\n      *(uint *)(puVar13 + -0xc) = uVar7;\n      *(int **)(puVar13 + -0x10) = &iStack_24;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc();\n    }\n    puVar11 = apuStack_50[3];\n    puVar1 = local_34[-0x9b];\n    puStack_58 = puStack_54;\n    puStack_54 = apuStack_50[1];\n    *(uint **)(puVar13 + -4) = apuStack_50[3];\n    *(uint **)(puVar13 + -8) = local_30;\n    *(uint **)(puVar13 + -0xc) = param_3;\n    *(uint **)(puVar13 + -0x10) = puStack_3c;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    apuStack_50[1] = (uint *)puVar1;\n    *(undefined4 *)(puVar13 + -0x14) = 0x453c5;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = param_1;\n    *(uint **)(puVar13 + -0x20) = local_38;\n    apuStack_50[3] = puVar9;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    *(undefined4 *)(puVar13 + -0x24) = 0x453d7;\n    (*pcVar2)();\n    puVar9 = puStack_58;\n  }" { (expression_statement "uVar7 = (int)local_30 * 4;" (assignment_expression "uVar7 = (int)local_30 * 4" identifier = (binary_expression "(int)local_30 * 4" (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "apuStack_50[1] = puVar11;" (assignment_expression "apuStack_50[1] = puVar11" (subscript_expression "apuStack_50[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (uVar7 < 0x7f01) {\n      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n      puStack_3c = (uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0);\n      puVar13 = puVar13 + iVar8;\n    }\n    else {\n      *(uint *)(puVar13 + -0xc) = uVar7;\n      *(int **)(puVar13 + -0x10) = &iStack_24;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc();\n    }" if (parenthesized_expression "(uVar7 < 0x7f01)" ( (binary_expression "uVar7 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n      puStack_3c = (uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0);\n      puVar13 = puVar13 + iVar8;\n    }" { (expression_statement "iVar8 = -(uVar7 + 0x1b & 0xfffffff0);" (assignment_expression "iVar8 = -(uVar7 + 0x1b & 0xfffffff0)" identifier = (unary_expression "-(uVar7 + 0x1b & 0xfffffff0)" - (parenthesized_expression "(uVar7 + 0x1b & 0xfffffff0)" ( (binary_expression "uVar7 + 0x1b & 0xfffffff0" (binary_expression "uVar7 + 0x1b" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puStack_3c = (uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0);" (assignment_expression "puStack_3c = (uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0)" identifier = (cast_expression "(uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0)" ( (binary_expression "(uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0" (call_expression "(uint)(puVar13 + iVar8 + 0xf)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar13 + iVar8 + 0xf)" ( (binary_expression "puVar13 + iVar8 + 0xf" (binary_expression "puVar13 + iVar8" identifier + identifier) + number_literal) ))) & number_literal) )))) ;) (expression_statement "puVar13 = puVar13 + iVar8;" (assignment_expression "puVar13 = puVar13 + iVar8" identifier = (binary_expression "puVar13 + iVar8" identifier + identifier)) ;) }) (else_clause "else {\n      *(uint *)(puVar13 + -0xc) = uVar7;\n      *(int **)(puVar13 + -0x10) = &iStack_24;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc();\n    }" else (compound_statement "{\n      *(uint *)(puVar13 + -0xc) = uVar7;\n      *(int **)(puVar13 + -0x10) = &iStack_24;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc();\n    }" { (expression_statement "*(uint *)(puVar13 + -0xc) = uVar7;" (assignment_expression "*(uint *)(puVar13 + -0xc) = uVar7" (pointer_expression "*(uint *)(puVar13 + -0xc)" * (cast_expression "(uint *)(puVar13 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0xc)" ( (binary_expression "puVar13 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar13 + -0x10) = &iStack_24;" (assignment_expression "*(int **)(puVar13 + -0x10) = &iStack_24" (pointer_expression "*(int **)(puVar13 + -0x10)" * (cast_expression "(int **)(puVar13 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = (pointer_expression "&iStack_24" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0x45770;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0x45770" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" * (cast_expression "(undefined4 *)(puVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puStack_3c = (uint *)__gmp_tmp_reentrant_alloc();" (assignment_expression "puStack_3c = (uint *)__gmp_tmp_reentrant_alloc()" identifier = (cast_expression "(uint *)__gmp_tmp_reentrant_alloc()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__gmp_tmp_reentrant_alloc()" identifier (argument_list "()" ( ))))) ;) }))) (expression_statement "puVar11 = apuStack_50[3];" (assignment_expression "puVar11 = apuStack_50[3]" identifier = (subscript_expression "apuStack_50[3]" identifier [ number_literal ])) ;) (expression_statement "puVar1 = local_34[-0x9b];" (assignment_expression "puVar1 = local_34[-0x9b]" identifier = (subscript_expression "local_34[-0x9b]" identifier [ number_literal ])) ;) (expression_statement "puStack_58 = puStack_54;" (assignment_expression "puStack_58 = puStack_54" identifier = identifier) ;) (expression_statement "puStack_54 = apuStack_50[1];" (assignment_expression "puStack_54 = apuStack_50[1]" identifier = (subscript_expression "apuStack_50[1]" identifier [ number_literal ])) ;) (expression_statement "*(uint **)(puVar13 + -4) = apuStack_50[3];" (assignment_expression "*(uint **)(puVar13 + -4) = apuStack_50[3]" (pointer_expression "*(uint **)(puVar13 + -4)" * (cast_expression "(uint **)(puVar13 + -4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -4)" ( (binary_expression "puVar13 + -4" identifier + number_literal) )))) = (subscript_expression "apuStack_50[3]" identifier [ number_literal ])) ;) (expression_statement "*(uint **)(puVar13 + -8) = local_30;" (assignment_expression "*(uint **)(puVar13 + -8) = local_30" (pointer_expression "*(uint **)(puVar13 + -8)" * (cast_expression "(uint **)(puVar13 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -8)" ( (binary_expression "puVar13 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0xc) = param_3;" (assignment_expression "*(uint **)(puVar13 + -0xc) = param_3" (pointer_expression "*(uint **)(puVar13 + -0xc)" * (cast_expression "(uint **)(puVar13 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0xc)" ( (binary_expression "puVar13 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x10) = puStack_3c;" (assignment_expression "*(uint **)(puVar13 + -0x10) = puStack_3c" (pointer_expression "*(uint **)(puVar13 + -0x10)" * (cast_expression "(uint **)(puVar13 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(puVar1 + 0x80);" (assignment_expression "pcVar2 = *(code **)(puVar1 + 0x80)" identifier = (pointer_expression "*(code **)(puVar1 + 0x80)" * (cast_expression "(code **)(puVar1 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + 0x80)" ( (binary_expression "puVar1 + 0x80" identifier + number_literal) ))))) ;) (expression_statement "apuStack_50[1] = (uint *)puVar1;" (assignment_expression "apuStack_50[1] = (uint *)puVar1" (subscript_expression "apuStack_50[1]" identifier [ number_literal ]) = (cast_expression "(uint *)puVar1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0x453c5;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0x453c5" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" * (cast_expression "(undefined4 *)(puVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar9 = puStack_54;" (assignment_expression "puVar9 = puStack_54" identifier = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x14) = puVar11;" (assignment_expression "*(uint **)(puVar13 + -0x14) = puVar11" (pointer_expression "*(uint **)(puVar13 + -0x14)" * (cast_expression "(uint **)(puVar13 + -0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x18) = puVar9;" (assignment_expression "*(uint **)(puVar13 + -0x18) = puVar9" (pointer_expression "*(uint **)(puVar13 + -0x18)" * (cast_expression "(uint **)(puVar13 + -0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x1c) = param_1;" (assignment_expression "*(uint **)(puVar13 + -0x1c) = param_1" (pointer_expression "*(uint **)(puVar13 + -0x1c)" * (cast_expression "(uint **)(puVar13 + -0x1c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x1c)" ( (binary_expression "puVar13 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x20) = local_38;" (assignment_expression "*(uint **)(puVar13 + -0x20) = local_38" (pointer_expression "*(uint **)(puVar13 + -0x20)" * (cast_expression "(uint **)(puVar13 + -0x20)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x20)" ( (binary_expression "puVar13 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "apuStack_50[3] = puVar9;" (assignment_expression "apuStack_50[3] = puVar9" (subscript_expression "apuStack_50[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pcVar2 = *(code **)(puVar1 + 0x80);" (assignment_expression "pcVar2 = *(code **)(puVar1 + 0x80)" identifier = (pointer_expression "*(code **)(puVar1 + 0x80)" * (cast_expression "(code **)(puVar1 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + 0x80)" ( (binary_expression "puVar1 + 0x80" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x24) = 0x453d7;" (assignment_expression "*(undefined4 *)(puVar13 + -0x24) = 0x453d7" (pointer_expression "*(undefined4 *)(puVar13 + -0x24)" * (cast_expression "(undefined4 *)(puVar13 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x24)" ( (binary_expression "puVar13 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar9 = puStack_58;" (assignment_expression "puVar9 = puStack_58" identifier = identifier) ;) }))) (if_statement "if (*(uint *)((int)local_38 + (int)apuStack_50[2] + -8) < puStack_3c[(int)local_30 + -1]) {\n    if (local_30 == apuStack_50[3]) {\nLAB_000454ba:\n      if (iStack_24 != 0) {\n        *(int *)(puVar13 + -0x10) = iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free();\n      }\n      goto LAB_000452ce;\n    }\n  }\n  else {\n    *(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0;\n    puStack_40 = (uint *)((int)puVar9 - (int)local_30);\n    apuStack_50[3] = puVar9;\n  }" if (parenthesized_expression "(*(uint *)((int)local_38 + (int)apuStack_50[2] + -8) < puStack_3c[(int)local_30 + -1])" ( (binary_expression "*(uint *)((int)local_38 + (int)apuStack_50[2] + -8) < puStack_3c[(int)local_30 + -1]" (pointer_expression "*(uint *)((int)local_38 + (int)apuStack_50[2] + -8)" * (cast_expression "(uint *)((int)local_38 + (int)apuStack_50[2] + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + (int)apuStack_50[2] + -8)" ( (binary_expression "(int)local_38 + (int)apuStack_50[2] + -8" (binary_expression "(int)local_38 + (int)apuStack_50[2]" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)apuStack_50[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "apuStack_50[2]" identifier [ number_literal ]))) + number_literal) )))) < (subscript_expression "puStack_3c[(int)local_30 + -1]" identifier [ (binary_expression "(int)local_30 + -1" (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ])) )) (compound_statement "{\n    if (local_30 == apuStack_50[3]) {\nLAB_000454ba:\n      if (iStack_24 != 0) {\n        *(int *)(puVar13 + -0x10) = iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free();\n      }\n      goto LAB_000452ce;\n    }\n  }" { (if_statement "if (local_30 == apuStack_50[3]) {\nLAB_000454ba:\n      if (iStack_24 != 0) {\n        *(int *)(puVar13 + -0x10) = iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free();\n      }\n      goto LAB_000452ce;\n    }" if (parenthesized_expression "(local_30 == apuStack_50[3])" ( (binary_expression "local_30 == apuStack_50[3]" identifier == (subscript_expression "apuStack_50[3]" identifier [ number_literal ])) )) (compound_statement "{\nLAB_000454ba:\n      if (iStack_24 != 0) {\n        *(int *)(puVar13 + -0x10) = iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free();\n      }\n      goto LAB_000452ce;\n    }" { (labeled_statement "LAB_000454ba:\n      if (iStack_24 != 0) {\n        *(int *)(puVar13 + -0x10) = iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free();\n      }" statement_identifier : (if_statement "if (iStack_24 != 0) {\n        *(int *)(puVar13 + -0x10) = iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free();\n      }" if (parenthesized_expression "(iStack_24 != 0)" ( (binary_expression "iStack_24 != 0" identifier != number_literal) )) (compound_statement "{\n        *(int *)(puVar13 + -0x10) = iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free();\n      }" { (expression_statement "*(int *)(puVar13 + -0x10) = iStack_24;" (assignment_expression "*(int *)(puVar13 + -0x10) = iStack_24" (pointer_expression "*(int *)(puVar13 + -0x10)" * (cast_expression "(int *)(puVar13 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0x454d1;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0x454d1" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" * (cast_expression "(undefined4 *)(puVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmp_tmp_reentrant_free();" (call_expression "__gmp_tmp_reentrant_free()" identifier (argument_list "()" ( ))) ;) }))) (goto_statement "goto LAB_000452ce;" goto statement_identifier ;) })) }) (else_clause "else {\n    *(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0;\n    puStack_40 = (uint *)((int)puVar9 - (int)local_30);\n    apuStack_50[3] = puVar9;\n  }" else (compound_statement "{\n    *(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0;\n    puStack_40 = (uint *)((int)puVar9 - (int)local_30);\n    apuStack_50[3] = puVar9;\n  }" { (expression_statement "*(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0;" (assignment_expression "*(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0" (pointer_expression "*(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4)" * (cast_expression "(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + (int)apuStack_50[2] + -4)" ( (binary_expression "(int)local_38 + (int)apuStack_50[2] + -4" (binary_expression "(int)local_38 + (int)apuStack_50[2]" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)apuStack_50[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "apuStack_50[2]" identifier [ number_literal ]))) + number_literal) )))) = number_literal) ;) (expression_statement "puStack_40 = (uint *)((int)puVar9 - (int)local_30);" (assignment_expression "puStack_40 = (uint *)((int)puVar9 - (int)local_30)" identifier = (cast_expression "(uint *)((int)puVar9 - (int)local_30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 - (int)local_30)" ( (binary_expression "(int)puVar9 - (int)local_30" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "apuStack_50[3] = puVar9;" (assignment_expression "apuStack_50[3] = puVar9" (subscript_expression "apuStack_50[3]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "piVar3 = (int *)local_34[-0xaa];" (assignment_expression "piVar3 = (int *)local_34[-0xaa]" identifier = (cast_expression "(int *)local_34[-0xaa]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_34[-0xaa]" identifier [ number_literal ]))) ;) (expression_statement "puVar9 = apuStack_50[3];" (assignment_expression "puVar9 = apuStack_50[3]" identifier = (subscript_expression "apuStack_50[3]" identifier [ number_literal ])) ;) (if_statement "if (*piVar3 == 0) {\n    *(undefined4 *)(puVar13 + -4) = 0x45702;\n    __gmpn_cpuvec_init();\n    puVar9 = apuStack_50[3];\n  }" if (parenthesized_expression "(*piVar3 == 0)" ( (binary_expression "*piVar3 == 0" (pointer_expression "*piVar3" * identifier) == number_literal) )) (compound_statement "{\n    *(undefined4 *)(puVar13 + -4) = 0x45702;\n    __gmpn_cpuvec_init();\n    puVar9 = apuStack_50[3];\n  }" { (expression_statement "*(undefined4 *)(puVar13 + -4) = 0x45702;" (assignment_expression "*(undefined4 *)(puVar13 + -4) = 0x45702" (pointer_expression "*(undefined4 *)(puVar13 + -4)" * (cast_expression "(undefined4 *)(puVar13 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -4)" ( (binary_expression "puVar13 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_cpuvec_init();" (call_expression "__gmpn_cpuvec_init()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar9 = apuStack_50[3];" (assignment_expression "puVar9 = apuStack_50[3]" identifier = (subscript_expression "apuStack_50[3]" identifier [ number_literal ])) ;) })) (expression_statement "apuStack_50[3] = *(uint **)((int)apuStack_50[1] + 0x94);" (assignment_expression "apuStack_50[3] = *(uint **)((int)apuStack_50[1] + 0x94)" (subscript_expression "apuStack_50[3]" identifier [ number_literal ]) = (pointer_expression "*(uint **)((int)apuStack_50[1] + 0x94)" * (cast_expression "(uint **)((int)apuStack_50[1] + 0x94)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)apuStack_50[1] + 0x94)" ( (binary_expression "(int)apuStack_50[1] + 0x94" (cast_expression "(int)apuStack_50[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "apuStack_50[1]" identifier [ number_literal ])) + number_literal) ))))) ;) (expression_statement "iVar8 = (int)apuStack_50[3] * 2;" (assignment_expression "iVar8 = (int)apuStack_50[3] * 2" identifier = (binary_expression "(int)apuStack_50[3] * 2" (cast_expression "(int)apuStack_50[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "apuStack_50[3]" identifier [ number_literal ])) * number_literal)) ;) (if_statement "if (SBORROW4((int)local_30,iVar8) == (int)local_30 + (int)apuStack_50[3] * -2 < 0) {\n    if (*piVar3 == 0) {\n      apuStack_50[3] = puVar9;\n      *(undefined4 *)(puVar13 + -4) = 0x4572e;\n      __gmpn_cpuvec_init();\n      iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;\n      puVar9 = apuStack_50[3];\n    }\n    puVar11 = puStack_3c;\n    if ((int)puStack_40 < iVar8) goto LAB_00045444;\n    if ((int)local_30 < 2000) {\n      uVar7 = *puStack_3c;\n      uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n      iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n      *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n      *(uint **)(puVar13 + -0x10) = local_30;\n      *(uint **)(puVar13 + -0x14) = puVar11;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0x18) = puVar9;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x456e7;\n      __gmpn_dcpi1_bdiv_qr();\n      local_38 = puVar11 + (int)puStack_40;\n    }\n    else {\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puVar9;\n      puStack_40 = puVar9;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45613;\n      iVar8 = __gmpn_mu_bdiv_qr_itch();\n      uVar7 = iVar8 * 4;\n      if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;\n        puVar13 = puVar13 + iVar8;\n      }\n      else {\n        *(uint *)(puVar13 + -0xc) = uVar7;\n        *(int **)(puVar13 + -0x10) = &iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x45794;\n        uVar7 = __gmp_tmp_reentrant_alloc();\n      }\n      puVar9 = puStack_40;\n      *(uint *)(puVar13 + -8) = uVar7;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puStack_3c;\n      *(uint **)(puVar13 + -0x14) = puVar9;\n      *(uint **)(puVar13 + -0x18) = puVar11;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x45651;\n      __gmpn_mu_bdiv_qr();\n    }\n  }\n  else {\nLAB_00045444:\n    puVar11 = puStack_3c;\n    uVar7 = *puStack_3c;\n    uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n    iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n    *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n    *(uint **)(puVar13 + -0x10) = local_30;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    puVar11 = local_38;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = puVar11;\n    *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n    *(undefined4 *)(puVar13 + -0x24) = 0x4548b;\n    __gmpn_sbpi1_bdiv_qr();\n    local_38 = puVar11 + (int)puStack_40;\n  }" if (parenthesized_expression "(SBORROW4((int)local_30,iVar8) == (int)local_30 + (int)apuStack_50[3] * -2 < 0)" ( (binary_expression "SBORROW4((int)local_30,iVar8) == (int)local_30 + (int)apuStack_50[3] * -2 < 0" (call_expression "SBORROW4((int)local_30,iVar8)" identifier (argument_list "((int)local_30,iVar8)" ( (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) , identifier ))) == (binary_expression "(int)local_30 + (int)apuStack_50[3] * -2 < 0" (binary_expression "(int)local_30 + (int)apuStack_50[3] * -2" (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)apuStack_50[3] * -2" (cast_expression "(int)apuStack_50[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "apuStack_50[3]" identifier [ number_literal ])) * number_literal)) < number_literal)) )) (compound_statement "{\n    if (*piVar3 == 0) {\n      apuStack_50[3] = puVar9;\n      *(undefined4 *)(puVar13 + -4) = 0x4572e;\n      __gmpn_cpuvec_init();\n      iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;\n      puVar9 = apuStack_50[3];\n    }\n    puVar11 = puStack_3c;\n    if ((int)puStack_40 < iVar8) goto LAB_00045444;\n    if ((int)local_30 < 2000) {\n      uVar7 = *puStack_3c;\n      uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n      iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n      *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n      *(uint **)(puVar13 + -0x10) = local_30;\n      *(uint **)(puVar13 + -0x14) = puVar11;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0x18) = puVar9;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x456e7;\n      __gmpn_dcpi1_bdiv_qr();\n      local_38 = puVar11 + (int)puStack_40;\n    }\n    else {\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puVar9;\n      puStack_40 = puVar9;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45613;\n      iVar8 = __gmpn_mu_bdiv_qr_itch();\n      uVar7 = iVar8 * 4;\n      if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;\n        puVar13 = puVar13 + iVar8;\n      }\n      else {\n        *(uint *)(puVar13 + -0xc) = uVar7;\n        *(int **)(puVar13 + -0x10) = &iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x45794;\n        uVar7 = __gmp_tmp_reentrant_alloc();\n      }\n      puVar9 = puStack_40;\n      *(uint *)(puVar13 + -8) = uVar7;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puStack_3c;\n      *(uint **)(puVar13 + -0x14) = puVar9;\n      *(uint **)(puVar13 + -0x18) = puVar11;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x45651;\n      __gmpn_mu_bdiv_qr();\n    }\n  }" { (if_statement "if (*piVar3 == 0) {\n      apuStack_50[3] = puVar9;\n      *(undefined4 *)(puVar13 + -4) = 0x4572e;\n      __gmpn_cpuvec_init();\n      iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;\n      puVar9 = apuStack_50[3];\n    }" if (parenthesized_expression "(*piVar3 == 0)" ( (binary_expression "*piVar3 == 0" (pointer_expression "*piVar3" * identifier) == number_literal) )) (compound_statement "{\n      apuStack_50[3] = puVar9;\n      *(undefined4 *)(puVar13 + -4) = 0x4572e;\n      __gmpn_cpuvec_init();\n      iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;\n      puVar9 = apuStack_50[3];\n    }" { (expression_statement "apuStack_50[3] = puVar9;" (assignment_expression "apuStack_50[3] = puVar9" (subscript_expression "apuStack_50[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)(puVar13 + -4) = 0x4572e;" (assignment_expression "*(undefined4 *)(puVar13 + -4) = 0x4572e" (pointer_expression "*(undefined4 *)(puVar13 + -4)" * (cast_expression "(undefined4 *)(puVar13 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -4)" ( (binary_expression "puVar13 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_cpuvec_init();" (call_expression "__gmpn_cpuvec_init()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;" (assignment_expression "iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2" identifier = (binary_expression "*(int *)((int)apuStack_50[1] + 0x94) * 2" (pointer_expression "*(int *)((int)apuStack_50[1] + 0x94)" * (cast_expression "(int *)((int)apuStack_50[1] + 0x94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)apuStack_50[1] + 0x94)" ( (binary_expression "(int)apuStack_50[1] + 0x94" (cast_expression "(int)apuStack_50[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "apuStack_50[1]" identifier [ number_literal ])) + number_literal) )))) * number_literal)) ;) (expression_statement "puVar9 = apuStack_50[3];" (assignment_expression "puVar9 = apuStack_50[3]" identifier = (subscript_expression "apuStack_50[3]" identifier [ number_literal ])) ;) })) (expression_statement "puVar11 = puStack_3c;" (assignment_expression "puVar11 = puStack_3c" identifier = identifier) ;) (if_statement "if ((int)puStack_40 < iVar8) goto LAB_00045444;" if (parenthesized_expression "((int)puStack_40 < iVar8)" ( (binary_expression "(int)puStack_40 < iVar8" (cast_expression "(int)puStack_40" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (goto_statement "goto LAB_00045444;" goto statement_identifier ;)) (if_statement "if ((int)local_30 < 2000) {\n      uVar7 = *puStack_3c;\n      uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n      iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n      *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n      *(uint **)(puVar13 + -0x10) = local_30;\n      *(uint **)(puVar13 + -0x14) = puVar11;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0x18) = puVar9;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x456e7;\n      __gmpn_dcpi1_bdiv_qr();\n      local_38 = puVar11 + (int)puStack_40;\n    }\n    else {\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puVar9;\n      puStack_40 = puVar9;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45613;\n      iVar8 = __gmpn_mu_bdiv_qr_itch();\n      uVar7 = iVar8 * 4;\n      if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;\n        puVar13 = puVar13 + iVar8;\n      }\n      else {\n        *(uint *)(puVar13 + -0xc) = uVar7;\n        *(int **)(puVar13 + -0x10) = &iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x45794;\n        uVar7 = __gmp_tmp_reentrant_alloc();\n      }\n      puVar9 = puStack_40;\n      *(uint *)(puVar13 + -8) = uVar7;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puStack_3c;\n      *(uint **)(puVar13 + -0x14) = puVar9;\n      *(uint **)(puVar13 + -0x18) = puVar11;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x45651;\n      __gmpn_mu_bdiv_qr();\n    }" if (parenthesized_expression "((int)local_30 < 2000)" ( (binary_expression "(int)local_30 < 2000" (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar7 = *puStack_3c;\n      uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n      iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n      *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n      *(uint **)(puVar13 + -0x10) = local_30;\n      *(uint **)(puVar13 + -0x14) = puVar11;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0x18) = puVar9;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x456e7;\n      __gmpn_dcpi1_bdiv_qr();\n      local_38 = puVar11 + (int)puStack_40;\n    }" { (expression_statement "uVar7 = *puStack_3c;" (assignment_expression "uVar7 = *puStack_3c" identifier = (pointer_expression "*puStack_3c" * identifier)) ;) (expression_statement "uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];" (assignment_expression "uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f]" identifier = (cast_expression "(uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_34[-0x4e][uVar7 >> 1 & 0x7f]" (subscript_expression "local_34[-0x4e]" identifier [ number_literal ]) [ (binary_expression "uVar7 >> 1 & 0x7f" (binary_expression "uVar7 >> 1" identifier >> number_literal) & number_literal) ])))) ;) (expression_statement "iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;" (assignment_expression "iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7" identifier = (binary_expression "uVar10 * 2 - uVar10 * uVar10 * uVar7" (binary_expression "uVar10 * 2" identifier * number_literal) - (binary_expression "uVar10 * uVar10 * uVar7" (binary_expression "uVar10 * uVar10" identifier * identifier) * identifier))) ;) (expression_statement "*(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;" (assignment_expression "*(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2" (pointer_expression "*(uint *)(puVar13 + -0xc)" * (cast_expression "(uint *)(puVar13 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0xc)" ( (binary_expression "puVar13 + -0xc" identifier + number_literal) )))) = (binary_expression "iVar8 * iVar8 * uVar7 + iVar8 * -2" (binary_expression "iVar8 * iVar8 * uVar7" (binary_expression "iVar8 * iVar8" identifier * identifier) * identifier) + (binary_expression "iVar8 * -2" identifier * number_literal))) ;) (expression_statement "*(uint **)(puVar13 + -0x10) = local_30;" (assignment_expression "*(uint **)(puVar13 + -0x10) = local_30" (pointer_expression "*(uint **)(puVar13 + -0x10)" * (cast_expression "(uint **)(puVar13 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x14) = puVar11;" (assignment_expression "*(uint **)(puVar13 + -0x14) = puVar11" (pointer_expression "*(uint **)(puVar13 + -0x14)" * (cast_expression "(uint **)(puVar13 + -0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar11 = local_38;" (assignment_expression "puVar11 = local_38" identifier = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x18) = puVar9;" (assignment_expression "*(uint **)(puVar13 + -0x18) = puVar9" (pointer_expression "*(uint **)(puVar13 + -0x18)" * (cast_expression "(uint **)(puVar13 + -0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x1c) = puVar11;" (assignment_expression "*(uint **)(puVar13 + -0x1c) = puVar11" (pointer_expression "*(uint **)(puVar13 + -0x1c)" * (cast_expression "(uint **)(puVar13 + -0x1c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x1c)" ( (binary_expression "puVar13 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x20) = apuStack_50[0];" (assignment_expression "*(uint **)(puVar13 + -0x20) = apuStack_50[0]" (pointer_expression "*(uint **)(puVar13 + -0x20)" * (cast_expression "(uint **)(puVar13 + -0x20)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x20)" ( (binary_expression "puVar13 + -0x20" identifier + number_literal) )))) = (subscript_expression "apuStack_50[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x24) = 0x456e7;" (assignment_expression "*(undefined4 *)(puVar13 + -0x24) = 0x456e7" (pointer_expression "*(undefined4 *)(puVar13 + -0x24)" * (cast_expression "(undefined4 *)(puVar13 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x24)" ( (binary_expression "puVar13 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_dcpi1_bdiv_qr();" (call_expression "__gmpn_dcpi1_bdiv_qr()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_38 = puVar11 + (int)puStack_40;" (assignment_expression "local_38 = puVar11 + (int)puStack_40" identifier = (binary_expression "puVar11 + (int)puStack_40" identifier + (cast_expression "(int)puStack_40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puVar9;\n      puStack_40 = puVar9;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45613;\n      iVar8 = __gmpn_mu_bdiv_qr_itch();\n      uVar7 = iVar8 * 4;\n      if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;\n        puVar13 = puVar13 + iVar8;\n      }\n      else {\n        *(uint *)(puVar13 + -0xc) = uVar7;\n        *(int **)(puVar13 + -0x10) = &iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x45794;\n        uVar7 = __gmp_tmp_reentrant_alloc();\n      }\n      puVar9 = puStack_40;\n      *(uint *)(puVar13 + -8) = uVar7;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puStack_3c;\n      *(uint **)(puVar13 + -0x14) = puVar9;\n      *(uint **)(puVar13 + -0x18) = puVar11;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x45651;\n      __gmpn_mu_bdiv_qr();\n    }" else (compound_statement "{\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puVar9;\n      puStack_40 = puVar9;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45613;\n      iVar8 = __gmpn_mu_bdiv_qr_itch();\n      uVar7 = iVar8 * 4;\n      if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;\n        puVar13 = puVar13 + iVar8;\n      }\n      else {\n        *(uint *)(puVar13 + -0xc) = uVar7;\n        *(int **)(puVar13 + -0x10) = &iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x45794;\n        uVar7 = __gmp_tmp_reentrant_alloc();\n      }\n      puVar9 = puStack_40;\n      *(uint *)(puVar13 + -8) = uVar7;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puStack_3c;\n      *(uint **)(puVar13 + -0x14) = puVar9;\n      *(uint **)(puVar13 + -0x18) = puVar11;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x45651;\n      __gmpn_mu_bdiv_qr();\n    }" { (expression_statement "*(uint **)(puVar13 + -0xc) = local_30;" (assignment_expression "*(uint **)(puVar13 + -0xc) = local_30" (pointer_expression "*(uint **)(puVar13 + -0xc)" * (cast_expression "(uint **)(puVar13 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0xc)" ( (binary_expression "puVar13 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x10) = puVar9;" (assignment_expression "*(uint **)(puVar13 + -0x10) = puVar9" (pointer_expression "*(uint **)(puVar13 + -0x10)" * (cast_expression "(uint **)(puVar13 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "puStack_40 = puVar9;" (assignment_expression "puStack_40 = puVar9" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0x45613;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0x45613" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" * (cast_expression "(undefined4 *)(puVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar8 = __gmpn_mu_bdiv_qr_itch();" (assignment_expression "iVar8 = __gmpn_mu_bdiv_qr_itch()" identifier = (call_expression "__gmpn_mu_bdiv_qr_itch()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar7 = iVar8 * 4;" (assignment_expression "uVar7 = iVar8 * 4" identifier = (binary_expression "iVar8 * 4" identifier * number_literal)) ;) (if_statement "if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;\n        puVar13 = puVar13 + iVar8;\n      }\n      else {\n        *(uint *)(puVar13 + -0xc) = uVar7;\n        *(int **)(puVar13 + -0x10) = &iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x45794;\n        uVar7 = __gmp_tmp_reentrant_alloc();\n      }" if (parenthesized_expression "(uVar7 < 0x7f01)" ( (binary_expression "uVar7 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;\n        puVar13 = puVar13 + iVar8;\n      }" { (expression_statement "iVar8 = -(uVar7 + 0x1b & 0xfffffff0);" (assignment_expression "iVar8 = -(uVar7 + 0x1b & 0xfffffff0)" identifier = (unary_expression "-(uVar7 + 0x1b & 0xfffffff0)" - (parenthesized_expression "(uVar7 + 0x1b & 0xfffffff0)" ( (binary_expression "uVar7 + 0x1b & 0xfffffff0" (binary_expression "uVar7 + 0x1b" identifier + number_literal) & number_literal) )))) ;) (expression_statement "uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;" (assignment_expression "uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0" identifier = (binary_expression "(uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0" (call_expression "(uint)(puVar13 + iVar8 + 0xf)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar13 + iVar8 + 0xf)" ( (binary_expression "puVar13 + iVar8 + 0xf" (binary_expression "puVar13 + iVar8" identifier + identifier) + number_literal) ))) & number_literal)) ;) (expression_statement "puVar13 = puVar13 + iVar8;" (assignment_expression "puVar13 = puVar13 + iVar8" identifier = (binary_expression "puVar13 + iVar8" identifier + identifier)) ;) }) (else_clause "else {\n        *(uint *)(puVar13 + -0xc) = uVar7;\n        *(int **)(puVar13 + -0x10) = &iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x45794;\n        uVar7 = __gmp_tmp_reentrant_alloc();\n      }" else (compound_statement "{\n        *(uint *)(puVar13 + -0xc) = uVar7;\n        *(int **)(puVar13 + -0x10) = &iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x45794;\n        uVar7 = __gmp_tmp_reentrant_alloc();\n      }" { (expression_statement "*(uint *)(puVar13 + -0xc) = uVar7;" (assignment_expression "*(uint *)(puVar13 + -0xc) = uVar7" (pointer_expression "*(uint *)(puVar13 + -0xc)" * (cast_expression "(uint *)(puVar13 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0xc)" ( (binary_expression "puVar13 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar13 + -0x10) = &iStack_24;" (assignment_expression "*(int **)(puVar13 + -0x10) = &iStack_24" (pointer_expression "*(int **)(puVar13 + -0x10)" * (cast_expression "(int **)(puVar13 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = (pointer_expression "&iStack_24" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0x45794;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0x45794" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" * (cast_expression "(undefined4 *)(puVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar7 = __gmp_tmp_reentrant_alloc();" (assignment_expression "uVar7 = __gmp_tmp_reentrant_alloc()" identifier = (call_expression "__gmp_tmp_reentrant_alloc()" identifier (argument_list "()" ( )))) ;) }))) (expression_statement "puVar9 = puStack_40;" (assignment_expression "puVar9 = puStack_40" identifier = identifier) ;) (expression_statement "*(uint *)(puVar13 + -8) = uVar7;" (assignment_expression "*(uint *)(puVar13 + -8) = uVar7" (pointer_expression "*(uint *)(puVar13 + -8)" * (cast_expression "(uint *)(puVar13 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -8)" ( (binary_expression "puVar13 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar11 = local_38;" (assignment_expression "puVar11 = local_38" identifier = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0xc) = local_30;" (assignment_expression "*(uint **)(puVar13 + -0xc) = local_30" (pointer_expression "*(uint **)(puVar13 + -0xc)" * (cast_expression "(uint **)(puVar13 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0xc)" ( (binary_expression "puVar13 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x10) = puStack_3c;" (assignment_expression "*(uint **)(puVar13 + -0x10) = puStack_3c" (pointer_expression "*(uint **)(puVar13 + -0x10)" * (cast_expression "(uint **)(puVar13 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x14) = puVar9;" (assignment_expression "*(uint **)(puVar13 + -0x14) = puVar9" (pointer_expression "*(uint **)(puVar13 + -0x14)" * (cast_expression "(uint **)(puVar13 + -0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x18) = puVar11;" (assignment_expression "*(uint **)(puVar13 + -0x18) = puVar11" (pointer_expression "*(uint **)(puVar13 + -0x18)" * (cast_expression "(uint **)(puVar13 + -0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x1c) = puVar11;" (assignment_expression "*(uint **)(puVar13 + -0x1c) = puVar11" (pointer_expression "*(uint **)(puVar13 + -0x1c)" * (cast_expression "(uint **)(puVar13 + -0x1c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x1c)" ( (binary_expression "puVar13 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x20) = apuStack_50[0];" (assignment_expression "*(uint **)(puVar13 + -0x20) = apuStack_50[0]" (pointer_expression "*(uint **)(puVar13 + -0x20)" * (cast_expression "(uint **)(puVar13 + -0x20)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x20)" ( (binary_expression "puVar13 + -0x20" identifier + number_literal) )))) = (subscript_expression "apuStack_50[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x24) = 0x45651;" (assignment_expression "*(undefined4 *)(puVar13 + -0x24) = 0x45651" (pointer_expression "*(undefined4 *)(puVar13 + -0x24)" * (cast_expression "(undefined4 *)(puVar13 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x24)" ( (binary_expression "puVar13 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_mu_bdiv_qr();" (call_expression "__gmpn_mu_bdiv_qr()" identifier (argument_list "()" ( ))) ;) }))) }) (else_clause "else {\nLAB_00045444:\n    puVar11 = puStack_3c;\n    uVar7 = *puStack_3c;\n    uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n    iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n    *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n    *(uint **)(puVar13 + -0x10) = local_30;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    puVar11 = local_38;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = puVar11;\n    *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n    *(undefined4 *)(puVar13 + -0x24) = 0x4548b;\n    __gmpn_sbpi1_bdiv_qr();\n    local_38 = puVar11 + (int)puStack_40;\n  }" else (compound_statement "{\nLAB_00045444:\n    puVar11 = puStack_3c;\n    uVar7 = *puStack_3c;\n    uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n    iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n    *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n    *(uint **)(puVar13 + -0x10) = local_30;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    puVar11 = local_38;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = puVar11;\n    *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n    *(undefined4 *)(puVar13 + -0x24) = 0x4548b;\n    __gmpn_sbpi1_bdiv_qr();\n    local_38 = puVar11 + (int)puStack_40;\n  }" { (labeled_statement "LAB_00045444:\n    puVar11 = puStack_3c;" statement_identifier : (expression_statement "puVar11 = puStack_3c;" (assignment_expression "puVar11 = puStack_3c" identifier = identifier) ;)) (expression_statement "uVar7 = *puStack_3c;" (assignment_expression "uVar7 = *puStack_3c" identifier = (pointer_expression "*puStack_3c" * identifier)) ;) (expression_statement "uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];" (assignment_expression "uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f]" identifier = (cast_expression "(uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_34[-0x4e][uVar7 >> 1 & 0x7f]" (subscript_expression "local_34[-0x4e]" identifier [ number_literal ]) [ (binary_expression "uVar7 >> 1 & 0x7f" (binary_expression "uVar7 >> 1" identifier >> number_literal) & number_literal) ])))) ;) (expression_statement "iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;" (assignment_expression "iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7" identifier = (binary_expression "uVar10 * 2 - uVar10 * uVar10 * uVar7" (binary_expression "uVar10 * 2" identifier * number_literal) - (binary_expression "uVar10 * uVar10 * uVar7" (binary_expression "uVar10 * uVar10" identifier * identifier) * identifier))) ;) (expression_statement "*(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;" (assignment_expression "*(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2" (pointer_expression "*(uint *)(puVar13 + -0xc)" * (cast_expression "(uint *)(puVar13 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0xc)" ( (binary_expression "puVar13 + -0xc" identifier + number_literal) )))) = (binary_expression "iVar8 * iVar8 * uVar7 + iVar8 * -2" (binary_expression "iVar8 * iVar8 * uVar7" (binary_expression "iVar8 * iVar8" identifier * identifier) * identifier) + (binary_expression "iVar8 * -2" identifier * number_literal))) ;) (expression_statement "*(uint **)(puVar13 + -0x10) = local_30;" (assignment_expression "*(uint **)(puVar13 + -0x10) = local_30" (pointer_expression "*(uint **)(puVar13 + -0x10)" * (cast_expression "(uint **)(puVar13 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x14) = puVar11;" (assignment_expression "*(uint **)(puVar13 + -0x14) = puVar11" (pointer_expression "*(uint **)(puVar13 + -0x14)" * (cast_expression "(uint **)(puVar13 + -0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar11 = local_38;" (assignment_expression "puVar11 = local_38" identifier = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x18) = puVar9;" (assignment_expression "*(uint **)(puVar13 + -0x18) = puVar9" (pointer_expression "*(uint **)(puVar13 + -0x18)" * (cast_expression "(uint **)(puVar13 + -0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x1c) = puVar11;" (assignment_expression "*(uint **)(puVar13 + -0x1c) = puVar11" (pointer_expression "*(uint **)(puVar13 + -0x1c)" * (cast_expression "(uint **)(puVar13 + -0x1c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x1c)" ( (binary_expression "puVar13 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x20) = apuStack_50[0];" (assignment_expression "*(uint **)(puVar13 + -0x20) = apuStack_50[0]" (pointer_expression "*(uint **)(puVar13 + -0x20)" * (cast_expression "(uint **)(puVar13 + -0x20)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x20)" ( (binary_expression "puVar13 + -0x20" identifier + number_literal) )))) = (subscript_expression "apuStack_50[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x24) = 0x4548b;" (assignment_expression "*(undefined4 *)(puVar13 + -0x24) = 0x4548b" (pointer_expression "*(undefined4 *)(puVar13 + -0x24)" * (cast_expression "(undefined4 *)(puVar13 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x24)" ( (binary_expression "puVar13 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_sbpi1_bdiv_qr();" (call_expression "__gmpn_sbpi1_bdiv_qr()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_38 = puVar11 + (int)puStack_40;" (assignment_expression "local_38 = puVar11 + (int)puStack_40" identifier = (binary_expression "puVar11 + (int)puStack_40" identifier + (cast_expression "(int)puStack_40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }))) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n    if (local_38[iVar8] != 0) goto LAB_000454ba;\n    iVar8 = iVar8 + 1;\n  } while (iVar8 < (int)local_30);" do (compound_statement "{\n    if (local_38[iVar8] != 0) goto LAB_000454ba;\n    iVar8 = iVar8 + 1;\n  }" { (if_statement "if (local_38[iVar8] != 0) goto LAB_000454ba;" if (parenthesized_expression "(local_38[iVar8] != 0)" ( (binary_expression "local_38[iVar8] != 0" (subscript_expression "local_38[iVar8]" identifier [ identifier ]) != number_literal) )) (goto_statement "goto LAB_000454ba;" goto statement_identifier ;)) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar8 < (int)local_30)" ( (binary_expression "iVar8 < (int)local_30" identifier < (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (expression_statement "puVar9 = (uint *)0x1;" (assignment_expression "puVar9 = (uint *)0x1" identifier = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar12 = puVar13;" (assignment_expression "puVar12 = puVar13" identifier = identifier) ;) (if_statement "if (iStack_24 != 0) {\n    local_30 = (uint *)0x1;\n    *(int *)(puVar13 + -0x10) = iStack_24;\n    *(undefined4 *)(puVar13 + -0x14) = 0x45585;\n    __gmp_tmp_reentrant_free();\n    puVar9 = local_30;\n  }" if (parenthesized_expression "(iStack_24 != 0)" ( (binary_expression "iStack_24 != 0" identifier != number_literal) )) (compound_statement "{\n    local_30 = (uint *)0x1;\n    *(int *)(puVar13 + -0x10) = iStack_24;\n    *(undefined4 *)(puVar13 + -0x14) = 0x45585;\n    __gmp_tmp_reentrant_free();\n    puVar9 = local_30;\n  }" { (expression_statement "local_30 = (uint *)0x1;" (assignment_expression "local_30 = (uint *)0x1" identifier = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(int *)(puVar13 + -0x10) = iStack_24;" (assignment_expression "*(int *)(puVar13 + -0x10) = iStack_24" (pointer_expression "*(int *)(puVar13 + -0x10)" * (cast_expression "(int *)(puVar13 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0x45585;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0x45585" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" * (cast_expression "(undefined4 *)(puVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmp_tmp_reentrant_free();" (call_expression "__gmp_tmp_reentrant_free()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar9 = local_30;" (assignment_expression "puVar9 = local_30" identifier = identifier) ;) })) (labeled_statement "LAB_000452d0:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)(puVar12 + -4) = 0x457b7;\n    FUN_00079d30();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)(puVar12 + -4) = 0x457b7;\n    FUN_00079d30();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)(puVar12 + -4) = 0x457b7;\n    FUN_00079d30();\n  }" { comment (expression_statement "*(undefined4 *)(puVar12 + -4) = 0x457b7;" (assignment_expression "*(undefined4 *)(puVar12 + -4) = 0x457b7" (pointer_expression "*(undefined4 *)(puVar12 + -4)" * (cast_expression "(undefined4 *)(puVar12 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -4)" ( (binary_expression "puVar12 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00079d30();" (call_expression "FUN_00079d30()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return puVar9;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nint __gmpn_divisible_p(mp_srcptr ap,mp_size_t an,mp_srcptr dp,mp_size_t dn)\n\n{\n  undefined *puVar1;\n  code *pcVar2;\n  int *piVar3;\n  byte bVar4;\n  uint *puVar5;\n  undefined **ppuVar6;\n  uint uVar7;\n  int iVar8;\n  uint *puVar9;\n  mp_size_t mVar10;\n  void *pvVar11;\n  uint uVar12;\n  uint *puVar13;\n  undefined1 *puVar14;\n  undefined1 *puVar15;\n  int in_GS_OFFSET;\n  undefined1 auStack_5c [4];\n  uint *puStack_58;\n  uint *puStack_54;\n  uint *apuStack_50 [4];\n  uint *puStack_40;\n  uint *puStack_3c;\n  uint *local_38;\n  undefined **local_34;\n  uint *local_30;\n  tmp_reentrant_t *__tmp_marker;\n  int local_20;\n  \n  puVar15 = auStack_5c;\n  puVar14 = auStack_5c;\n  local_34 = &_GLOBAL_OFFSET_TABLE_;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (an < dn) {\n    puVar9 = (uint *)(uint)(an == 0);\n    goto LAB_000452d0;\n  }\n  puVar9 = (uint *)*dp;\n  uVar7 = *ap;\n  puVar13 = (uint *)an;\n  if (puVar9 == (uint *)0x0) {\n    do {\n      if (uVar7 != 0) goto LAB_000452ce;\n      puVar13 = (uint *)((int)puVar13 + -1);\n      dp = dp + 1;\n      ap = ap + 1;\n      uVar7 = *ap;\n      local_30 = (uint *)((int)puVar13 + (dn - an));\n      puVar9 = (uint *)*dp;\n    } while (puVar9 == (uint *)0x0);\n  }\n  else {\n    local_30 = (uint *)dn;\n  }\n  uVar12 = (-(int)puVar9 & (uint)puVar9) - 1;\n  puVar15 = auStack_5c;\n  if ((uVar7 & uVar12) != 0) {\nLAB_000452ce:\n    puVar9 = (uint *)0x0;\n    puVar14 = puVar15;\n    goto LAB_000452d0;\n  }\n  if (local_30 == (uint *)0x1) {\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_38 = puVar13;\n      local_30 = puVar9;\n      __gmpn_cpuvec_init();\n      puVar9 = local_30;\n      puVar13 = local_38;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar13 < *(int *)(puVar1 + 0xa4)) {\n      bVar4 = 0;\n      for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;\n          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {\n        bVar4 = bVar4 + 1;\n      }\n      iVar8 = (**(code **)(puVar1 + 0x60))(ap,puVar13,(uint)puVar9 >> (bVar4 & 0x1f),0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar14 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(ap,puVar13,puVar9);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar14 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }\n  apuStack_50[3] = (uint *)0x0;\n  for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000))\n  {\n    apuStack_50[3] = (uint *)((int)apuStack_50[3] + 1);\n  }\n  if ((local_30 == (uint *)0x2) && (dp[1] <= uVar12)) {\n    bVar4 = 0;\n    for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)\n        ) {\n      bVar4 = bVar4 + 1;\n    }\n    uVar7 = dp[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f);\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_30 = puVar13;\n      __gmpn_cpuvec_init();\n      puVar13 = local_30;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar13 < *(int *)(puVar1 + 0xa4)) {\n      iVar8 = (**(code **)(puVar1 + 0x60))(ap,puVar13,uVar7,0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar14 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(ap,puVar13,uVar7);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar14 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }\n  puStack_54 = (uint *)((int)puVar13 + 1);\n  __tmp_marker = (tmp_reentrant_t *)0x0;\n  puStack_40 = (uint *)((int)puVar13 - (int)local_30);\n  uVar7 = (((int)puVar13 - (int)local_30) + 1 + (int)puStack_54) * 4;\n  if (uVar7 < 0x7f01) {\n    iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n    puVar15 = auStack_5c + iVar8;\n    local_38 = (uint *)((int)apuStack_50 + iVar8);\n  }\n  else {\n    apuStack_50[2] = puStack_54;\n    puStack_3c = puVar13;\n    local_38 = (uint *)__gmp_tmp_reentrant_alloc(&__tmp_marker,uVar7);\n    puVar15 = auStack_5c;\n    puStack_54 = apuStack_50[2];\n    puVar13 = puStack_3c;\n  }\n  ppuVar6 = local_34;\n  apuStack_50[2] = (uint *)((int)puStack_54 * 4);\n  apuStack_50[0] = local_38 + (int)puStack_54;\n  if (apuStack_50[3] == (uint *)0x0) {\n    *(uint **)(puVar15 + -8) = puVar13;\n    *(mp_srcptr *)(puVar15 + -0xc) = ap;\n    puVar1 = ppuVar6[-0x9b];\n    *(uint **)(puVar15 + -0x10) = local_38;\n    pcVar2 = *(code **)(puVar1 + 0x28);\n    apuStack_50[1] = (uint *)puVar1;\n    apuStack_50[3] = puVar13;\n    *(undefined4 *)(puVar15 + -0x14) = 0x45555;\n    (*pcVar2)();\n    puStack_3c = dp;\n    puVar9 = puStack_54;\n  }\n  else {\n    uVar7 = (int)local_30 * 4;\n    if (uVar7 < 0x7f01) {\n      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n      puStack_3c = (uint *)((uint)(puVar15 + iVar8 + 0xf) & 0xfffffff0);\n      apuStack_50[1] = puVar13;\n      puVar15 = puVar15 + iVar8;\n    }\n    else {\n      *(uint *)(puVar15 + -0xc) = uVar7;\n      *(tmp_reentrant_t ***)(puVar15 + -0x10) = &__tmp_marker;\n      apuStack_50[1] = puVar13;\n      *(undefined4 *)(puVar15 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc\n                                     (*(tmp_reentrant_t ***)(puVar15 + -0x10),\n                                      *(size_t *)(puVar15 + -0xc));\n    }\n    puVar13 = apuStack_50[3];\n    puVar1 = local_34[-0x9b];\n    puStack_58 = puStack_54;\n    puStack_54 = apuStack_50[1];\n    *(uint **)(puVar15 + -4) = apuStack_50[3];\n    *(uint **)(puVar15 + -8) = local_30;\n    *(mp_srcptr *)(puVar15 + -0xc) = dp;\n    *(uint **)(puVar15 + -0x10) = puStack_3c;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    apuStack_50[1] = (uint *)puVar1;\n    *(undefined4 *)(puVar15 + -0x14) = 0x453c5;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    *(uint **)(puVar15 + -0x14) = puVar13;\n    *(uint **)(puVar15 + -0x18) = puVar9;\n    *(mp_srcptr *)(puVar15 + -0x1c) = ap;\n    *(uint **)(puVar15 + -0x20) = local_38;\n    apuStack_50[3] = puVar9;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    *(undefined4 *)(puVar15 + -0x24) = 0x453d7;\n    (*pcVar2)();\n    puVar9 = puStack_58;\n  }\n  if (*(uint *)((int)local_38 + (int)apuStack_50[2] + -8) < puStack_3c[(int)local_30 + -1]) {\n    if (local_30 == apuStack_50[3]) {\nLAB_000454ba:\n      if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n        *(tmp_reentrant_t **)(puVar15 + -0x10) = __tmp_marker;\n        *(undefined4 *)(puVar15 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar15 + -0x10));\n      }\n      goto LAB_000452ce;\n    }\n  }\n  else {\n    *(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0;\n    puStack_40 = (uint *)((int)puVar9 - (int)local_30);\n    apuStack_50[3] = puVar9;\n  }\n  piVar3 = (int *)local_34[-0xaa];\n  puVar9 = apuStack_50[3];\n  if (*piVar3 == 0) {\n    *(undefined4 *)(puVar15 + -4) = 0x45702;\n    __gmpn_cpuvec_init();\n    puVar9 = apuStack_50[3];\n  }\n  apuStack_50[3] = *(uint **)((int)apuStack_50[1] + 0x94);\n  iVar8 = (int)apuStack_50[3] * 2;\n  if (SBORROW4((int)local_30,iVar8) == (int)local_30 + (int)apuStack_50[3] * -2 < 0) {\n    if (*piVar3 == 0) {\n      apuStack_50[3] = puVar9;\n      *(undefined4 *)(puVar15 + -4) = 0x4572e;\n      __gmpn_cpuvec_init();\n      iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;\n      puVar9 = apuStack_50[3];\n    }\n    puVar13 = puStack_3c;\n    if ((int)puStack_40 < iVar8) goto LAB_00045444;\n    if ((int)local_30 < 2000) {\n      uVar7 = *puStack_3c;\n      uVar12 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n      iVar8 = uVar12 * 2 - uVar12 * uVar12 * uVar7;\n      *(uint *)(puVar15 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n      *(uint **)(puVar15 + -0x10) = local_30;\n      *(uint **)(puVar15 + -0x14) = puVar13;\n      puVar13 = local_38;\n      *(uint **)(puVar15 + -0x18) = puVar9;\n      *(uint **)(puVar15 + -0x1c) = puVar13;\n      *(uint **)(puVar15 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar15 + -0x24) = 0x456e7;\n      __gmpn_dcpi1_bdiv_qr\n                (*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),\n                 *(mp_size_t *)(puVar15 + -0x18),*(mp_srcptr *)(puVar15 + -0x14),\n                 *(mp_size_t *)(puVar15 + -0x10),*(mp_limb_t *)(puVar15 + -0xc));\n      local_38 = puVar13 + (int)puStack_40;\n    }\n    else {\n      *(uint **)(puVar15 + -0xc) = local_30;\n      *(uint **)(puVar15 + -0x10) = puVar9;\n      puStack_40 = puVar9;\n      *(undefined4 *)(puVar15 + -0x14) = 0x45613;\n      mVar10 = __gmpn_mu_bdiv_qr_itch\n                         (*(mp_size_t *)(puVar15 + -0x10),*(mp_size_t *)(puVar15 + -0xc));\n      uVar7 = mVar10 * 4;\n      if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        pvVar11 = (void *)((uint)(puVar15 + iVar8 + 0xf) & 0xfffffff0);\n        puVar15 = puVar15 + iVar8;\n      }\n      else {\n        *(uint *)(puVar15 + -0xc) = uVar7;\n        *(tmp_reentrant_t ***)(puVar15 + -0x10) = &__tmp_marker;\n        *(undefined4 *)(puVar15 + -0x14) = 0x45794;\n        pvVar11 = __gmp_tmp_reentrant_alloc\n                            (*(tmp_reentrant_t ***)(puVar15 + -0x10),*(size_t *)(puVar15 + -0xc));\n      }\n      puVar9 = puStack_40;\n      *(void **)(puVar15 + -8) = pvVar11;\n      puVar13 = local_38;\n      *(uint **)(puVar15 + -0xc) = local_30;\n      *(uint **)(puVar15 + -0x10) = puStack_3c;\n      *(uint **)(puVar15 + -0x14) = puVar9;\n      *(uint **)(puVar15 + -0x18) = puVar13;\n      *(uint **)(puVar15 + -0x1c) = puVar13;\n      *(uint **)(puVar15 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar15 + -0x24) = 0x45651;\n      __gmpn_mu_bdiv_qr(*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),\n                        *(mp_srcptr *)(puVar15 + -0x18),*(mp_size_t *)(puVar15 + -0x14),\n                        *(mp_srcptr *)(puVar15 + -0x10),*(mp_size_t *)(puVar15 + -0xc),\n                        *(mp_ptr *)(puVar15 + -8));\n    }\n  }\n  else {\nLAB_00045444:\n    puVar13 = puStack_3c;\n    uVar7 = *puStack_3c;\n    uVar12 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n    iVar8 = uVar12 * 2 - uVar12 * uVar12 * uVar7;\n    *(uint *)(puVar15 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n    *(uint **)(puVar15 + -0x10) = local_30;\n    *(uint **)(puVar15 + -0x14) = puVar13;\n    puVar13 = local_38;\n    *(uint **)(puVar15 + -0x18) = puVar9;\n    *(uint **)(puVar15 + -0x1c) = puVar13;\n    *(uint **)(puVar15 + -0x20) = apuStack_50[0];\n    *(undefined4 *)(puVar15 + -0x24) = 0x4548b;\n    __gmpn_sbpi1_bdiv_qr\n              (*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),\n               *(mp_size_t *)(puVar15 + -0x18),*(mp_srcptr *)(puVar15 + -0x14),\n               *(mp_size_t *)(puVar15 + -0x10),*(mp_limb_t *)(puVar15 + -0xc));\n    local_38 = puVar13 + (int)puStack_40;\n  }\n  iVar8 = 0;\n  do {\n    if (local_38[iVar8] != 0) goto LAB_000454ba;\n    iVar8 = iVar8 + 1;\n  } while (iVar8 < (int)local_30);\n  puVar9 = (uint *)0x1;\n  puVar14 = puVar15;\n  if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n    local_30 = (uint *)0x1;\n    *(tmp_reentrant_t **)(puVar15 + -0x10) = __tmp_marker;\n    *(undefined4 *)(puVar15 + -0x14) = 0x45585;\n    __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar15 + -0x10));\n    puVar9 = local_30;\n  }\nLAB_000452d0:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)(puVar14 + -4) = 0x457b7;\n    __stack_chk_fail_local();\n  }\n  return (int)puVar9;\n}\n\n" comment (function_definition "int __gmpn_divisible_p(mp_srcptr ap,mp_size_t an,mp_srcptr dp,mp_size_t dn)\n\n{\n  undefined *puVar1;\n  code *pcVar2;\n  int *piVar3;\n  byte bVar4;\n  uint *puVar5;\n  undefined **ppuVar6;\n  uint uVar7;\n  int iVar8;\n  uint *puVar9;\n  mp_size_t mVar10;\n  void *pvVar11;\n  uint uVar12;\n  uint *puVar13;\n  undefined1 *puVar14;\n  undefined1 *puVar15;\n  int in_GS_OFFSET;\n  undefined1 auStack_5c [4];\n  uint *puStack_58;\n  uint *puStack_54;\n  uint *apuStack_50 [4];\n  uint *puStack_40;\n  uint *puStack_3c;\n  uint *local_38;\n  undefined **local_34;\n  uint *local_30;\n  tmp_reentrant_t *__tmp_marker;\n  int local_20;\n  \n  puVar15 = auStack_5c;\n  puVar14 = auStack_5c;\n  local_34 = &_GLOBAL_OFFSET_TABLE_;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (an < dn) {\n    puVar9 = (uint *)(uint)(an == 0);\n    goto LAB_000452d0;\n  }\n  puVar9 = (uint *)*dp;\n  uVar7 = *ap;\n  puVar13 = (uint *)an;\n  if (puVar9 == (uint *)0x0) {\n    do {\n      if (uVar7 != 0) goto LAB_000452ce;\n      puVar13 = (uint *)((int)puVar13 + -1);\n      dp = dp + 1;\n      ap = ap + 1;\n      uVar7 = *ap;\n      local_30 = (uint *)((int)puVar13 + (dn - an));\n      puVar9 = (uint *)*dp;\n    } while (puVar9 == (uint *)0x0);\n  }\n  else {\n    local_30 = (uint *)dn;\n  }\n  uVar12 = (-(int)puVar9 & (uint)puVar9) - 1;\n  puVar15 = auStack_5c;\n  if ((uVar7 & uVar12) != 0) {\nLAB_000452ce:\n    puVar9 = (uint *)0x0;\n    puVar14 = puVar15;\n    goto LAB_000452d0;\n  }\n  if (local_30 == (uint *)0x1) {\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_38 = puVar13;\n      local_30 = puVar9;\n      __gmpn_cpuvec_init();\n      puVar9 = local_30;\n      puVar13 = local_38;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar13 < *(int *)(puVar1 + 0xa4)) {\n      bVar4 = 0;\n      for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;\n          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {\n        bVar4 = bVar4 + 1;\n      }\n      iVar8 = (**(code **)(puVar1 + 0x60))(ap,puVar13,(uint)puVar9 >> (bVar4 & 0x1f),0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar14 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(ap,puVar13,puVar9);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar14 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }\n  apuStack_50[3] = (uint *)0x0;\n  for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000))\n  {\n    apuStack_50[3] = (uint *)((int)apuStack_50[3] + 1);\n  }\n  if ((local_30 == (uint *)0x2) && (dp[1] <= uVar12)) {\n    bVar4 = 0;\n    for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)\n        ) {\n      bVar4 = bVar4 + 1;\n    }\n    uVar7 = dp[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f);\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_30 = puVar13;\n      __gmpn_cpuvec_init();\n      puVar13 = local_30;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar13 < *(int *)(puVar1 + 0xa4)) {\n      iVar8 = (**(code **)(puVar1 + 0x60))(ap,puVar13,uVar7,0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar14 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(ap,puVar13,uVar7);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar14 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }\n  puStack_54 = (uint *)((int)puVar13 + 1);\n  __tmp_marker = (tmp_reentrant_t *)0x0;\n  puStack_40 = (uint *)((int)puVar13 - (int)local_30);\n  uVar7 = (((int)puVar13 - (int)local_30) + 1 + (int)puStack_54) * 4;\n  if (uVar7 < 0x7f01) {\n    iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n    puVar15 = auStack_5c + iVar8;\n    local_38 = (uint *)((int)apuStack_50 + iVar8);\n  }\n  else {\n    apuStack_50[2] = puStack_54;\n    puStack_3c = puVar13;\n    local_38 = (uint *)__gmp_tmp_reentrant_alloc(&__tmp_marker,uVar7);\n    puVar15 = auStack_5c;\n    puStack_54 = apuStack_50[2];\n    puVar13 = puStack_3c;\n  }\n  ppuVar6 = local_34;\n  apuStack_50[2] = (uint *)((int)puStack_54 * 4);\n  apuStack_50[0] = local_38 + (int)puStack_54;\n  if (apuStack_50[3] == (uint *)0x0) {\n    *(uint **)(puVar15 + -8) = puVar13;\n    *(mp_srcptr *)(puVar15 + -0xc) = ap;\n    puVar1 = ppuVar6[-0x9b];\n    *(uint **)(puVar15 + -0x10) = local_38;\n    pcVar2 = *(code **)(puVar1 + 0x28);\n    apuStack_50[1] = (uint *)puVar1;\n    apuStack_50[3] = puVar13;\n    *(undefined4 *)(puVar15 + -0x14) = 0x45555;\n    (*pcVar2)();\n    puStack_3c = dp;\n    puVar9 = puStack_54;\n  }\n  else {\n    uVar7 = (int)local_30 * 4;\n    if (uVar7 < 0x7f01) {\n      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n      puStack_3c = (uint *)((uint)(puVar15 + iVar8 + 0xf) & 0xfffffff0);\n      apuStack_50[1] = puVar13;\n      puVar15 = puVar15 + iVar8;\n    }\n    else {\n      *(uint *)(puVar15 + -0xc) = uVar7;\n      *(tmp_reentrant_t ***)(puVar15 + -0x10) = &__tmp_marker;\n      apuStack_50[1] = puVar13;\n      *(undefined4 *)(puVar15 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc\n                                     (*(tmp_reentrant_t ***)(puVar15 + -0x10),\n                                      *(size_t *)(puVar15 + -0xc));\n    }\n    puVar13 = apuStack_50[3];\n    puVar1 = local_34[-0x9b];\n    puStack_58 = puStack_54;\n    puStack_54 = apuStack_50[1];\n    *(uint **)(puVar15 + -4) = apuStack_50[3];\n    *(uint **)(puVar15 + -8) = local_30;\n    *(mp_srcptr *)(puVar15 + -0xc) = dp;\n    *(uint **)(puVar15 + -0x10) = puStack_3c;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    apuStack_50[1] = (uint *)puVar1;\n    *(undefined4 *)(puVar15 + -0x14) = 0x453c5;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    *(uint **)(puVar15 + -0x14) = puVar13;\n    *(uint **)(puVar15 + -0x18) = puVar9;\n    *(mp_srcptr *)(puVar15 + -0x1c) = ap;\n    *(uint **)(puVar15 + -0x20) = local_38;\n    apuStack_50[3] = puVar9;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    *(undefined4 *)(puVar15 + -0x24) = 0x453d7;\n    (*pcVar2)();\n    puVar9 = puStack_58;\n  }\n  if (*(uint *)((int)local_38 + (int)apuStack_50[2] + -8) < puStack_3c[(int)local_30 + -1]) {\n    if (local_30 == apuStack_50[3]) {\nLAB_000454ba:\n      if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n        *(tmp_reentrant_t **)(puVar15 + -0x10) = __tmp_marker;\n        *(undefined4 *)(puVar15 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar15 + -0x10));\n      }\n      goto LAB_000452ce;\n    }\n  }\n  else {\n    *(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0;\n    puStack_40 = (uint *)((int)puVar9 - (int)local_30);\n    apuStack_50[3] = puVar9;\n  }\n  piVar3 = (int *)local_34[-0xaa];\n  puVar9 = apuStack_50[3];\n  if (*piVar3 == 0) {\n    *(undefined4 *)(puVar15 + -4) = 0x45702;\n    __gmpn_cpuvec_init();\n    puVar9 = apuStack_50[3];\n  }\n  apuStack_50[3] = *(uint **)((int)apuStack_50[1] + 0x94);\n  iVar8 = (int)apuStack_50[3] * 2;\n  if (SBORROW4((int)local_30,iVar8) == (int)local_30 + (int)apuStack_50[3] * -2 < 0) {\n    if (*piVar3 == 0) {\n      apuStack_50[3] = puVar9;\n      *(undefined4 *)(puVar15 + -4) = 0x4572e;\n      __gmpn_cpuvec_init();\n      iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;\n      puVar9 = apuStack_50[3];\n    }\n    puVar13 = puStack_3c;\n    if ((int)puStack_40 < iVar8) goto LAB_00045444;\n    if ((int)local_30 < 2000) {\n      uVar7 = *puStack_3c;\n      uVar12 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n      iVar8 = uVar12 * 2 - uVar12 * uVar12 * uVar7;\n      *(uint *)(puVar15 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n      *(uint **)(puVar15 + -0x10) = local_30;\n      *(uint **)(puVar15 + -0x14) = puVar13;\n      puVar13 = local_38;\n      *(uint **)(puVar15 + -0x18) = puVar9;\n      *(uint **)(puVar15 + -0x1c) = puVar13;\n      *(uint **)(puVar15 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar15 + -0x24) = 0x456e7;\n      __gmpn_dcpi1_bdiv_qr\n                (*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),\n                 *(mp_size_t *)(puVar15 + -0x18),*(mp_srcptr *)(puVar15 + -0x14),\n                 *(mp_size_t *)(puVar15 + -0x10),*(mp_limb_t *)(puVar15 + -0xc));\n      local_38 = puVar13 + (int)puStack_40;\n    }\n    else {\n      *(uint **)(puVar15 + -0xc) = local_30;\n      *(uint **)(puVar15 + -0x10) = puVar9;\n      puStack_40 = puVar9;\n      *(undefined4 *)(puVar15 + -0x14) = 0x45613;\n      mVar10 = __gmpn_mu_bdiv_qr_itch\n                         (*(mp_size_t *)(puVar15 + -0x10),*(mp_size_t *)(puVar15 + -0xc));\n      uVar7 = mVar10 * 4;\n      if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        pvVar11 = (void *)((uint)(puVar15 + iVar8 + 0xf) & 0xfffffff0);\n        puVar15 = puVar15 + iVar8;\n      }\n      else {\n        *(uint *)(puVar15 + -0xc) = uVar7;\n        *(tmp_reentrant_t ***)(puVar15 + -0x10) = &__tmp_marker;\n        *(undefined4 *)(puVar15 + -0x14) = 0x45794;\n        pvVar11 = __gmp_tmp_reentrant_alloc\n                            (*(tmp_reentrant_t ***)(puVar15 + -0x10),*(size_t *)(puVar15 + -0xc));\n      }\n      puVar9 = puStack_40;\n      *(void **)(puVar15 + -8) = pvVar11;\n      puVar13 = local_38;\n      *(uint **)(puVar15 + -0xc) = local_30;\n      *(uint **)(puVar15 + -0x10) = puStack_3c;\n      *(uint **)(puVar15 + -0x14) = puVar9;\n      *(uint **)(puVar15 + -0x18) = puVar13;\n      *(uint **)(puVar15 + -0x1c) = puVar13;\n      *(uint **)(puVar15 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar15 + -0x24) = 0x45651;\n      __gmpn_mu_bdiv_qr(*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),\n                        *(mp_srcptr *)(puVar15 + -0x18),*(mp_size_t *)(puVar15 + -0x14),\n                        *(mp_srcptr *)(puVar15 + -0x10),*(mp_size_t *)(puVar15 + -0xc),\n                        *(mp_ptr *)(puVar15 + -8));\n    }\n  }\n  else {\nLAB_00045444:\n    puVar13 = puStack_3c;\n    uVar7 = *puStack_3c;\n    uVar12 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n    iVar8 = uVar12 * 2 - uVar12 * uVar12 * uVar7;\n    *(uint *)(puVar15 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n    *(uint **)(puVar15 + -0x10) = local_30;\n    *(uint **)(puVar15 + -0x14) = puVar13;\n    puVar13 = local_38;\n    *(uint **)(puVar15 + -0x18) = puVar9;\n    *(uint **)(puVar15 + -0x1c) = puVar13;\n    *(uint **)(puVar15 + -0x20) = apuStack_50[0];\n    *(undefined4 *)(puVar15 + -0x24) = 0x4548b;\n    __gmpn_sbpi1_bdiv_qr\n              (*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),\n               *(mp_size_t *)(puVar15 + -0x18),*(mp_srcptr *)(puVar15 + -0x14),\n               *(mp_size_t *)(puVar15 + -0x10),*(mp_limb_t *)(puVar15 + -0xc));\n    local_38 = puVar13 + (int)puStack_40;\n  }\n  iVar8 = 0;\n  do {\n    if (local_38[iVar8] != 0) goto LAB_000454ba;\n    iVar8 = iVar8 + 1;\n  } while (iVar8 < (int)local_30);\n  puVar9 = (uint *)0x1;\n  puVar14 = puVar15;\n  if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n    local_30 = (uint *)0x1;\n    *(tmp_reentrant_t **)(puVar15 + -0x10) = __tmp_marker;\n    *(undefined4 *)(puVar15 + -0x14) = 0x45585;\n    __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar15 + -0x10));\n    puVar9 = local_30;\n  }\nLAB_000452d0:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)(puVar14 + -4) = 0x457b7;\n    __stack_chk_fail_local();\n  }\n  return (int)puVar9;\n}" primitive_type (function_declarator "__gmpn_divisible_p(mp_srcptr ap,mp_size_t an,mp_srcptr dp,mp_size_t dn)" identifier (parameter_list "(mp_srcptr ap,mp_size_t an,mp_srcptr dp,mp_size_t dn)" ( (parameter_declaration "mp_srcptr ap" type_identifier identifier) , (parameter_declaration "mp_size_t an" type_identifier identifier) , (parameter_declaration "mp_srcptr dp" type_identifier identifier) , (parameter_declaration "mp_size_t dn" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  code *pcVar2;\n  int *piVar3;\n  byte bVar4;\n  uint *puVar5;\n  undefined **ppuVar6;\n  uint uVar7;\n  int iVar8;\n  uint *puVar9;\n  mp_size_t mVar10;\n  void *pvVar11;\n  uint uVar12;\n  uint *puVar13;\n  undefined1 *puVar14;\n  undefined1 *puVar15;\n  int in_GS_OFFSET;\n  undefined1 auStack_5c [4];\n  uint *puStack_58;\n  uint *puStack_54;\n  uint *apuStack_50 [4];\n  uint *puStack_40;\n  uint *puStack_3c;\n  uint *local_38;\n  undefined **local_34;\n  uint *local_30;\n  tmp_reentrant_t *__tmp_marker;\n  int local_20;\n  \n  puVar15 = auStack_5c;\n  puVar14 = auStack_5c;\n  local_34 = &_GLOBAL_OFFSET_TABLE_;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (an < dn) {\n    puVar9 = (uint *)(uint)(an == 0);\n    goto LAB_000452d0;\n  }\n  puVar9 = (uint *)*dp;\n  uVar7 = *ap;\n  puVar13 = (uint *)an;\n  if (puVar9 == (uint *)0x0) {\n    do {\n      if (uVar7 != 0) goto LAB_000452ce;\n      puVar13 = (uint *)((int)puVar13 + -1);\n      dp = dp + 1;\n      ap = ap + 1;\n      uVar7 = *ap;\n      local_30 = (uint *)((int)puVar13 + (dn - an));\n      puVar9 = (uint *)*dp;\n    } while (puVar9 == (uint *)0x0);\n  }\n  else {\n    local_30 = (uint *)dn;\n  }\n  uVar12 = (-(int)puVar9 & (uint)puVar9) - 1;\n  puVar15 = auStack_5c;\n  if ((uVar7 & uVar12) != 0) {\nLAB_000452ce:\n    puVar9 = (uint *)0x0;\n    puVar14 = puVar15;\n    goto LAB_000452d0;\n  }\n  if (local_30 == (uint *)0x1) {\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_38 = puVar13;\n      local_30 = puVar9;\n      __gmpn_cpuvec_init();\n      puVar9 = local_30;\n      puVar13 = local_38;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar13 < *(int *)(puVar1 + 0xa4)) {\n      bVar4 = 0;\n      for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;\n          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {\n        bVar4 = bVar4 + 1;\n      }\n      iVar8 = (**(code **)(puVar1 + 0x60))(ap,puVar13,(uint)puVar9 >> (bVar4 & 0x1f),0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar14 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(ap,puVar13,puVar9);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar14 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }\n  apuStack_50[3] = (uint *)0x0;\n  for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000))\n  {\n    apuStack_50[3] = (uint *)((int)apuStack_50[3] + 1);\n  }\n  if ((local_30 == (uint *)0x2) && (dp[1] <= uVar12)) {\n    bVar4 = 0;\n    for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)\n        ) {\n      bVar4 = bVar4 + 1;\n    }\n    uVar7 = dp[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f);\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_30 = puVar13;\n      __gmpn_cpuvec_init();\n      puVar13 = local_30;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar13 < *(int *)(puVar1 + 0xa4)) {\n      iVar8 = (**(code **)(puVar1 + 0x60))(ap,puVar13,uVar7,0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar14 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(ap,puVar13,uVar7);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar14 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }\n  puStack_54 = (uint *)((int)puVar13 + 1);\n  __tmp_marker = (tmp_reentrant_t *)0x0;\n  puStack_40 = (uint *)((int)puVar13 - (int)local_30);\n  uVar7 = (((int)puVar13 - (int)local_30) + 1 + (int)puStack_54) * 4;\n  if (uVar7 < 0x7f01) {\n    iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n    puVar15 = auStack_5c + iVar8;\n    local_38 = (uint *)((int)apuStack_50 + iVar8);\n  }\n  else {\n    apuStack_50[2] = puStack_54;\n    puStack_3c = puVar13;\n    local_38 = (uint *)__gmp_tmp_reentrant_alloc(&__tmp_marker,uVar7);\n    puVar15 = auStack_5c;\n    puStack_54 = apuStack_50[2];\n    puVar13 = puStack_3c;\n  }\n  ppuVar6 = local_34;\n  apuStack_50[2] = (uint *)((int)puStack_54 * 4);\n  apuStack_50[0] = local_38 + (int)puStack_54;\n  if (apuStack_50[3] == (uint *)0x0) {\n    *(uint **)(puVar15 + -8) = puVar13;\n    *(mp_srcptr *)(puVar15 + -0xc) = ap;\n    puVar1 = ppuVar6[-0x9b];\n    *(uint **)(puVar15 + -0x10) = local_38;\n    pcVar2 = *(code **)(puVar1 + 0x28);\n    apuStack_50[1] = (uint *)puVar1;\n    apuStack_50[3] = puVar13;\n    *(undefined4 *)(puVar15 + -0x14) = 0x45555;\n    (*pcVar2)();\n    puStack_3c = dp;\n    puVar9 = puStack_54;\n  }\n  else {\n    uVar7 = (int)local_30 * 4;\n    if (uVar7 < 0x7f01) {\n      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n      puStack_3c = (uint *)((uint)(puVar15 + iVar8 + 0xf) & 0xfffffff0);\n      apuStack_50[1] = puVar13;\n      puVar15 = puVar15 + iVar8;\n    }\n    else {\n      *(uint *)(puVar15 + -0xc) = uVar7;\n      *(tmp_reentrant_t ***)(puVar15 + -0x10) = &__tmp_marker;\n      apuStack_50[1] = puVar13;\n      *(undefined4 *)(puVar15 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc\n                                     (*(tmp_reentrant_t ***)(puVar15 + -0x10),\n                                      *(size_t *)(puVar15 + -0xc));\n    }\n    puVar13 = apuStack_50[3];\n    puVar1 = local_34[-0x9b];\n    puStack_58 = puStack_54;\n    puStack_54 = apuStack_50[1];\n    *(uint **)(puVar15 + -4) = apuStack_50[3];\n    *(uint **)(puVar15 + -8) = local_30;\n    *(mp_srcptr *)(puVar15 + -0xc) = dp;\n    *(uint **)(puVar15 + -0x10) = puStack_3c;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    apuStack_50[1] = (uint *)puVar1;\n    *(undefined4 *)(puVar15 + -0x14) = 0x453c5;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    *(uint **)(puVar15 + -0x14) = puVar13;\n    *(uint **)(puVar15 + -0x18) = puVar9;\n    *(mp_srcptr *)(puVar15 + -0x1c) = ap;\n    *(uint **)(puVar15 + -0x20) = local_38;\n    apuStack_50[3] = puVar9;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    *(undefined4 *)(puVar15 + -0x24) = 0x453d7;\n    (*pcVar2)();\n    puVar9 = puStack_58;\n  }\n  if (*(uint *)((int)local_38 + (int)apuStack_50[2] + -8) < puStack_3c[(int)local_30 + -1]) {\n    if (local_30 == apuStack_50[3]) {\nLAB_000454ba:\n      if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n        *(tmp_reentrant_t **)(puVar15 + -0x10) = __tmp_marker;\n        *(undefined4 *)(puVar15 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar15 + -0x10));\n      }\n      goto LAB_000452ce;\n    }\n  }\n  else {\n    *(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0;\n    puStack_40 = (uint *)((int)puVar9 - (int)local_30);\n    apuStack_50[3] = puVar9;\n  }\n  piVar3 = (int *)local_34[-0xaa];\n  puVar9 = apuStack_50[3];\n  if (*piVar3 == 0) {\n    *(undefined4 *)(puVar15 + -4) = 0x45702;\n    __gmpn_cpuvec_init();\n    puVar9 = apuStack_50[3];\n  }\n  apuStack_50[3] = *(uint **)((int)apuStack_50[1] + 0x94);\n  iVar8 = (int)apuStack_50[3] * 2;\n  if (SBORROW4((int)local_30,iVar8) == (int)local_30 + (int)apuStack_50[3] * -2 < 0) {\n    if (*piVar3 == 0) {\n      apuStack_50[3] = puVar9;\n      *(undefined4 *)(puVar15 + -4) = 0x4572e;\n      __gmpn_cpuvec_init();\n      iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;\n      puVar9 = apuStack_50[3];\n    }\n    puVar13 = puStack_3c;\n    if ((int)puStack_40 < iVar8) goto LAB_00045444;\n    if ((int)local_30 < 2000) {\n      uVar7 = *puStack_3c;\n      uVar12 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n      iVar8 = uVar12 * 2 - uVar12 * uVar12 * uVar7;\n      *(uint *)(puVar15 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n      *(uint **)(puVar15 + -0x10) = local_30;\n      *(uint **)(puVar15 + -0x14) = puVar13;\n      puVar13 = local_38;\n      *(uint **)(puVar15 + -0x18) = puVar9;\n      *(uint **)(puVar15 + -0x1c) = puVar13;\n      *(uint **)(puVar15 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar15 + -0x24) = 0x456e7;\n      __gmpn_dcpi1_bdiv_qr\n                (*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),\n                 *(mp_size_t *)(puVar15 + -0x18),*(mp_srcptr *)(puVar15 + -0x14),\n                 *(mp_size_t *)(puVar15 + -0x10),*(mp_limb_t *)(puVar15 + -0xc));\n      local_38 = puVar13 + (int)puStack_40;\n    }\n    else {\n      *(uint **)(puVar15 + -0xc) = local_30;\n      *(uint **)(puVar15 + -0x10) = puVar9;\n      puStack_40 = puVar9;\n      *(undefined4 *)(puVar15 + -0x14) = 0x45613;\n      mVar10 = __gmpn_mu_bdiv_qr_itch\n                         (*(mp_size_t *)(puVar15 + -0x10),*(mp_size_t *)(puVar15 + -0xc));\n      uVar7 = mVar10 * 4;\n      if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        pvVar11 = (void *)((uint)(puVar15 + iVar8 + 0xf) & 0xfffffff0);\n        puVar15 = puVar15 + iVar8;\n      }\n      else {\n        *(uint *)(puVar15 + -0xc) = uVar7;\n        *(tmp_reentrant_t ***)(puVar15 + -0x10) = &__tmp_marker;\n        *(undefined4 *)(puVar15 + -0x14) = 0x45794;\n        pvVar11 = __gmp_tmp_reentrant_alloc\n                            (*(tmp_reentrant_t ***)(puVar15 + -0x10),*(size_t *)(puVar15 + -0xc));\n      }\n      puVar9 = puStack_40;\n      *(void **)(puVar15 + -8) = pvVar11;\n      puVar13 = local_38;\n      *(uint **)(puVar15 + -0xc) = local_30;\n      *(uint **)(puVar15 + -0x10) = puStack_3c;\n      *(uint **)(puVar15 + -0x14) = puVar9;\n      *(uint **)(puVar15 + -0x18) = puVar13;\n      *(uint **)(puVar15 + -0x1c) = puVar13;\n      *(uint **)(puVar15 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar15 + -0x24) = 0x45651;\n      __gmpn_mu_bdiv_qr(*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),\n                        *(mp_srcptr *)(puVar15 + -0x18),*(mp_size_t *)(puVar15 + -0x14),\n                        *(mp_srcptr *)(puVar15 + -0x10),*(mp_size_t *)(puVar15 + -0xc),\n                        *(mp_ptr *)(puVar15 + -8));\n    }\n  }\n  else {\nLAB_00045444:\n    puVar13 = puStack_3c;\n    uVar7 = *puStack_3c;\n    uVar12 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n    iVar8 = uVar12 * 2 - uVar12 * uVar12 * uVar7;\n    *(uint *)(puVar15 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n    *(uint **)(puVar15 + -0x10) = local_30;\n    *(uint **)(puVar15 + -0x14) = puVar13;\n    puVar13 = local_38;\n    *(uint **)(puVar15 + -0x18) = puVar9;\n    *(uint **)(puVar15 + -0x1c) = puVar13;\n    *(uint **)(puVar15 + -0x20) = apuStack_50[0];\n    *(undefined4 *)(puVar15 + -0x24) = 0x4548b;\n    __gmpn_sbpi1_bdiv_qr\n              (*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),\n               *(mp_size_t *)(puVar15 + -0x18),*(mp_srcptr *)(puVar15 + -0x14),\n               *(mp_size_t *)(puVar15 + -0x10),*(mp_limb_t *)(puVar15 + -0xc));\n    local_38 = puVar13 + (int)puStack_40;\n  }\n  iVar8 = 0;\n  do {\n    if (local_38[iVar8] != 0) goto LAB_000454ba;\n    iVar8 = iVar8 + 1;\n  } while (iVar8 < (int)local_30);\n  puVar9 = (uint *)0x1;\n  puVar14 = puVar15;\n  if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n    local_30 = (uint *)0x1;\n    *(tmp_reentrant_t **)(puVar15 + -0x10) = __tmp_marker;\n    *(undefined4 *)(puVar15 + -0x14) = 0x45585;\n    __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar15 + -0x10));\n    puVar9 = local_30;\n  }\nLAB_000452d0:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)(puVar14 + -4) = 0x457b7;\n    __stack_chk_fail_local();\n  }\n  return (int)puVar9;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "code *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined **ppuVar6;" type_identifier (pointer_declarator "**ppuVar6" * (pointer_declarator "*ppuVar6" * identifier)) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "mp_size_t mVar10;" type_identifier identifier ;) (declaration "void *pvVar11;" primitive_type (pointer_declarator "*pvVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined1 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined1 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined1 auStack_5c [4];" type_identifier (array_declarator "auStack_5c [4]" identifier [ number_literal ]) ;) (declaration "uint *puStack_58;" type_identifier (pointer_declarator "*puStack_58" * identifier) ;) (declaration "uint *puStack_54;" type_identifier (pointer_declarator "*puStack_54" * identifier) ;) (declaration "uint *apuStack_50 [4];" type_identifier (pointer_declarator "*apuStack_50 [4]" * (array_declarator "apuStack_50 [4]" identifier [ number_literal ])) ;) (declaration "uint *puStack_40;" type_identifier (pointer_declarator "*puStack_40" * identifier) ;) (declaration "uint *puStack_3c;" type_identifier (pointer_declarator "*puStack_3c" * identifier) ;) (declaration "uint *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "undefined **local_34;" type_identifier (pointer_declarator "**local_34" * (pointer_declarator "*local_34" * identifier)) ;) (declaration "uint *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "tmp_reentrant_t *__tmp_marker;" type_identifier (pointer_declarator "*__tmp_marker" * identifier) ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "puVar15 = auStack_5c;" (assignment_expression "puVar15 = auStack_5c" identifier = identifier) ;) (expression_statement "puVar14 = auStack_5c;" (assignment_expression "puVar14 = auStack_5c" identifier = identifier) ;) (expression_statement "local_34 = &_GLOBAL_OFFSET_TABLE_;" (assignment_expression "local_34 = &_GLOBAL_OFFSET_TABLE_" identifier = (pointer_expression "&_GLOBAL_OFFSET_TABLE_" & identifier)) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (an < dn) {\n    puVar9 = (uint *)(uint)(an == 0);\n    goto LAB_000452d0;\n  }" if (parenthesized_expression "(an < dn)" ( (binary_expression "an < dn" identifier < identifier) )) (compound_statement "{\n    puVar9 = (uint *)(uint)(an == 0);\n    goto LAB_000452d0;\n  }" { (expression_statement "puVar9 = (uint *)(uint)(an == 0);" (assignment_expression "puVar9 = (uint *)(uint)(an == 0)" identifier = (cast_expression "(uint *)(uint)(an == 0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(an == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(an == 0)" ( (binary_expression "an == 0" identifier == number_literal) ))))) ;) (goto_statement "goto LAB_000452d0;" goto statement_identifier ;) })) (expression_statement "puVar9 = (uint *)*dp;" (assignment_expression "puVar9 = (uint *)*dp" identifier = (cast_expression "(uint *)*dp" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*dp" * identifier))) ;) (expression_statement "uVar7 = *ap;" (assignment_expression "uVar7 = *ap" identifier = (pointer_expression "*ap" * identifier)) ;) (expression_statement "puVar13 = (uint *)an;" (assignment_expression "puVar13 = (uint *)an" identifier = (cast_expression "(uint *)an" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (puVar9 == (uint *)0x0) {\n    do {\n      if (uVar7 != 0) goto LAB_000452ce;\n      puVar13 = (uint *)((int)puVar13 + -1);\n      dp = dp + 1;\n      ap = ap + 1;\n      uVar7 = *ap;\n      local_30 = (uint *)((int)puVar13 + (dn - an));\n      puVar9 = (uint *)*dp;\n    } while (puVar9 == (uint *)0x0);\n  }\n  else {\n    local_30 = (uint *)dn;\n  }" if (parenthesized_expression "(puVar9 == (uint *)0x0)" ( (binary_expression "puVar9 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      if (uVar7 != 0) goto LAB_000452ce;\n      puVar13 = (uint *)((int)puVar13 + -1);\n      dp = dp + 1;\n      ap = ap + 1;\n      uVar7 = *ap;\n      local_30 = (uint *)((int)puVar13 + (dn - an));\n      puVar9 = (uint *)*dp;\n    } while (puVar9 == (uint *)0x0);\n  }" { (do_statement "do {\n      if (uVar7 != 0) goto LAB_000452ce;\n      puVar13 = (uint *)((int)puVar13 + -1);\n      dp = dp + 1;\n      ap = ap + 1;\n      uVar7 = *ap;\n      local_30 = (uint *)((int)puVar13 + (dn - an));\n      puVar9 = (uint *)*dp;\n    } while (puVar9 == (uint *)0x0);" do (compound_statement "{\n      if (uVar7 != 0) goto LAB_000452ce;\n      puVar13 = (uint *)((int)puVar13 + -1);\n      dp = dp + 1;\n      ap = ap + 1;\n      uVar7 = *ap;\n      local_30 = (uint *)((int)puVar13 + (dn - an));\n      puVar9 = (uint *)*dp;\n    }" { (if_statement "if (uVar7 != 0) goto LAB_000452ce;" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000452ce;" goto statement_identifier ;)) (expression_statement "puVar13 = (uint *)((int)puVar13 + -1);" (assignment_expression "puVar13 = (uint *)((int)puVar13 + -1)" identifier = (cast_expression "(uint *)((int)puVar13 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar13 + -1)" ( (binary_expression "(int)puVar13 + -1" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "dp = dp + 1;" (assignment_expression "dp = dp + 1" identifier = (binary_expression "dp + 1" identifier + number_literal)) ;) (expression_statement "ap = ap + 1;" (assignment_expression "ap = ap + 1" identifier = (binary_expression "ap + 1" identifier + number_literal)) ;) (expression_statement "uVar7 = *ap;" (assignment_expression "uVar7 = *ap" identifier = (pointer_expression "*ap" * identifier)) ;) (expression_statement "local_30 = (uint *)((int)puVar13 + (dn - an));" (assignment_expression "local_30 = (uint *)((int)puVar13 + (dn - an))" identifier = (cast_expression "(uint *)((int)puVar13 + (dn - an))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar13 + (dn - an))" ( (binary_expression "(int)puVar13 + (dn - an)" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(dn - an)" ( (binary_expression "dn - an" identifier - identifier) ))) )))) ;) (expression_statement "puVar9 = (uint *)*dp;" (assignment_expression "puVar9 = (uint *)*dp" identifier = (cast_expression "(uint *)*dp" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*dp" * identifier))) ;) }) while (parenthesized_expression "(puVar9 == (uint *)0x0)" ( (binary_expression "puVar9 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }) (else_clause "else {\n    local_30 = (uint *)dn;\n  }" else (compound_statement "{\n    local_30 = (uint *)dn;\n  }" { (expression_statement "local_30 = (uint *)dn;" (assignment_expression "local_30 = (uint *)dn" identifier = (cast_expression "(uint *)dn" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }))) (expression_statement "uVar12 = (-(int)puVar9 & (uint)puVar9) - 1;" (assignment_expression "uVar12 = (-(int)puVar9 & (uint)puVar9) - 1" identifier = (binary_expression "(-(int)puVar9 & (uint)puVar9) - 1" (parenthesized_expression "(-(int)puVar9 & (uint)puVar9)" ( (binary_expression "-(int)puVar9 & (uint)puVar9" (unary_expression "-(int)puVar9" - (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier)) & (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier)) )) - number_literal)) ;) (expression_statement "puVar15 = auStack_5c;" (assignment_expression "puVar15 = auStack_5c" identifier = identifier) ;) (if_statement "if ((uVar7 & uVar12) != 0) {\nLAB_000452ce:\n    puVar9 = (uint *)0x0;\n    puVar14 = puVar15;\n    goto LAB_000452d0;\n  }" if (parenthesized_expression "((uVar7 & uVar12) != 0)" ( (binary_expression "(uVar7 & uVar12) != 0" (parenthesized_expression "(uVar7 & uVar12)" ( (binary_expression "uVar7 & uVar12" identifier & identifier) )) != number_literal) )) (compound_statement "{\nLAB_000452ce:\n    puVar9 = (uint *)0x0;\n    puVar14 = puVar15;\n    goto LAB_000452d0;\n  }" { (labeled_statement "LAB_000452ce:\n    puVar9 = (uint *)0x0;" statement_identifier : (expression_statement "puVar9 = (uint *)0x0;" (assignment_expression "puVar9 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "puVar14 = puVar15;" (assignment_expression "puVar14 = puVar15" identifier = identifier) ;) (goto_statement "goto LAB_000452d0;" goto statement_identifier ;) })) (if_statement "if (local_30 == (uint *)0x1) {\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_38 = puVar13;\n      local_30 = puVar9;\n      __gmpn_cpuvec_init();\n      puVar9 = local_30;\n      puVar13 = local_38;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar13 < *(int *)(puVar1 + 0xa4)) {\n      bVar4 = 0;\n      for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;\n          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {\n        bVar4 = bVar4 + 1;\n      }\n      iVar8 = (**(code **)(puVar1 + 0x60))(ap,puVar13,(uint)puVar9 >> (bVar4 & 0x1f),0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar14 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(ap,puVar13,puVar9);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar14 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }" if (parenthesized_expression "(local_30 == (uint *)0x1)" ( (binary_expression "local_30 == (uint *)0x1" identifier == (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_38 = puVar13;\n      local_30 = puVar9;\n      __gmpn_cpuvec_init();\n      puVar9 = local_30;\n      puVar13 = local_38;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar13 < *(int *)(puVar1 + 0xa4)) {\n      bVar4 = 0;\n      for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;\n          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {\n        bVar4 = bVar4 + 1;\n      }\n      iVar8 = (**(code **)(puVar1 + 0x60))(ap,puVar13,(uint)puVar9 >> (bVar4 & 0x1f),0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar14 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(ap,puVar13,puVar9);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar14 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }" { (if_statement "if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_38 = puVar13;\n      local_30 = puVar9;\n      __gmpn_cpuvec_init();\n      puVar9 = local_30;\n      puVar13 = local_38;\n    }" if (parenthesized_expression "(*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0)" ( (binary_expression "*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0" (pointer_expression "*(int *)PTR___gmpn_cpuvec_initialized_00098d58" * (cast_expression "(int *)PTR___gmpn_cpuvec_initialized_00098d58" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n      local_38 = puVar13;\n      local_30 = puVar9;\n      __gmpn_cpuvec_init();\n      puVar9 = local_30;\n      puVar13 = local_38;\n    }" { (expression_statement "local_38 = puVar13;" (assignment_expression "local_38 = puVar13" identifier = identifier) ;) (expression_statement "local_30 = puVar9;" (assignment_expression "local_30 = puVar9" identifier = identifier) ;) (expression_statement "__gmpn_cpuvec_init();" (call_expression "__gmpn_cpuvec_init()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar9 = local_30;" (assignment_expression "puVar9 = local_30" identifier = identifier) ;) (expression_statement "puVar13 = local_38;" (assignment_expression "puVar13 = local_38" identifier = identifier) ;) })) (expression_statement "puVar1 = local_34[-0x9b];" (assignment_expression "puVar1 = local_34[-0x9b]" identifier = (subscript_expression "local_34[-0x9b]" identifier [ number_literal ])) ;) (if_statement "if ((int)puVar13 < *(int *)(puVar1 + 0xa4)) {\n      bVar4 = 0;\n      for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;\n          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {\n        bVar4 = bVar4 + 1;\n      }\n      iVar8 = (**(code **)(puVar1 + 0x60))(ap,puVar13,(uint)puVar9 >> (bVar4 & 0x1f),0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar14 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(ap,puVar13,puVar9);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar14 = auStack_5c;\n    }" if (parenthesized_expression "((int)puVar13 < *(int *)(puVar1 + 0xa4))" ( (binary_expression "(int)puVar13 < *(int *)(puVar1 + 0xa4)" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(puVar1 + 0xa4)" * (cast_expression "(int *)(puVar1 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0xa4)" ( (binary_expression "puVar1 + 0xa4" identifier + number_literal) ))))) )) (compound_statement "{\n      bVar4 = 0;\n      for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;\n          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {\n        bVar4 = bVar4 + 1;\n      }\n      iVar8 = (**(code **)(puVar1 + 0x60))(ap,puVar13,(uint)puVar9 >> (bVar4 & 0x1f),0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar14 = auStack_5c;\n    }" { (expression_statement "bVar4 = 0;" (assignment_expression "bVar4 = 0" identifier = number_literal) ;) (for_statement "for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;\n          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {\n        bVar4 = bVar4 + 1;\n      }" for ( (assignment_expression "puVar5 = puVar9" identifier = identifier) ; (binary_expression "((uint)puVar5 & 1) == 0" (parenthesized_expression "((uint)puVar5 & 1)" ( (binary_expression "(uint)puVar5 & 1" (cast_expression "(uint)puVar5" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) ; (assignment_expression "puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)" identifier = (cast_expression "(uint *)((uint)puVar5 >> 1 | 0x80000000)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)puVar5 >> 1 | 0x80000000)" ( (binary_expression "(uint)puVar5 >> 1 | 0x80000000" (binary_expression "(uint)puVar5 >> 1" (cast_expression "(uint)puVar5" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) | number_literal) )))) ) (compound_statement "{\n        bVar4 = bVar4 + 1;\n      }" { (expression_statement "bVar4 = bVar4 + 1;" (assignment_expression "bVar4 = bVar4 + 1" identifier = (binary_expression "bVar4 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar8 = (**(code **)(puVar1 + 0x60))(ap,puVar13,(uint)puVar9 >> (bVar4 & 0x1f),0);" (assignment_expression "iVar8 = (**(code **)(puVar1 + 0x60))(ap,puVar13,(uint)puVar9 >> (bVar4 & 0x1f),0)" identifier = (call_expression "(**(code **)(puVar1 + 0x60))(ap,puVar13,(uint)puVar9 >> (bVar4 & 0x1f),0)" (parenthesized_expression "(**(code **)(puVar1 + 0x60))" ( (pointer_expression "**(code **)(puVar1 + 0x60)" * (pointer_expression "*(code **)(puVar1 + 0x60)" * (cast_expression "(code **)(puVar1 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + 0x60)" ( (binary_expression "puVar1 + 0x60" identifier + number_literal) ))))) )) (argument_list "(ap,puVar13,(uint)puVar9 >> (bVar4 & 0x1f),0)" ( identifier , identifier , (binary_expression "(uint)puVar9 >> (bVar4 & 0x1f)" (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier) >> (parenthesized_expression "(bVar4 & 0x1f)" ( (binary_expression "bVar4 & 0x1f" identifier & number_literal) ))) , number_literal )))) ;) (expression_statement "puVar9 = (uint *)(uint)(iVar8 == 0);" (assignment_expression "puVar9 = (uint *)(uint)(iVar8 == 0)" identifier = (cast_expression "(uint *)(uint)(iVar8 == 0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(iVar8 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) ))))) ;) (expression_statement "puVar14 = auStack_5c;" (assignment_expression "puVar14 = auStack_5c" identifier = identifier) ;) }) (else_clause "else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(ap,puVar13,puVar9);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar14 = auStack_5c;\n    }" else (compound_statement "{\n      iVar8 = (**(code **)(puVar1 + 0x40))(ap,puVar13,puVar9);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar14 = auStack_5c;\n    }" { (expression_statement "iVar8 = (**(code **)(puVar1 + 0x40))(ap,puVar13,puVar9);" (assignment_expression "iVar8 = (**(code **)(puVar1 + 0x40))(ap,puVar13,puVar9)" identifier = (call_expression "(**(code **)(puVar1 + 0x40))(ap,puVar13,puVar9)" (parenthesized_expression "(**(code **)(puVar1 + 0x40))" ( (pointer_expression "**(code **)(puVar1 + 0x40)" * (pointer_expression "*(code **)(puVar1 + 0x40)" * (cast_expression "(code **)(puVar1 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + 0x40)" ( (binary_expression "puVar1 + 0x40" identifier + number_literal) ))))) )) (argument_list "(ap,puVar13,puVar9)" ( identifier , identifier , identifier )))) ;) (expression_statement "puVar9 = (uint *)(uint)(iVar8 == 0);" (assignment_expression "puVar9 = (uint *)(uint)(iVar8 == 0)" identifier = (cast_expression "(uint *)(uint)(iVar8 == 0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(iVar8 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) ))))) ;) (expression_statement "puVar14 = auStack_5c;" (assignment_expression "puVar14 = auStack_5c" identifier = identifier) ;) }))) (goto_statement "goto LAB_000452d0;" goto statement_identifier ;) })) (expression_statement "apuStack_50[3] = (uint *)0x0;" (assignment_expression "apuStack_50[3] = (uint *)0x0" (subscript_expression "apuStack_50[3]" identifier [ number_literal ]) = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (for_statement "for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000))\n  {\n    apuStack_50[3] = (uint *)((int)apuStack_50[3] + 1);\n  }" for ( (assignment_expression "puVar5 = puVar9" identifier = identifier) ; (binary_expression "((uint)puVar5 & 1) == 0" (parenthesized_expression "((uint)puVar5 & 1)" ( (binary_expression "(uint)puVar5 & 1" (cast_expression "(uint)puVar5" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) ; (assignment_expression "puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)" identifier = (cast_expression "(uint *)((uint)puVar5 >> 1 | 0x80000000)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)puVar5 >> 1 | 0x80000000)" ( (binary_expression "(uint)puVar5 >> 1 | 0x80000000" (binary_expression "(uint)puVar5 >> 1" (cast_expression "(uint)puVar5" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) | number_literal) )))) ) (compound_statement "{\n    apuStack_50[3] = (uint *)((int)apuStack_50[3] + 1);\n  }" { (expression_statement "apuStack_50[3] = (uint *)((int)apuStack_50[3] + 1);" (assignment_expression "apuStack_50[3] = (uint *)((int)apuStack_50[3] + 1)" (subscript_expression "apuStack_50[3]" identifier [ number_literal ]) = (cast_expression "(uint *)((int)apuStack_50[3] + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)apuStack_50[3] + 1)" ( (binary_expression "(int)apuStack_50[3] + 1" (cast_expression "(int)apuStack_50[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "apuStack_50[3]" identifier [ number_literal ])) + number_literal) )))) ;) })) (if_statement "if ((local_30 == (uint *)0x2) && (dp[1] <= uVar12)) {\n    bVar4 = 0;\n    for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)\n        ) {\n      bVar4 = bVar4 + 1;\n    }\n    uVar7 = dp[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f);\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_30 = puVar13;\n      __gmpn_cpuvec_init();\n      puVar13 = local_30;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar13 < *(int *)(puVar1 + 0xa4)) {\n      iVar8 = (**(code **)(puVar1 + 0x60))(ap,puVar13,uVar7,0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar14 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(ap,puVar13,uVar7);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar14 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }" if (parenthesized_expression "((local_30 == (uint *)0x2) && (dp[1] <= uVar12))" ( (binary_expression "(local_30 == (uint *)0x2) && (dp[1] <= uVar12)" (parenthesized_expression "(local_30 == (uint *)0x2)" ( (binary_expression "local_30 == (uint *)0x2" identifier == (cast_expression "(uint *)0x2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(dp[1] <= uVar12)" ( (binary_expression "dp[1] <= uVar12" (subscript_expression "dp[1]" identifier [ number_literal ]) <= identifier) ))) )) (compound_statement "{\n    bVar4 = 0;\n    for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)\n        ) {\n      bVar4 = bVar4 + 1;\n    }\n    uVar7 = dp[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f);\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_30 = puVar13;\n      __gmpn_cpuvec_init();\n      puVar13 = local_30;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar13 < *(int *)(puVar1 + 0xa4)) {\n      iVar8 = (**(code **)(puVar1 + 0x60))(ap,puVar13,uVar7,0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar14 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(ap,puVar13,uVar7);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar14 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }" { (expression_statement "bVar4 = 0;" (assignment_expression "bVar4 = 0" identifier = number_literal) ;) (for_statement "for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)\n        ) {\n      bVar4 = bVar4 + 1;\n    }" for ( (assignment_expression "puVar5 = puVar9" identifier = identifier) ; (binary_expression "((uint)puVar5 & 1) == 0" (parenthesized_expression "((uint)puVar5 & 1)" ( (binary_expression "(uint)puVar5 & 1" (cast_expression "(uint)puVar5" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) ; (assignment_expression "puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)" identifier = (cast_expression "(uint *)((uint)puVar5 >> 1 | 0x80000000)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)puVar5 >> 1 | 0x80000000)" ( (binary_expression "(uint)puVar5 >> 1 | 0x80000000" (binary_expression "(uint)puVar5 >> 1" (cast_expression "(uint)puVar5" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) | number_literal) )))) ) (compound_statement "{\n      bVar4 = bVar4 + 1;\n    }" { (expression_statement "bVar4 = bVar4 + 1;" (assignment_expression "bVar4 = bVar4 + 1" identifier = (binary_expression "bVar4 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar7 = dp[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f);" (assignment_expression "uVar7 = dp[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f)" identifier = (binary_expression "dp[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f)" (binary_expression "dp[1] << (0x20 - bVar4 & 0x1f)" (subscript_expression "dp[1]" identifier [ number_literal ]) << (parenthesized_expression "(0x20 - bVar4 & 0x1f)" ( (binary_expression "0x20 - bVar4 & 0x1f" (binary_expression "0x20 - bVar4" number_literal - identifier) & number_literal) ))) | (binary_expression "(uint)puVar9 >> (bVar4 & 0x1f)" (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier) >> (parenthesized_expression "(bVar4 & 0x1f)" ( (binary_expression "bVar4 & 0x1f" identifier & number_literal) ))))) ;) (if_statement "if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_30 = puVar13;\n      __gmpn_cpuvec_init();\n      puVar13 = local_30;\n    }" if (parenthesized_expression "(*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0)" ( (binary_expression "*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0" (pointer_expression "*(int *)PTR___gmpn_cpuvec_initialized_00098d58" * (cast_expression "(int *)PTR___gmpn_cpuvec_initialized_00098d58" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n      local_30 = puVar13;\n      __gmpn_cpuvec_init();\n      puVar13 = local_30;\n    }" { (expression_statement "local_30 = puVar13;" (assignment_expression "local_30 = puVar13" identifier = identifier) ;) (expression_statement "__gmpn_cpuvec_init();" (call_expression "__gmpn_cpuvec_init()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar13 = local_30;" (assignment_expression "puVar13 = local_30" identifier = identifier) ;) })) (expression_statement "puVar1 = local_34[-0x9b];" (assignment_expression "puVar1 = local_34[-0x9b]" identifier = (subscript_expression "local_34[-0x9b]" identifier [ number_literal ])) ;) (if_statement "if ((int)puVar13 < *(int *)(puVar1 + 0xa4)) {\n      iVar8 = (**(code **)(puVar1 + 0x60))(ap,puVar13,uVar7,0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar14 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(ap,puVar13,uVar7);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar14 = auStack_5c;\n    }" if (parenthesized_expression "((int)puVar13 < *(int *)(puVar1 + 0xa4))" ( (binary_expression "(int)puVar13 < *(int *)(puVar1 + 0xa4)" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(puVar1 + 0xa4)" * (cast_expression "(int *)(puVar1 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0xa4)" ( (binary_expression "puVar1 + 0xa4" identifier + number_literal) ))))) )) (compound_statement "{\n      iVar8 = (**(code **)(puVar1 + 0x60))(ap,puVar13,uVar7,0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar14 = auStack_5c;\n    }" { (expression_statement "iVar8 = (**(code **)(puVar1 + 0x60))(ap,puVar13,uVar7,0);" (assignment_expression "iVar8 = (**(code **)(puVar1 + 0x60))(ap,puVar13,uVar7,0)" identifier = (call_expression "(**(code **)(puVar1 + 0x60))(ap,puVar13,uVar7,0)" (parenthesized_expression "(**(code **)(puVar1 + 0x60))" ( (pointer_expression "**(code **)(puVar1 + 0x60)" * (pointer_expression "*(code **)(puVar1 + 0x60)" * (cast_expression "(code **)(puVar1 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + 0x60)" ( (binary_expression "puVar1 + 0x60" identifier + number_literal) ))))) )) (argument_list "(ap,puVar13,uVar7,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "puVar9 = (uint *)(uint)(iVar8 == 0);" (assignment_expression "puVar9 = (uint *)(uint)(iVar8 == 0)" identifier = (cast_expression "(uint *)(uint)(iVar8 == 0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(iVar8 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) ))))) ;) (expression_statement "puVar14 = auStack_5c;" (assignment_expression "puVar14 = auStack_5c" identifier = identifier) ;) }) (else_clause "else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(ap,puVar13,uVar7);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar14 = auStack_5c;\n    }" else (compound_statement "{\n      iVar8 = (**(code **)(puVar1 + 0x40))(ap,puVar13,uVar7);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar14 = auStack_5c;\n    }" { (expression_statement "iVar8 = (**(code **)(puVar1 + 0x40))(ap,puVar13,uVar7);" (assignment_expression "iVar8 = (**(code **)(puVar1 + 0x40))(ap,puVar13,uVar7)" identifier = (call_expression "(**(code **)(puVar1 + 0x40))(ap,puVar13,uVar7)" (parenthesized_expression "(**(code **)(puVar1 + 0x40))" ( (pointer_expression "**(code **)(puVar1 + 0x40)" * (pointer_expression "*(code **)(puVar1 + 0x40)" * (cast_expression "(code **)(puVar1 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + 0x40)" ( (binary_expression "puVar1 + 0x40" identifier + number_literal) ))))) )) (argument_list "(ap,puVar13,uVar7)" ( identifier , identifier , identifier )))) ;) (expression_statement "puVar9 = (uint *)(uint)(iVar8 == 0);" (assignment_expression "puVar9 = (uint *)(uint)(iVar8 == 0)" identifier = (cast_expression "(uint *)(uint)(iVar8 == 0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(iVar8 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) ))))) ;) (expression_statement "puVar14 = auStack_5c;" (assignment_expression "puVar14 = auStack_5c" identifier = identifier) ;) }))) (goto_statement "goto LAB_000452d0;" goto statement_identifier ;) })) (expression_statement "puStack_54 = (uint *)((int)puVar13 + 1);" (assignment_expression "puStack_54 = (uint *)((int)puVar13 + 1)" identifier = (cast_expression "(uint *)((int)puVar13 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar13 + 1)" ( (binary_expression "(int)puVar13 + 1" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) 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 "puStack_40 = (uint *)((int)puVar13 - (int)local_30);" (assignment_expression "puStack_40 = (uint *)((int)puVar13 - (int)local_30)" identifier = (cast_expression "(uint *)((int)puVar13 - (int)local_30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar13 - (int)local_30)" ( (binary_expression "(int)puVar13 - (int)local_30" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "uVar7 = (((int)puVar13 - (int)local_30) + 1 + (int)puStack_54) * 4;" (assignment_expression "uVar7 = (((int)puVar13 - (int)local_30) + 1 + (int)puStack_54) * 4" identifier = (binary_expression "(((int)puVar13 - (int)local_30) + 1 + (int)puStack_54) * 4" (parenthesized_expression "(((int)puVar13 - (int)local_30) + 1 + (int)puStack_54)" ( (binary_expression "((int)puVar13 - (int)local_30) + 1 + (int)puStack_54" (binary_expression "((int)puVar13 - (int)local_30) + 1" (parenthesized_expression "((int)puVar13 - (int)local_30)" ( (binary_expression "(int)puVar13 - (int)local_30" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)) )) + number_literal) + (cast_expression "(int)puStack_54" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal)) ;) (if_statement "if (uVar7 < 0x7f01) {\n    iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n    puVar15 = auStack_5c + iVar8;\n    local_38 = (uint *)((int)apuStack_50 + iVar8);\n  }\n  else {\n    apuStack_50[2] = puStack_54;\n    puStack_3c = puVar13;\n    local_38 = (uint *)__gmp_tmp_reentrant_alloc(&__tmp_marker,uVar7);\n    puVar15 = auStack_5c;\n    puStack_54 = apuStack_50[2];\n    puVar13 = puStack_3c;\n  }" if (parenthesized_expression "(uVar7 < 0x7f01)" ( (binary_expression "uVar7 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n    iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n    puVar15 = auStack_5c + iVar8;\n    local_38 = (uint *)((int)apuStack_50 + iVar8);\n  }" { (expression_statement "iVar8 = -(uVar7 + 0x1b & 0xfffffff0);" (assignment_expression "iVar8 = -(uVar7 + 0x1b & 0xfffffff0)" identifier = (unary_expression "-(uVar7 + 0x1b & 0xfffffff0)" - (parenthesized_expression "(uVar7 + 0x1b & 0xfffffff0)" ( (binary_expression "uVar7 + 0x1b & 0xfffffff0" (binary_expression "uVar7 + 0x1b" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar15 = auStack_5c + iVar8;" (assignment_expression "puVar15 = auStack_5c + iVar8" identifier = (binary_expression "auStack_5c + iVar8" identifier + identifier)) ;) (expression_statement "local_38 = (uint *)((int)apuStack_50 + iVar8);" (assignment_expression "local_38 = (uint *)((int)apuStack_50 + iVar8)" identifier = (cast_expression "(uint *)((int)apuStack_50 + iVar8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)apuStack_50 + iVar8)" ( (binary_expression "(int)apuStack_50 + iVar8" (cast_expression "(int)apuStack_50" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n    apuStack_50[2] = puStack_54;\n    puStack_3c = puVar13;\n    local_38 = (uint *)__gmp_tmp_reentrant_alloc(&__tmp_marker,uVar7);\n    puVar15 = auStack_5c;\n    puStack_54 = apuStack_50[2];\n    puVar13 = puStack_3c;\n  }" else (compound_statement "{\n    apuStack_50[2] = puStack_54;\n    puStack_3c = puVar13;\n    local_38 = (uint *)__gmp_tmp_reentrant_alloc(&__tmp_marker,uVar7);\n    puVar15 = auStack_5c;\n    puStack_54 = apuStack_50[2];\n    puVar13 = puStack_3c;\n  }" { (expression_statement "apuStack_50[2] = puStack_54;" (assignment_expression "apuStack_50[2] = puStack_54" (subscript_expression "apuStack_50[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puStack_3c = puVar13;" (assignment_expression "puStack_3c = puVar13" identifier = identifier) ;) (expression_statement "local_38 = (uint *)__gmp_tmp_reentrant_alloc(&__tmp_marker,uVar7);" (assignment_expression "local_38 = (uint *)__gmp_tmp_reentrant_alloc(&__tmp_marker,uVar7)" identifier = (cast_expression "(uint *)__gmp_tmp_reentrant_alloc(&__tmp_marker,uVar7)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__gmp_tmp_reentrant_alloc(&__tmp_marker,uVar7)" identifier (argument_list "(&__tmp_marker,uVar7)" ( (pointer_expression "&__tmp_marker" & identifier) , identifier ))))) ;) (expression_statement "puVar15 = auStack_5c;" (assignment_expression "puVar15 = auStack_5c" identifier = identifier) ;) (expression_statement "puStack_54 = apuStack_50[2];" (assignment_expression "puStack_54 = apuStack_50[2]" identifier = (subscript_expression "apuStack_50[2]" identifier [ number_literal ])) ;) (expression_statement "puVar13 = puStack_3c;" (assignment_expression "puVar13 = puStack_3c" identifier = identifier) ;) }))) (expression_statement "ppuVar6 = local_34;" (assignment_expression "ppuVar6 = local_34" identifier = identifier) ;) (expression_statement "apuStack_50[2] = (uint *)((int)puStack_54 * 4);" (assignment_expression "apuStack_50[2] = (uint *)((int)puStack_54 * 4)" (subscript_expression "apuStack_50[2]" identifier [ number_literal ]) = (cast_expression "(uint *)((int)puStack_54 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puStack_54 * 4)" ( (binary_expression "(int)puStack_54 * 4" (cast_expression "(int)puStack_54" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "apuStack_50[0] = local_38 + (int)puStack_54;" (assignment_expression "apuStack_50[0] = local_38 + (int)puStack_54" (subscript_expression "apuStack_50[0]" identifier [ number_literal ]) = (binary_expression "local_38 + (int)puStack_54" identifier + (cast_expression "(int)puStack_54" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (apuStack_50[3] == (uint *)0x0) {\n    *(uint **)(puVar15 + -8) = puVar13;\n    *(mp_srcptr *)(puVar15 + -0xc) = ap;\n    puVar1 = ppuVar6[-0x9b];\n    *(uint **)(puVar15 + -0x10) = local_38;\n    pcVar2 = *(code **)(puVar1 + 0x28);\n    apuStack_50[1] = (uint *)puVar1;\n    apuStack_50[3] = puVar13;\n    *(undefined4 *)(puVar15 + -0x14) = 0x45555;\n    (*pcVar2)();\n    puStack_3c = dp;\n    puVar9 = puStack_54;\n  }\n  else {\n    uVar7 = (int)local_30 * 4;\n    if (uVar7 < 0x7f01) {\n      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n      puStack_3c = (uint *)((uint)(puVar15 + iVar8 + 0xf) & 0xfffffff0);\n      apuStack_50[1] = puVar13;\n      puVar15 = puVar15 + iVar8;\n    }\n    else {\n      *(uint *)(puVar15 + -0xc) = uVar7;\n      *(tmp_reentrant_t ***)(puVar15 + -0x10) = &__tmp_marker;\n      apuStack_50[1] = puVar13;\n      *(undefined4 *)(puVar15 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc\n                                     (*(tmp_reentrant_t ***)(puVar15 + -0x10),\n                                      *(size_t *)(puVar15 + -0xc));\n    }\n    puVar13 = apuStack_50[3];\n    puVar1 = local_34[-0x9b];\n    puStack_58 = puStack_54;\n    puStack_54 = apuStack_50[1];\n    *(uint **)(puVar15 + -4) = apuStack_50[3];\n    *(uint **)(puVar15 + -8) = local_30;\n    *(mp_srcptr *)(puVar15 + -0xc) = dp;\n    *(uint **)(puVar15 + -0x10) = puStack_3c;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    apuStack_50[1] = (uint *)puVar1;\n    *(undefined4 *)(puVar15 + -0x14) = 0x453c5;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    *(uint **)(puVar15 + -0x14) = puVar13;\n    *(uint **)(puVar15 + -0x18) = puVar9;\n    *(mp_srcptr *)(puVar15 + -0x1c) = ap;\n    *(uint **)(puVar15 + -0x20) = local_38;\n    apuStack_50[3] = puVar9;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    *(undefined4 *)(puVar15 + -0x24) = 0x453d7;\n    (*pcVar2)();\n    puVar9 = puStack_58;\n  }" if (parenthesized_expression "(apuStack_50[3] == (uint *)0x0)" ( (binary_expression "apuStack_50[3] == (uint *)0x0" (subscript_expression "apuStack_50[3]" identifier [ number_literal ]) == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(uint **)(puVar15 + -8) = puVar13;\n    *(mp_srcptr *)(puVar15 + -0xc) = ap;\n    puVar1 = ppuVar6[-0x9b];\n    *(uint **)(puVar15 + -0x10) = local_38;\n    pcVar2 = *(code **)(puVar1 + 0x28);\n    apuStack_50[1] = (uint *)puVar1;\n    apuStack_50[3] = puVar13;\n    *(undefined4 *)(puVar15 + -0x14) = 0x45555;\n    (*pcVar2)();\n    puStack_3c = dp;\n    puVar9 = puStack_54;\n  }" { (expression_statement "*(uint **)(puVar15 + -8) = puVar13;" (assignment_expression "*(uint **)(puVar15 + -8) = puVar13" (pointer_expression "*(uint **)(puVar15 + -8)" * (cast_expression "(uint **)(puVar15 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mp_srcptr *)(puVar15 + -0xc) = ap;" (assignment_expression "*(mp_srcptr *)(puVar15 + -0xc) = ap" (pointer_expression "*(mp_srcptr *)(puVar15 + -0xc)" * (cast_expression "(mp_srcptr *)(puVar15 + -0xc)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar1 = ppuVar6[-0x9b];" (assignment_expression "puVar1 = ppuVar6[-0x9b]" identifier = (subscript_expression "ppuVar6[-0x9b]" identifier [ number_literal ])) ;) (expression_statement "*(uint **)(puVar15 + -0x10) = local_38;" (assignment_expression "*(uint **)(puVar15 + -0x10) = local_38" (pointer_expression "*(uint **)(puVar15 + -0x10)" * (cast_expression "(uint **)(puVar15 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(puVar1 + 0x28);" (assignment_expression "pcVar2 = *(code **)(puVar1 + 0x28)" identifier = (pointer_expression "*(code **)(puVar1 + 0x28)" * (cast_expression "(code **)(puVar1 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + 0x28)" ( (binary_expression "puVar1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "apuStack_50[1] = (uint *)puVar1;" (assignment_expression "apuStack_50[1] = (uint *)puVar1" (subscript_expression "apuStack_50[1]" identifier [ number_literal ]) = (cast_expression "(uint *)puVar1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "apuStack_50[3] = puVar13;" (assignment_expression "apuStack_50[3] = puVar13" (subscript_expression "apuStack_50[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x45555;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x45555" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_3c = dp;" (assignment_expression "puStack_3c = dp" identifier = identifier) ;) (expression_statement "puVar9 = puStack_54;" (assignment_expression "puVar9 = puStack_54" identifier = identifier) ;) }) (else_clause "else {\n    uVar7 = (int)local_30 * 4;\n    if (uVar7 < 0x7f01) {\n      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n      puStack_3c = (uint *)((uint)(puVar15 + iVar8 + 0xf) & 0xfffffff0);\n      apuStack_50[1] = puVar13;\n      puVar15 = puVar15 + iVar8;\n    }\n    else {\n      *(uint *)(puVar15 + -0xc) = uVar7;\n      *(tmp_reentrant_t ***)(puVar15 + -0x10) = &__tmp_marker;\n      apuStack_50[1] = puVar13;\n      *(undefined4 *)(puVar15 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc\n                                     (*(tmp_reentrant_t ***)(puVar15 + -0x10),\n                                      *(size_t *)(puVar15 + -0xc));\n    }\n    puVar13 = apuStack_50[3];\n    puVar1 = local_34[-0x9b];\n    puStack_58 = puStack_54;\n    puStack_54 = apuStack_50[1];\n    *(uint **)(puVar15 + -4) = apuStack_50[3];\n    *(uint **)(puVar15 + -8) = local_30;\n    *(mp_srcptr *)(puVar15 + -0xc) = dp;\n    *(uint **)(puVar15 + -0x10) = puStack_3c;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    apuStack_50[1] = (uint *)puVar1;\n    *(undefined4 *)(puVar15 + -0x14) = 0x453c5;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    *(uint **)(puVar15 + -0x14) = puVar13;\n    *(uint **)(puVar15 + -0x18) = puVar9;\n    *(mp_srcptr *)(puVar15 + -0x1c) = ap;\n    *(uint **)(puVar15 + -0x20) = local_38;\n    apuStack_50[3] = puVar9;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    *(undefined4 *)(puVar15 + -0x24) = 0x453d7;\n    (*pcVar2)();\n    puVar9 = puStack_58;\n  }" else (compound_statement "{\n    uVar7 = (int)local_30 * 4;\n    if (uVar7 < 0x7f01) {\n      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n      puStack_3c = (uint *)((uint)(puVar15 + iVar8 + 0xf) & 0xfffffff0);\n      apuStack_50[1] = puVar13;\n      puVar15 = puVar15 + iVar8;\n    }\n    else {\n      *(uint *)(puVar15 + -0xc) = uVar7;\n      *(tmp_reentrant_t ***)(puVar15 + -0x10) = &__tmp_marker;\n      apuStack_50[1] = puVar13;\n      *(undefined4 *)(puVar15 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc\n                                     (*(tmp_reentrant_t ***)(puVar15 + -0x10),\n                                      *(size_t *)(puVar15 + -0xc));\n    }\n    puVar13 = apuStack_50[3];\n    puVar1 = local_34[-0x9b];\n    puStack_58 = puStack_54;\n    puStack_54 = apuStack_50[1];\n    *(uint **)(puVar15 + -4) = apuStack_50[3];\n    *(uint **)(puVar15 + -8) = local_30;\n    *(mp_srcptr *)(puVar15 + -0xc) = dp;\n    *(uint **)(puVar15 + -0x10) = puStack_3c;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    apuStack_50[1] = (uint *)puVar1;\n    *(undefined4 *)(puVar15 + -0x14) = 0x453c5;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    *(uint **)(puVar15 + -0x14) = puVar13;\n    *(uint **)(puVar15 + -0x18) = puVar9;\n    *(mp_srcptr *)(puVar15 + -0x1c) = ap;\n    *(uint **)(puVar15 + -0x20) = local_38;\n    apuStack_50[3] = puVar9;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    *(undefined4 *)(puVar15 + -0x24) = 0x453d7;\n    (*pcVar2)();\n    puVar9 = puStack_58;\n  }" { (expression_statement "uVar7 = (int)local_30 * 4;" (assignment_expression "uVar7 = (int)local_30 * 4" identifier = (binary_expression "(int)local_30 * 4" (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (if_statement "if (uVar7 < 0x7f01) {\n      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n      puStack_3c = (uint *)((uint)(puVar15 + iVar8 + 0xf) & 0xfffffff0);\n      apuStack_50[1] = puVar13;\n      puVar15 = puVar15 + iVar8;\n    }\n    else {\n      *(uint *)(puVar15 + -0xc) = uVar7;\n      *(tmp_reentrant_t ***)(puVar15 + -0x10) = &__tmp_marker;\n      apuStack_50[1] = puVar13;\n      *(undefined4 *)(puVar15 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc\n                                     (*(tmp_reentrant_t ***)(puVar15 + -0x10),\n                                      *(size_t *)(puVar15 + -0xc));\n    }" if (parenthesized_expression "(uVar7 < 0x7f01)" ( (binary_expression "uVar7 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n      puStack_3c = (uint *)((uint)(puVar15 + iVar8 + 0xf) & 0xfffffff0);\n      apuStack_50[1] = puVar13;\n      puVar15 = puVar15 + iVar8;\n    }" { (expression_statement "iVar8 = -(uVar7 + 0x1b & 0xfffffff0);" (assignment_expression "iVar8 = -(uVar7 + 0x1b & 0xfffffff0)" identifier = (unary_expression "-(uVar7 + 0x1b & 0xfffffff0)" - (parenthesized_expression "(uVar7 + 0x1b & 0xfffffff0)" ( (binary_expression "uVar7 + 0x1b & 0xfffffff0" (binary_expression "uVar7 + 0x1b" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puStack_3c = (uint *)((uint)(puVar15 + iVar8 + 0xf) & 0xfffffff0);" (assignment_expression "puStack_3c = (uint *)((uint)(puVar15 + iVar8 + 0xf) & 0xfffffff0)" identifier = (cast_expression "(uint *)((uint)(puVar15 + iVar8 + 0xf) & 0xfffffff0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(puVar15 + iVar8 + 0xf) & 0xfffffff0)" ( (binary_expression "(uint)(puVar15 + iVar8 + 0xf) & 0xfffffff0" (call_expression "(uint)(puVar15 + iVar8 + 0xf)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar15 + iVar8 + 0xf)" ( (binary_expression "puVar15 + iVar8 + 0xf" (binary_expression "puVar15 + iVar8" identifier + identifier) + number_literal) ))) & number_literal) )))) ;) (expression_statement "apuStack_50[1] = puVar13;" (assignment_expression "apuStack_50[1] = puVar13" (subscript_expression "apuStack_50[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15 = puVar15 + iVar8;" (assignment_expression "puVar15 = puVar15 + iVar8" identifier = (binary_expression "puVar15 + iVar8" identifier + identifier)) ;) }) (else_clause "else {\n      *(uint *)(puVar15 + -0xc) = uVar7;\n      *(tmp_reentrant_t ***)(puVar15 + -0x10) = &__tmp_marker;\n      apuStack_50[1] = puVar13;\n      *(undefined4 *)(puVar15 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc\n                                     (*(tmp_reentrant_t ***)(puVar15 + -0x10),\n                                      *(size_t *)(puVar15 + -0xc));\n    }" else (compound_statement "{\n      *(uint *)(puVar15 + -0xc) = uVar7;\n      *(tmp_reentrant_t ***)(puVar15 + -0x10) = &__tmp_marker;\n      apuStack_50[1] = puVar13;\n      *(undefined4 *)(puVar15 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc\n                                     (*(tmp_reentrant_t ***)(puVar15 + -0x10),\n                                      *(size_t *)(puVar15 + -0xc));\n    }" { (expression_statement "*(uint *)(puVar15 + -0xc) = uVar7;" (assignment_expression "*(uint *)(puVar15 + -0xc) = uVar7" (pointer_expression "*(uint *)(puVar15 + -0xc)" * (cast_expression "(uint *)(puVar15 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(tmp_reentrant_t ***)(puVar15 + -0x10) = &__tmp_marker;" (assignment_expression "*(tmp_reentrant_t ***)(puVar15 + -0x10) = &__tmp_marker" (pointer_expression "*(tmp_reentrant_t ***)(puVar15 + -0x10)" * (cast_expression "(tmp_reentrant_t ***)(puVar15 + -0x10)" ( (type_descriptor "tmp_reentrant_t ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (pointer_expression "&__tmp_marker" & identifier)) ;) (expression_statement "apuStack_50[1] = puVar13;" (assignment_expression "apuStack_50[1] = puVar13" (subscript_expression "apuStack_50[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x45770;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x45770" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puStack_3c = (uint *)__gmp_tmp_reentrant_alloc\n                                     (*(tmp_reentrant_t ***)(puVar15 + -0x10),\n                                      *(size_t *)(puVar15 + -0xc));" (assignment_expression "puStack_3c = (uint *)__gmp_tmp_reentrant_alloc\n                                     (*(tmp_reentrant_t ***)(puVar15 + -0x10),\n                                      *(size_t *)(puVar15 + -0xc))" identifier = (cast_expression "(uint *)__gmp_tmp_reentrant_alloc\n                                     (*(tmp_reentrant_t ***)(puVar15 + -0x10),\n                                      *(size_t *)(puVar15 + -0xc))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__gmp_tmp_reentrant_alloc\n                                     (*(tmp_reentrant_t ***)(puVar15 + -0x10),\n                                      *(size_t *)(puVar15 + -0xc))" identifier (argument_list "(*(tmp_reentrant_t ***)(puVar15 + -0x10),\n                                      *(size_t *)(puVar15 + -0xc))" ( (pointer_expression "*(tmp_reentrant_t ***)(puVar15 + -0x10)" * (cast_expression "(tmp_reentrant_t ***)(puVar15 + -0x10)" ( (type_descriptor "tmp_reentrant_t ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(size_t *)(puVar15 + -0xc)" * (cast_expression "(size_t *)(puVar15 + -0xc)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) ))))) ;) }))) (expression_statement "puVar13 = apuStack_50[3];" (assignment_expression "puVar13 = apuStack_50[3]" identifier = (subscript_expression "apuStack_50[3]" identifier [ number_literal ])) ;) (expression_statement "puVar1 = local_34[-0x9b];" (assignment_expression "puVar1 = local_34[-0x9b]" identifier = (subscript_expression "local_34[-0x9b]" identifier [ number_literal ])) ;) (expression_statement "puStack_58 = puStack_54;" (assignment_expression "puStack_58 = puStack_54" identifier = identifier) ;) (expression_statement "puStack_54 = apuStack_50[1];" (assignment_expression "puStack_54 = apuStack_50[1]" identifier = (subscript_expression "apuStack_50[1]" identifier [ number_literal ])) ;) (expression_statement "*(uint **)(puVar15 + -4) = apuStack_50[3];" (assignment_expression "*(uint **)(puVar15 + -4) = apuStack_50[3]" (pointer_expression "*(uint **)(puVar15 + -4)" * (cast_expression "(uint **)(puVar15 + -4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (subscript_expression "apuStack_50[3]" identifier [ number_literal ])) ;) (expression_statement "*(uint **)(puVar15 + -8) = local_30;" (assignment_expression "*(uint **)(puVar15 + -8) = local_30" (pointer_expression "*(uint **)(puVar15 + -8)" * (cast_expression "(uint **)(puVar15 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mp_srcptr *)(puVar15 + -0xc) = dp;" (assignment_expression "*(mp_srcptr *)(puVar15 + -0xc) = dp" (pointer_expression "*(mp_srcptr *)(puVar15 + -0xc)" * (cast_expression "(mp_srcptr *)(puVar15 + -0xc)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar15 + -0x10) = puStack_3c;" (assignment_expression "*(uint **)(puVar15 + -0x10) = puStack_3c" (pointer_expression "*(uint **)(puVar15 + -0x10)" * (cast_expression "(uint **)(puVar15 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(puVar1 + 0x80);" (assignment_expression "pcVar2 = *(code **)(puVar1 + 0x80)" identifier = (pointer_expression "*(code **)(puVar1 + 0x80)" * (cast_expression "(code **)(puVar1 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + 0x80)" ( (binary_expression "puVar1 + 0x80" identifier + number_literal) ))))) ;) (expression_statement "apuStack_50[1] = (uint *)puVar1;" (assignment_expression "apuStack_50[1] = (uint *)puVar1" (subscript_expression "apuStack_50[1]" identifier [ number_literal ]) = (cast_expression "(uint *)puVar1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x453c5;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x453c5" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar9 = puStack_54;" (assignment_expression "puVar9 = puStack_54" identifier = identifier) ;) (expression_statement "*(uint **)(puVar15 + -0x14) = puVar13;" (assignment_expression "*(uint **)(puVar15 + -0x14) = puVar13" (pointer_expression "*(uint **)(puVar15 + -0x14)" * (cast_expression "(uint **)(puVar15 + -0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar15 + -0x18) = puVar9;" (assignment_expression "*(uint **)(puVar15 + -0x18) = puVar9" (pointer_expression "*(uint **)(puVar15 + -0x18)" * (cast_expression "(uint **)(puVar15 + -0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mp_srcptr *)(puVar15 + -0x1c) = ap;" (assignment_expression "*(mp_srcptr *)(puVar15 + -0x1c) = ap" (pointer_expression "*(mp_srcptr *)(puVar15 + -0x1c)" * (cast_expression "(mp_srcptr *)(puVar15 + -0x1c)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar15 + -0x20) = local_38;" (assignment_expression "*(uint **)(puVar15 + -0x20) = local_38" (pointer_expression "*(uint **)(puVar15 + -0x20)" * (cast_expression "(uint **)(puVar15 + -0x20)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "apuStack_50[3] = puVar9;" (assignment_expression "apuStack_50[3] = puVar9" (subscript_expression "apuStack_50[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pcVar2 = *(code **)(puVar1 + 0x80);" (assignment_expression "pcVar2 = *(code **)(puVar1 + 0x80)" identifier = (pointer_expression "*(code **)(puVar1 + 0x80)" * (cast_expression "(code **)(puVar1 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + 0x80)" ( (binary_expression "puVar1 + 0x80" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = 0x453d7;" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = 0x453d7" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar9 = puStack_58;" (assignment_expression "puVar9 = puStack_58" identifier = identifier) ;) }))) (if_statement "if (*(uint *)((int)local_38 + (int)apuStack_50[2] + -8) < puStack_3c[(int)local_30 + -1]) {\n    if (local_30 == apuStack_50[3]) {\nLAB_000454ba:\n      if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n        *(tmp_reentrant_t **)(puVar15 + -0x10) = __tmp_marker;\n        *(undefined4 *)(puVar15 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar15 + -0x10));\n      }\n      goto LAB_000452ce;\n    }\n  }\n  else {\n    *(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0;\n    puStack_40 = (uint *)((int)puVar9 - (int)local_30);\n    apuStack_50[3] = puVar9;\n  }" if (parenthesized_expression "(*(uint *)((int)local_38 + (int)apuStack_50[2] + -8) < puStack_3c[(int)local_30 + -1])" ( (binary_expression "*(uint *)((int)local_38 + (int)apuStack_50[2] + -8) < puStack_3c[(int)local_30 + -1]" (pointer_expression "*(uint *)((int)local_38 + (int)apuStack_50[2] + -8)" * (cast_expression "(uint *)((int)local_38 + (int)apuStack_50[2] + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + (int)apuStack_50[2] + -8)" ( (binary_expression "(int)local_38 + (int)apuStack_50[2] + -8" (binary_expression "(int)local_38 + (int)apuStack_50[2]" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)apuStack_50[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "apuStack_50[2]" identifier [ number_literal ]))) + number_literal) )))) < (subscript_expression "puStack_3c[(int)local_30 + -1]" identifier [ (binary_expression "(int)local_30 + -1" (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ])) )) (compound_statement "{\n    if (local_30 == apuStack_50[3]) {\nLAB_000454ba:\n      if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n        *(tmp_reentrant_t **)(puVar15 + -0x10) = __tmp_marker;\n        *(undefined4 *)(puVar15 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar15 + -0x10));\n      }\n      goto LAB_000452ce;\n    }\n  }" { (if_statement "if (local_30 == apuStack_50[3]) {\nLAB_000454ba:\n      if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n        *(tmp_reentrant_t **)(puVar15 + -0x10) = __tmp_marker;\n        *(undefined4 *)(puVar15 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar15 + -0x10));\n      }\n      goto LAB_000452ce;\n    }" if (parenthesized_expression "(local_30 == apuStack_50[3])" ( (binary_expression "local_30 == apuStack_50[3]" identifier == (subscript_expression "apuStack_50[3]" identifier [ number_literal ])) )) (compound_statement "{\nLAB_000454ba:\n      if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n        *(tmp_reentrant_t **)(puVar15 + -0x10) = __tmp_marker;\n        *(undefined4 *)(puVar15 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar15 + -0x10));\n      }\n      goto LAB_000452ce;\n    }" { (labeled_statement "LAB_000454ba:\n      if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n        *(tmp_reentrant_t **)(puVar15 + -0x10) = __tmp_marker;\n        *(undefined4 *)(puVar15 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar15 + -0x10));\n      }" statement_identifier : (if_statement "if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n        *(tmp_reentrant_t **)(puVar15 + -0x10) = __tmp_marker;\n        *(undefined4 *)(puVar15 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar15 + -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 **)(puVar15 + -0x10) = __tmp_marker;\n        *(undefined4 *)(puVar15 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar15 + -0x10));\n      }" { (expression_statement "*(tmp_reentrant_t **)(puVar15 + -0x10) = __tmp_marker;" (assignment_expression "*(tmp_reentrant_t **)(puVar15 + -0x10) = __tmp_marker" (pointer_expression "*(tmp_reentrant_t **)(puVar15 + -0x10)" * (cast_expression "(tmp_reentrant_t **)(puVar15 + -0x10)" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x454d1;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x454d1" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar15 + -0x10));" (call_expression "__gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar15 + -0x10))" identifier (argument_list "(*(tmp_reentrant_t **)(puVar15 + -0x10))" ( (pointer_expression "*(tmp_reentrant_t **)(puVar15 + -0x10)" * (cast_expression "(tmp_reentrant_t **)(puVar15 + -0x10)" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) ))) ;) }))) (goto_statement "goto LAB_000452ce;" goto statement_identifier ;) })) }) (else_clause "else {\n    *(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0;\n    puStack_40 = (uint *)((int)puVar9 - (int)local_30);\n    apuStack_50[3] = puVar9;\n  }" else (compound_statement "{\n    *(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0;\n    puStack_40 = (uint *)((int)puVar9 - (int)local_30);\n    apuStack_50[3] = puVar9;\n  }" { (expression_statement "*(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0;" (assignment_expression "*(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0" (pointer_expression "*(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4)" * (cast_expression "(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + (int)apuStack_50[2] + -4)" ( (binary_expression "(int)local_38 + (int)apuStack_50[2] + -4" (binary_expression "(int)local_38 + (int)apuStack_50[2]" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)apuStack_50[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "apuStack_50[2]" identifier [ number_literal ]))) + number_literal) )))) = number_literal) ;) (expression_statement "puStack_40 = (uint *)((int)puVar9 - (int)local_30);" (assignment_expression "puStack_40 = (uint *)((int)puVar9 - (int)local_30)" identifier = (cast_expression "(uint *)((int)puVar9 - (int)local_30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 - (int)local_30)" ( (binary_expression "(int)puVar9 - (int)local_30" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "apuStack_50[3] = puVar9;" (assignment_expression "apuStack_50[3] = puVar9" (subscript_expression "apuStack_50[3]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "piVar3 = (int *)local_34[-0xaa];" (assignment_expression "piVar3 = (int *)local_34[-0xaa]" identifier = (cast_expression "(int *)local_34[-0xaa]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_34[-0xaa]" identifier [ number_literal ]))) ;) (expression_statement "puVar9 = apuStack_50[3];" (assignment_expression "puVar9 = apuStack_50[3]" identifier = (subscript_expression "apuStack_50[3]" identifier [ number_literal ])) ;) (if_statement "if (*piVar3 == 0) {\n    *(undefined4 *)(puVar15 + -4) = 0x45702;\n    __gmpn_cpuvec_init();\n    puVar9 = apuStack_50[3];\n  }" if (parenthesized_expression "(*piVar3 == 0)" ( (binary_expression "*piVar3 == 0" (pointer_expression "*piVar3" * identifier) == number_literal) )) (compound_statement "{\n    *(undefined4 *)(puVar15 + -4) = 0x45702;\n    __gmpn_cpuvec_init();\n    puVar9 = apuStack_50[3];\n  }" { (expression_statement "*(undefined4 *)(puVar15 + -4) = 0x45702;" (assignment_expression "*(undefined4 *)(puVar15 + -4) = 0x45702" (pointer_expression "*(undefined4 *)(puVar15 + -4)" * (cast_expression "(undefined4 *)(puVar15 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_cpuvec_init();" (call_expression "__gmpn_cpuvec_init()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar9 = apuStack_50[3];" (assignment_expression "puVar9 = apuStack_50[3]" identifier = (subscript_expression "apuStack_50[3]" identifier [ number_literal ])) ;) })) (expression_statement "apuStack_50[3] = *(uint **)((int)apuStack_50[1] + 0x94);" (assignment_expression "apuStack_50[3] = *(uint **)((int)apuStack_50[1] + 0x94)" (subscript_expression "apuStack_50[3]" identifier [ number_literal ]) = (pointer_expression "*(uint **)((int)apuStack_50[1] + 0x94)" * (cast_expression "(uint **)((int)apuStack_50[1] + 0x94)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)apuStack_50[1] + 0x94)" ( (binary_expression "(int)apuStack_50[1] + 0x94" (cast_expression "(int)apuStack_50[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "apuStack_50[1]" identifier [ number_literal ])) + number_literal) ))))) ;) (expression_statement "iVar8 = (int)apuStack_50[3] * 2;" (assignment_expression "iVar8 = (int)apuStack_50[3] * 2" identifier = (binary_expression "(int)apuStack_50[3] * 2" (cast_expression "(int)apuStack_50[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "apuStack_50[3]" identifier [ number_literal ])) * number_literal)) ;) (if_statement "if (SBORROW4((int)local_30,iVar8) == (int)local_30 + (int)apuStack_50[3] * -2 < 0) {\n    if (*piVar3 == 0) {\n      apuStack_50[3] = puVar9;\n      *(undefined4 *)(puVar15 + -4) = 0x4572e;\n      __gmpn_cpuvec_init();\n      iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;\n      puVar9 = apuStack_50[3];\n    }\n    puVar13 = puStack_3c;\n    if ((int)puStack_40 < iVar8) goto LAB_00045444;\n    if ((int)local_30 < 2000) {\n      uVar7 = *puStack_3c;\n      uVar12 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n      iVar8 = uVar12 * 2 - uVar12 * uVar12 * uVar7;\n      *(uint *)(puVar15 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n      *(uint **)(puVar15 + -0x10) = local_30;\n      *(uint **)(puVar15 + -0x14) = puVar13;\n      puVar13 = local_38;\n      *(uint **)(puVar15 + -0x18) = puVar9;\n      *(uint **)(puVar15 + -0x1c) = puVar13;\n      *(uint **)(puVar15 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar15 + -0x24) = 0x456e7;\n      __gmpn_dcpi1_bdiv_qr\n                (*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),\n                 *(mp_size_t *)(puVar15 + -0x18),*(mp_srcptr *)(puVar15 + -0x14),\n                 *(mp_size_t *)(puVar15 + -0x10),*(mp_limb_t *)(puVar15 + -0xc));\n      local_38 = puVar13 + (int)puStack_40;\n    }\n    else {\n      *(uint **)(puVar15 + -0xc) = local_30;\n      *(uint **)(puVar15 + -0x10) = puVar9;\n      puStack_40 = puVar9;\n      *(undefined4 *)(puVar15 + -0x14) = 0x45613;\n      mVar10 = __gmpn_mu_bdiv_qr_itch\n                         (*(mp_size_t *)(puVar15 + -0x10),*(mp_size_t *)(puVar15 + -0xc));\n      uVar7 = mVar10 * 4;\n      if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        pvVar11 = (void *)((uint)(puVar15 + iVar8 + 0xf) & 0xfffffff0);\n        puVar15 = puVar15 + iVar8;\n      }\n      else {\n        *(uint *)(puVar15 + -0xc) = uVar7;\n        *(tmp_reentrant_t ***)(puVar15 + -0x10) = &__tmp_marker;\n        *(undefined4 *)(puVar15 + -0x14) = 0x45794;\n        pvVar11 = __gmp_tmp_reentrant_alloc\n                            (*(tmp_reentrant_t ***)(puVar15 + -0x10),*(size_t *)(puVar15 + -0xc));\n      }\n      puVar9 = puStack_40;\n      *(void **)(puVar15 + -8) = pvVar11;\n      puVar13 = local_38;\n      *(uint **)(puVar15 + -0xc) = local_30;\n      *(uint **)(puVar15 + -0x10) = puStack_3c;\n      *(uint **)(puVar15 + -0x14) = puVar9;\n      *(uint **)(puVar15 + -0x18) = puVar13;\n      *(uint **)(puVar15 + -0x1c) = puVar13;\n      *(uint **)(puVar15 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar15 + -0x24) = 0x45651;\n      __gmpn_mu_bdiv_qr(*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),\n                        *(mp_srcptr *)(puVar15 + -0x18),*(mp_size_t *)(puVar15 + -0x14),\n                        *(mp_srcptr *)(puVar15 + -0x10),*(mp_size_t *)(puVar15 + -0xc),\n                        *(mp_ptr *)(puVar15 + -8));\n    }\n  }\n  else {\nLAB_00045444:\n    puVar13 = puStack_3c;\n    uVar7 = *puStack_3c;\n    uVar12 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n    iVar8 = uVar12 * 2 - uVar12 * uVar12 * uVar7;\n    *(uint *)(puVar15 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n    *(uint **)(puVar15 + -0x10) = local_30;\n    *(uint **)(puVar15 + -0x14) = puVar13;\n    puVar13 = local_38;\n    *(uint **)(puVar15 + -0x18) = puVar9;\n    *(uint **)(puVar15 + -0x1c) = puVar13;\n    *(uint **)(puVar15 + -0x20) = apuStack_50[0];\n    *(undefined4 *)(puVar15 + -0x24) = 0x4548b;\n    __gmpn_sbpi1_bdiv_qr\n              (*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),\n               *(mp_size_t *)(puVar15 + -0x18),*(mp_srcptr *)(puVar15 + -0x14),\n               *(mp_size_t *)(puVar15 + -0x10),*(mp_limb_t *)(puVar15 + -0xc));\n    local_38 = puVar13 + (int)puStack_40;\n  }" if (parenthesized_expression "(SBORROW4((int)local_30,iVar8) == (int)local_30 + (int)apuStack_50[3] * -2 < 0)" ( (binary_expression "SBORROW4((int)local_30,iVar8) == (int)local_30 + (int)apuStack_50[3] * -2 < 0" (call_expression "SBORROW4((int)local_30,iVar8)" identifier (argument_list "((int)local_30,iVar8)" ( (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) , identifier ))) == (binary_expression "(int)local_30 + (int)apuStack_50[3] * -2 < 0" (binary_expression "(int)local_30 + (int)apuStack_50[3] * -2" (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)apuStack_50[3] * -2" (cast_expression "(int)apuStack_50[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "apuStack_50[3]" identifier [ number_literal ])) * number_literal)) < number_literal)) )) (compound_statement "{\n    if (*piVar3 == 0) {\n      apuStack_50[3] = puVar9;\n      *(undefined4 *)(puVar15 + -4) = 0x4572e;\n      __gmpn_cpuvec_init();\n      iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;\n      puVar9 = apuStack_50[3];\n    }\n    puVar13 = puStack_3c;\n    if ((int)puStack_40 < iVar8) goto LAB_00045444;\n    if ((int)local_30 < 2000) {\n      uVar7 = *puStack_3c;\n      uVar12 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n      iVar8 = uVar12 * 2 - uVar12 * uVar12 * uVar7;\n      *(uint *)(puVar15 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n      *(uint **)(puVar15 + -0x10) = local_30;\n      *(uint **)(puVar15 + -0x14) = puVar13;\n      puVar13 = local_38;\n      *(uint **)(puVar15 + -0x18) = puVar9;\n      *(uint **)(puVar15 + -0x1c) = puVar13;\n      *(uint **)(puVar15 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar15 + -0x24) = 0x456e7;\n      __gmpn_dcpi1_bdiv_qr\n                (*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),\n                 *(mp_size_t *)(puVar15 + -0x18),*(mp_srcptr *)(puVar15 + -0x14),\n                 *(mp_size_t *)(puVar15 + -0x10),*(mp_limb_t *)(puVar15 + -0xc));\n      local_38 = puVar13 + (int)puStack_40;\n    }\n    else {\n      *(uint **)(puVar15 + -0xc) = local_30;\n      *(uint **)(puVar15 + -0x10) = puVar9;\n      puStack_40 = puVar9;\n      *(undefined4 *)(puVar15 + -0x14) = 0x45613;\n      mVar10 = __gmpn_mu_bdiv_qr_itch\n                         (*(mp_size_t *)(puVar15 + -0x10),*(mp_size_t *)(puVar15 + -0xc));\n      uVar7 = mVar10 * 4;\n      if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        pvVar11 = (void *)((uint)(puVar15 + iVar8 + 0xf) & 0xfffffff0);\n        puVar15 = puVar15 + iVar8;\n      }\n      else {\n        *(uint *)(puVar15 + -0xc) = uVar7;\n        *(tmp_reentrant_t ***)(puVar15 + -0x10) = &__tmp_marker;\n        *(undefined4 *)(puVar15 + -0x14) = 0x45794;\n        pvVar11 = __gmp_tmp_reentrant_alloc\n                            (*(tmp_reentrant_t ***)(puVar15 + -0x10),*(size_t *)(puVar15 + -0xc));\n      }\n      puVar9 = puStack_40;\n      *(void **)(puVar15 + -8) = pvVar11;\n      puVar13 = local_38;\n      *(uint **)(puVar15 + -0xc) = local_30;\n      *(uint **)(puVar15 + -0x10) = puStack_3c;\n      *(uint **)(puVar15 + -0x14) = puVar9;\n      *(uint **)(puVar15 + -0x18) = puVar13;\n      *(uint **)(puVar15 + -0x1c) = puVar13;\n      *(uint **)(puVar15 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar15 + -0x24) = 0x45651;\n      __gmpn_mu_bdiv_qr(*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),\n                        *(mp_srcptr *)(puVar15 + -0x18),*(mp_size_t *)(puVar15 + -0x14),\n                        *(mp_srcptr *)(puVar15 + -0x10),*(mp_size_t *)(puVar15 + -0xc),\n                        *(mp_ptr *)(puVar15 + -8));\n    }\n  }" { (if_statement "if (*piVar3 == 0) {\n      apuStack_50[3] = puVar9;\n      *(undefined4 *)(puVar15 + -4) = 0x4572e;\n      __gmpn_cpuvec_init();\n      iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;\n      puVar9 = apuStack_50[3];\n    }" if (parenthesized_expression "(*piVar3 == 0)" ( (binary_expression "*piVar3 == 0" (pointer_expression "*piVar3" * identifier) == number_literal) )) (compound_statement "{\n      apuStack_50[3] = puVar9;\n      *(undefined4 *)(puVar15 + -4) = 0x4572e;\n      __gmpn_cpuvec_init();\n      iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;\n      puVar9 = apuStack_50[3];\n    }" { (expression_statement "apuStack_50[3] = puVar9;" (assignment_expression "apuStack_50[3] = puVar9" (subscript_expression "apuStack_50[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -4) = 0x4572e;" (assignment_expression "*(undefined4 *)(puVar15 + -4) = 0x4572e" (pointer_expression "*(undefined4 *)(puVar15 + -4)" * (cast_expression "(undefined4 *)(puVar15 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_cpuvec_init();" (call_expression "__gmpn_cpuvec_init()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;" (assignment_expression "iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2" identifier = (binary_expression "*(int *)((int)apuStack_50[1] + 0x94) * 2" (pointer_expression "*(int *)((int)apuStack_50[1] + 0x94)" * (cast_expression "(int *)((int)apuStack_50[1] + 0x94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)apuStack_50[1] + 0x94)" ( (binary_expression "(int)apuStack_50[1] + 0x94" (cast_expression "(int)apuStack_50[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "apuStack_50[1]" identifier [ number_literal ])) + number_literal) )))) * number_literal)) ;) (expression_statement "puVar9 = apuStack_50[3];" (assignment_expression "puVar9 = apuStack_50[3]" identifier = (subscript_expression "apuStack_50[3]" identifier [ number_literal ])) ;) })) (expression_statement "puVar13 = puStack_3c;" (assignment_expression "puVar13 = puStack_3c" identifier = identifier) ;) (if_statement "if ((int)puStack_40 < iVar8) goto LAB_00045444;" if (parenthesized_expression "((int)puStack_40 < iVar8)" ( (binary_expression "(int)puStack_40 < iVar8" (cast_expression "(int)puStack_40" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (goto_statement "goto LAB_00045444;" goto statement_identifier ;)) (if_statement "if ((int)local_30 < 2000) {\n      uVar7 = *puStack_3c;\n      uVar12 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n      iVar8 = uVar12 * 2 - uVar12 * uVar12 * uVar7;\n      *(uint *)(puVar15 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n      *(uint **)(puVar15 + -0x10) = local_30;\n      *(uint **)(puVar15 + -0x14) = puVar13;\n      puVar13 = local_38;\n      *(uint **)(puVar15 + -0x18) = puVar9;\n      *(uint **)(puVar15 + -0x1c) = puVar13;\n      *(uint **)(puVar15 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar15 + -0x24) = 0x456e7;\n      __gmpn_dcpi1_bdiv_qr\n                (*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),\n                 *(mp_size_t *)(puVar15 + -0x18),*(mp_srcptr *)(puVar15 + -0x14),\n                 *(mp_size_t *)(puVar15 + -0x10),*(mp_limb_t *)(puVar15 + -0xc));\n      local_38 = puVar13 + (int)puStack_40;\n    }\n    else {\n      *(uint **)(puVar15 + -0xc) = local_30;\n      *(uint **)(puVar15 + -0x10) = puVar9;\n      puStack_40 = puVar9;\n      *(undefined4 *)(puVar15 + -0x14) = 0x45613;\n      mVar10 = __gmpn_mu_bdiv_qr_itch\n                         (*(mp_size_t *)(puVar15 + -0x10),*(mp_size_t *)(puVar15 + -0xc));\n      uVar7 = mVar10 * 4;\n      if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        pvVar11 = (void *)((uint)(puVar15 + iVar8 + 0xf) & 0xfffffff0);\n        puVar15 = puVar15 + iVar8;\n      }\n      else {\n        *(uint *)(puVar15 + -0xc) = uVar7;\n        *(tmp_reentrant_t ***)(puVar15 + -0x10) = &__tmp_marker;\n        *(undefined4 *)(puVar15 + -0x14) = 0x45794;\n        pvVar11 = __gmp_tmp_reentrant_alloc\n                            (*(tmp_reentrant_t ***)(puVar15 + -0x10),*(size_t *)(puVar15 + -0xc));\n      }\n      puVar9 = puStack_40;\n      *(void **)(puVar15 + -8) = pvVar11;\n      puVar13 = local_38;\n      *(uint **)(puVar15 + -0xc) = local_30;\n      *(uint **)(puVar15 + -0x10) = puStack_3c;\n      *(uint **)(puVar15 + -0x14) = puVar9;\n      *(uint **)(puVar15 + -0x18) = puVar13;\n      *(uint **)(puVar15 + -0x1c) = puVar13;\n      *(uint **)(puVar15 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar15 + -0x24) = 0x45651;\n      __gmpn_mu_bdiv_qr(*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),\n                        *(mp_srcptr *)(puVar15 + -0x18),*(mp_size_t *)(puVar15 + -0x14),\n                        *(mp_srcptr *)(puVar15 + -0x10),*(mp_size_t *)(puVar15 + -0xc),\n                        *(mp_ptr *)(puVar15 + -8));\n    }" if (parenthesized_expression "((int)local_30 < 2000)" ( (binary_expression "(int)local_30 < 2000" (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar7 = *puStack_3c;\n      uVar12 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n      iVar8 = uVar12 * 2 - uVar12 * uVar12 * uVar7;\n      *(uint *)(puVar15 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n      *(uint **)(puVar15 + -0x10) = local_30;\n      *(uint **)(puVar15 + -0x14) = puVar13;\n      puVar13 = local_38;\n      *(uint **)(puVar15 + -0x18) = puVar9;\n      *(uint **)(puVar15 + -0x1c) = puVar13;\n      *(uint **)(puVar15 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar15 + -0x24) = 0x456e7;\n      __gmpn_dcpi1_bdiv_qr\n                (*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),\n                 *(mp_size_t *)(puVar15 + -0x18),*(mp_srcptr *)(puVar15 + -0x14),\n                 *(mp_size_t *)(puVar15 + -0x10),*(mp_limb_t *)(puVar15 + -0xc));\n      local_38 = puVar13 + (int)puStack_40;\n    }" { (expression_statement "uVar7 = *puStack_3c;" (assignment_expression "uVar7 = *puStack_3c" identifier = (pointer_expression "*puStack_3c" * identifier)) ;) (expression_statement "uVar12 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];" (assignment_expression "uVar12 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f]" identifier = (cast_expression "(uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_34[-0x4e][uVar7 >> 1 & 0x7f]" (subscript_expression "local_34[-0x4e]" identifier [ number_literal ]) [ (binary_expression "uVar7 >> 1 & 0x7f" (binary_expression "uVar7 >> 1" identifier >> number_literal) & number_literal) ])))) ;) (expression_statement "iVar8 = uVar12 * 2 - uVar12 * uVar12 * uVar7;" (assignment_expression "iVar8 = uVar12 * 2 - uVar12 * uVar12 * uVar7" identifier = (binary_expression "uVar12 * 2 - uVar12 * uVar12 * uVar7" (binary_expression "uVar12 * 2" identifier * number_literal) - (binary_expression "uVar12 * uVar12 * uVar7" (binary_expression "uVar12 * uVar12" identifier * identifier) * identifier))) ;) (expression_statement "*(uint *)(puVar15 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;" (assignment_expression "*(uint *)(puVar15 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2" (pointer_expression "*(uint *)(puVar15 + -0xc)" * (cast_expression "(uint *)(puVar15 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (binary_expression "iVar8 * iVar8 * uVar7 + iVar8 * -2" (binary_expression "iVar8 * iVar8 * uVar7" (binary_expression "iVar8 * iVar8" identifier * identifier) * identifier) + (binary_expression "iVar8 * -2" identifier * number_literal))) ;) (expression_statement "*(uint **)(puVar15 + -0x10) = local_30;" (assignment_expression "*(uint **)(puVar15 + -0x10) = local_30" (pointer_expression "*(uint **)(puVar15 + -0x10)" * (cast_expression "(uint **)(puVar15 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar15 + -0x14) = puVar13;" (assignment_expression "*(uint **)(puVar15 + -0x14) = puVar13" (pointer_expression "*(uint **)(puVar15 + -0x14)" * (cast_expression "(uint **)(puVar15 + -0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar13 = local_38;" (assignment_expression "puVar13 = local_38" identifier = identifier) ;) (expression_statement "*(uint **)(puVar15 + -0x18) = puVar9;" (assignment_expression "*(uint **)(puVar15 + -0x18) = puVar9" (pointer_expression "*(uint **)(puVar15 + -0x18)" * (cast_expression "(uint **)(puVar15 + -0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar15 + -0x1c) = puVar13;" (assignment_expression "*(uint **)(puVar15 + -0x1c) = puVar13" (pointer_expression "*(uint **)(puVar15 + -0x1c)" * (cast_expression "(uint **)(puVar15 + -0x1c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar15 + -0x20) = apuStack_50[0];" (assignment_expression "*(uint **)(puVar15 + -0x20) = apuStack_50[0]" (pointer_expression "*(uint **)(puVar15 + -0x20)" * (cast_expression "(uint **)(puVar15 + -0x20)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = (subscript_expression "apuStack_50[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = 0x456e7;" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = 0x456e7" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_dcpi1_bdiv_qr\n                (*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),\n                 *(mp_size_t *)(puVar15 + -0x18),*(mp_srcptr *)(puVar15 + -0x14),\n                 *(mp_size_t *)(puVar15 + -0x10),*(mp_limb_t *)(puVar15 + -0xc));" (call_expression "__gmpn_dcpi1_bdiv_qr\n                (*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),\n                 *(mp_size_t *)(puVar15 + -0x18),*(mp_srcptr *)(puVar15 + -0x14),\n                 *(mp_size_t *)(puVar15 + -0x10),*(mp_limb_t *)(puVar15 + -0xc))" identifier (argument_list "(*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),\n                 *(mp_size_t *)(puVar15 + -0x18),*(mp_srcptr *)(puVar15 + -0x14),\n                 *(mp_size_t *)(puVar15 + -0x10),*(mp_limb_t *)(puVar15 + -0xc))" ( (pointer_expression "*(mp_ptr *)(puVar15 + -0x20)" * (cast_expression "(mp_ptr *)(puVar15 + -0x20)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) , (pointer_expression "*(mp_ptr *)(puVar15 + -0x1c)" * (cast_expression "(mp_ptr *)(puVar15 + -0x1c)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) , (pointer_expression "*(mp_size_t *)(puVar15 + -0x18)" * (cast_expression "(mp_size_t *)(puVar15 + -0x18)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) , (pointer_expression "*(mp_srcptr *)(puVar15 + -0x14)" * (cast_expression "(mp_srcptr *)(puVar15 + -0x14)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) , (pointer_expression "*(mp_size_t *)(puVar15 + -0x10)" * (cast_expression "(mp_size_t *)(puVar15 + -0x10)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(mp_limb_t *)(puVar15 + -0xc)" * (cast_expression "(mp_limb_t *)(puVar15 + -0xc)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) ))) ;) (expression_statement "local_38 = puVar13 + (int)puStack_40;" (assignment_expression "local_38 = puVar13 + (int)puStack_40" identifier = (binary_expression "puVar13 + (int)puStack_40" identifier + (cast_expression "(int)puStack_40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n      *(uint **)(puVar15 + -0xc) = local_30;\n      *(uint **)(puVar15 + -0x10) = puVar9;\n      puStack_40 = puVar9;\n      *(undefined4 *)(puVar15 + -0x14) = 0x45613;\n      mVar10 = __gmpn_mu_bdiv_qr_itch\n                         (*(mp_size_t *)(puVar15 + -0x10),*(mp_size_t *)(puVar15 + -0xc));\n      uVar7 = mVar10 * 4;\n      if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        pvVar11 = (void *)((uint)(puVar15 + iVar8 + 0xf) & 0xfffffff0);\n        puVar15 = puVar15 + iVar8;\n      }\n      else {\n        *(uint *)(puVar15 + -0xc) = uVar7;\n        *(tmp_reentrant_t ***)(puVar15 + -0x10) = &__tmp_marker;\n        *(undefined4 *)(puVar15 + -0x14) = 0x45794;\n        pvVar11 = __gmp_tmp_reentrant_alloc\n                            (*(tmp_reentrant_t ***)(puVar15 + -0x10),*(size_t *)(puVar15 + -0xc));\n      }\n      puVar9 = puStack_40;\n      *(void **)(puVar15 + -8) = pvVar11;\n      puVar13 = local_38;\n      *(uint **)(puVar15 + -0xc) = local_30;\n      *(uint **)(puVar15 + -0x10) = puStack_3c;\n      *(uint **)(puVar15 + -0x14) = puVar9;\n      *(uint **)(puVar15 + -0x18) = puVar13;\n      *(uint **)(puVar15 + -0x1c) = puVar13;\n      *(uint **)(puVar15 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar15 + -0x24) = 0x45651;\n      __gmpn_mu_bdiv_qr(*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),\n                        *(mp_srcptr *)(puVar15 + -0x18),*(mp_size_t *)(puVar15 + -0x14),\n                        *(mp_srcptr *)(puVar15 + -0x10),*(mp_size_t *)(puVar15 + -0xc),\n                        *(mp_ptr *)(puVar15 + -8));\n    }" else (compound_statement "{\n      *(uint **)(puVar15 + -0xc) = local_30;\n      *(uint **)(puVar15 + -0x10) = puVar9;\n      puStack_40 = puVar9;\n      *(undefined4 *)(puVar15 + -0x14) = 0x45613;\n      mVar10 = __gmpn_mu_bdiv_qr_itch\n                         (*(mp_size_t *)(puVar15 + -0x10),*(mp_size_t *)(puVar15 + -0xc));\n      uVar7 = mVar10 * 4;\n      if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        pvVar11 = (void *)((uint)(puVar15 + iVar8 + 0xf) & 0xfffffff0);\n        puVar15 = puVar15 + iVar8;\n      }\n      else {\n        *(uint *)(puVar15 + -0xc) = uVar7;\n        *(tmp_reentrant_t ***)(puVar15 + -0x10) = &__tmp_marker;\n        *(undefined4 *)(puVar15 + -0x14) = 0x45794;\n        pvVar11 = __gmp_tmp_reentrant_alloc\n                            (*(tmp_reentrant_t ***)(puVar15 + -0x10),*(size_t *)(puVar15 + -0xc));\n      }\n      puVar9 = puStack_40;\n      *(void **)(puVar15 + -8) = pvVar11;\n      puVar13 = local_38;\n      *(uint **)(puVar15 + -0xc) = local_30;\n      *(uint **)(puVar15 + -0x10) = puStack_3c;\n      *(uint **)(puVar15 + -0x14) = puVar9;\n      *(uint **)(puVar15 + -0x18) = puVar13;\n      *(uint **)(puVar15 + -0x1c) = puVar13;\n      *(uint **)(puVar15 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar15 + -0x24) = 0x45651;\n      __gmpn_mu_bdiv_qr(*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),\n                        *(mp_srcptr *)(puVar15 + -0x18),*(mp_size_t *)(puVar15 + -0x14),\n                        *(mp_srcptr *)(puVar15 + -0x10),*(mp_size_t *)(puVar15 + -0xc),\n                        *(mp_ptr *)(puVar15 + -8));\n    }" { (expression_statement "*(uint **)(puVar15 + -0xc) = local_30;" (assignment_expression "*(uint **)(puVar15 + -0xc) = local_30" (pointer_expression "*(uint **)(puVar15 + -0xc)" * (cast_expression "(uint **)(puVar15 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar15 + -0x10) = puVar9;" (assignment_expression "*(uint **)(puVar15 + -0x10) = puVar9" (pointer_expression "*(uint **)(puVar15 + -0x10)" * (cast_expression "(uint **)(puVar15 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "puStack_40 = puVar9;" (assignment_expression "puStack_40 = puVar9" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x45613;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x45613" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "mVar10 = __gmpn_mu_bdiv_qr_itch\n                         (*(mp_size_t *)(puVar15 + -0x10),*(mp_size_t *)(puVar15 + -0xc));" (assignment_expression "mVar10 = __gmpn_mu_bdiv_qr_itch\n                         (*(mp_size_t *)(puVar15 + -0x10),*(mp_size_t *)(puVar15 + -0xc))" identifier = (call_expression "__gmpn_mu_bdiv_qr_itch\n                         (*(mp_size_t *)(puVar15 + -0x10),*(mp_size_t *)(puVar15 + -0xc))" identifier (argument_list "(*(mp_size_t *)(puVar15 + -0x10),*(mp_size_t *)(puVar15 + -0xc))" ( (pointer_expression "*(mp_size_t *)(puVar15 + -0x10)" * (cast_expression "(mp_size_t *)(puVar15 + -0x10)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(mp_size_t *)(puVar15 + -0xc)" * (cast_expression "(mp_size_t *)(puVar15 + -0xc)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) )))) ;) (expression_statement "uVar7 = mVar10 * 4;" (assignment_expression "uVar7 = mVar10 * 4" identifier = (binary_expression "mVar10 * 4" identifier * number_literal)) ;) (if_statement "if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        pvVar11 = (void *)((uint)(puVar15 + iVar8 + 0xf) & 0xfffffff0);\n        puVar15 = puVar15 + iVar8;\n      }\n      else {\n        *(uint *)(puVar15 + -0xc) = uVar7;\n        *(tmp_reentrant_t ***)(puVar15 + -0x10) = &__tmp_marker;\n        *(undefined4 *)(puVar15 + -0x14) = 0x45794;\n        pvVar11 = __gmp_tmp_reentrant_alloc\n                            (*(tmp_reentrant_t ***)(puVar15 + -0x10),*(size_t *)(puVar15 + -0xc));\n      }" if (parenthesized_expression "(uVar7 < 0x7f01)" ( (binary_expression "uVar7 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        pvVar11 = (void *)((uint)(puVar15 + iVar8 + 0xf) & 0xfffffff0);\n        puVar15 = puVar15 + iVar8;\n      }" { (expression_statement "iVar8 = -(uVar7 + 0x1b & 0xfffffff0);" (assignment_expression "iVar8 = -(uVar7 + 0x1b & 0xfffffff0)" identifier = (unary_expression "-(uVar7 + 0x1b & 0xfffffff0)" - (parenthesized_expression "(uVar7 + 0x1b & 0xfffffff0)" ( (binary_expression "uVar7 + 0x1b & 0xfffffff0" (binary_expression "uVar7 + 0x1b" identifier + number_literal) & number_literal) )))) ;) (expression_statement "pvVar11 = (void *)((uint)(puVar15 + iVar8 + 0xf) & 0xfffffff0);" (assignment_expression "pvVar11 = (void *)((uint)(puVar15 + iVar8 + 0xf) & 0xfffffff0)" identifier = (cast_expression "(void *)((uint)(puVar15 + iVar8 + 0xf) & 0xfffffff0)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(puVar15 + iVar8 + 0xf) & 0xfffffff0)" ( (binary_expression "(uint)(puVar15 + iVar8 + 0xf) & 0xfffffff0" (call_expression "(uint)(puVar15 + iVar8 + 0xf)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar15 + iVar8 + 0xf)" ( (binary_expression "puVar15 + iVar8 + 0xf" (binary_expression "puVar15 + iVar8" identifier + identifier) + number_literal) ))) & number_literal) )))) ;) (expression_statement "puVar15 = puVar15 + iVar8;" (assignment_expression "puVar15 = puVar15 + iVar8" identifier = (binary_expression "puVar15 + iVar8" identifier + identifier)) ;) }) (else_clause "else {\n        *(uint *)(puVar15 + -0xc) = uVar7;\n        *(tmp_reentrant_t ***)(puVar15 + -0x10) = &__tmp_marker;\n        *(undefined4 *)(puVar15 + -0x14) = 0x45794;\n        pvVar11 = __gmp_tmp_reentrant_alloc\n                            (*(tmp_reentrant_t ***)(puVar15 + -0x10),*(size_t *)(puVar15 + -0xc));\n      }" else (compound_statement "{\n        *(uint *)(puVar15 + -0xc) = uVar7;\n        *(tmp_reentrant_t ***)(puVar15 + -0x10) = &__tmp_marker;\n        *(undefined4 *)(puVar15 + -0x14) = 0x45794;\n        pvVar11 = __gmp_tmp_reentrant_alloc\n                            (*(tmp_reentrant_t ***)(puVar15 + -0x10),*(size_t *)(puVar15 + -0xc));\n      }" { (expression_statement "*(uint *)(puVar15 + -0xc) = uVar7;" (assignment_expression "*(uint *)(puVar15 + -0xc) = uVar7" (pointer_expression "*(uint *)(puVar15 + -0xc)" * (cast_expression "(uint *)(puVar15 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(tmp_reentrant_t ***)(puVar15 + -0x10) = &__tmp_marker;" (assignment_expression "*(tmp_reentrant_t ***)(puVar15 + -0x10) = &__tmp_marker" (pointer_expression "*(tmp_reentrant_t ***)(puVar15 + -0x10)" * (cast_expression "(tmp_reentrant_t ***)(puVar15 + -0x10)" ( (type_descriptor "tmp_reentrant_t ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (pointer_expression "&__tmp_marker" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x45794;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x45794" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pvVar11 = __gmp_tmp_reentrant_alloc\n                            (*(tmp_reentrant_t ***)(puVar15 + -0x10),*(size_t *)(puVar15 + -0xc));" (assignment_expression "pvVar11 = __gmp_tmp_reentrant_alloc\n                            (*(tmp_reentrant_t ***)(puVar15 + -0x10),*(size_t *)(puVar15 + -0xc))" identifier = (call_expression "__gmp_tmp_reentrant_alloc\n                            (*(tmp_reentrant_t ***)(puVar15 + -0x10),*(size_t *)(puVar15 + -0xc))" identifier (argument_list "(*(tmp_reentrant_t ***)(puVar15 + -0x10),*(size_t *)(puVar15 + -0xc))" ( (pointer_expression "*(tmp_reentrant_t ***)(puVar15 + -0x10)" * (cast_expression "(tmp_reentrant_t ***)(puVar15 + -0x10)" ( (type_descriptor "tmp_reentrant_t ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(size_t *)(puVar15 + -0xc)" * (cast_expression "(size_t *)(puVar15 + -0xc)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) )))) ;) }))) (expression_statement "puVar9 = puStack_40;" (assignment_expression "puVar9 = puStack_40" identifier = identifier) ;) (expression_statement "*(void **)(puVar15 + -8) = pvVar11;" (assignment_expression "*(void **)(puVar15 + -8) = pvVar11" (pointer_expression "*(void **)(puVar15 + -8)" * (cast_expression "(void **)(puVar15 + -8)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar13 = local_38;" (assignment_expression "puVar13 = local_38" identifier = identifier) ;) (expression_statement "*(uint **)(puVar15 + -0xc) = local_30;" (assignment_expression "*(uint **)(puVar15 + -0xc) = local_30" (pointer_expression "*(uint **)(puVar15 + -0xc)" * (cast_expression "(uint **)(puVar15 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar15 + -0x10) = puStack_3c;" (assignment_expression "*(uint **)(puVar15 + -0x10) = puStack_3c" (pointer_expression "*(uint **)(puVar15 + -0x10)" * (cast_expression "(uint **)(puVar15 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar15 + -0x14) = puVar9;" (assignment_expression "*(uint **)(puVar15 + -0x14) = puVar9" (pointer_expression "*(uint **)(puVar15 + -0x14)" * (cast_expression "(uint **)(puVar15 + -0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar15 + -0x18) = puVar13;" (assignment_expression "*(uint **)(puVar15 + -0x18) = puVar13" (pointer_expression "*(uint **)(puVar15 + -0x18)" * (cast_expression "(uint **)(puVar15 + -0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar15 + -0x1c) = puVar13;" (assignment_expression "*(uint **)(puVar15 + -0x1c) = puVar13" (pointer_expression "*(uint **)(puVar15 + -0x1c)" * (cast_expression "(uint **)(puVar15 + -0x1c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar15 + -0x20) = apuStack_50[0];" (assignment_expression "*(uint **)(puVar15 + -0x20) = apuStack_50[0]" (pointer_expression "*(uint **)(puVar15 + -0x20)" * (cast_expression "(uint **)(puVar15 + -0x20)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = (subscript_expression "apuStack_50[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = 0x45651;" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = 0x45651" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_mu_bdiv_qr(*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),\n                        *(mp_srcptr *)(puVar15 + -0x18),*(mp_size_t *)(puVar15 + -0x14),\n                        *(mp_srcptr *)(puVar15 + -0x10),*(mp_size_t *)(puVar15 + -0xc),\n                        *(mp_ptr *)(puVar15 + -8));" (call_expression "__gmpn_mu_bdiv_qr(*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),\n                        *(mp_srcptr *)(puVar15 + -0x18),*(mp_size_t *)(puVar15 + -0x14),\n                        *(mp_srcptr *)(puVar15 + -0x10),*(mp_size_t *)(puVar15 + -0xc),\n                        *(mp_ptr *)(puVar15 + -8))" identifier (argument_list "(*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),\n                        *(mp_srcptr *)(puVar15 + -0x18),*(mp_size_t *)(puVar15 + -0x14),\n                        *(mp_srcptr *)(puVar15 + -0x10),*(mp_size_t *)(puVar15 + -0xc),\n                        *(mp_ptr *)(puVar15 + -8))" ( (pointer_expression "*(mp_ptr *)(puVar15 + -0x20)" * (cast_expression "(mp_ptr *)(puVar15 + -0x20)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) , (pointer_expression "*(mp_ptr *)(puVar15 + -0x1c)" * (cast_expression "(mp_ptr *)(puVar15 + -0x1c)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) , (pointer_expression "*(mp_srcptr *)(puVar15 + -0x18)" * (cast_expression "(mp_srcptr *)(puVar15 + -0x18)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) , (pointer_expression "*(mp_size_t *)(puVar15 + -0x14)" * (cast_expression "(mp_size_t *)(puVar15 + -0x14)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) , (pointer_expression "*(mp_srcptr *)(puVar15 + -0x10)" * (cast_expression "(mp_srcptr *)(puVar15 + -0x10)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(mp_size_t *)(puVar15 + -0xc)" * (cast_expression "(mp_size_t *)(puVar15 + -0xc)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) , (pointer_expression "*(mp_ptr *)(puVar15 + -8)" * (cast_expression "(mp_ptr *)(puVar15 + -8)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) ))) ;) }))) }) (else_clause "else {\nLAB_00045444:\n    puVar13 = puStack_3c;\n    uVar7 = *puStack_3c;\n    uVar12 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n    iVar8 = uVar12 * 2 - uVar12 * uVar12 * uVar7;\n    *(uint *)(puVar15 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n    *(uint **)(puVar15 + -0x10) = local_30;\n    *(uint **)(puVar15 + -0x14) = puVar13;\n    puVar13 = local_38;\n    *(uint **)(puVar15 + -0x18) = puVar9;\n    *(uint **)(puVar15 + -0x1c) = puVar13;\n    *(uint **)(puVar15 + -0x20) = apuStack_50[0];\n    *(undefined4 *)(puVar15 + -0x24) = 0x4548b;\n    __gmpn_sbpi1_bdiv_qr\n              (*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),\n               *(mp_size_t *)(puVar15 + -0x18),*(mp_srcptr *)(puVar15 + -0x14),\n               *(mp_size_t *)(puVar15 + -0x10),*(mp_limb_t *)(puVar15 + -0xc));\n    local_38 = puVar13 + (int)puStack_40;\n  }" else (compound_statement "{\nLAB_00045444:\n    puVar13 = puStack_3c;\n    uVar7 = *puStack_3c;\n    uVar12 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n    iVar8 = uVar12 * 2 - uVar12 * uVar12 * uVar7;\n    *(uint *)(puVar15 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n    *(uint **)(puVar15 + -0x10) = local_30;\n    *(uint **)(puVar15 + -0x14) = puVar13;\n    puVar13 = local_38;\n    *(uint **)(puVar15 + -0x18) = puVar9;\n    *(uint **)(puVar15 + -0x1c) = puVar13;\n    *(uint **)(puVar15 + -0x20) = apuStack_50[0];\n    *(undefined4 *)(puVar15 + -0x24) = 0x4548b;\n    __gmpn_sbpi1_bdiv_qr\n              (*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),\n               *(mp_size_t *)(puVar15 + -0x18),*(mp_srcptr *)(puVar15 + -0x14),\n               *(mp_size_t *)(puVar15 + -0x10),*(mp_limb_t *)(puVar15 + -0xc));\n    local_38 = puVar13 + (int)puStack_40;\n  }" { (labeled_statement "LAB_00045444:\n    puVar13 = puStack_3c;" statement_identifier : (expression_statement "puVar13 = puStack_3c;" (assignment_expression "puVar13 = puStack_3c" identifier = identifier) ;)) (expression_statement "uVar7 = *puStack_3c;" (assignment_expression "uVar7 = *puStack_3c" identifier = (pointer_expression "*puStack_3c" * identifier)) ;) (expression_statement "uVar12 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];" (assignment_expression "uVar12 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f]" identifier = (cast_expression "(uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_34[-0x4e][uVar7 >> 1 & 0x7f]" (subscript_expression "local_34[-0x4e]" identifier [ number_literal ]) [ (binary_expression "uVar7 >> 1 & 0x7f" (binary_expression "uVar7 >> 1" identifier >> number_literal) & number_literal) ])))) ;) (expression_statement "iVar8 = uVar12 * 2 - uVar12 * uVar12 * uVar7;" (assignment_expression "iVar8 = uVar12 * 2 - uVar12 * uVar12 * uVar7" identifier = (binary_expression "uVar12 * 2 - uVar12 * uVar12 * uVar7" (binary_expression "uVar12 * 2" identifier * number_literal) - (binary_expression "uVar12 * uVar12 * uVar7" (binary_expression "uVar12 * uVar12" identifier * identifier) * identifier))) ;) (expression_statement "*(uint *)(puVar15 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;" (assignment_expression "*(uint *)(puVar15 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2" (pointer_expression "*(uint *)(puVar15 + -0xc)" * (cast_expression "(uint *)(puVar15 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (binary_expression "iVar8 * iVar8 * uVar7 + iVar8 * -2" (binary_expression "iVar8 * iVar8 * uVar7" (binary_expression "iVar8 * iVar8" identifier * identifier) * identifier) + (binary_expression "iVar8 * -2" identifier * number_literal))) ;) (expression_statement "*(uint **)(puVar15 + -0x10) = local_30;" (assignment_expression "*(uint **)(puVar15 + -0x10) = local_30" (pointer_expression "*(uint **)(puVar15 + -0x10)" * (cast_expression "(uint **)(puVar15 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar15 + -0x14) = puVar13;" (assignment_expression "*(uint **)(puVar15 + -0x14) = puVar13" (pointer_expression "*(uint **)(puVar15 + -0x14)" * (cast_expression "(uint **)(puVar15 + -0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar13 = local_38;" (assignment_expression "puVar13 = local_38" identifier = identifier) ;) (expression_statement "*(uint **)(puVar15 + -0x18) = puVar9;" (assignment_expression "*(uint **)(puVar15 + -0x18) = puVar9" (pointer_expression "*(uint **)(puVar15 + -0x18)" * (cast_expression "(uint **)(puVar15 + -0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar15 + -0x1c) = puVar13;" (assignment_expression "*(uint **)(puVar15 + -0x1c) = puVar13" (pointer_expression "*(uint **)(puVar15 + -0x1c)" * (cast_expression "(uint **)(puVar15 + -0x1c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar15 + -0x20) = apuStack_50[0];" (assignment_expression "*(uint **)(puVar15 + -0x20) = apuStack_50[0]" (pointer_expression "*(uint **)(puVar15 + -0x20)" * (cast_expression "(uint **)(puVar15 + -0x20)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = (subscript_expression "apuStack_50[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = 0x4548b;" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = 0x4548b" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_sbpi1_bdiv_qr\n              (*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),\n               *(mp_size_t *)(puVar15 + -0x18),*(mp_srcptr *)(puVar15 + -0x14),\n               *(mp_size_t *)(puVar15 + -0x10),*(mp_limb_t *)(puVar15 + -0xc));" (call_expression "__gmpn_sbpi1_bdiv_qr\n              (*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),\n               *(mp_size_t *)(puVar15 + -0x18),*(mp_srcptr *)(puVar15 + -0x14),\n               *(mp_size_t *)(puVar15 + -0x10),*(mp_limb_t *)(puVar15 + -0xc))" identifier (argument_list "(*(mp_ptr *)(puVar15 + -0x20),*(mp_ptr *)(puVar15 + -0x1c),\n               *(mp_size_t *)(puVar15 + -0x18),*(mp_srcptr *)(puVar15 + -0x14),\n               *(mp_size_t *)(puVar15 + -0x10),*(mp_limb_t *)(puVar15 + -0xc))" ( (pointer_expression "*(mp_ptr *)(puVar15 + -0x20)" * (cast_expression "(mp_ptr *)(puVar15 + -0x20)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) , (pointer_expression "*(mp_ptr *)(puVar15 + -0x1c)" * (cast_expression "(mp_ptr *)(puVar15 + -0x1c)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) , (pointer_expression "*(mp_size_t *)(puVar15 + -0x18)" * (cast_expression "(mp_size_t *)(puVar15 + -0x18)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) , (pointer_expression "*(mp_srcptr *)(puVar15 + -0x14)" * (cast_expression "(mp_srcptr *)(puVar15 + -0x14)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) , (pointer_expression "*(mp_size_t *)(puVar15 + -0x10)" * (cast_expression "(mp_size_t *)(puVar15 + -0x10)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(mp_limb_t *)(puVar15 + -0xc)" * (cast_expression "(mp_limb_t *)(puVar15 + -0xc)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) ))) ;) (expression_statement "local_38 = puVar13 + (int)puStack_40;" (assignment_expression "local_38 = puVar13 + (int)puStack_40" identifier = (binary_expression "puVar13 + (int)puStack_40" identifier + (cast_expression "(int)puStack_40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }))) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n    if (local_38[iVar8] != 0) goto LAB_000454ba;\n    iVar8 = iVar8 + 1;\n  } while (iVar8 < (int)local_30);" do (compound_statement "{\n    if (local_38[iVar8] != 0) goto LAB_000454ba;\n    iVar8 = iVar8 + 1;\n  }" { (if_statement "if (local_38[iVar8] != 0) goto LAB_000454ba;" if (parenthesized_expression "(local_38[iVar8] != 0)" ( (binary_expression "local_38[iVar8] != 0" (subscript_expression "local_38[iVar8]" identifier [ identifier ]) != number_literal) )) (goto_statement "goto LAB_000454ba;" goto statement_identifier ;)) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar8 < (int)local_30)" ( (binary_expression "iVar8 < (int)local_30" identifier < (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (expression_statement "puVar9 = (uint *)0x1;" (assignment_expression "puVar9 = (uint *)0x1" identifier = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar14 = puVar15;" (assignment_expression "puVar14 = puVar15" identifier = identifier) ;) (if_statement "if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n    local_30 = (uint *)0x1;\n    *(tmp_reentrant_t **)(puVar15 + -0x10) = __tmp_marker;\n    *(undefined4 *)(puVar15 + -0x14) = 0x45585;\n    __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar15 + -0x10));\n    puVar9 = local_30;\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    local_30 = (uint *)0x1;\n    *(tmp_reentrant_t **)(puVar15 + -0x10) = __tmp_marker;\n    *(undefined4 *)(puVar15 + -0x14) = 0x45585;\n    __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar15 + -0x10));\n    puVar9 = local_30;\n  }" { (expression_statement "local_30 = (uint *)0x1;" (assignment_expression "local_30 = (uint *)0x1" identifier = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(tmp_reentrant_t **)(puVar15 + -0x10) = __tmp_marker;" (assignment_expression "*(tmp_reentrant_t **)(puVar15 + -0x10) = __tmp_marker" (pointer_expression "*(tmp_reentrant_t **)(puVar15 + -0x10)" * (cast_expression "(tmp_reentrant_t **)(puVar15 + -0x10)" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x45585;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x45585" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar15 + -0x10));" (call_expression "__gmp_tmp_reentrant_free(*(tmp_reentrant_t **)(puVar15 + -0x10))" identifier (argument_list "(*(tmp_reentrant_t **)(puVar15 + -0x10))" ( (pointer_expression "*(tmp_reentrant_t **)(puVar15 + -0x10)" * (cast_expression "(tmp_reentrant_t **)(puVar15 + -0x10)" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) ))) ;) (expression_statement "puVar9 = local_30;" (assignment_expression "puVar9 = local_30" identifier = identifier) ;) })) (labeled_statement "LAB_000452d0:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)(puVar14 + -4) = 0x457b7;\n    __stack_chk_fail_local();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)(puVar14 + -4) = 0x457b7;\n    __stack_chk_fail_local();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    *(undefined4 *)(puVar14 + -4) = 0x457b7;\n    __stack_chk_fail_local();\n  }" { comment (expression_statement "*(undefined4 *)(puVar14 + -4) = 0x457b7;" (assignment_expression "*(undefined4 *)(puVar14 + -4) = 0x457b7" (pointer_expression "*(undefined4 *)(puVar14 + -4)" * (cast_expression "(undefined4 *)(puVar14 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -4)" ( (binary_expression "puVar14 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return (int)puVar9;" return (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) ;) })))
(translation_unit "uint * __gmpn_divisible_p(uint *param_1,uint *param_2,uint *param_3,uint *param_4)\n\n{\n  undefined *puVar1;\n  code *pcVar2;\n  int *piVar3;\n  byte bVar4;\n  uint *puVar5;\n  undefined **ppuVar6;\n  uint uVar7;\n  int iVar8;\n  uint *puVar9;\n  uint uVar10;\n  uint *puVar11;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  int in_GS_OFFSET;\n  undefined1 auStack_5c [4];\n  uint *puStack_58;\n  uint *puStack_54;\n  uint *apuStack_50 [4];\n  uint *puStack_40;\n  uint *puStack_3c;\n  uint *local_38;\n  undefined **local_34;\n  uint *local_30;\n  int iStack_24;\n  int local_20;\n  \n  puVar13 = auStack_5c;\n  puVar12 = auStack_5c;\n  local_34 = &__DT_PLTGOT;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if ((int)param_2 < (int)param_4) {\n    puVar9 = (uint *)(uint)(param_2 == (uint *)0x0);\n    local_34 = &__DT_PLTGOT;\n    goto LAB_000452d0;\n  }\n  puVar9 = (uint *)*param_3;\n  uVar7 = *param_1;\n  puVar11 = param_2;\n  if (puVar9 == (uint *)0x0) {\n    do {\n      if (uVar7 != 0) goto LAB_000452ce;\n      puVar11 = (uint *)((int)puVar11 + -1);\n      param_3 = param_3 + 1;\n      param_1 = param_1 + 1;\n      uVar7 = *param_1;\n      local_30 = (uint *)(((int)puVar11 + (int)param_4) - (int)param_2);\n      puVar9 = (uint *)*param_3;\n    } while (puVar9 == (uint *)0x0);\n  }\n  else {\n    local_30 = param_4;\n  }\n  uVar10 = (-(int)puVar9 & (uint)puVar9) - 1;\n  puVar13 = auStack_5c;\n  local_34 = &__DT_PLTGOT;\n  if ((uVar7 & uVar10) != 0) {\nLAB_000452ce:\n    puVar9 = (uint *)0x0;\n    puVar12 = puVar13;\n    goto LAB_000452d0;\n  }\n  if (local_30 == (uint *)0x1) {\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_38 = puVar11;\n      local_30 = puVar9;\n      __gmpn_cpuvec_init();\n      puVar9 = local_30;\n      puVar11 = local_38;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      bVar4 = 0;\n      for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;\n          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {\n        bVar4 = bVar4 + 1;\n      }\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }\n  apuStack_50[3] = (uint *)0x0;\n  for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000))\n  {\n    apuStack_50[3] = (uint *)((int)apuStack_50[3] + 1);\n  }\n  if ((local_30 == (uint *)0x2) && (param_3[1] <= uVar10)) {\n    bVar4 = 0;\n    for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)\n        ) {\n      bVar4 = bVar4 + 1;\n    }\n    uVar7 = param_3[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f);\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_30 = puVar11;\n      __gmpn_cpuvec_init();\n      puVar11 = local_30;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,uVar7,0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }\n  puStack_54 = (uint *)((int)puVar11 + 1);\n  puStack_40 = (uint *)((int)puVar11 - (int)local_30);\n  iStack_24 = 0;\n  uVar7 = ((int)puStack_40 + 1 + (int)puStack_54) * 4;\n  if (uVar7 < 0x7f01) {\n    iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n    puVar13 = auStack_5c + iVar8;\n    local_38 = (uint *)((int)apuStack_50 + iVar8);\n  }\n  else {\n    apuStack_50[2] = puStack_54;\n    puStack_3c = puVar11;\n    local_38 = (uint *)__gmp_tmp_reentrant_alloc(&iStack_24,uVar7);\n    puVar13 = auStack_5c;\n    puStack_54 = apuStack_50[2];\n    puVar11 = puStack_3c;\n  }\n  ppuVar6 = local_34;\n  apuStack_50[2] = (uint *)((int)puStack_54 * 4);\n  apuStack_50[0] = local_38 + (int)puStack_54;\n  if (apuStack_50[3] == (uint *)0x0) {\n    *(uint **)(puVar13 + -8) = puVar11;\n    *(uint **)(puVar13 + -0xc) = param_1;\n    puVar1 = ppuVar6[-0x9b];\n    *(uint **)(puVar13 + -0x10) = local_38;\n    pcVar2 = *(code **)(puVar1 + 0x28);\n    apuStack_50[1] = (uint *)puVar1;\n    apuStack_50[3] = puVar11;\n    *(undefined4 *)(puVar13 + -0x14) = 0x45555;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    puStack_3c = param_3;\n  }\n  else {\n    uVar7 = (int)local_30 * 4;\n    apuStack_50[1] = puVar11;\n    if (uVar7 < 0x7f01) {\n      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n      puStack_3c = (uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0);\n      puVar13 = puVar13 + iVar8;\n    }\n    else {\n      *(uint *)(puVar13 + -0xc) = uVar7;\n      *(int **)(puVar13 + -0x10) = &iStack_24;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc();\n    }\n    puVar11 = apuStack_50[3];\n    puVar1 = local_34[-0x9b];\n    puStack_58 = puStack_54;\n    puStack_54 = apuStack_50[1];\n    *(uint **)(puVar13 + -4) = apuStack_50[3];\n    *(uint **)(puVar13 + -8) = local_30;\n    *(uint **)(puVar13 + -0xc) = param_3;\n    *(uint **)(puVar13 + -0x10) = puStack_3c;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    apuStack_50[1] = (uint *)puVar1;\n    *(undefined4 *)(puVar13 + -0x14) = 0x453c5;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = param_1;\n    *(uint **)(puVar13 + -0x20) = local_38;\n    apuStack_50[3] = puVar9;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    *(undefined4 *)(puVar13 + -0x24) = 0x453d7;\n    (*pcVar2)();\n    puVar9 = puStack_58;\n  }\n  if (*(uint *)((int)local_38 + (int)apuStack_50[2] + -8) < puStack_3c[(int)local_30 + -1]) {\n    if (local_30 == apuStack_50[3]) {\nLAB_000454ba:\n      if (iStack_24 != 0) {\n        *(int *)(puVar13 + -0x10) = iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free();\n      }\n      goto LAB_000452ce;\n    }\n  }\n  else {\n    *(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0;\n    puStack_40 = (uint *)((int)puVar9 - (int)local_30);\n    apuStack_50[3] = puVar9;\n  }\n  piVar3 = (int *)local_34[-0xaa];\n  puVar9 = apuStack_50[3];\n  if (*piVar3 == 0) {\n    *(undefined4 *)(puVar13 + -4) = 0x45702;\n    __gmpn_cpuvec_init();\n    puVar9 = apuStack_50[3];\n  }\n  apuStack_50[3] = *(uint **)((int)apuStack_50[1] + 0x94);\n  iVar8 = (int)apuStack_50[3] * 2;\n  if (SBORROW4((int)local_30,iVar8) == (int)local_30 + (int)apuStack_50[3] * -2 < 0) {\n    if (*piVar3 == 0) {\n      apuStack_50[3] = puVar9;\n      *(undefined4 *)(puVar13 + -4) = 0x4572e;\n      __gmpn_cpuvec_init();\n      iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;\n      puVar9 = apuStack_50[3];\n    }\n    puVar11 = puStack_3c;\n    if ((int)puStack_40 < iVar8) goto LAB_00045444;\n    if ((int)local_30 < 2000) {\n      uVar7 = *puStack_3c;\n      uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n      iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n      *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n      *(uint **)(puVar13 + -0x10) = local_30;\n      *(uint **)(puVar13 + -0x14) = puVar11;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0x18) = puVar9;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x456e7;\n      __gmpn_dcpi1_bdiv_qr();\n      local_38 = puVar11 + (int)puStack_40;\n    }\n    else {\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puVar9;\n      puStack_40 = puVar9;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45613;\n      iVar8 = __gmpn_mu_bdiv_qr_itch();\n      uVar7 = iVar8 * 4;\n      if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;\n        puVar13 = puVar13 + iVar8;\n      }\n      else {\n        *(uint *)(puVar13 + -0xc) = uVar7;\n        *(int **)(puVar13 + -0x10) = &iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x45794;\n        uVar7 = __gmp_tmp_reentrant_alloc();\n      }\n      puVar9 = puStack_40;\n      *(uint *)(puVar13 + -8) = uVar7;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puStack_3c;\n      *(uint **)(puVar13 + -0x14) = puVar9;\n      *(uint **)(puVar13 + -0x18) = puVar11;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x45651;\n      __gmpn_mu_bdiv_qr();\n    }\n  }\n  else {\nLAB_00045444:\n    puVar11 = puStack_3c;\n    uVar7 = *puStack_3c;\n    uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n    iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n    *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n    *(uint **)(puVar13 + -0x10) = local_30;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    puVar11 = local_38;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = puVar11;\n    *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n    *(undefined4 *)(puVar13 + -0x24) = 0x4548b;\n    __gmpn_sbpi1_bdiv_qr();\n    local_38 = puVar11 + (int)puStack_40;\n  }\n  iVar8 = 0;\n  do {\n    if (local_38[iVar8] != 0) goto LAB_000454ba;\n    iVar8 = iVar8 + 1;\n  } while (iVar8 < (int)local_30);\n  puVar9 = (uint *)0x1;\n  puVar12 = puVar13;\n  if (iStack_24 != 0) {\n    local_30 = (uint *)0x1;\n    *(int *)(puVar13 + -0x10) = iStack_24;\n    *(undefined4 *)(puVar13 + -0x14) = 0x45585;\n    __gmp_tmp_reentrant_free();\n    puVar9 = local_30;\n  }\nLAB_000452d0:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    *(undefined4 *)(puVar12 + -4) = 0x457b7;\n    FUN_00079d30();\n  }\n  return puVar9;\n}\n\n" (function_definition "uint * __gmpn_divisible_p(uint *param_1,uint *param_2,uint *param_3,uint *param_4)\n\n{\n  undefined *puVar1;\n  code *pcVar2;\n  int *piVar3;\n  byte bVar4;\n  uint *puVar5;\n  undefined **ppuVar6;\n  uint uVar7;\n  int iVar8;\n  uint *puVar9;\n  uint uVar10;\n  uint *puVar11;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  int in_GS_OFFSET;\n  undefined1 auStack_5c [4];\n  uint *puStack_58;\n  uint *puStack_54;\n  uint *apuStack_50 [4];\n  uint *puStack_40;\n  uint *puStack_3c;\n  uint *local_38;\n  undefined **local_34;\n  uint *local_30;\n  int iStack_24;\n  int local_20;\n  \n  puVar13 = auStack_5c;\n  puVar12 = auStack_5c;\n  local_34 = &__DT_PLTGOT;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if ((int)param_2 < (int)param_4) {\n    puVar9 = (uint *)(uint)(param_2 == (uint *)0x0);\n    local_34 = &__DT_PLTGOT;\n    goto LAB_000452d0;\n  }\n  puVar9 = (uint *)*param_3;\n  uVar7 = *param_1;\n  puVar11 = param_2;\n  if (puVar9 == (uint *)0x0) {\n    do {\n      if (uVar7 != 0) goto LAB_000452ce;\n      puVar11 = (uint *)((int)puVar11 + -1);\n      param_3 = param_3 + 1;\n      param_1 = param_1 + 1;\n      uVar7 = *param_1;\n      local_30 = (uint *)(((int)puVar11 + (int)param_4) - (int)param_2);\n      puVar9 = (uint *)*param_3;\n    } while (puVar9 == (uint *)0x0);\n  }\n  else {\n    local_30 = param_4;\n  }\n  uVar10 = (-(int)puVar9 & (uint)puVar9) - 1;\n  puVar13 = auStack_5c;\n  local_34 = &__DT_PLTGOT;\n  if ((uVar7 & uVar10) != 0) {\nLAB_000452ce:\n    puVar9 = (uint *)0x0;\n    puVar12 = puVar13;\n    goto LAB_000452d0;\n  }\n  if (local_30 == (uint *)0x1) {\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_38 = puVar11;\n      local_30 = puVar9;\n      __gmpn_cpuvec_init();\n      puVar9 = local_30;\n      puVar11 = local_38;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      bVar4 = 0;\n      for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;\n          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {\n        bVar4 = bVar4 + 1;\n      }\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }\n  apuStack_50[3] = (uint *)0x0;\n  for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000))\n  {\n    apuStack_50[3] = (uint *)((int)apuStack_50[3] + 1);\n  }\n  if ((local_30 == (uint *)0x2) && (param_3[1] <= uVar10)) {\n    bVar4 = 0;\n    for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)\n        ) {\n      bVar4 = bVar4 + 1;\n    }\n    uVar7 = param_3[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f);\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_30 = puVar11;\n      __gmpn_cpuvec_init();\n      puVar11 = local_30;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,uVar7,0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }\n  puStack_54 = (uint *)((int)puVar11 + 1);\n  puStack_40 = (uint *)((int)puVar11 - (int)local_30);\n  iStack_24 = 0;\n  uVar7 = ((int)puStack_40 + 1 + (int)puStack_54) * 4;\n  if (uVar7 < 0x7f01) {\n    iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n    puVar13 = auStack_5c + iVar8;\n    local_38 = (uint *)((int)apuStack_50 + iVar8);\n  }\n  else {\n    apuStack_50[2] = puStack_54;\n    puStack_3c = puVar11;\n    local_38 = (uint *)__gmp_tmp_reentrant_alloc(&iStack_24,uVar7);\n    puVar13 = auStack_5c;\n    puStack_54 = apuStack_50[2];\n    puVar11 = puStack_3c;\n  }\n  ppuVar6 = local_34;\n  apuStack_50[2] = (uint *)((int)puStack_54 * 4);\n  apuStack_50[0] = local_38 + (int)puStack_54;\n  if (apuStack_50[3] == (uint *)0x0) {\n    *(uint **)(puVar13 + -8) = puVar11;\n    *(uint **)(puVar13 + -0xc) = param_1;\n    puVar1 = ppuVar6[-0x9b];\n    *(uint **)(puVar13 + -0x10) = local_38;\n    pcVar2 = *(code **)(puVar1 + 0x28);\n    apuStack_50[1] = (uint *)puVar1;\n    apuStack_50[3] = puVar11;\n    *(undefined4 *)(puVar13 + -0x14) = 0x45555;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    puStack_3c = param_3;\n  }\n  else {\n    uVar7 = (int)local_30 * 4;\n    apuStack_50[1] = puVar11;\n    if (uVar7 < 0x7f01) {\n      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n      puStack_3c = (uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0);\n      puVar13 = puVar13 + iVar8;\n    }\n    else {\n      *(uint *)(puVar13 + -0xc) = uVar7;\n      *(int **)(puVar13 + -0x10) = &iStack_24;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc();\n    }\n    puVar11 = apuStack_50[3];\n    puVar1 = local_34[-0x9b];\n    puStack_58 = puStack_54;\n    puStack_54 = apuStack_50[1];\n    *(uint **)(puVar13 + -4) = apuStack_50[3];\n    *(uint **)(puVar13 + -8) = local_30;\n    *(uint **)(puVar13 + -0xc) = param_3;\n    *(uint **)(puVar13 + -0x10) = puStack_3c;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    apuStack_50[1] = (uint *)puVar1;\n    *(undefined4 *)(puVar13 + -0x14) = 0x453c5;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = param_1;\n    *(uint **)(puVar13 + -0x20) = local_38;\n    apuStack_50[3] = puVar9;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    *(undefined4 *)(puVar13 + -0x24) = 0x453d7;\n    (*pcVar2)();\n    puVar9 = puStack_58;\n  }\n  if (*(uint *)((int)local_38 + (int)apuStack_50[2] + -8) < puStack_3c[(int)local_30 + -1]) {\n    if (local_30 == apuStack_50[3]) {\nLAB_000454ba:\n      if (iStack_24 != 0) {\n        *(int *)(puVar13 + -0x10) = iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free();\n      }\n      goto LAB_000452ce;\n    }\n  }\n  else {\n    *(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0;\n    puStack_40 = (uint *)((int)puVar9 - (int)local_30);\n    apuStack_50[3] = puVar9;\n  }\n  piVar3 = (int *)local_34[-0xaa];\n  puVar9 = apuStack_50[3];\n  if (*piVar3 == 0) {\n    *(undefined4 *)(puVar13 + -4) = 0x45702;\n    __gmpn_cpuvec_init();\n    puVar9 = apuStack_50[3];\n  }\n  apuStack_50[3] = *(uint **)((int)apuStack_50[1] + 0x94);\n  iVar8 = (int)apuStack_50[3] * 2;\n  if (SBORROW4((int)local_30,iVar8) == (int)local_30 + (int)apuStack_50[3] * -2 < 0) {\n    if (*piVar3 == 0) {\n      apuStack_50[3] = puVar9;\n      *(undefined4 *)(puVar13 + -4) = 0x4572e;\n      __gmpn_cpuvec_init();\n      iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;\n      puVar9 = apuStack_50[3];\n    }\n    puVar11 = puStack_3c;\n    if ((int)puStack_40 < iVar8) goto LAB_00045444;\n    if ((int)local_30 < 2000) {\n      uVar7 = *puStack_3c;\n      uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n      iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n      *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n      *(uint **)(puVar13 + -0x10) = local_30;\n      *(uint **)(puVar13 + -0x14) = puVar11;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0x18) = puVar9;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x456e7;\n      __gmpn_dcpi1_bdiv_qr();\n      local_38 = puVar11 + (int)puStack_40;\n    }\n    else {\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puVar9;\n      puStack_40 = puVar9;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45613;\n      iVar8 = __gmpn_mu_bdiv_qr_itch();\n      uVar7 = iVar8 * 4;\n      if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;\n        puVar13 = puVar13 + iVar8;\n      }\n      else {\n        *(uint *)(puVar13 + -0xc) = uVar7;\n        *(int **)(puVar13 + -0x10) = &iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x45794;\n        uVar7 = __gmp_tmp_reentrant_alloc();\n      }\n      puVar9 = puStack_40;\n      *(uint *)(puVar13 + -8) = uVar7;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puStack_3c;\n      *(uint **)(puVar13 + -0x14) = puVar9;\n      *(uint **)(puVar13 + -0x18) = puVar11;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x45651;\n      __gmpn_mu_bdiv_qr();\n    }\n  }\n  else {\nLAB_00045444:\n    puVar11 = puStack_3c;\n    uVar7 = *puStack_3c;\n    uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n    iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n    *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n    *(uint **)(puVar13 + -0x10) = local_30;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    puVar11 = local_38;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = puVar11;\n    *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n    *(undefined4 *)(puVar13 + -0x24) = 0x4548b;\n    __gmpn_sbpi1_bdiv_qr();\n    local_38 = puVar11 + (int)puStack_40;\n  }\n  iVar8 = 0;\n  do {\n    if (local_38[iVar8] != 0) goto LAB_000454ba;\n    iVar8 = iVar8 + 1;\n  } while (iVar8 < (int)local_30);\n  puVar9 = (uint *)0x1;\n  puVar12 = puVar13;\n  if (iStack_24 != 0) {\n    local_30 = (uint *)0x1;\n    *(int *)(puVar13 + -0x10) = iStack_24;\n    *(undefined4 *)(puVar13 + -0x14) = 0x45585;\n    __gmp_tmp_reentrant_free();\n    puVar9 = local_30;\n  }\nLAB_000452d0:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    *(undefined4 *)(puVar12 + -4) = 0x457b7;\n    FUN_00079d30();\n  }\n  return puVar9;\n}" type_identifier (pointer_declarator "* __gmpn_divisible_p(uint *param_1,uint *param_2,uint *param_3,uint *param_4)" * (function_declarator "__gmpn_divisible_p(uint *param_1,uint *param_2,uint *param_3,uint *param_4)" identifier (parameter_list "(uint *param_1,uint *param_2,uint *param_3,uint *param_4)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) )))) (compound_statement "{\n  undefined *puVar1;\n  code *pcVar2;\n  int *piVar3;\n  byte bVar4;\n  uint *puVar5;\n  undefined **ppuVar6;\n  uint uVar7;\n  int iVar8;\n  uint *puVar9;\n  uint uVar10;\n  uint *puVar11;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  int in_GS_OFFSET;\n  undefined1 auStack_5c [4];\n  uint *puStack_58;\n  uint *puStack_54;\n  uint *apuStack_50 [4];\n  uint *puStack_40;\n  uint *puStack_3c;\n  uint *local_38;\n  undefined **local_34;\n  uint *local_30;\n  int iStack_24;\n  int local_20;\n  \n  puVar13 = auStack_5c;\n  puVar12 = auStack_5c;\n  local_34 = &__DT_PLTGOT;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if ((int)param_2 < (int)param_4) {\n    puVar9 = (uint *)(uint)(param_2 == (uint *)0x0);\n    local_34 = &__DT_PLTGOT;\n    goto LAB_000452d0;\n  }\n  puVar9 = (uint *)*param_3;\n  uVar7 = *param_1;\n  puVar11 = param_2;\n  if (puVar9 == (uint *)0x0) {\n    do {\n      if (uVar7 != 0) goto LAB_000452ce;\n      puVar11 = (uint *)((int)puVar11 + -1);\n      param_3 = param_3 + 1;\n      param_1 = param_1 + 1;\n      uVar7 = *param_1;\n      local_30 = (uint *)(((int)puVar11 + (int)param_4) - (int)param_2);\n      puVar9 = (uint *)*param_3;\n    } while (puVar9 == (uint *)0x0);\n  }\n  else {\n    local_30 = param_4;\n  }\n  uVar10 = (-(int)puVar9 & (uint)puVar9) - 1;\n  puVar13 = auStack_5c;\n  local_34 = &__DT_PLTGOT;\n  if ((uVar7 & uVar10) != 0) {\nLAB_000452ce:\n    puVar9 = (uint *)0x0;\n    puVar12 = puVar13;\n    goto LAB_000452d0;\n  }\n  if (local_30 == (uint *)0x1) {\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_38 = puVar11;\n      local_30 = puVar9;\n      __gmpn_cpuvec_init();\n      puVar9 = local_30;\n      puVar11 = local_38;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      bVar4 = 0;\n      for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;\n          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {\n        bVar4 = bVar4 + 1;\n      }\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }\n  apuStack_50[3] = (uint *)0x0;\n  for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000))\n  {\n    apuStack_50[3] = (uint *)((int)apuStack_50[3] + 1);\n  }\n  if ((local_30 == (uint *)0x2) && (param_3[1] <= uVar10)) {\n    bVar4 = 0;\n    for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)\n        ) {\n      bVar4 = bVar4 + 1;\n    }\n    uVar7 = param_3[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f);\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_30 = puVar11;\n      __gmpn_cpuvec_init();\n      puVar11 = local_30;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,uVar7,0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }\n  puStack_54 = (uint *)((int)puVar11 + 1);\n  puStack_40 = (uint *)((int)puVar11 - (int)local_30);\n  iStack_24 = 0;\n  uVar7 = ((int)puStack_40 + 1 + (int)puStack_54) * 4;\n  if (uVar7 < 0x7f01) {\n    iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n    puVar13 = auStack_5c + iVar8;\n    local_38 = (uint *)((int)apuStack_50 + iVar8);\n  }\n  else {\n    apuStack_50[2] = puStack_54;\n    puStack_3c = puVar11;\n    local_38 = (uint *)__gmp_tmp_reentrant_alloc(&iStack_24,uVar7);\n    puVar13 = auStack_5c;\n    puStack_54 = apuStack_50[2];\n    puVar11 = puStack_3c;\n  }\n  ppuVar6 = local_34;\n  apuStack_50[2] = (uint *)((int)puStack_54 * 4);\n  apuStack_50[0] = local_38 + (int)puStack_54;\n  if (apuStack_50[3] == (uint *)0x0) {\n    *(uint **)(puVar13 + -8) = puVar11;\n    *(uint **)(puVar13 + -0xc) = param_1;\n    puVar1 = ppuVar6[-0x9b];\n    *(uint **)(puVar13 + -0x10) = local_38;\n    pcVar2 = *(code **)(puVar1 + 0x28);\n    apuStack_50[1] = (uint *)puVar1;\n    apuStack_50[3] = puVar11;\n    *(undefined4 *)(puVar13 + -0x14) = 0x45555;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    puStack_3c = param_3;\n  }\n  else {\n    uVar7 = (int)local_30 * 4;\n    apuStack_50[1] = puVar11;\n    if (uVar7 < 0x7f01) {\n      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n      puStack_3c = (uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0);\n      puVar13 = puVar13 + iVar8;\n    }\n    else {\n      *(uint *)(puVar13 + -0xc) = uVar7;\n      *(int **)(puVar13 + -0x10) = &iStack_24;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc();\n    }\n    puVar11 = apuStack_50[3];\n    puVar1 = local_34[-0x9b];\n    puStack_58 = puStack_54;\n    puStack_54 = apuStack_50[1];\n    *(uint **)(puVar13 + -4) = apuStack_50[3];\n    *(uint **)(puVar13 + -8) = local_30;\n    *(uint **)(puVar13 + -0xc) = param_3;\n    *(uint **)(puVar13 + -0x10) = puStack_3c;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    apuStack_50[1] = (uint *)puVar1;\n    *(undefined4 *)(puVar13 + -0x14) = 0x453c5;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = param_1;\n    *(uint **)(puVar13 + -0x20) = local_38;\n    apuStack_50[3] = puVar9;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    *(undefined4 *)(puVar13 + -0x24) = 0x453d7;\n    (*pcVar2)();\n    puVar9 = puStack_58;\n  }\n  if (*(uint *)((int)local_38 + (int)apuStack_50[2] + -8) < puStack_3c[(int)local_30 + -1]) {\n    if (local_30 == apuStack_50[3]) {\nLAB_000454ba:\n      if (iStack_24 != 0) {\n        *(int *)(puVar13 + -0x10) = iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free();\n      }\n      goto LAB_000452ce;\n    }\n  }\n  else {\n    *(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0;\n    puStack_40 = (uint *)((int)puVar9 - (int)local_30);\n    apuStack_50[3] = puVar9;\n  }\n  piVar3 = (int *)local_34[-0xaa];\n  puVar9 = apuStack_50[3];\n  if (*piVar3 == 0) {\n    *(undefined4 *)(puVar13 + -4) = 0x45702;\n    __gmpn_cpuvec_init();\n    puVar9 = apuStack_50[3];\n  }\n  apuStack_50[3] = *(uint **)((int)apuStack_50[1] + 0x94);\n  iVar8 = (int)apuStack_50[3] * 2;\n  if (SBORROW4((int)local_30,iVar8) == (int)local_30 + (int)apuStack_50[3] * -2 < 0) {\n    if (*piVar3 == 0) {\n      apuStack_50[3] = puVar9;\n      *(undefined4 *)(puVar13 + -4) = 0x4572e;\n      __gmpn_cpuvec_init();\n      iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;\n      puVar9 = apuStack_50[3];\n    }\n    puVar11 = puStack_3c;\n    if ((int)puStack_40 < iVar8) goto LAB_00045444;\n    if ((int)local_30 < 2000) {\n      uVar7 = *puStack_3c;\n      uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n      iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n      *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n      *(uint **)(puVar13 + -0x10) = local_30;\n      *(uint **)(puVar13 + -0x14) = puVar11;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0x18) = puVar9;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x456e7;\n      __gmpn_dcpi1_bdiv_qr();\n      local_38 = puVar11 + (int)puStack_40;\n    }\n    else {\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puVar9;\n      puStack_40 = puVar9;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45613;\n      iVar8 = __gmpn_mu_bdiv_qr_itch();\n      uVar7 = iVar8 * 4;\n      if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;\n        puVar13 = puVar13 + iVar8;\n      }\n      else {\n        *(uint *)(puVar13 + -0xc) = uVar7;\n        *(int **)(puVar13 + -0x10) = &iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x45794;\n        uVar7 = __gmp_tmp_reentrant_alloc();\n      }\n      puVar9 = puStack_40;\n      *(uint *)(puVar13 + -8) = uVar7;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puStack_3c;\n      *(uint **)(puVar13 + -0x14) = puVar9;\n      *(uint **)(puVar13 + -0x18) = puVar11;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x45651;\n      __gmpn_mu_bdiv_qr();\n    }\n  }\n  else {\nLAB_00045444:\n    puVar11 = puStack_3c;\n    uVar7 = *puStack_3c;\n    uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n    iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n    *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n    *(uint **)(puVar13 + -0x10) = local_30;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    puVar11 = local_38;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = puVar11;\n    *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n    *(undefined4 *)(puVar13 + -0x24) = 0x4548b;\n    __gmpn_sbpi1_bdiv_qr();\n    local_38 = puVar11 + (int)puStack_40;\n  }\n  iVar8 = 0;\n  do {\n    if (local_38[iVar8] != 0) goto LAB_000454ba;\n    iVar8 = iVar8 + 1;\n  } while (iVar8 < (int)local_30);\n  puVar9 = (uint *)0x1;\n  puVar12 = puVar13;\n  if (iStack_24 != 0) {\n    local_30 = (uint *)0x1;\n    *(int *)(puVar13 + -0x10) = iStack_24;\n    *(undefined4 *)(puVar13 + -0x14) = 0x45585;\n    __gmp_tmp_reentrant_free();\n    puVar9 = local_30;\n  }\nLAB_000452d0:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    *(undefined4 *)(puVar12 + -4) = 0x457b7;\n    FUN_00079d30();\n  }\n  return puVar9;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "code *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined **ppuVar6;" type_identifier (pointer_declarator "**ppuVar6" * (pointer_declarator "*ppuVar6" * identifier)) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined1 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined1 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined1 auStack_5c [4];" type_identifier (array_declarator "auStack_5c [4]" identifier [ number_literal ]) ;) (declaration "uint *puStack_58;" type_identifier (pointer_declarator "*puStack_58" * identifier) ;) (declaration "uint *puStack_54;" type_identifier (pointer_declarator "*puStack_54" * identifier) ;) (declaration "uint *apuStack_50 [4];" type_identifier (pointer_declarator "*apuStack_50 [4]" * (array_declarator "apuStack_50 [4]" identifier [ number_literal ])) ;) (declaration "uint *puStack_40;" type_identifier (pointer_declarator "*puStack_40" * identifier) ;) (declaration "uint *puStack_3c;" type_identifier (pointer_declarator "*puStack_3c" * identifier) ;) (declaration "uint *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "undefined **local_34;" type_identifier (pointer_declarator "**local_34" * (pointer_declarator "*local_34" * identifier)) ;) (declaration "uint *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "int iStack_24;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "puVar13 = auStack_5c;" (assignment_expression "puVar13 = auStack_5c" identifier = identifier) ;) (expression_statement "puVar12 = auStack_5c;" (assignment_expression "puVar12 = auStack_5c" identifier = identifier) ;) (expression_statement "local_34 = &__DT_PLTGOT;" (assignment_expression "local_34 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if ((int)param_2 < (int)param_4) {\n    puVar9 = (uint *)(uint)(param_2 == (uint *)0x0);\n    local_34 = &__DT_PLTGOT;\n    goto LAB_000452d0;\n  }" if (parenthesized_expression "((int)param_2 < (int)param_4)" ( (binary_expression "(int)param_2 < (int)param_4" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    puVar9 = (uint *)(uint)(param_2 == (uint *)0x0);\n    local_34 = &__DT_PLTGOT;\n    goto LAB_000452d0;\n  }" { (expression_statement "puVar9 = (uint *)(uint)(param_2 == (uint *)0x0);" (assignment_expression "puVar9 = (uint *)(uint)(param_2 == (uint *)0x0)" identifier = (cast_expression "(uint *)(uint)(param_2 == (uint *)0x0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(param_2 == (uint *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_2 == (uint *)0x0)" ( (binary_expression "param_2 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))))) ;) (expression_statement "local_34 = &__DT_PLTGOT;" (assignment_expression "local_34 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (goto_statement "goto LAB_000452d0;" goto statement_identifier ;) })) (expression_statement "puVar9 = (uint *)*param_3;" (assignment_expression "puVar9 = (uint *)*param_3" identifier = (cast_expression "(uint *)*param_3" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) (expression_statement "uVar7 = *param_1;" (assignment_expression "uVar7 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "puVar11 = param_2;" (assignment_expression "puVar11 = param_2" identifier = identifier) ;) (if_statement "if (puVar9 == (uint *)0x0) {\n    do {\n      if (uVar7 != 0) goto LAB_000452ce;\n      puVar11 = (uint *)((int)puVar11 + -1);\n      param_3 = param_3 + 1;\n      param_1 = param_1 + 1;\n      uVar7 = *param_1;\n      local_30 = (uint *)(((int)puVar11 + (int)param_4) - (int)param_2);\n      puVar9 = (uint *)*param_3;\n    } while (puVar9 == (uint *)0x0);\n  }\n  else {\n    local_30 = param_4;\n  }" if (parenthesized_expression "(puVar9 == (uint *)0x0)" ( (binary_expression "puVar9 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      if (uVar7 != 0) goto LAB_000452ce;\n      puVar11 = (uint *)((int)puVar11 + -1);\n      param_3 = param_3 + 1;\n      param_1 = param_1 + 1;\n      uVar7 = *param_1;\n      local_30 = (uint *)(((int)puVar11 + (int)param_4) - (int)param_2);\n      puVar9 = (uint *)*param_3;\n    } while (puVar9 == (uint *)0x0);\n  }" { (do_statement "do {\n      if (uVar7 != 0) goto LAB_000452ce;\n      puVar11 = (uint *)((int)puVar11 + -1);\n      param_3 = param_3 + 1;\n      param_1 = param_1 + 1;\n      uVar7 = *param_1;\n      local_30 = (uint *)(((int)puVar11 + (int)param_4) - (int)param_2);\n      puVar9 = (uint *)*param_3;\n    } while (puVar9 == (uint *)0x0);" do (compound_statement "{\n      if (uVar7 != 0) goto LAB_000452ce;\n      puVar11 = (uint *)((int)puVar11 + -1);\n      param_3 = param_3 + 1;\n      param_1 = param_1 + 1;\n      uVar7 = *param_1;\n      local_30 = (uint *)(((int)puVar11 + (int)param_4) - (int)param_2);\n      puVar9 = (uint *)*param_3;\n    }" { (if_statement "if (uVar7 != 0) goto LAB_000452ce;" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000452ce;" goto statement_identifier ;)) (expression_statement "puVar11 = (uint *)((int)puVar11 + -1);" (assignment_expression "puVar11 = (uint *)((int)puVar11 + -1)" identifier = (cast_expression "(uint *)((int)puVar11 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + -1)" ( (binary_expression "(int)puVar11 + -1" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "uVar7 = *param_1;" (assignment_expression "uVar7 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "local_30 = (uint *)(((int)puVar11 + (int)param_4) - (int)param_2);" (assignment_expression "local_30 = (uint *)(((int)puVar11 + (int)param_4) - (int)param_2)" identifier = (cast_expression "(uint *)(((int)puVar11 + (int)param_4) - (int)param_2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)puVar11 + (int)param_4) - (int)param_2)" ( (binary_expression "((int)puVar11 + (int)param_4) - (int)param_2" (parenthesized_expression "((int)puVar11 + (int)param_4)" ( (binary_expression "(int)puVar11 + (int)param_4" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) )) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar9 = (uint *)*param_3;" (assignment_expression "puVar9 = (uint *)*param_3" identifier = (cast_expression "(uint *)*param_3" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) }) while (parenthesized_expression "(puVar9 == (uint *)0x0)" ( (binary_expression "puVar9 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }) (else_clause "else {\n    local_30 = param_4;\n  }" else (compound_statement "{\n    local_30 = param_4;\n  }" { (expression_statement "local_30 = param_4;" (assignment_expression "local_30 = param_4" identifier = identifier) ;) }))) (expression_statement "uVar10 = (-(int)puVar9 & (uint)puVar9) - 1;" (assignment_expression "uVar10 = (-(int)puVar9 & (uint)puVar9) - 1" identifier = (binary_expression "(-(int)puVar9 & (uint)puVar9) - 1" (parenthesized_expression "(-(int)puVar9 & (uint)puVar9)" ( (binary_expression "-(int)puVar9 & (uint)puVar9" (unary_expression "-(int)puVar9" - (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier)) & (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier)) )) - number_literal)) ;) (expression_statement "puVar13 = auStack_5c;" (assignment_expression "puVar13 = auStack_5c" identifier = identifier) ;) (expression_statement "local_34 = &__DT_PLTGOT;" (assignment_expression "local_34 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (if_statement "if ((uVar7 & uVar10) != 0) {\nLAB_000452ce:\n    puVar9 = (uint *)0x0;\n    puVar12 = puVar13;\n    goto LAB_000452d0;\n  }" if (parenthesized_expression "((uVar7 & uVar10) != 0)" ( (binary_expression "(uVar7 & uVar10) != 0" (parenthesized_expression "(uVar7 & uVar10)" ( (binary_expression "uVar7 & uVar10" identifier & identifier) )) != number_literal) )) (compound_statement "{\nLAB_000452ce:\n    puVar9 = (uint *)0x0;\n    puVar12 = puVar13;\n    goto LAB_000452d0;\n  }" { (labeled_statement "LAB_000452ce:\n    puVar9 = (uint *)0x0;" statement_identifier : (expression_statement "puVar9 = (uint *)0x0;" (assignment_expression "puVar9 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "puVar12 = puVar13;" (assignment_expression "puVar12 = puVar13" identifier = identifier) ;) (goto_statement "goto LAB_000452d0;" goto statement_identifier ;) })) (if_statement "if (local_30 == (uint *)0x1) {\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_38 = puVar11;\n      local_30 = puVar9;\n      __gmpn_cpuvec_init();\n      puVar9 = local_30;\n      puVar11 = local_38;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      bVar4 = 0;\n      for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;\n          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {\n        bVar4 = bVar4 + 1;\n      }\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }" if (parenthesized_expression "(local_30 == (uint *)0x1)" ( (binary_expression "local_30 == (uint *)0x1" identifier == (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_38 = puVar11;\n      local_30 = puVar9;\n      __gmpn_cpuvec_init();\n      puVar9 = local_30;\n      puVar11 = local_38;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      bVar4 = 0;\n      for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;\n          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {\n        bVar4 = bVar4 + 1;\n      }\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }" { (if_statement "if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_38 = puVar11;\n      local_30 = puVar9;\n      __gmpn_cpuvec_init();\n      puVar9 = local_30;\n      puVar11 = local_38;\n    }" if (parenthesized_expression "(*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0)" ( (binary_expression "*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0" (pointer_expression "*(int *)PTR___gmpn_cpuvec_initialized_00098d58" * (cast_expression "(int *)PTR___gmpn_cpuvec_initialized_00098d58" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n      local_38 = puVar11;\n      local_30 = puVar9;\n      __gmpn_cpuvec_init();\n      puVar9 = local_30;\n      puVar11 = local_38;\n    }" { (expression_statement "local_38 = puVar11;" (assignment_expression "local_38 = puVar11" identifier = identifier) ;) (expression_statement "local_30 = puVar9;" (assignment_expression "local_30 = puVar9" identifier = identifier) ;) (expression_statement "__gmpn_cpuvec_init();" (call_expression "__gmpn_cpuvec_init()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar9 = local_30;" (assignment_expression "puVar9 = local_30" identifier = identifier) ;) (expression_statement "puVar11 = local_38;" (assignment_expression "puVar11 = local_38" identifier = identifier) ;) })) (expression_statement "puVar1 = local_34[-0x9b];" (assignment_expression "puVar1 = local_34[-0x9b]" identifier = (subscript_expression "local_34[-0x9b]" identifier [ number_literal ])) ;) (if_statement "if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      bVar4 = 0;\n      for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;\n          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {\n        bVar4 = bVar4 + 1;\n      }\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }" if (parenthesized_expression "((int)puVar11 < *(int *)(puVar1 + 0xa4))" ( (binary_expression "(int)puVar11 < *(int *)(puVar1 + 0xa4)" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(puVar1 + 0xa4)" * (cast_expression "(int *)(puVar1 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0xa4)" ( (binary_expression "puVar1 + 0xa4" identifier + number_literal) ))))) )) (compound_statement "{\n      bVar4 = 0;\n      for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;\n          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {\n        bVar4 = bVar4 + 1;\n      }\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }" { (expression_statement "bVar4 = 0;" (assignment_expression "bVar4 = 0" identifier = number_literal) ;) (for_statement "for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;\n          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {\n        bVar4 = bVar4 + 1;\n      }" for ( (assignment_expression "puVar5 = puVar9" identifier = identifier) ; (binary_expression "((uint)puVar5 & 1) == 0" (parenthesized_expression "((uint)puVar5 & 1)" ( (binary_expression "(uint)puVar5 & 1" (cast_expression "(uint)puVar5" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) ; (assignment_expression "puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)" identifier = (cast_expression "(uint *)((uint)puVar5 >> 1 | 0x80000000)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)puVar5 >> 1 | 0x80000000)" ( (binary_expression "(uint)puVar5 >> 1 | 0x80000000" (binary_expression "(uint)puVar5 >> 1" (cast_expression "(uint)puVar5" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) | number_literal) )))) ) (compound_statement "{\n        bVar4 = bVar4 + 1;\n      }" { (expression_statement "bVar4 = bVar4 + 1;" (assignment_expression "bVar4 = bVar4 + 1" identifier = (binary_expression "bVar4 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0);" (assignment_expression "iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0)" identifier = (call_expression "(**(code **)(puVar1 + 0x60))(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0)" (parenthesized_expression "(**(code **)(puVar1 + 0x60))" ( (pointer_expression "**(code **)(puVar1 + 0x60)" * (pointer_expression "*(code **)(puVar1 + 0x60)" * (cast_expression "(code **)(puVar1 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + 0x60)" ( (binary_expression "puVar1 + 0x60" identifier + number_literal) ))))) )) (argument_list "(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0)" ( identifier , identifier , (binary_expression "(uint)puVar9 >> (bVar4 & 0x1f)" (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier) >> (parenthesized_expression "(bVar4 & 0x1f)" ( (binary_expression "bVar4 & 0x1f" identifier & number_literal) ))) , number_literal )))) ;) (expression_statement "puVar9 = (uint *)(uint)(iVar8 == 0);" (assignment_expression "puVar9 = (uint *)(uint)(iVar8 == 0)" identifier = (cast_expression "(uint *)(uint)(iVar8 == 0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(iVar8 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) ))))) ;) (expression_statement "puVar12 = auStack_5c;" (assignment_expression "puVar12 = auStack_5c" identifier = identifier) ;) }) (else_clause "else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }" else (compound_statement "{\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }" { (expression_statement "iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9);" (assignment_expression "iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9)" identifier = (call_expression "(**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9)" (parenthesized_expression "(**(code **)(puVar1 + 0x40))" ( (pointer_expression "**(code **)(puVar1 + 0x40)" * (pointer_expression "*(code **)(puVar1 + 0x40)" * (cast_expression "(code **)(puVar1 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + 0x40)" ( (binary_expression "puVar1 + 0x40" identifier + number_literal) ))))) )) (argument_list "(param_1,puVar11,puVar9)" ( identifier , identifier , identifier )))) ;) (expression_statement "puVar9 = (uint *)(uint)(iVar8 == 0);" (assignment_expression "puVar9 = (uint *)(uint)(iVar8 == 0)" identifier = (cast_expression "(uint *)(uint)(iVar8 == 0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(iVar8 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) ))))) ;) (expression_statement "puVar12 = auStack_5c;" (assignment_expression "puVar12 = auStack_5c" identifier = identifier) ;) }))) (goto_statement "goto LAB_000452d0;" goto statement_identifier ;) })) (expression_statement "apuStack_50[3] = (uint *)0x0;" (assignment_expression "apuStack_50[3] = (uint *)0x0" (subscript_expression "apuStack_50[3]" identifier [ number_literal ]) = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (for_statement "for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000))\n  {\n    apuStack_50[3] = (uint *)((int)apuStack_50[3] + 1);\n  }" for ( (assignment_expression "puVar5 = puVar9" identifier = identifier) ; (binary_expression "((uint)puVar5 & 1) == 0" (parenthesized_expression "((uint)puVar5 & 1)" ( (binary_expression "(uint)puVar5 & 1" (cast_expression "(uint)puVar5" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) ; (assignment_expression "puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)" identifier = (cast_expression "(uint *)((uint)puVar5 >> 1 | 0x80000000)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)puVar5 >> 1 | 0x80000000)" ( (binary_expression "(uint)puVar5 >> 1 | 0x80000000" (binary_expression "(uint)puVar5 >> 1" (cast_expression "(uint)puVar5" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) | number_literal) )))) ) (compound_statement "{\n    apuStack_50[3] = (uint *)((int)apuStack_50[3] + 1);\n  }" { (expression_statement "apuStack_50[3] = (uint *)((int)apuStack_50[3] + 1);" (assignment_expression "apuStack_50[3] = (uint *)((int)apuStack_50[3] + 1)" (subscript_expression "apuStack_50[3]" identifier [ number_literal ]) = (cast_expression "(uint *)((int)apuStack_50[3] + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)apuStack_50[3] + 1)" ( (binary_expression "(int)apuStack_50[3] + 1" (cast_expression "(int)apuStack_50[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "apuStack_50[3]" identifier [ number_literal ])) + number_literal) )))) ;) })) (if_statement "if ((local_30 == (uint *)0x2) && (param_3[1] <= uVar10)) {\n    bVar4 = 0;\n    for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)\n        ) {\n      bVar4 = bVar4 + 1;\n    }\n    uVar7 = param_3[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f);\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_30 = puVar11;\n      __gmpn_cpuvec_init();\n      puVar11 = local_30;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,uVar7,0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }" if (parenthesized_expression "((local_30 == (uint *)0x2) && (param_3[1] <= uVar10))" ( (binary_expression "(local_30 == (uint *)0x2) && (param_3[1] <= uVar10)" (parenthesized_expression "(local_30 == (uint *)0x2)" ( (binary_expression "local_30 == (uint *)0x2" identifier == (cast_expression "(uint *)0x2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(param_3[1] <= uVar10)" ( (binary_expression "param_3[1] <= uVar10" (subscript_expression "param_3[1]" identifier [ number_literal ]) <= identifier) ))) )) (compound_statement "{\n    bVar4 = 0;\n    for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)\n        ) {\n      bVar4 = bVar4 + 1;\n    }\n    uVar7 = param_3[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f);\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_30 = puVar11;\n      __gmpn_cpuvec_init();\n      puVar11 = local_30;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,uVar7,0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }" { (expression_statement "bVar4 = 0;" (assignment_expression "bVar4 = 0" identifier = number_literal) ;) (for_statement "for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)\n        ) {\n      bVar4 = bVar4 + 1;\n    }" for ( (assignment_expression "puVar5 = puVar9" identifier = identifier) ; (binary_expression "((uint)puVar5 & 1) == 0" (parenthesized_expression "((uint)puVar5 & 1)" ( (binary_expression "(uint)puVar5 & 1" (cast_expression "(uint)puVar5" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) ; (assignment_expression "puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)" identifier = (cast_expression "(uint *)((uint)puVar5 >> 1 | 0x80000000)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)puVar5 >> 1 | 0x80000000)" ( (binary_expression "(uint)puVar5 >> 1 | 0x80000000" (binary_expression "(uint)puVar5 >> 1" (cast_expression "(uint)puVar5" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) | number_literal) )))) ) (compound_statement "{\n      bVar4 = bVar4 + 1;\n    }" { (expression_statement "bVar4 = bVar4 + 1;" (assignment_expression "bVar4 = bVar4 + 1" identifier = (binary_expression "bVar4 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar7 = param_3[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f);" (assignment_expression "uVar7 = param_3[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f)" identifier = (binary_expression "param_3[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f)" (binary_expression "param_3[1] << (0x20 - bVar4 & 0x1f)" (subscript_expression "param_3[1]" identifier [ number_literal ]) << (parenthesized_expression "(0x20 - bVar4 & 0x1f)" ( (binary_expression "0x20 - bVar4 & 0x1f" (binary_expression "0x20 - bVar4" number_literal - identifier) & number_literal) ))) | (binary_expression "(uint)puVar9 >> (bVar4 & 0x1f)" (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier) >> (parenthesized_expression "(bVar4 & 0x1f)" ( (binary_expression "bVar4 & 0x1f" identifier & number_literal) ))))) ;) (if_statement "if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_30 = puVar11;\n      __gmpn_cpuvec_init();\n      puVar11 = local_30;\n    }" if (parenthesized_expression "(*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0)" ( (binary_expression "*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0" (pointer_expression "*(int *)PTR___gmpn_cpuvec_initialized_00098d58" * (cast_expression "(int *)PTR___gmpn_cpuvec_initialized_00098d58" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n      local_30 = puVar11;\n      __gmpn_cpuvec_init();\n      puVar11 = local_30;\n    }" { (expression_statement "local_30 = puVar11;" (assignment_expression "local_30 = puVar11" identifier = identifier) ;) (expression_statement "__gmpn_cpuvec_init();" (call_expression "__gmpn_cpuvec_init()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar11 = local_30;" (assignment_expression "puVar11 = local_30" identifier = identifier) ;) })) (expression_statement "puVar1 = local_34[-0x9b];" (assignment_expression "puVar1 = local_34[-0x9b]" identifier = (subscript_expression "local_34[-0x9b]" identifier [ number_literal ])) ;) (if_statement "if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,uVar7,0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }" if (parenthesized_expression "((int)puVar11 < *(int *)(puVar1 + 0xa4))" ( (binary_expression "(int)puVar11 < *(int *)(puVar1 + 0xa4)" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(puVar1 + 0xa4)" * (cast_expression "(int *)(puVar1 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0xa4)" ( (binary_expression "puVar1 + 0xa4" identifier + number_literal) ))))) )) (compound_statement "{\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,uVar7,0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }" { (expression_statement "iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,uVar7,0);" (assignment_expression "iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,uVar7,0)" identifier = (call_expression "(**(code **)(puVar1 + 0x60))(param_1,puVar11,uVar7,0)" (parenthesized_expression "(**(code **)(puVar1 + 0x60))" ( (pointer_expression "**(code **)(puVar1 + 0x60)" * (pointer_expression "*(code **)(puVar1 + 0x60)" * (cast_expression "(code **)(puVar1 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + 0x60)" ( (binary_expression "puVar1 + 0x60" identifier + number_literal) ))))) )) (argument_list "(param_1,puVar11,uVar7,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "puVar9 = (uint *)(uint)(iVar8 == 0);" (assignment_expression "puVar9 = (uint *)(uint)(iVar8 == 0)" identifier = (cast_expression "(uint *)(uint)(iVar8 == 0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(iVar8 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) ))))) ;) (expression_statement "puVar12 = auStack_5c;" (assignment_expression "puVar12 = auStack_5c" identifier = identifier) ;) }) (else_clause "else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }" else (compound_statement "{\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }" { (expression_statement "iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7);" (assignment_expression "iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7)" identifier = (call_expression "(**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7)" (parenthesized_expression "(**(code **)(puVar1 + 0x40))" ( (pointer_expression "**(code **)(puVar1 + 0x40)" * (pointer_expression "*(code **)(puVar1 + 0x40)" * (cast_expression "(code **)(puVar1 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + 0x40)" ( (binary_expression "puVar1 + 0x40" identifier + number_literal) ))))) )) (argument_list "(param_1,puVar11,uVar7)" ( identifier , identifier , identifier )))) ;) (expression_statement "puVar9 = (uint *)(uint)(iVar8 == 0);" (assignment_expression "puVar9 = (uint *)(uint)(iVar8 == 0)" identifier = (cast_expression "(uint *)(uint)(iVar8 == 0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(iVar8 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) ))))) ;) (expression_statement "puVar12 = auStack_5c;" (assignment_expression "puVar12 = auStack_5c" identifier = identifier) ;) }))) (goto_statement "goto LAB_000452d0;" goto statement_identifier ;) })) (expression_statement "puStack_54 = (uint *)((int)puVar11 + 1);" (assignment_expression "puStack_54 = (uint *)((int)puVar11 + 1)" identifier = (cast_expression "(uint *)((int)puVar11 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 1)" ( (binary_expression "(int)puVar11 + 1" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puStack_40 = (uint *)((int)puVar11 - (int)local_30);" (assignment_expression "puStack_40 = (uint *)((int)puVar11 - (int)local_30)" identifier = (cast_expression "(uint *)((int)puVar11 - (int)local_30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 - (int)local_30)" ( (binary_expression "(int)puVar11 - (int)local_30" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iStack_24 = 0;" (assignment_expression "iStack_24 = 0" identifier = number_literal) ;) (expression_statement "uVar7 = ((int)puStack_40 + 1 + (int)puStack_54) * 4;" (assignment_expression "uVar7 = ((int)puStack_40 + 1 + (int)puStack_54) * 4" identifier = (binary_expression "((int)puStack_40 + 1 + (int)puStack_54) * 4" (parenthesized_expression "((int)puStack_40 + 1 + (int)puStack_54)" ( (binary_expression "(int)puStack_40 + 1 + (int)puStack_54" (binary_expression "(int)puStack_40 + 1" (cast_expression "(int)puStack_40" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) + (cast_expression "(int)puStack_54" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal)) ;) (if_statement "if (uVar7 < 0x7f01) {\n    iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n    puVar13 = auStack_5c + iVar8;\n    local_38 = (uint *)((int)apuStack_50 + iVar8);\n  }\n  else {\n    apuStack_50[2] = puStack_54;\n    puStack_3c = puVar11;\n    local_38 = (uint *)__gmp_tmp_reentrant_alloc(&iStack_24,uVar7);\n    puVar13 = auStack_5c;\n    puStack_54 = apuStack_50[2];\n    puVar11 = puStack_3c;\n  }" if (parenthesized_expression "(uVar7 < 0x7f01)" ( (binary_expression "uVar7 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n    iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n    puVar13 = auStack_5c + iVar8;\n    local_38 = (uint *)((int)apuStack_50 + iVar8);\n  }" { (expression_statement "iVar8 = -(uVar7 + 0x1b & 0xfffffff0);" (assignment_expression "iVar8 = -(uVar7 + 0x1b & 0xfffffff0)" identifier = (unary_expression "-(uVar7 + 0x1b & 0xfffffff0)" - (parenthesized_expression "(uVar7 + 0x1b & 0xfffffff0)" ( (binary_expression "uVar7 + 0x1b & 0xfffffff0" (binary_expression "uVar7 + 0x1b" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar13 = auStack_5c + iVar8;" (assignment_expression "puVar13 = auStack_5c + iVar8" identifier = (binary_expression "auStack_5c + iVar8" identifier + identifier)) ;) (expression_statement "local_38 = (uint *)((int)apuStack_50 + iVar8);" (assignment_expression "local_38 = (uint *)((int)apuStack_50 + iVar8)" identifier = (cast_expression "(uint *)((int)apuStack_50 + iVar8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)apuStack_50 + iVar8)" ( (binary_expression "(int)apuStack_50 + iVar8" (cast_expression "(int)apuStack_50" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n    apuStack_50[2] = puStack_54;\n    puStack_3c = puVar11;\n    local_38 = (uint *)__gmp_tmp_reentrant_alloc(&iStack_24,uVar7);\n    puVar13 = auStack_5c;\n    puStack_54 = apuStack_50[2];\n    puVar11 = puStack_3c;\n  }" else (compound_statement "{\n    apuStack_50[2] = puStack_54;\n    puStack_3c = puVar11;\n    local_38 = (uint *)__gmp_tmp_reentrant_alloc(&iStack_24,uVar7);\n    puVar13 = auStack_5c;\n    puStack_54 = apuStack_50[2];\n    puVar11 = puStack_3c;\n  }" { (expression_statement "apuStack_50[2] = puStack_54;" (assignment_expression "apuStack_50[2] = puStack_54" (subscript_expression "apuStack_50[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puStack_3c = puVar11;" (assignment_expression "puStack_3c = puVar11" identifier = identifier) ;) (expression_statement "local_38 = (uint *)__gmp_tmp_reentrant_alloc(&iStack_24,uVar7);" (assignment_expression "local_38 = (uint *)__gmp_tmp_reentrant_alloc(&iStack_24,uVar7)" identifier = (cast_expression "(uint *)__gmp_tmp_reentrant_alloc(&iStack_24,uVar7)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__gmp_tmp_reentrant_alloc(&iStack_24,uVar7)" identifier (argument_list "(&iStack_24,uVar7)" ( (pointer_expression "&iStack_24" & identifier) , identifier ))))) ;) (expression_statement "puVar13 = auStack_5c;" (assignment_expression "puVar13 = auStack_5c" identifier = identifier) ;) (expression_statement "puStack_54 = apuStack_50[2];" (assignment_expression "puStack_54 = apuStack_50[2]" identifier = (subscript_expression "apuStack_50[2]" identifier [ number_literal ])) ;) (expression_statement "puVar11 = puStack_3c;" (assignment_expression "puVar11 = puStack_3c" identifier = identifier) ;) }))) (expression_statement "ppuVar6 = local_34;" (assignment_expression "ppuVar6 = local_34" identifier = identifier) ;) (expression_statement "apuStack_50[2] = (uint *)((int)puStack_54 * 4);" (assignment_expression "apuStack_50[2] = (uint *)((int)puStack_54 * 4)" (subscript_expression "apuStack_50[2]" identifier [ number_literal ]) = (cast_expression "(uint *)((int)puStack_54 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puStack_54 * 4)" ( (binary_expression "(int)puStack_54 * 4" (cast_expression "(int)puStack_54" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "apuStack_50[0] = local_38 + (int)puStack_54;" (assignment_expression "apuStack_50[0] = local_38 + (int)puStack_54" (subscript_expression "apuStack_50[0]" identifier [ number_literal ]) = (binary_expression "local_38 + (int)puStack_54" identifier + (cast_expression "(int)puStack_54" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (apuStack_50[3] == (uint *)0x0) {\n    *(uint **)(puVar13 + -8) = puVar11;\n    *(uint **)(puVar13 + -0xc) = param_1;\n    puVar1 = ppuVar6[-0x9b];\n    *(uint **)(puVar13 + -0x10) = local_38;\n    pcVar2 = *(code **)(puVar1 + 0x28);\n    apuStack_50[1] = (uint *)puVar1;\n    apuStack_50[3] = puVar11;\n    *(undefined4 *)(puVar13 + -0x14) = 0x45555;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    puStack_3c = param_3;\n  }\n  else {\n    uVar7 = (int)local_30 * 4;\n    apuStack_50[1] = puVar11;\n    if (uVar7 < 0x7f01) {\n      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n      puStack_3c = (uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0);\n      puVar13 = puVar13 + iVar8;\n    }\n    else {\n      *(uint *)(puVar13 + -0xc) = uVar7;\n      *(int **)(puVar13 + -0x10) = &iStack_24;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc();\n    }\n    puVar11 = apuStack_50[3];\n    puVar1 = local_34[-0x9b];\n    puStack_58 = puStack_54;\n    puStack_54 = apuStack_50[1];\n    *(uint **)(puVar13 + -4) = apuStack_50[3];\n    *(uint **)(puVar13 + -8) = local_30;\n    *(uint **)(puVar13 + -0xc) = param_3;\n    *(uint **)(puVar13 + -0x10) = puStack_3c;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    apuStack_50[1] = (uint *)puVar1;\n    *(undefined4 *)(puVar13 + -0x14) = 0x453c5;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = param_1;\n    *(uint **)(puVar13 + -0x20) = local_38;\n    apuStack_50[3] = puVar9;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    *(undefined4 *)(puVar13 + -0x24) = 0x453d7;\n    (*pcVar2)();\n    puVar9 = puStack_58;\n  }" if (parenthesized_expression "(apuStack_50[3] == (uint *)0x0)" ( (binary_expression "apuStack_50[3] == (uint *)0x0" (subscript_expression "apuStack_50[3]" identifier [ number_literal ]) == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(uint **)(puVar13 + -8) = puVar11;\n    *(uint **)(puVar13 + -0xc) = param_1;\n    puVar1 = ppuVar6[-0x9b];\n    *(uint **)(puVar13 + -0x10) = local_38;\n    pcVar2 = *(code **)(puVar1 + 0x28);\n    apuStack_50[1] = (uint *)puVar1;\n    apuStack_50[3] = puVar11;\n    *(undefined4 *)(puVar13 + -0x14) = 0x45555;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    puStack_3c = param_3;\n  }" { (expression_statement "*(uint **)(puVar13 + -8) = puVar11;" (assignment_expression "*(uint **)(puVar13 + -8) = puVar11" (pointer_expression "*(uint **)(puVar13 + -8)" * (cast_expression "(uint **)(puVar13 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -8)" ( (binary_expression "puVar13 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0xc) = param_1;" (assignment_expression "*(uint **)(puVar13 + -0xc) = param_1" (pointer_expression "*(uint **)(puVar13 + -0xc)" * (cast_expression "(uint **)(puVar13 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0xc)" ( (binary_expression "puVar13 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar1 = ppuVar6[-0x9b];" (assignment_expression "puVar1 = ppuVar6[-0x9b]" identifier = (subscript_expression "ppuVar6[-0x9b]" identifier [ number_literal ])) ;) (expression_statement "*(uint **)(puVar13 + -0x10) = local_38;" (assignment_expression "*(uint **)(puVar13 + -0x10) = local_38" (pointer_expression "*(uint **)(puVar13 + -0x10)" * (cast_expression "(uint **)(puVar13 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(puVar1 + 0x28);" (assignment_expression "pcVar2 = *(code **)(puVar1 + 0x28)" identifier = (pointer_expression "*(code **)(puVar1 + 0x28)" * (cast_expression "(code **)(puVar1 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + 0x28)" ( (binary_expression "puVar1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "apuStack_50[1] = (uint *)puVar1;" (assignment_expression "apuStack_50[1] = (uint *)puVar1" (subscript_expression "apuStack_50[1]" identifier [ number_literal ]) = (cast_expression "(uint *)puVar1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "apuStack_50[3] = puVar11;" (assignment_expression "apuStack_50[3] = puVar11" (subscript_expression "apuStack_50[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0x45555;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0x45555" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" * (cast_expression "(undefined4 *)(puVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar9 = puStack_54;" (assignment_expression "puVar9 = puStack_54" identifier = identifier) ;) (expression_statement "puStack_3c = param_3;" (assignment_expression "puStack_3c = param_3" identifier = identifier) ;) }) (else_clause "else {\n    uVar7 = (int)local_30 * 4;\n    apuStack_50[1] = puVar11;\n    if (uVar7 < 0x7f01) {\n      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n      puStack_3c = (uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0);\n      puVar13 = puVar13 + iVar8;\n    }\n    else {\n      *(uint *)(puVar13 + -0xc) = uVar7;\n      *(int **)(puVar13 + -0x10) = &iStack_24;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc();\n    }\n    puVar11 = apuStack_50[3];\n    puVar1 = local_34[-0x9b];\n    puStack_58 = puStack_54;\n    puStack_54 = apuStack_50[1];\n    *(uint **)(puVar13 + -4) = apuStack_50[3];\n    *(uint **)(puVar13 + -8) = local_30;\n    *(uint **)(puVar13 + -0xc) = param_3;\n    *(uint **)(puVar13 + -0x10) = puStack_3c;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    apuStack_50[1] = (uint *)puVar1;\n    *(undefined4 *)(puVar13 + -0x14) = 0x453c5;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = param_1;\n    *(uint **)(puVar13 + -0x20) = local_38;\n    apuStack_50[3] = puVar9;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    *(undefined4 *)(puVar13 + -0x24) = 0x453d7;\n    (*pcVar2)();\n    puVar9 = puStack_58;\n  }" else (compound_statement "{\n    uVar7 = (int)local_30 * 4;\n    apuStack_50[1] = puVar11;\n    if (uVar7 < 0x7f01) {\n      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n      puStack_3c = (uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0);\n      puVar13 = puVar13 + iVar8;\n    }\n    else {\n      *(uint *)(puVar13 + -0xc) = uVar7;\n      *(int **)(puVar13 + -0x10) = &iStack_24;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc();\n    }\n    puVar11 = apuStack_50[3];\n    puVar1 = local_34[-0x9b];\n    puStack_58 = puStack_54;\n    puStack_54 = apuStack_50[1];\n    *(uint **)(puVar13 + -4) = apuStack_50[3];\n    *(uint **)(puVar13 + -8) = local_30;\n    *(uint **)(puVar13 + -0xc) = param_3;\n    *(uint **)(puVar13 + -0x10) = puStack_3c;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    apuStack_50[1] = (uint *)puVar1;\n    *(undefined4 *)(puVar13 + -0x14) = 0x453c5;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = param_1;\n    *(uint **)(puVar13 + -0x20) = local_38;\n    apuStack_50[3] = puVar9;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    *(undefined4 *)(puVar13 + -0x24) = 0x453d7;\n    (*pcVar2)();\n    puVar9 = puStack_58;\n  }" { (expression_statement "uVar7 = (int)local_30 * 4;" (assignment_expression "uVar7 = (int)local_30 * 4" identifier = (binary_expression "(int)local_30 * 4" (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "apuStack_50[1] = puVar11;" (assignment_expression "apuStack_50[1] = puVar11" (subscript_expression "apuStack_50[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (uVar7 < 0x7f01) {\n      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n      puStack_3c = (uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0);\n      puVar13 = puVar13 + iVar8;\n    }\n    else {\n      *(uint *)(puVar13 + -0xc) = uVar7;\n      *(int **)(puVar13 + -0x10) = &iStack_24;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc();\n    }" if (parenthesized_expression "(uVar7 < 0x7f01)" ( (binary_expression "uVar7 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n      puStack_3c = (uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0);\n      puVar13 = puVar13 + iVar8;\n    }" { (expression_statement "iVar8 = -(uVar7 + 0x1b & 0xfffffff0);" (assignment_expression "iVar8 = -(uVar7 + 0x1b & 0xfffffff0)" identifier = (unary_expression "-(uVar7 + 0x1b & 0xfffffff0)" - (parenthesized_expression "(uVar7 + 0x1b & 0xfffffff0)" ( (binary_expression "uVar7 + 0x1b & 0xfffffff0" (binary_expression "uVar7 + 0x1b" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puStack_3c = (uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0);" (assignment_expression "puStack_3c = (uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0)" identifier = (cast_expression "(uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0)" ( (binary_expression "(uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0" (call_expression "(uint)(puVar13 + iVar8 + 0xf)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar13 + iVar8 + 0xf)" ( (binary_expression "puVar13 + iVar8 + 0xf" (binary_expression "puVar13 + iVar8" identifier + identifier) + number_literal) ))) & number_literal) )))) ;) (expression_statement "puVar13 = puVar13 + iVar8;" (assignment_expression "puVar13 = puVar13 + iVar8" identifier = (binary_expression "puVar13 + iVar8" identifier + identifier)) ;) }) (else_clause "else {\n      *(uint *)(puVar13 + -0xc) = uVar7;\n      *(int **)(puVar13 + -0x10) = &iStack_24;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc();\n    }" else (compound_statement "{\n      *(uint *)(puVar13 + -0xc) = uVar7;\n      *(int **)(puVar13 + -0x10) = &iStack_24;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc();\n    }" { (expression_statement "*(uint *)(puVar13 + -0xc) = uVar7;" (assignment_expression "*(uint *)(puVar13 + -0xc) = uVar7" (pointer_expression "*(uint *)(puVar13 + -0xc)" * (cast_expression "(uint *)(puVar13 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0xc)" ( (binary_expression "puVar13 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar13 + -0x10) = &iStack_24;" (assignment_expression "*(int **)(puVar13 + -0x10) = &iStack_24" (pointer_expression "*(int **)(puVar13 + -0x10)" * (cast_expression "(int **)(puVar13 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = (pointer_expression "&iStack_24" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0x45770;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0x45770" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" * (cast_expression "(undefined4 *)(puVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puStack_3c = (uint *)__gmp_tmp_reentrant_alloc();" (assignment_expression "puStack_3c = (uint *)__gmp_tmp_reentrant_alloc()" identifier = (cast_expression "(uint *)__gmp_tmp_reentrant_alloc()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__gmp_tmp_reentrant_alloc()" identifier (argument_list "()" ( ))))) ;) }))) (expression_statement "puVar11 = apuStack_50[3];" (assignment_expression "puVar11 = apuStack_50[3]" identifier = (subscript_expression "apuStack_50[3]" identifier [ number_literal ])) ;) (expression_statement "puVar1 = local_34[-0x9b];" (assignment_expression "puVar1 = local_34[-0x9b]" identifier = (subscript_expression "local_34[-0x9b]" identifier [ number_literal ])) ;) (expression_statement "puStack_58 = puStack_54;" (assignment_expression "puStack_58 = puStack_54" identifier = identifier) ;) (expression_statement "puStack_54 = apuStack_50[1];" (assignment_expression "puStack_54 = apuStack_50[1]" identifier = (subscript_expression "apuStack_50[1]" identifier [ number_literal ])) ;) (expression_statement "*(uint **)(puVar13 + -4) = apuStack_50[3];" (assignment_expression "*(uint **)(puVar13 + -4) = apuStack_50[3]" (pointer_expression "*(uint **)(puVar13 + -4)" * (cast_expression "(uint **)(puVar13 + -4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -4)" ( (binary_expression "puVar13 + -4" identifier + number_literal) )))) = (subscript_expression "apuStack_50[3]" identifier [ number_literal ])) ;) (expression_statement "*(uint **)(puVar13 + -8) = local_30;" (assignment_expression "*(uint **)(puVar13 + -8) = local_30" (pointer_expression "*(uint **)(puVar13 + -8)" * (cast_expression "(uint **)(puVar13 + -8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -8)" ( (binary_expression "puVar13 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0xc) = param_3;" (assignment_expression "*(uint **)(puVar13 + -0xc) = param_3" (pointer_expression "*(uint **)(puVar13 + -0xc)" * (cast_expression "(uint **)(puVar13 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0xc)" ( (binary_expression "puVar13 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x10) = puStack_3c;" (assignment_expression "*(uint **)(puVar13 + -0x10) = puStack_3c" (pointer_expression "*(uint **)(puVar13 + -0x10)" * (cast_expression "(uint **)(puVar13 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(puVar1 + 0x80);" (assignment_expression "pcVar2 = *(code **)(puVar1 + 0x80)" identifier = (pointer_expression "*(code **)(puVar1 + 0x80)" * (cast_expression "(code **)(puVar1 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + 0x80)" ( (binary_expression "puVar1 + 0x80" identifier + number_literal) ))))) ;) (expression_statement "apuStack_50[1] = (uint *)puVar1;" (assignment_expression "apuStack_50[1] = (uint *)puVar1" (subscript_expression "apuStack_50[1]" identifier [ number_literal ]) = (cast_expression "(uint *)puVar1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0x453c5;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0x453c5" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" * (cast_expression "(undefined4 *)(puVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar9 = puStack_54;" (assignment_expression "puVar9 = puStack_54" identifier = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x14) = puVar11;" (assignment_expression "*(uint **)(puVar13 + -0x14) = puVar11" (pointer_expression "*(uint **)(puVar13 + -0x14)" * (cast_expression "(uint **)(puVar13 + -0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x18) = puVar9;" (assignment_expression "*(uint **)(puVar13 + -0x18) = puVar9" (pointer_expression "*(uint **)(puVar13 + -0x18)" * (cast_expression "(uint **)(puVar13 + -0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x1c) = param_1;" (assignment_expression "*(uint **)(puVar13 + -0x1c) = param_1" (pointer_expression "*(uint **)(puVar13 + -0x1c)" * (cast_expression "(uint **)(puVar13 + -0x1c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x1c)" ( (binary_expression "puVar13 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x20) = local_38;" (assignment_expression "*(uint **)(puVar13 + -0x20) = local_38" (pointer_expression "*(uint **)(puVar13 + -0x20)" * (cast_expression "(uint **)(puVar13 + -0x20)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x20)" ( (binary_expression "puVar13 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "apuStack_50[3] = puVar9;" (assignment_expression "apuStack_50[3] = puVar9" (subscript_expression "apuStack_50[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pcVar2 = *(code **)(puVar1 + 0x80);" (assignment_expression "pcVar2 = *(code **)(puVar1 + 0x80)" identifier = (pointer_expression "*(code **)(puVar1 + 0x80)" * (cast_expression "(code **)(puVar1 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + 0x80)" ( (binary_expression "puVar1 + 0x80" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x24) = 0x453d7;" (assignment_expression "*(undefined4 *)(puVar13 + -0x24) = 0x453d7" (pointer_expression "*(undefined4 *)(puVar13 + -0x24)" * (cast_expression "(undefined4 *)(puVar13 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x24)" ( (binary_expression "puVar13 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar9 = puStack_58;" (assignment_expression "puVar9 = puStack_58" identifier = identifier) ;) }))) (if_statement "if (*(uint *)((int)local_38 + (int)apuStack_50[2] + -8) < puStack_3c[(int)local_30 + -1]) {\n    if (local_30 == apuStack_50[3]) {\nLAB_000454ba:\n      if (iStack_24 != 0) {\n        *(int *)(puVar13 + -0x10) = iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free();\n      }\n      goto LAB_000452ce;\n    }\n  }\n  else {\n    *(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0;\n    puStack_40 = (uint *)((int)puVar9 - (int)local_30);\n    apuStack_50[3] = puVar9;\n  }" if (parenthesized_expression "(*(uint *)((int)local_38 + (int)apuStack_50[2] + -8) < puStack_3c[(int)local_30 + -1])" ( (binary_expression "*(uint *)((int)local_38 + (int)apuStack_50[2] + -8) < puStack_3c[(int)local_30 + -1]" (pointer_expression "*(uint *)((int)local_38 + (int)apuStack_50[2] + -8)" * (cast_expression "(uint *)((int)local_38 + (int)apuStack_50[2] + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + (int)apuStack_50[2] + -8)" ( (binary_expression "(int)local_38 + (int)apuStack_50[2] + -8" (binary_expression "(int)local_38 + (int)apuStack_50[2]" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)apuStack_50[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "apuStack_50[2]" identifier [ number_literal ]))) + number_literal) )))) < (subscript_expression "puStack_3c[(int)local_30 + -1]" identifier [ (binary_expression "(int)local_30 + -1" (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ])) )) (compound_statement "{\n    if (local_30 == apuStack_50[3]) {\nLAB_000454ba:\n      if (iStack_24 != 0) {\n        *(int *)(puVar13 + -0x10) = iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free();\n      }\n      goto LAB_000452ce;\n    }\n  }" { (if_statement "if (local_30 == apuStack_50[3]) {\nLAB_000454ba:\n      if (iStack_24 != 0) {\n        *(int *)(puVar13 + -0x10) = iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free();\n      }\n      goto LAB_000452ce;\n    }" if (parenthesized_expression "(local_30 == apuStack_50[3])" ( (binary_expression "local_30 == apuStack_50[3]" identifier == (subscript_expression "apuStack_50[3]" identifier [ number_literal ])) )) (compound_statement "{\nLAB_000454ba:\n      if (iStack_24 != 0) {\n        *(int *)(puVar13 + -0x10) = iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free();\n      }\n      goto LAB_000452ce;\n    }" { (labeled_statement "LAB_000454ba:\n      if (iStack_24 != 0) {\n        *(int *)(puVar13 + -0x10) = iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free();\n      }" statement_identifier : (if_statement "if (iStack_24 != 0) {\n        *(int *)(puVar13 + -0x10) = iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free();\n      }" if (parenthesized_expression "(iStack_24 != 0)" ( (binary_expression "iStack_24 != 0" identifier != number_literal) )) (compound_statement "{\n        *(int *)(puVar13 + -0x10) = iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free();\n      }" { (expression_statement "*(int *)(puVar13 + -0x10) = iStack_24;" (assignment_expression "*(int *)(puVar13 + -0x10) = iStack_24" (pointer_expression "*(int *)(puVar13 + -0x10)" * (cast_expression "(int *)(puVar13 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0x454d1;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0x454d1" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" * (cast_expression "(undefined4 *)(puVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmp_tmp_reentrant_free();" (call_expression "__gmp_tmp_reentrant_free()" identifier (argument_list "()" ( ))) ;) }))) (goto_statement "goto LAB_000452ce;" goto statement_identifier ;) })) }) (else_clause "else {\n    *(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0;\n    puStack_40 = (uint *)((int)puVar9 - (int)local_30);\n    apuStack_50[3] = puVar9;\n  }" else (compound_statement "{\n    *(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0;\n    puStack_40 = (uint *)((int)puVar9 - (int)local_30);\n    apuStack_50[3] = puVar9;\n  }" { (expression_statement "*(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0;" (assignment_expression "*(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0" (pointer_expression "*(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4)" * (cast_expression "(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + (int)apuStack_50[2] + -4)" ( (binary_expression "(int)local_38 + (int)apuStack_50[2] + -4" (binary_expression "(int)local_38 + (int)apuStack_50[2]" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)apuStack_50[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "apuStack_50[2]" identifier [ number_literal ]))) + number_literal) )))) = number_literal) ;) (expression_statement "puStack_40 = (uint *)((int)puVar9 - (int)local_30);" (assignment_expression "puStack_40 = (uint *)((int)puVar9 - (int)local_30)" identifier = (cast_expression "(uint *)((int)puVar9 - (int)local_30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 - (int)local_30)" ( (binary_expression "(int)puVar9 - (int)local_30" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "apuStack_50[3] = puVar9;" (assignment_expression "apuStack_50[3] = puVar9" (subscript_expression "apuStack_50[3]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "piVar3 = (int *)local_34[-0xaa];" (assignment_expression "piVar3 = (int *)local_34[-0xaa]" identifier = (cast_expression "(int *)local_34[-0xaa]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_34[-0xaa]" identifier [ number_literal ]))) ;) (expression_statement "puVar9 = apuStack_50[3];" (assignment_expression "puVar9 = apuStack_50[3]" identifier = (subscript_expression "apuStack_50[3]" identifier [ number_literal ])) ;) (if_statement "if (*piVar3 == 0) {\n    *(undefined4 *)(puVar13 + -4) = 0x45702;\n    __gmpn_cpuvec_init();\n    puVar9 = apuStack_50[3];\n  }" if (parenthesized_expression "(*piVar3 == 0)" ( (binary_expression "*piVar3 == 0" (pointer_expression "*piVar3" * identifier) == number_literal) )) (compound_statement "{\n    *(undefined4 *)(puVar13 + -4) = 0x45702;\n    __gmpn_cpuvec_init();\n    puVar9 = apuStack_50[3];\n  }" { (expression_statement "*(undefined4 *)(puVar13 + -4) = 0x45702;" (assignment_expression "*(undefined4 *)(puVar13 + -4) = 0x45702" (pointer_expression "*(undefined4 *)(puVar13 + -4)" * (cast_expression "(undefined4 *)(puVar13 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -4)" ( (binary_expression "puVar13 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_cpuvec_init();" (call_expression "__gmpn_cpuvec_init()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar9 = apuStack_50[3];" (assignment_expression "puVar9 = apuStack_50[3]" identifier = (subscript_expression "apuStack_50[3]" identifier [ number_literal ])) ;) })) (expression_statement "apuStack_50[3] = *(uint **)((int)apuStack_50[1] + 0x94);" (assignment_expression "apuStack_50[3] = *(uint **)((int)apuStack_50[1] + 0x94)" (subscript_expression "apuStack_50[3]" identifier [ number_literal ]) = (pointer_expression "*(uint **)((int)apuStack_50[1] + 0x94)" * (cast_expression "(uint **)((int)apuStack_50[1] + 0x94)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)apuStack_50[1] + 0x94)" ( (binary_expression "(int)apuStack_50[1] + 0x94" (cast_expression "(int)apuStack_50[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "apuStack_50[1]" identifier [ number_literal ])) + number_literal) ))))) ;) (expression_statement "iVar8 = (int)apuStack_50[3] * 2;" (assignment_expression "iVar8 = (int)apuStack_50[3] * 2" identifier = (binary_expression "(int)apuStack_50[3] * 2" (cast_expression "(int)apuStack_50[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "apuStack_50[3]" identifier [ number_literal ])) * number_literal)) ;) (if_statement "if (SBORROW4((int)local_30,iVar8) == (int)local_30 + (int)apuStack_50[3] * -2 < 0) {\n    if (*piVar3 == 0) {\n      apuStack_50[3] = puVar9;\n      *(undefined4 *)(puVar13 + -4) = 0x4572e;\n      __gmpn_cpuvec_init();\n      iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;\n      puVar9 = apuStack_50[3];\n    }\n    puVar11 = puStack_3c;\n    if ((int)puStack_40 < iVar8) goto LAB_00045444;\n    if ((int)local_30 < 2000) {\n      uVar7 = *puStack_3c;\n      uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n      iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n      *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n      *(uint **)(puVar13 + -0x10) = local_30;\n      *(uint **)(puVar13 + -0x14) = puVar11;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0x18) = puVar9;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x456e7;\n      __gmpn_dcpi1_bdiv_qr();\n      local_38 = puVar11 + (int)puStack_40;\n    }\n    else {\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puVar9;\n      puStack_40 = puVar9;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45613;\n      iVar8 = __gmpn_mu_bdiv_qr_itch();\n      uVar7 = iVar8 * 4;\n      if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;\n        puVar13 = puVar13 + iVar8;\n      }\n      else {\n        *(uint *)(puVar13 + -0xc) = uVar7;\n        *(int **)(puVar13 + -0x10) = &iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x45794;\n        uVar7 = __gmp_tmp_reentrant_alloc();\n      }\n      puVar9 = puStack_40;\n      *(uint *)(puVar13 + -8) = uVar7;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puStack_3c;\n      *(uint **)(puVar13 + -0x14) = puVar9;\n      *(uint **)(puVar13 + -0x18) = puVar11;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x45651;\n      __gmpn_mu_bdiv_qr();\n    }\n  }\n  else {\nLAB_00045444:\n    puVar11 = puStack_3c;\n    uVar7 = *puStack_3c;\n    uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n    iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n    *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n    *(uint **)(puVar13 + -0x10) = local_30;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    puVar11 = local_38;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = puVar11;\n    *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n    *(undefined4 *)(puVar13 + -0x24) = 0x4548b;\n    __gmpn_sbpi1_bdiv_qr();\n    local_38 = puVar11 + (int)puStack_40;\n  }" if (parenthesized_expression "(SBORROW4((int)local_30,iVar8) == (int)local_30 + (int)apuStack_50[3] * -2 < 0)" ( (binary_expression "SBORROW4((int)local_30,iVar8) == (int)local_30 + (int)apuStack_50[3] * -2 < 0" (call_expression "SBORROW4((int)local_30,iVar8)" identifier (argument_list "((int)local_30,iVar8)" ( (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) , identifier ))) == (binary_expression "(int)local_30 + (int)apuStack_50[3] * -2 < 0" (binary_expression "(int)local_30 + (int)apuStack_50[3] * -2" (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)apuStack_50[3] * -2" (cast_expression "(int)apuStack_50[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "apuStack_50[3]" identifier [ number_literal ])) * number_literal)) < number_literal)) )) (compound_statement "{\n    if (*piVar3 == 0) {\n      apuStack_50[3] = puVar9;\n      *(undefined4 *)(puVar13 + -4) = 0x4572e;\n      __gmpn_cpuvec_init();\n      iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;\n      puVar9 = apuStack_50[3];\n    }\n    puVar11 = puStack_3c;\n    if ((int)puStack_40 < iVar8) goto LAB_00045444;\n    if ((int)local_30 < 2000) {\n      uVar7 = *puStack_3c;\n      uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n      iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n      *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n      *(uint **)(puVar13 + -0x10) = local_30;\n      *(uint **)(puVar13 + -0x14) = puVar11;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0x18) = puVar9;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x456e7;\n      __gmpn_dcpi1_bdiv_qr();\n      local_38 = puVar11 + (int)puStack_40;\n    }\n    else {\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puVar9;\n      puStack_40 = puVar9;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45613;\n      iVar8 = __gmpn_mu_bdiv_qr_itch();\n      uVar7 = iVar8 * 4;\n      if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;\n        puVar13 = puVar13 + iVar8;\n      }\n      else {\n        *(uint *)(puVar13 + -0xc) = uVar7;\n        *(int **)(puVar13 + -0x10) = &iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x45794;\n        uVar7 = __gmp_tmp_reentrant_alloc();\n      }\n      puVar9 = puStack_40;\n      *(uint *)(puVar13 + -8) = uVar7;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puStack_3c;\n      *(uint **)(puVar13 + -0x14) = puVar9;\n      *(uint **)(puVar13 + -0x18) = puVar11;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x45651;\n      __gmpn_mu_bdiv_qr();\n    }\n  }" { (if_statement "if (*piVar3 == 0) {\n      apuStack_50[3] = puVar9;\n      *(undefined4 *)(puVar13 + -4) = 0x4572e;\n      __gmpn_cpuvec_init();\n      iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;\n      puVar9 = apuStack_50[3];\n    }" if (parenthesized_expression "(*piVar3 == 0)" ( (binary_expression "*piVar3 == 0" (pointer_expression "*piVar3" * identifier) == number_literal) )) (compound_statement "{\n      apuStack_50[3] = puVar9;\n      *(undefined4 *)(puVar13 + -4) = 0x4572e;\n      __gmpn_cpuvec_init();\n      iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;\n      puVar9 = apuStack_50[3];\n    }" { (expression_statement "apuStack_50[3] = puVar9;" (assignment_expression "apuStack_50[3] = puVar9" (subscript_expression "apuStack_50[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)(puVar13 + -4) = 0x4572e;" (assignment_expression "*(undefined4 *)(puVar13 + -4) = 0x4572e" (pointer_expression "*(undefined4 *)(puVar13 + -4)" * (cast_expression "(undefined4 *)(puVar13 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -4)" ( (binary_expression "puVar13 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_cpuvec_init();" (call_expression "__gmpn_cpuvec_init()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;" (assignment_expression "iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2" identifier = (binary_expression "*(int *)((int)apuStack_50[1] + 0x94) * 2" (pointer_expression "*(int *)((int)apuStack_50[1] + 0x94)" * (cast_expression "(int *)((int)apuStack_50[1] + 0x94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)apuStack_50[1] + 0x94)" ( (binary_expression "(int)apuStack_50[1] + 0x94" (cast_expression "(int)apuStack_50[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "apuStack_50[1]" identifier [ number_literal ])) + number_literal) )))) * number_literal)) ;) (expression_statement "puVar9 = apuStack_50[3];" (assignment_expression "puVar9 = apuStack_50[3]" identifier = (subscript_expression "apuStack_50[3]" identifier [ number_literal ])) ;) })) (expression_statement "puVar11 = puStack_3c;" (assignment_expression "puVar11 = puStack_3c" identifier = identifier) ;) (if_statement "if ((int)puStack_40 < iVar8) goto LAB_00045444;" if (parenthesized_expression "((int)puStack_40 < iVar8)" ( (binary_expression "(int)puStack_40 < iVar8" (cast_expression "(int)puStack_40" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (goto_statement "goto LAB_00045444;" goto statement_identifier ;)) (if_statement "if ((int)local_30 < 2000) {\n      uVar7 = *puStack_3c;\n      uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n      iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n      *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n      *(uint **)(puVar13 + -0x10) = local_30;\n      *(uint **)(puVar13 + -0x14) = puVar11;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0x18) = puVar9;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x456e7;\n      __gmpn_dcpi1_bdiv_qr();\n      local_38 = puVar11 + (int)puStack_40;\n    }\n    else {\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puVar9;\n      puStack_40 = puVar9;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45613;\n      iVar8 = __gmpn_mu_bdiv_qr_itch();\n      uVar7 = iVar8 * 4;\n      if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;\n        puVar13 = puVar13 + iVar8;\n      }\n      else {\n        *(uint *)(puVar13 + -0xc) = uVar7;\n        *(int **)(puVar13 + -0x10) = &iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x45794;\n        uVar7 = __gmp_tmp_reentrant_alloc();\n      }\n      puVar9 = puStack_40;\n      *(uint *)(puVar13 + -8) = uVar7;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puStack_3c;\n      *(uint **)(puVar13 + -0x14) = puVar9;\n      *(uint **)(puVar13 + -0x18) = puVar11;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x45651;\n      __gmpn_mu_bdiv_qr();\n    }" if (parenthesized_expression "((int)local_30 < 2000)" ( (binary_expression "(int)local_30 < 2000" (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar7 = *puStack_3c;\n      uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n      iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n      *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n      *(uint **)(puVar13 + -0x10) = local_30;\n      *(uint **)(puVar13 + -0x14) = puVar11;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0x18) = puVar9;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x456e7;\n      __gmpn_dcpi1_bdiv_qr();\n      local_38 = puVar11 + (int)puStack_40;\n    }" { (expression_statement "uVar7 = *puStack_3c;" (assignment_expression "uVar7 = *puStack_3c" identifier = (pointer_expression "*puStack_3c" * identifier)) ;) (expression_statement "uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];" (assignment_expression "uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f]" identifier = (cast_expression "(uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_34[-0x4e][uVar7 >> 1 & 0x7f]" (subscript_expression "local_34[-0x4e]" identifier [ number_literal ]) [ (binary_expression "uVar7 >> 1 & 0x7f" (binary_expression "uVar7 >> 1" identifier >> number_literal) & number_literal) ])))) ;) (expression_statement "iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;" (assignment_expression "iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7" identifier = (binary_expression "uVar10 * 2 - uVar10 * uVar10 * uVar7" (binary_expression "uVar10 * 2" identifier * number_literal) - (binary_expression "uVar10 * uVar10 * uVar7" (binary_expression "uVar10 * uVar10" identifier * identifier) * identifier))) ;) (expression_statement "*(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;" (assignment_expression "*(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2" (pointer_expression "*(uint *)(puVar13 + -0xc)" * (cast_expression "(uint *)(puVar13 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0xc)" ( (binary_expression "puVar13 + -0xc" identifier + number_literal) )))) = (binary_expression "iVar8 * iVar8 * uVar7 + iVar8 * -2" (binary_expression "iVar8 * iVar8 * uVar7" (binary_expression "iVar8 * iVar8" identifier * identifier) * identifier) + (binary_expression "iVar8 * -2" identifier * number_literal))) ;) (expression_statement "*(uint **)(puVar13 + -0x10) = local_30;" (assignment_expression "*(uint **)(puVar13 + -0x10) = local_30" (pointer_expression "*(uint **)(puVar13 + -0x10)" * (cast_expression "(uint **)(puVar13 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x14) = puVar11;" (assignment_expression "*(uint **)(puVar13 + -0x14) = puVar11" (pointer_expression "*(uint **)(puVar13 + -0x14)" * (cast_expression "(uint **)(puVar13 + -0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar11 = local_38;" (assignment_expression "puVar11 = local_38" identifier = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x18) = puVar9;" (assignment_expression "*(uint **)(puVar13 + -0x18) = puVar9" (pointer_expression "*(uint **)(puVar13 + -0x18)" * (cast_expression "(uint **)(puVar13 + -0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x1c) = puVar11;" (assignment_expression "*(uint **)(puVar13 + -0x1c) = puVar11" (pointer_expression "*(uint **)(puVar13 + -0x1c)" * (cast_expression "(uint **)(puVar13 + -0x1c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x1c)" ( (binary_expression "puVar13 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x20) = apuStack_50[0];" (assignment_expression "*(uint **)(puVar13 + -0x20) = apuStack_50[0]" (pointer_expression "*(uint **)(puVar13 + -0x20)" * (cast_expression "(uint **)(puVar13 + -0x20)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x20)" ( (binary_expression "puVar13 + -0x20" identifier + number_literal) )))) = (subscript_expression "apuStack_50[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x24) = 0x456e7;" (assignment_expression "*(undefined4 *)(puVar13 + -0x24) = 0x456e7" (pointer_expression "*(undefined4 *)(puVar13 + -0x24)" * (cast_expression "(undefined4 *)(puVar13 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x24)" ( (binary_expression "puVar13 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_dcpi1_bdiv_qr();" (call_expression "__gmpn_dcpi1_bdiv_qr()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_38 = puVar11 + (int)puStack_40;" (assignment_expression "local_38 = puVar11 + (int)puStack_40" identifier = (binary_expression "puVar11 + (int)puStack_40" identifier + (cast_expression "(int)puStack_40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puVar9;\n      puStack_40 = puVar9;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45613;\n      iVar8 = __gmpn_mu_bdiv_qr_itch();\n      uVar7 = iVar8 * 4;\n      if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;\n        puVar13 = puVar13 + iVar8;\n      }\n      else {\n        *(uint *)(puVar13 + -0xc) = uVar7;\n        *(int **)(puVar13 + -0x10) = &iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x45794;\n        uVar7 = __gmp_tmp_reentrant_alloc();\n      }\n      puVar9 = puStack_40;\n      *(uint *)(puVar13 + -8) = uVar7;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puStack_3c;\n      *(uint **)(puVar13 + -0x14) = puVar9;\n      *(uint **)(puVar13 + -0x18) = puVar11;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x45651;\n      __gmpn_mu_bdiv_qr();\n    }" else (compound_statement "{\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puVar9;\n      puStack_40 = puVar9;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45613;\n      iVar8 = __gmpn_mu_bdiv_qr_itch();\n      uVar7 = iVar8 * 4;\n      if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;\n        puVar13 = puVar13 + iVar8;\n      }\n      else {\n        *(uint *)(puVar13 + -0xc) = uVar7;\n        *(int **)(puVar13 + -0x10) = &iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x45794;\n        uVar7 = __gmp_tmp_reentrant_alloc();\n      }\n      puVar9 = puStack_40;\n      *(uint *)(puVar13 + -8) = uVar7;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puStack_3c;\n      *(uint **)(puVar13 + -0x14) = puVar9;\n      *(uint **)(puVar13 + -0x18) = puVar11;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x45651;\n      __gmpn_mu_bdiv_qr();\n    }" { (expression_statement "*(uint **)(puVar13 + -0xc) = local_30;" (assignment_expression "*(uint **)(puVar13 + -0xc) = local_30" (pointer_expression "*(uint **)(puVar13 + -0xc)" * (cast_expression "(uint **)(puVar13 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0xc)" ( (binary_expression "puVar13 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x10) = puVar9;" (assignment_expression "*(uint **)(puVar13 + -0x10) = puVar9" (pointer_expression "*(uint **)(puVar13 + -0x10)" * (cast_expression "(uint **)(puVar13 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "puStack_40 = puVar9;" (assignment_expression "puStack_40 = puVar9" identifier = identifier) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0x45613;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0x45613" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" * (cast_expression "(undefined4 *)(puVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar8 = __gmpn_mu_bdiv_qr_itch();" (assignment_expression "iVar8 = __gmpn_mu_bdiv_qr_itch()" identifier = (call_expression "__gmpn_mu_bdiv_qr_itch()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar7 = iVar8 * 4;" (assignment_expression "uVar7 = iVar8 * 4" identifier = (binary_expression "iVar8 * 4" identifier * number_literal)) ;) (if_statement "if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;\n        puVar13 = puVar13 + iVar8;\n      }\n      else {\n        *(uint *)(puVar13 + -0xc) = uVar7;\n        *(int **)(puVar13 + -0x10) = &iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x45794;\n        uVar7 = __gmp_tmp_reentrant_alloc();\n      }" if (parenthesized_expression "(uVar7 < 0x7f01)" ( (binary_expression "uVar7 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;\n        puVar13 = puVar13 + iVar8;\n      }" { (expression_statement "iVar8 = -(uVar7 + 0x1b & 0xfffffff0);" (assignment_expression "iVar8 = -(uVar7 + 0x1b & 0xfffffff0)" identifier = (unary_expression "-(uVar7 + 0x1b & 0xfffffff0)" - (parenthesized_expression "(uVar7 + 0x1b & 0xfffffff0)" ( (binary_expression "uVar7 + 0x1b & 0xfffffff0" (binary_expression "uVar7 + 0x1b" identifier + number_literal) & number_literal) )))) ;) (expression_statement "uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;" (assignment_expression "uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0" identifier = (binary_expression "(uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0" (call_expression "(uint)(puVar13 + iVar8 + 0xf)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar13 + iVar8 + 0xf)" ( (binary_expression "puVar13 + iVar8 + 0xf" (binary_expression "puVar13 + iVar8" identifier + identifier) + number_literal) ))) & number_literal)) ;) (expression_statement "puVar13 = puVar13 + iVar8;" (assignment_expression "puVar13 = puVar13 + iVar8" identifier = (binary_expression "puVar13 + iVar8" identifier + identifier)) ;) }) (else_clause "else {\n        *(uint *)(puVar13 + -0xc) = uVar7;\n        *(int **)(puVar13 + -0x10) = &iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x45794;\n        uVar7 = __gmp_tmp_reentrant_alloc();\n      }" else (compound_statement "{\n        *(uint *)(puVar13 + -0xc) = uVar7;\n        *(int **)(puVar13 + -0x10) = &iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x45794;\n        uVar7 = __gmp_tmp_reentrant_alloc();\n      }" { (expression_statement "*(uint *)(puVar13 + -0xc) = uVar7;" (assignment_expression "*(uint *)(puVar13 + -0xc) = uVar7" (pointer_expression "*(uint *)(puVar13 + -0xc)" * (cast_expression "(uint *)(puVar13 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0xc)" ( (binary_expression "puVar13 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar13 + -0x10) = &iStack_24;" (assignment_expression "*(int **)(puVar13 + -0x10) = &iStack_24" (pointer_expression "*(int **)(puVar13 + -0x10)" * (cast_expression "(int **)(puVar13 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = (pointer_expression "&iStack_24" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0x45794;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0x45794" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" * (cast_expression "(undefined4 *)(puVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar7 = __gmp_tmp_reentrant_alloc();" (assignment_expression "uVar7 = __gmp_tmp_reentrant_alloc()" identifier = (call_expression "__gmp_tmp_reentrant_alloc()" identifier (argument_list "()" ( )))) ;) }))) (expression_statement "puVar9 = puStack_40;" (assignment_expression "puVar9 = puStack_40" identifier = identifier) ;) (expression_statement "*(uint *)(puVar13 + -8) = uVar7;" (assignment_expression "*(uint *)(puVar13 + -8) = uVar7" (pointer_expression "*(uint *)(puVar13 + -8)" * (cast_expression "(uint *)(puVar13 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -8)" ( (binary_expression "puVar13 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar11 = local_38;" (assignment_expression "puVar11 = local_38" identifier = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0xc) = local_30;" (assignment_expression "*(uint **)(puVar13 + -0xc) = local_30" (pointer_expression "*(uint **)(puVar13 + -0xc)" * (cast_expression "(uint **)(puVar13 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0xc)" ( (binary_expression "puVar13 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x10) = puStack_3c;" (assignment_expression "*(uint **)(puVar13 + -0x10) = puStack_3c" (pointer_expression "*(uint **)(puVar13 + -0x10)" * (cast_expression "(uint **)(puVar13 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x14) = puVar9;" (assignment_expression "*(uint **)(puVar13 + -0x14) = puVar9" (pointer_expression "*(uint **)(puVar13 + -0x14)" * (cast_expression "(uint **)(puVar13 + -0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x18) = puVar11;" (assignment_expression "*(uint **)(puVar13 + -0x18) = puVar11" (pointer_expression "*(uint **)(puVar13 + -0x18)" * (cast_expression "(uint **)(puVar13 + -0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x1c) = puVar11;" (assignment_expression "*(uint **)(puVar13 + -0x1c) = puVar11" (pointer_expression "*(uint **)(puVar13 + -0x1c)" * (cast_expression "(uint **)(puVar13 + -0x1c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x1c)" ( (binary_expression "puVar13 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x20) = apuStack_50[0];" (assignment_expression "*(uint **)(puVar13 + -0x20) = apuStack_50[0]" (pointer_expression "*(uint **)(puVar13 + -0x20)" * (cast_expression "(uint **)(puVar13 + -0x20)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x20)" ( (binary_expression "puVar13 + -0x20" identifier + number_literal) )))) = (subscript_expression "apuStack_50[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x24) = 0x45651;" (assignment_expression "*(undefined4 *)(puVar13 + -0x24) = 0x45651" (pointer_expression "*(undefined4 *)(puVar13 + -0x24)" * (cast_expression "(undefined4 *)(puVar13 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x24)" ( (binary_expression "puVar13 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_mu_bdiv_qr();" (call_expression "__gmpn_mu_bdiv_qr()" identifier (argument_list "()" ( ))) ;) }))) }) (else_clause "else {\nLAB_00045444:\n    puVar11 = puStack_3c;\n    uVar7 = *puStack_3c;\n    uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n    iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n    *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n    *(uint **)(puVar13 + -0x10) = local_30;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    puVar11 = local_38;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = puVar11;\n    *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n    *(undefined4 *)(puVar13 + -0x24) = 0x4548b;\n    __gmpn_sbpi1_bdiv_qr();\n    local_38 = puVar11 + (int)puStack_40;\n  }" else (compound_statement "{\nLAB_00045444:\n    puVar11 = puStack_3c;\n    uVar7 = *puStack_3c;\n    uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n    iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n    *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n    *(uint **)(puVar13 + -0x10) = local_30;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    puVar11 = local_38;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = puVar11;\n    *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n    *(undefined4 *)(puVar13 + -0x24) = 0x4548b;\n    __gmpn_sbpi1_bdiv_qr();\n    local_38 = puVar11 + (int)puStack_40;\n  }" { (labeled_statement "LAB_00045444:\n    puVar11 = puStack_3c;" statement_identifier : (expression_statement "puVar11 = puStack_3c;" (assignment_expression "puVar11 = puStack_3c" identifier = identifier) ;)) (expression_statement "uVar7 = *puStack_3c;" (assignment_expression "uVar7 = *puStack_3c" identifier = (pointer_expression "*puStack_3c" * identifier)) ;) (expression_statement "uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];" (assignment_expression "uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f]" identifier = (cast_expression "(uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_34[-0x4e][uVar7 >> 1 & 0x7f]" (subscript_expression "local_34[-0x4e]" identifier [ number_literal ]) [ (binary_expression "uVar7 >> 1 & 0x7f" (binary_expression "uVar7 >> 1" identifier >> number_literal) & number_literal) ])))) ;) (expression_statement "iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;" (assignment_expression "iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7" identifier = (binary_expression "uVar10 * 2 - uVar10 * uVar10 * uVar7" (binary_expression "uVar10 * 2" identifier * number_literal) - (binary_expression "uVar10 * uVar10 * uVar7" (binary_expression "uVar10 * uVar10" identifier * identifier) * identifier))) ;) (expression_statement "*(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;" (assignment_expression "*(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2" (pointer_expression "*(uint *)(puVar13 + -0xc)" * (cast_expression "(uint *)(puVar13 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0xc)" ( (binary_expression "puVar13 + -0xc" identifier + number_literal) )))) = (binary_expression "iVar8 * iVar8 * uVar7 + iVar8 * -2" (binary_expression "iVar8 * iVar8 * uVar7" (binary_expression "iVar8 * iVar8" identifier * identifier) * identifier) + (binary_expression "iVar8 * -2" identifier * number_literal))) ;) (expression_statement "*(uint **)(puVar13 + -0x10) = local_30;" (assignment_expression "*(uint **)(puVar13 + -0x10) = local_30" (pointer_expression "*(uint **)(puVar13 + -0x10)" * (cast_expression "(uint **)(puVar13 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x14) = puVar11;" (assignment_expression "*(uint **)(puVar13 + -0x14) = puVar11" (pointer_expression "*(uint **)(puVar13 + -0x14)" * (cast_expression "(uint **)(puVar13 + -0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar11 = local_38;" (assignment_expression "puVar11 = local_38" identifier = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x18) = puVar9;" (assignment_expression "*(uint **)(puVar13 + -0x18) = puVar9" (pointer_expression "*(uint **)(puVar13 + -0x18)" * (cast_expression "(uint **)(puVar13 + -0x18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x1c) = puVar11;" (assignment_expression "*(uint **)(puVar13 + -0x1c) = puVar11" (pointer_expression "*(uint **)(puVar13 + -0x1c)" * (cast_expression "(uint **)(puVar13 + -0x1c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x1c)" ( (binary_expression "puVar13 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar13 + -0x20) = apuStack_50[0];" (assignment_expression "*(uint **)(puVar13 + -0x20) = apuStack_50[0]" (pointer_expression "*(uint **)(puVar13 + -0x20)" * (cast_expression "(uint **)(puVar13 + -0x20)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x20)" ( (binary_expression "puVar13 + -0x20" identifier + number_literal) )))) = (subscript_expression "apuStack_50[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x24) = 0x4548b;" (assignment_expression "*(undefined4 *)(puVar13 + -0x24) = 0x4548b" (pointer_expression "*(undefined4 *)(puVar13 + -0x24)" * (cast_expression "(undefined4 *)(puVar13 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x24)" ( (binary_expression "puVar13 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_sbpi1_bdiv_qr();" (call_expression "__gmpn_sbpi1_bdiv_qr()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_38 = puVar11 + (int)puStack_40;" (assignment_expression "local_38 = puVar11 + (int)puStack_40" identifier = (binary_expression "puVar11 + (int)puStack_40" identifier + (cast_expression "(int)puStack_40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }))) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n    if (local_38[iVar8] != 0) goto LAB_000454ba;\n    iVar8 = iVar8 + 1;\n  } while (iVar8 < (int)local_30);" do (compound_statement "{\n    if (local_38[iVar8] != 0) goto LAB_000454ba;\n    iVar8 = iVar8 + 1;\n  }" { (if_statement "if (local_38[iVar8] != 0) goto LAB_000454ba;" if (parenthesized_expression "(local_38[iVar8] != 0)" ( (binary_expression "local_38[iVar8] != 0" (subscript_expression "local_38[iVar8]" identifier [ identifier ]) != number_literal) )) (goto_statement "goto LAB_000454ba;" goto statement_identifier ;)) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar8 < (int)local_30)" ( (binary_expression "iVar8 < (int)local_30" identifier < (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (expression_statement "puVar9 = (uint *)0x1;" (assignment_expression "puVar9 = (uint *)0x1" identifier = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar12 = puVar13;" (assignment_expression "puVar12 = puVar13" identifier = identifier) ;) (if_statement "if (iStack_24 != 0) {\n    local_30 = (uint *)0x1;\n    *(int *)(puVar13 + -0x10) = iStack_24;\n    *(undefined4 *)(puVar13 + -0x14) = 0x45585;\n    __gmp_tmp_reentrant_free();\n    puVar9 = local_30;\n  }" if (parenthesized_expression "(iStack_24 != 0)" ( (binary_expression "iStack_24 != 0" identifier != number_literal) )) (compound_statement "{\n    local_30 = (uint *)0x1;\n    *(int *)(puVar13 + -0x10) = iStack_24;\n    *(undefined4 *)(puVar13 + -0x14) = 0x45585;\n    __gmp_tmp_reentrant_free();\n    puVar9 = local_30;\n  }" { (expression_statement "local_30 = (uint *)0x1;" (assignment_expression "local_30 = (uint *)0x1" identifier = (cast_expression "(uint *)0x1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(int *)(puVar13 + -0x10) = iStack_24;" (assignment_expression "*(int *)(puVar13 + -0x10) = iStack_24" (pointer_expression "*(int *)(puVar13 + -0x10)" * (cast_expression "(int *)(puVar13 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0x45585;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0x45585" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" * (cast_expression "(undefined4 *)(puVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "__gmp_tmp_reentrant_free();" (call_expression "__gmp_tmp_reentrant_free()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar9 = local_30;" (assignment_expression "puVar9 = local_30" identifier = identifier) ;) })) (labeled_statement "LAB_000452d0:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    *(undefined4 *)(puVar12 + -4) = 0x457b7;\n    FUN_00079d30();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    *(undefined4 *)(puVar12 + -4) = 0x457b7;\n    FUN_00079d30();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    *(undefined4 *)(puVar12 + -4) = 0x457b7;\n    FUN_00079d30();\n  }" { (expression_statement "*(undefined4 *)(puVar12 + -4) = 0x457b7;" (assignment_expression "*(undefined4 *)(puVar12 + -4) = 0x457b7" (pointer_expression "*(undefined4 *)(puVar12 + -4)" * (cast_expression "(undefined4 *)(puVar12 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar12 + -4)" ( (binary_expression "puVar12 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00079d30();" (call_expression "FUN_00079d30()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return puVar9;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)) & (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) - LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & IDENT) )) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (for_statement for ( (assignment_expression IDENT = IDENT) ; (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) | LIT) )))) ) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (for_statement for ( (assignment_expression IDENT = IDENT) ; (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) | LIT) )))) ) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + LIT) )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (for_statement for ( (assignment_expression IDENT = IDENT) ; (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) | LIT) )))) ) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) << (parenthesized_expression ( (binary_expression (binary_expression LIT - IDENT) & LIT) ))) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_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 (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + IDENT) + LIT) ))) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) + LIT) )))) < (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ])) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (subscript_expression IDENT [ LIT ])) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_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) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , IDENT ))) == (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) * LIT)) < LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_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 = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + LIT) )))) * LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ (binary_expression (binary_expression IDENT >> LIT) & LIT) ])))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) - (binary_expression (binary_expression IDENT * IDENT) * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (binary_expression IDENT * IDENT) * IDENT) + (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 IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_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 IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + IDENT) + LIT) ))) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (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 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 = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_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 ( ))) ;) }))) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ (binary_expression (binary_expression IDENT >> LIT) & LIT) ])))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) - (binary_expression (binary_expression IDENT * IDENT) * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (binary_expression IDENT * IDENT) * IDENT) + (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 IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_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 IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (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 ( ))) ;) }))) (return_statement return IDENT ;) })))
(function_definition "uint * __gmpn_divisible_p(uint *param_1,uint *param_2,uint *param_3,uint *param_4)\n\n{\n  undefined *puVar1;\n  code *pcVar2;\n  int *piVar3;\n  byte bVar4;\n  uint *puVar5;\n  undefined **ppuVar6;\n  uint uVar7;\n  int iVar8;\n  uint *puVar9;\n  uint uVar10;\n  uint *puVar11;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  int in_GS_OFFSET;\n  undefined1 auStack_5c [4];\n  uint *puStack_58;\n  uint *puStack_54;\n  uint *apuStack_50 [4];\n  uint *puStack_40;\n  uint *puStack_3c;\n  uint *local_38;\n  undefined **local_34;\n  uint *local_30;\n  int iStack_24;\n  int local_20;\n  \n  puVar13 = auStack_5c;\n  puVar12 = auStack_5c;\n  local_34 = &__DT_PLTGOT;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if ((int)param_2 < (int)param_4) {\n    puVar9 = (uint *)(uint)(param_2 == (uint *)0x0);\n    local_34 = &__DT_PLTGOT;\n    goto LAB_000452d0;\n  }\n  puVar9 = (uint *)*param_3;\n  uVar7 = *param_1;\n  puVar11 = param_2;\n  if (puVar9 == (uint *)0x0) {\n    do {\n      if (uVar7 != 0) goto LAB_000452ce;\n      puVar11 = (uint *)((int)puVar11 + -1);\n      param_3 = param_3 + 1;\n      param_1 = param_1 + 1;\n      uVar7 = *param_1;\n      local_30 = (uint *)(((int)puVar11 + (int)param_4) - (int)param_2);\n      puVar9 = (uint *)*param_3;\n    } while (puVar9 == (uint *)0x0);\n  }\n  else {\n    local_30 = param_4;\n  }\n  uVar10 = (-(int)puVar9 & (uint)puVar9) - 1;\n  puVar13 = auStack_5c;\n  local_34 = &__DT_PLTGOT;\n  if ((uVar7 & uVar10) != 0) {\nLAB_000452ce:\n    puVar9 = (uint *)0x0;\n    puVar12 = puVar13;\n    goto LAB_000452d0;\n  }\n  if (local_30 == (uint *)0x1) {\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_38 = puVar11;\n      local_30 = puVar9;\n      __gmpn_cpuvec_init();\n      puVar9 = local_30;\n      puVar11 = local_38;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      bVar4 = 0;\n      for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;\n          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {\n        bVar4 = bVar4 + 1;\n      }\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }\n  apuStack_50[3] = (uint *)0x0;\n  for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000))\n  {\n    apuStack_50[3] = (uint *)((int)apuStack_50[3] + 1);\n  }\n  if ((local_30 == (uint *)0x2) && (param_3[1] <= uVar10)) {\n    bVar4 = 0;\n    for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)\n        ) {\n      bVar4 = bVar4 + 1;\n    }\n    uVar7 = param_3[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f);\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_30 = puVar11;\n      __gmpn_cpuvec_init();\n      puVar11 = local_30;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,uVar7,0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }\n  puStack_54 = (uint *)((int)puVar11 + 1);\n  puStack_40 = (uint *)((int)puVar11 - (int)local_30);\n  iStack_24 = 0;\n  uVar7 = ((int)puStack_40 + 1 + (int)puStack_54) * 4;\n  if (uVar7 < 0x7f01) {\n    iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n    puVar13 = auStack_5c + iVar8;\n    local_38 = (uint *)((int)apuStack_50 + iVar8);\n  }\n  else {\n    apuStack_50[2] = puStack_54;\n    puStack_3c = puVar11;\n    local_38 = (uint *)__gmp_tmp_reentrant_alloc(&iStack_24,uVar7);\n    puVar13 = auStack_5c;\n    puStack_54 = apuStack_50[2];\n    puVar11 = puStack_3c;\n  }\n  ppuVar6 = local_34;\n  apuStack_50[2] = (uint *)((int)puStack_54 * 4);\n  apuStack_50[0] = local_38 + (int)puStack_54;\n  if (apuStack_50[3] == (uint *)0x0) {\n    *(uint **)(puVar13 + -8) = puVar11;\n    *(uint **)(puVar13 + -0xc) = param_1;\n    puVar1 = ppuVar6[-0x9b];\n    *(uint **)(puVar13 + -0x10) = local_38;\n    pcVar2 = *(code **)(puVar1 + 0x28);\n    apuStack_50[1] = (uint *)puVar1;\n    apuStack_50[3] = puVar11;\n    *(undefined4 *)(puVar13 + -0x14) = 0x45555;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    puStack_3c = param_3;\n  }\n  else {\n    uVar7 = (int)local_30 * 4;\n    apuStack_50[1] = puVar11;\n    if (uVar7 < 0x7f01) {\n      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n      puStack_3c = (uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0);\n      puVar13 = puVar13 + iVar8;\n    }\n    else {\n      *(uint *)(puVar13 + -0xc) = uVar7;\n      *(int **)(puVar13 + -0x10) = &iStack_24;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc();\n    }\n    puVar11 = apuStack_50[3];\n    puVar1 = local_34[-0x9b];\n    puStack_58 = puStack_54;\n    puStack_54 = apuStack_50[1];\n    *(uint **)(puVar13 + -4) = apuStack_50[3];\n    *(uint **)(puVar13 + -8) = local_30;\n    *(uint **)(puVar13 + -0xc) = param_3;\n    *(uint **)(puVar13 + -0x10) = puStack_3c;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    apuStack_50[1] = (uint *)puVar1;\n    *(undefined4 *)(puVar13 + -0x14) = 0x453c5;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = param_1;\n    *(uint **)(puVar13 + -0x20) = local_38;\n    apuStack_50[3] = puVar9;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    *(undefined4 *)(puVar13 + -0x24) = 0x453d7;\n    (*pcVar2)();\n    puVar9 = puStack_58;\n  }\n  if (*(uint *)((int)local_38 + (int)apuStack_50[2] + -8) < puStack_3c[(int)local_30 + -1]) {\n    if (local_30 == apuStack_50[3]) {\nLAB_000454ba:\n      if (iStack_24 != 0) {\n        *(int *)(puVar13 + -0x10) = iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free();\n      }\n      goto LAB_000452ce;\n    }\n  }\n  else {\n    *(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0;\n    puStack_40 = (uint *)((int)puVar9 - (int)local_30);\n    apuStack_50[3] = puVar9;\n  }\n  piVar3 = (int *)local_34[-0xaa];\n  puVar9 = apuStack_50[3];\n  if (*piVar3 == 0) {\n    *(undefined4 *)(puVar13 + -4) = 0x45702;\n    __gmpn_cpuvec_init();\n    puVar9 = apuStack_50[3];\n  }\n  apuStack_50[3] = *(uint **)((int)apuStack_50[1] + 0x94);\n  iVar8 = (int)apuStack_50[3] * 2;\n  if (SBORROW4((int)local_30,iVar8) == (int)local_30 + (int)apuStack_50[3] * -2 < 0) {\n    if (*piVar3 == 0) {\n      apuStack_50[3] = puVar9;\n      *(undefined4 *)(puVar13 + -4) = 0x4572e;\n      __gmpn_cpuvec_init();\n      iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;\n      puVar9 = apuStack_50[3];\n    }\n    puVar11 = puStack_3c;\n    if ((int)puStack_40 < iVar8) goto LAB_00045444;\n    if ((int)local_30 < 2000) {\n      uVar7 = *puStack_3c;\n      uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n      iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n      *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n      *(uint **)(puVar13 + -0x10) = local_30;\n      *(uint **)(puVar13 + -0x14) = puVar11;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0x18) = puVar9;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x456e7;\n      __gmpn_dcpi1_bdiv_qr();\n      local_38 = puVar11 + (int)puStack_40;\n    }\n    else {\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puVar9;\n      puStack_40 = puVar9;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45613;\n      iVar8 = __gmpn_mu_bdiv_qr_itch();\n      uVar7 = iVar8 * 4;\n      if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;\n        puVar13 = puVar13 + iVar8;\n      }\n      else {\n        *(uint *)(puVar13 + -0xc) = uVar7;\n        *(int **)(puVar13 + -0x10) = &iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x45794;\n        uVar7 = __gmp_tmp_reentrant_alloc();\n      }\n      puVar9 = puStack_40;\n      *(uint *)(puVar13 + -8) = uVar7;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puStack_3c;\n      *(uint **)(puVar13 + -0x14) = puVar9;\n      *(uint **)(puVar13 + -0x18) = puVar11;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x45651;\n      __gmpn_mu_bdiv_qr();\n    }\n  }\n  else {\nLAB_00045444:\n    puVar11 = puStack_3c;\n    uVar7 = *puStack_3c;\n    uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n    iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n    *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n    *(uint **)(puVar13 + -0x10) = local_30;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    puVar11 = local_38;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = puVar11;\n    *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n    *(undefined4 *)(puVar13 + -0x24) = 0x4548b;\n    __gmpn_sbpi1_bdiv_qr();\n    local_38 = puVar11 + (int)puStack_40;\n  }\n  iVar8 = 0;\n  do {\n    if (local_38[iVar8] != 0) goto LAB_000454ba;\n    iVar8 = iVar8 + 1;\n  } while (iVar8 < (int)local_30);\n  puVar9 = (uint *)0x1;\n  puVar12 = puVar13;\n  if (iStack_24 != 0) {\n    local_30 = (uint *)0x1;\n    *(int *)(puVar13 + -0x10) = iStack_24;\n    *(undefined4 *)(puVar13 + -0x14) = 0x45585;\n    __gmp_tmp_reentrant_free();\n    puVar9 = local_30;\n  }\nLAB_000452d0:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    *(undefined4 *)(puVar12 + -4) = 0x457b7;\n    FUN_00079d30();\n  }\n  return puVar9;\n}" (type_identifier "uint") (pointer_declarator "* __gmpn_divisible_p(uint *param_1,uint *param_2,uint *param_3,uint *param_4)" (* "*") (function_declarator "__gmpn_divisible_p(uint *param_1,uint *param_2,uint *param_3,uint *param_4)" (identifier "__gmpn_divisible_p") (parameter_list "(uint *param_1,uint *param_2,uint *param_3,uint *param_4)" (( "(") (parameter_declaration "uint *param_1" (type_identifier "uint") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint *param_2" (type_identifier "uint") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "uint *param_3" (type_identifier "uint") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "uint *param_4" (type_identifier "uint") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")")))) (compound_statement "{\n  undefined *puVar1;\n  code *pcVar2;\n  int *piVar3;\n  byte bVar4;\n  uint *puVar5;\n  undefined **ppuVar6;\n  uint uVar7;\n  int iVar8;\n  uint *puVar9;\n  uint uVar10;\n  uint *puVar11;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  int in_GS_OFFSET;\n  undefined1 auStack_5c [4];\n  uint *puStack_58;\n  uint *puStack_54;\n  uint *apuStack_50 [4];\n  uint *puStack_40;\n  uint *puStack_3c;\n  uint *local_38;\n  undefined **local_34;\n  uint *local_30;\n  int iStack_24;\n  int local_20;\n  \n  puVar13 = auStack_5c;\n  puVar12 = auStack_5c;\n  local_34 = &__DT_PLTGOT;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if ((int)param_2 < (int)param_4) {\n    puVar9 = (uint *)(uint)(param_2 == (uint *)0x0);\n    local_34 = &__DT_PLTGOT;\n    goto LAB_000452d0;\n  }\n  puVar9 = (uint *)*param_3;\n  uVar7 = *param_1;\n  puVar11 = param_2;\n  if (puVar9 == (uint *)0x0) {\n    do {\n      if (uVar7 != 0) goto LAB_000452ce;\n      puVar11 = (uint *)((int)puVar11 + -1);\n      param_3 = param_3 + 1;\n      param_1 = param_1 + 1;\n      uVar7 = *param_1;\n      local_30 = (uint *)(((int)puVar11 + (int)param_4) - (int)param_2);\n      puVar9 = (uint *)*param_3;\n    } while (puVar9 == (uint *)0x0);\n  }\n  else {\n    local_30 = param_4;\n  }\n  uVar10 = (-(int)puVar9 & (uint)puVar9) - 1;\n  puVar13 = auStack_5c;\n  local_34 = &__DT_PLTGOT;\n  if ((uVar7 & uVar10) != 0) {\nLAB_000452ce:\n    puVar9 = (uint *)0x0;\n    puVar12 = puVar13;\n    goto LAB_000452d0;\n  }\n  if (local_30 == (uint *)0x1) {\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_38 = puVar11;\n      local_30 = puVar9;\n      __gmpn_cpuvec_init();\n      puVar9 = local_30;\n      puVar11 = local_38;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      bVar4 = 0;\n      for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;\n          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {\n        bVar4 = bVar4 + 1;\n      }\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }\n  apuStack_50[3] = (uint *)0x0;\n  for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000))\n  {\n    apuStack_50[3] = (uint *)((int)apuStack_50[3] + 1);\n  }\n  if ((local_30 == (uint *)0x2) && (param_3[1] <= uVar10)) {\n    bVar4 = 0;\n    for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)\n        ) {\n      bVar4 = bVar4 + 1;\n    }\n    uVar7 = param_3[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f);\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_30 = puVar11;\n      __gmpn_cpuvec_init();\n      puVar11 = local_30;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,uVar7,0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }\n  puStack_54 = (uint *)((int)puVar11 + 1);\n  puStack_40 = (uint *)((int)puVar11 - (int)local_30);\n  iStack_24 = 0;\n  uVar7 = ((int)puStack_40 + 1 + (int)puStack_54) * 4;\n  if (uVar7 < 0x7f01) {\n    iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n    puVar13 = auStack_5c + iVar8;\n    local_38 = (uint *)((int)apuStack_50 + iVar8);\n  }\n  else {\n    apuStack_50[2] = puStack_54;\n    puStack_3c = puVar11;\n    local_38 = (uint *)__gmp_tmp_reentrant_alloc(&iStack_24,uVar7);\n    puVar13 = auStack_5c;\n    puStack_54 = apuStack_50[2];\n    puVar11 = puStack_3c;\n  }\n  ppuVar6 = local_34;\n  apuStack_50[2] = (uint *)((int)puStack_54 * 4);\n  apuStack_50[0] = local_38 + (int)puStack_54;\n  if (apuStack_50[3] == (uint *)0x0) {\n    *(uint **)(puVar13 + -8) = puVar11;\n    *(uint **)(puVar13 + -0xc) = param_1;\n    puVar1 = ppuVar6[-0x9b];\n    *(uint **)(puVar13 + -0x10) = local_38;\n    pcVar2 = *(code **)(puVar1 + 0x28);\n    apuStack_50[1] = (uint *)puVar1;\n    apuStack_50[3] = puVar11;\n    *(undefined4 *)(puVar13 + -0x14) = 0x45555;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    puStack_3c = param_3;\n  }\n  else {\n    uVar7 = (int)local_30 * 4;\n    apuStack_50[1] = puVar11;\n    if (uVar7 < 0x7f01) {\n      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n      puStack_3c = (uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0);\n      puVar13 = puVar13 + iVar8;\n    }\n    else {\n      *(uint *)(puVar13 + -0xc) = uVar7;\n      *(int **)(puVar13 + -0x10) = &iStack_24;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc();\n    }\n    puVar11 = apuStack_50[3];\n    puVar1 = local_34[-0x9b];\n    puStack_58 = puStack_54;\n    puStack_54 = apuStack_50[1];\n    *(uint **)(puVar13 + -4) = apuStack_50[3];\n    *(uint **)(puVar13 + -8) = local_30;\n    *(uint **)(puVar13 + -0xc) = param_3;\n    *(uint **)(puVar13 + -0x10) = puStack_3c;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    apuStack_50[1] = (uint *)puVar1;\n    *(undefined4 *)(puVar13 + -0x14) = 0x453c5;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = param_1;\n    *(uint **)(puVar13 + -0x20) = local_38;\n    apuStack_50[3] = puVar9;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    *(undefined4 *)(puVar13 + -0x24) = 0x453d7;\n    (*pcVar2)();\n    puVar9 = puStack_58;\n  }\n  if (*(uint *)((int)local_38 + (int)apuStack_50[2] + -8) < puStack_3c[(int)local_30 + -1]) {\n    if (local_30 == apuStack_50[3]) {\nLAB_000454ba:\n      if (iStack_24 != 0) {\n        *(int *)(puVar13 + -0x10) = iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free();\n      }\n      goto LAB_000452ce;\n    }\n  }\n  else {\n    *(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0;\n    puStack_40 = (uint *)((int)puVar9 - (int)local_30);\n    apuStack_50[3] = puVar9;\n  }\n  piVar3 = (int *)local_34[-0xaa];\n  puVar9 = apuStack_50[3];\n  if (*piVar3 == 0) {\n    *(undefined4 *)(puVar13 + -4) = 0x45702;\n    __gmpn_cpuvec_init();\n    puVar9 = apuStack_50[3];\n  }\n  apuStack_50[3] = *(uint **)((int)apuStack_50[1] + 0x94);\n  iVar8 = (int)apuStack_50[3] * 2;\n  if (SBORROW4((int)local_30,iVar8) == (int)local_30 + (int)apuStack_50[3] * -2 < 0) {\n    if (*piVar3 == 0) {\n      apuStack_50[3] = puVar9;\n      *(undefined4 *)(puVar13 + -4) = 0x4572e;\n      __gmpn_cpuvec_init();\n      iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;\n      puVar9 = apuStack_50[3];\n    }\n    puVar11 = puStack_3c;\n    if ((int)puStack_40 < iVar8) goto LAB_00045444;\n    if ((int)local_30 < 2000) {\n      uVar7 = *puStack_3c;\n      uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n      iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n      *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n      *(uint **)(puVar13 + -0x10) = local_30;\n      *(uint **)(puVar13 + -0x14) = puVar11;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0x18) = puVar9;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x456e7;\n      __gmpn_dcpi1_bdiv_qr();\n      local_38 = puVar11 + (int)puStack_40;\n    }\n    else {\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puVar9;\n      puStack_40 = puVar9;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45613;\n      iVar8 = __gmpn_mu_bdiv_qr_itch();\n      uVar7 = iVar8 * 4;\n      if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;\n        puVar13 = puVar13 + iVar8;\n      }\n      else {\n        *(uint *)(puVar13 + -0xc) = uVar7;\n        *(int **)(puVar13 + -0x10) = &iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x45794;\n        uVar7 = __gmp_tmp_reentrant_alloc();\n      }\n      puVar9 = puStack_40;\n      *(uint *)(puVar13 + -8) = uVar7;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puStack_3c;\n      *(uint **)(puVar13 + -0x14) = puVar9;\n      *(uint **)(puVar13 + -0x18) = puVar11;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x45651;\n      __gmpn_mu_bdiv_qr();\n    }\n  }\n  else {\nLAB_00045444:\n    puVar11 = puStack_3c;\n    uVar7 = *puStack_3c;\n    uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n    iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n    *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n    *(uint **)(puVar13 + -0x10) = local_30;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    puVar11 = local_38;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = puVar11;\n    *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n    *(undefined4 *)(puVar13 + -0x24) = 0x4548b;\n    __gmpn_sbpi1_bdiv_qr();\n    local_38 = puVar11 + (int)puStack_40;\n  }\n  iVar8 = 0;\n  do {\n    if (local_38[iVar8] != 0) goto LAB_000454ba;\n    iVar8 = iVar8 + 1;\n  } while (iVar8 < (int)local_30);\n  puVar9 = (uint *)0x1;\n  puVar12 = puVar13;\n  if (iStack_24 != 0) {\n    local_30 = (uint *)0x1;\n    *(int *)(puVar13 + -0x10) = iStack_24;\n    *(undefined4 *)(puVar13 + -0x14) = 0x45585;\n    __gmp_tmp_reentrant_free();\n    puVar9 = local_30;\n  }\nLAB_000452d0:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    *(undefined4 *)(puVar12 + -4) = 0x457b7;\n    FUN_00079d30();\n  }\n  return puVar9;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "code *pcVar2;" (type_identifier "code") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "byte bVar4;" (type_identifier "byte") (identifier "bVar4") (; ";")) (declaration "uint *puVar5;" (type_identifier "uint") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined **ppuVar6;" (type_identifier "undefined") (pointer_declarator "**ppuVar6" (* "*") (pointer_declarator "*ppuVar6" (* "*") (identifier "ppuVar6"))) (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "uint *puVar9;" (type_identifier "uint") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "uint *puVar11;" (type_identifier "uint") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "undefined1 *puVar12;" (type_identifier "undefined1") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "undefined1 *puVar13;" (type_identifier "undefined1") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "undefined1 auStack_5c [4];" (type_identifier "undefined1") (array_declarator "auStack_5c [4]" (identifier "auStack_5c") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "uint *puStack_58;" (type_identifier "uint") (pointer_declarator "*puStack_58" (* "*") (identifier "puStack_58")) (; ";")) (declaration "uint *puStack_54;" (type_identifier "uint") (pointer_declarator "*puStack_54" (* "*") (identifier "puStack_54")) (; ";")) (declaration "uint *apuStack_50 [4];" (type_identifier "uint") (pointer_declarator "*apuStack_50 [4]" (* "*") (array_declarator "apuStack_50 [4]" (identifier "apuStack_50") ([ "[") (number_literal "4") (] "]"))) (; ";")) (declaration "uint *puStack_40;" (type_identifier "uint") (pointer_declarator "*puStack_40" (* "*") (identifier "puStack_40")) (; ";")) (declaration "uint *puStack_3c;" (type_identifier "uint") (pointer_declarator "*puStack_3c" (* "*") (identifier "puStack_3c")) (; ";")) (declaration "uint *local_38;" (type_identifier "uint") (pointer_declarator "*local_38" (* "*") (identifier "local_38")) (; ";")) (declaration "undefined **local_34;" (type_identifier "undefined") (pointer_declarator "**local_34" (* "*") (pointer_declarator "*local_34" (* "*") (identifier "local_34"))) (; ";")) (declaration "uint *local_30;" (type_identifier "uint") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (declaration "int iStack_24;" (primitive_type "int") (identifier "iStack_24") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (expression_statement "puVar13 = auStack_5c;" (assignment_expression "puVar13 = auStack_5c" (identifier "puVar13") (= "=") (identifier "auStack_5c")) (; ";")) (expression_statement "puVar12 = auStack_5c;" (assignment_expression "puVar12 = auStack_5c" (identifier "puVar12") (= "=") (identifier "auStack_5c")) (; ";")) (expression_statement "local_34 = &__DT_PLTGOT;" (assignment_expression "local_34 = &__DT_PLTGOT" (identifier "local_34") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if ((int)param_2 < (int)param_4) {\n    puVar9 = (uint *)(uint)(param_2 == (uint *)0x0);\n    local_34 = &__DT_PLTGOT;\n    goto LAB_000452d0;\n  }" (if "if") (parenthesized_expression "((int)param_2 < (int)param_4)" (( "(") (binary_expression "(int)param_2 < (int)param_4" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (< "<") (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4"))) () ")")) (compound_statement "{\n    puVar9 = (uint *)(uint)(param_2 == (uint *)0x0);\n    local_34 = &__DT_PLTGOT;\n    goto LAB_000452d0;\n  }" ({ "{") (expression_statement "puVar9 = (uint *)(uint)(param_2 == (uint *)0x0);" (assignment_expression "puVar9 = (uint *)(uint)(param_2 == (uint *)0x0)" (identifier "puVar9") (= "=") (cast_expression "(uint *)(uint)(param_2 == (uint *)0x0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(param_2 == (uint *)0x0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_2 == (uint *)0x0)" (( "(") (binary_expression "param_2 == (uint *)0x0" (identifier "param_2") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))))) (; ";")) (expression_statement "local_34 = &__DT_PLTGOT;" (assignment_expression "local_34 = &__DT_PLTGOT" (identifier "local_34") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (goto_statement "goto LAB_000452d0;" (goto "goto") (statement_identifier "LAB_000452d0") (; ";")) (} "}"))) (expression_statement "puVar9 = (uint *)*param_3;" (assignment_expression "puVar9 = (uint *)*param_3" (identifier "puVar9") (= "=") (cast_expression "(uint *)*param_3" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_3" (* "*") (identifier "param_3")))) (; ";")) (expression_statement "uVar7 = *param_1;" (assignment_expression "uVar7 = *param_1" (identifier "uVar7") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "puVar11 = param_2;" (assignment_expression "puVar11 = param_2" (identifier "puVar11") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (puVar9 == (uint *)0x0) {\n    do {\n      if (uVar7 != 0) goto LAB_000452ce;\n      puVar11 = (uint *)((int)puVar11 + -1);\n      param_3 = param_3 + 1;\n      param_1 = param_1 + 1;\n      uVar7 = *param_1;\n      local_30 = (uint *)(((int)puVar11 + (int)param_4) - (int)param_2);\n      puVar9 = (uint *)*param_3;\n    } while (puVar9 == (uint *)0x0);\n  }\n  else {\n    local_30 = param_4;\n  }" (if "if") (parenthesized_expression "(puVar9 == (uint *)0x0)" (( "(") (binary_expression "puVar9 == (uint *)0x0" (identifier "puVar9") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    do {\n      if (uVar7 != 0) goto LAB_000452ce;\n      puVar11 = (uint *)((int)puVar11 + -1);\n      param_3 = param_3 + 1;\n      param_1 = param_1 + 1;\n      uVar7 = *param_1;\n      local_30 = (uint *)(((int)puVar11 + (int)param_4) - (int)param_2);\n      puVar9 = (uint *)*param_3;\n    } while (puVar9 == (uint *)0x0);\n  }" ({ "{") (do_statement "do {\n      if (uVar7 != 0) goto LAB_000452ce;\n      puVar11 = (uint *)((int)puVar11 + -1);\n      param_3 = param_3 + 1;\n      param_1 = param_1 + 1;\n      uVar7 = *param_1;\n      local_30 = (uint *)(((int)puVar11 + (int)param_4) - (int)param_2);\n      puVar9 = (uint *)*param_3;\n    } while (puVar9 == (uint *)0x0);" (do "do") (compound_statement "{\n      if (uVar7 != 0) goto LAB_000452ce;\n      puVar11 = (uint *)((int)puVar11 + -1);\n      param_3 = param_3 + 1;\n      param_1 = param_1 + 1;\n      uVar7 = *param_1;\n      local_30 = (uint *)(((int)puVar11 + (int)param_4) - (int)param_2);\n      puVar9 = (uint *)*param_3;\n    }" ({ "{") (if_statement "if (uVar7 != 0) goto LAB_000452ce;" (if "if") (parenthesized_expression "(uVar7 != 0)" (( "(") (binary_expression "uVar7 != 0" (identifier "uVar7") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000452ce;" (goto "goto") (statement_identifier "LAB_000452ce") (; ";"))) (expression_statement "puVar11 = (uint *)((int)puVar11 + -1);" (assignment_expression "puVar11 = (uint *)((int)puVar11 + -1)" (identifier "puVar11") (= "=") (cast_expression "(uint *)((int)puVar11 + -1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + -1)" (( "(") (binary_expression "(int)puVar11 + -1" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" (identifier "param_3") (= "=") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar7 = *param_1;" (assignment_expression "uVar7 = *param_1" (identifier "uVar7") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "local_30 = (uint *)(((int)puVar11 + (int)param_4) - (int)param_2);" (assignment_expression "local_30 = (uint *)(((int)puVar11 + (int)param_4) - (int)param_2)" (identifier "local_30") (= "=") (cast_expression "(uint *)(((int)puVar11 + (int)param_4) - (int)param_2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((int)puVar11 + (int)param_4) - (int)param_2)" (( "(") (binary_expression "((int)puVar11 + (int)param_4) - (int)param_2" (parenthesized_expression "((int)puVar11 + (int)param_4)" (( "(") (binary_expression "(int)puVar11 + (int)param_4" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4"))) () ")")) (- "-") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")")))) (; ";")) (expression_statement "puVar9 = (uint *)*param_3;" (assignment_expression "puVar9 = (uint *)*param_3" (identifier "puVar9") (= "=") (cast_expression "(uint *)*param_3" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_3" (* "*") (identifier "param_3")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar9 == (uint *)0x0)" (( "(") (binary_expression "puVar9 == (uint *)0x0" (identifier "puVar9") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}")) (else_clause "else {\n    local_30 = param_4;\n  }" (else "else") (compound_statement "{\n    local_30 = param_4;\n  }" ({ "{") (expression_statement "local_30 = param_4;" (assignment_expression "local_30 = param_4" (identifier "local_30") (= "=") (identifier "param_4")) (; ";")) (} "}")))) (expression_statement "uVar10 = (-(int)puVar9 & (uint)puVar9) - 1;" (assignment_expression "uVar10 = (-(int)puVar9 & (uint)puVar9) - 1" (identifier "uVar10") (= "=") (binary_expression "(-(int)puVar9 & (uint)puVar9) - 1" (parenthesized_expression "(-(int)puVar9 & (uint)puVar9)" (( "(") (binary_expression "-(int)puVar9 & (uint)puVar9" (unary_expression "-(int)puVar9" (- "-") (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9"))) (& "&") (cast_expression "(uint)puVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar9"))) () ")")) (- "-") (number_literal "1"))) (; ";")) (expression_statement "puVar13 = auStack_5c;" (assignment_expression "puVar13 = auStack_5c" (identifier "puVar13") (= "=") (identifier "auStack_5c")) (; ";")) (expression_statement "local_34 = &__DT_PLTGOT;" (assignment_expression "local_34 = &__DT_PLTGOT" (identifier "local_34") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (if_statement "if ((uVar7 & uVar10) != 0) {\nLAB_000452ce:\n    puVar9 = (uint *)0x0;\n    puVar12 = puVar13;\n    goto LAB_000452d0;\n  }" (if "if") (parenthesized_expression "((uVar7 & uVar10) != 0)" (( "(") (binary_expression "(uVar7 & uVar10) != 0" (parenthesized_expression "(uVar7 & uVar10)" (( "(") (binary_expression "uVar7 & uVar10" (identifier "uVar7") (& "&") (identifier "uVar10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000452ce:\n    puVar9 = (uint *)0x0;\n    puVar12 = puVar13;\n    goto LAB_000452d0;\n  }" ({ "{") (labeled_statement "LAB_000452ce:\n    puVar9 = (uint *)0x0;" (statement_identifier "LAB_000452ce") (: ":") (expression_statement "puVar9 = (uint *)0x0;" (assignment_expression "puVar9 = (uint *)0x0" (identifier "puVar9") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "puVar12 = puVar13;" (assignment_expression "puVar12 = puVar13" (identifier "puVar12") (= "=") (identifier "puVar13")) (; ";")) (goto_statement "goto LAB_000452d0;" (goto "goto") (statement_identifier "LAB_000452d0") (; ";")) (} "}"))) (if_statement "if (local_30 == (uint *)0x1) {\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_38 = puVar11;\n      local_30 = puVar9;\n      __gmpn_cpuvec_init();\n      puVar9 = local_30;\n      puVar11 = local_38;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      bVar4 = 0;\n      for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;\n          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {\n        bVar4 = bVar4 + 1;\n      }\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }" (if "if") (parenthesized_expression "(local_30 == (uint *)0x1)" (( "(") (binary_expression "local_30 == (uint *)0x1" (identifier "local_30") (== "==") (cast_expression "(uint *)0x1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_38 = puVar11;\n      local_30 = puVar9;\n      __gmpn_cpuvec_init();\n      puVar9 = local_30;\n      puVar11 = local_38;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      bVar4 = 0;\n      for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;\n          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {\n        bVar4 = bVar4 + 1;\n      }\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }" ({ "{") (if_statement "if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_38 = puVar11;\n      local_30 = puVar9;\n      __gmpn_cpuvec_init();\n      puVar9 = local_30;\n      puVar11 = local_38;\n    }" (if "if") (parenthesized_expression "(*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0)" (( "(") (binary_expression "*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0" (pointer_expression "*(int *)PTR___gmpn_cpuvec_initialized_00098d58" (* "*") (cast_expression "(int *)PTR___gmpn_cpuvec_initialized_00098d58" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_cpuvec_initialized_00098d58"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_38 = puVar11;\n      local_30 = puVar9;\n      __gmpn_cpuvec_init();\n      puVar9 = local_30;\n      puVar11 = local_38;\n    }" ({ "{") (expression_statement "local_38 = puVar11;" (assignment_expression "local_38 = puVar11" (identifier "local_38") (= "=") (identifier "puVar11")) (; ";")) (expression_statement "local_30 = puVar9;" (assignment_expression "local_30 = puVar9" (identifier "local_30") (= "=") (identifier "puVar9")) (; ";")) (expression_statement "__gmpn_cpuvec_init();" (call_expression "__gmpn_cpuvec_init()" (identifier "__gmpn_cpuvec_init") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar9 = local_30;" (assignment_expression "puVar9 = local_30" (identifier "puVar9") (= "=") (identifier "local_30")) (; ";")) (expression_statement "puVar11 = local_38;" (assignment_expression "puVar11 = local_38" (identifier "puVar11") (= "=") (identifier "local_38")) (; ";")) (} "}"))) (expression_statement "puVar1 = local_34[-0x9b];" (assignment_expression "puVar1 = local_34[-0x9b]" (identifier "puVar1") (= "=") (subscript_expression "local_34[-0x9b]" (identifier "local_34") ([ "[") (number_literal "-0x9b") (] "]"))) (; ";")) (if_statement "if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      bVar4 = 0;\n      for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;\n          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {\n        bVar4 = bVar4 + 1;\n      }\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }" (if "if") (parenthesized_expression "((int)puVar11 < *(int *)(puVar1 + 0xa4))" (( "(") (binary_expression "(int)puVar11 < *(int *)(puVar1 + 0xa4)" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (< "<") (pointer_expression "*(int *)(puVar1 + 0xa4)" (* "*") (cast_expression "(int *)(puVar1 + 0xa4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 0xa4)" (( "(") (binary_expression "puVar1 + 0xa4" (identifier "puVar1") (+ "+") (number_literal "0xa4")) () ")"))))) () ")")) (compound_statement "{\n      bVar4 = 0;\n      for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;\n          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {\n        bVar4 = bVar4 + 1;\n      }\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }" ({ "{") (expression_statement "bVar4 = 0;" (assignment_expression "bVar4 = 0" (identifier "bVar4") (= "=") (number_literal "0")) (; ";")) (for_statement "for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;\n          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {\n        bVar4 = bVar4 + 1;\n      }" (for "for") (( "(") (assignment_expression "puVar5 = puVar9" (identifier "puVar5") (= "=") (identifier "puVar9")) (; ";") (binary_expression "((uint)puVar5 & 1) == 0" (parenthesized_expression "((uint)puVar5 & 1)" (( "(") (binary_expression "(uint)puVar5 & 1" (cast_expression "(uint)puVar5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar5")) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) (; ";") (assignment_expression "puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)" (identifier "puVar5") (= "=") (cast_expression "(uint *)((uint)puVar5 >> 1 | 0x80000000)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)puVar5 >> 1 | 0x80000000)" (( "(") (binary_expression "(uint)puVar5 >> 1 | 0x80000000" (binary_expression "(uint)puVar5 >> 1" (cast_expression "(uint)puVar5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar5")) (>> ">>") (number_literal "1")) (| "|") (number_literal "0x80000000")) () ")")))) () ")") (compound_statement "{\n        bVar4 = bVar4 + 1;\n      }" ({ "{") (expression_statement "bVar4 = bVar4 + 1;" (assignment_expression "bVar4 = bVar4 + 1" (identifier "bVar4") (= "=") (binary_expression "bVar4 + 1" (identifier "bVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0);" (assignment_expression "iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(puVar1 + 0x60))(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0)" (parenthesized_expression "(**(code **)(puVar1 + 0x60))" (( "(") (pointer_expression "**(code **)(puVar1 + 0x60)" (* "*") (pointer_expression "*(code **)(puVar1 + 0x60)" (* "*") (cast_expression "(code **)(puVar1 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar1 + 0x60)" (( "(") (binary_expression "puVar1 + 0x60" (identifier "puVar1") (+ "+") (number_literal "0x60")) () ")"))))) () ")")) (argument_list "(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0)" (( "(") (identifier "param_1") (, ",") (identifier "puVar11") (, ",") (binary_expression "(uint)puVar9 >> (bVar4 & 0x1f)" (cast_expression "(uint)puVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar9")) (>> ">>") (parenthesized_expression "(bVar4 & 0x1f)" (( "(") (binary_expression "bVar4 & 0x1f" (identifier "bVar4") (& "&") (number_literal "0x1f")) () ")"))) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "puVar9 = (uint *)(uint)(iVar8 == 0);" (assignment_expression "puVar9 = (uint *)(uint)(iVar8 == 0)" (identifier "puVar9") (= "=") (cast_expression "(uint *)(uint)(iVar8 == 0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(iVar8 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")"))))) (; ";")) (expression_statement "puVar12 = auStack_5c;" (assignment_expression "puVar12 = auStack_5c" (identifier "puVar12") (= "=") (identifier "auStack_5c")) (; ";")) (} "}")) (else_clause "else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }" (else "else") (compound_statement "{\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }" ({ "{") (expression_statement "iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9);" (assignment_expression "iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9)" (parenthesized_expression "(**(code **)(puVar1 + 0x40))" (( "(") (pointer_expression "**(code **)(puVar1 + 0x40)" (* "*") (pointer_expression "*(code **)(puVar1 + 0x40)" (* "*") (cast_expression "(code **)(puVar1 + 0x40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar1 + 0x40)" (( "(") (binary_expression "puVar1 + 0x40" (identifier "puVar1") (+ "+") (number_literal "0x40")) () ")"))))) () ")")) (argument_list "(param_1,puVar11,puVar9)" (( "(") (identifier "param_1") (, ",") (identifier "puVar11") (, ",") (identifier "puVar9") () ")")))) (; ";")) (expression_statement "puVar9 = (uint *)(uint)(iVar8 == 0);" (assignment_expression "puVar9 = (uint *)(uint)(iVar8 == 0)" (identifier "puVar9") (= "=") (cast_expression "(uint *)(uint)(iVar8 == 0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(iVar8 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")"))))) (; ";")) (expression_statement "puVar12 = auStack_5c;" (assignment_expression "puVar12 = auStack_5c" (identifier "puVar12") (= "=") (identifier "auStack_5c")) (; ";")) (} "}")))) (goto_statement "goto LAB_000452d0;" (goto "goto") (statement_identifier "LAB_000452d0") (; ";")) (} "}"))) (expression_statement "apuStack_50[3] = (uint *)0x0;" (assignment_expression "apuStack_50[3] = (uint *)0x0" (subscript_expression "apuStack_50[3]" (identifier "apuStack_50") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (for_statement "for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000))\n  {\n    apuStack_50[3] = (uint *)((int)apuStack_50[3] + 1);\n  }" (for "for") (( "(") (assignment_expression "puVar5 = puVar9" (identifier "puVar5") (= "=") (identifier "puVar9")) (; ";") (binary_expression "((uint)puVar5 & 1) == 0" (parenthesized_expression "((uint)puVar5 & 1)" (( "(") (binary_expression "(uint)puVar5 & 1" (cast_expression "(uint)puVar5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar5")) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) (; ";") (assignment_expression "puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)" (identifier "puVar5") (= "=") (cast_expression "(uint *)((uint)puVar5 >> 1 | 0x80000000)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)puVar5 >> 1 | 0x80000000)" (( "(") (binary_expression "(uint)puVar5 >> 1 | 0x80000000" (binary_expression "(uint)puVar5 >> 1" (cast_expression "(uint)puVar5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar5")) (>> ">>") (number_literal "1")) (| "|") (number_literal "0x80000000")) () ")")))) () ")") (compound_statement "{\n    apuStack_50[3] = (uint *)((int)apuStack_50[3] + 1);\n  }" ({ "{") (expression_statement "apuStack_50[3] = (uint *)((int)apuStack_50[3] + 1);" (assignment_expression "apuStack_50[3] = (uint *)((int)apuStack_50[3] + 1)" (subscript_expression "apuStack_50[3]" (identifier "apuStack_50") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(uint *)((int)apuStack_50[3] + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)apuStack_50[3] + 1)" (( "(") (binary_expression "(int)apuStack_50[3] + 1" (cast_expression "(int)apuStack_50[3]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "apuStack_50[3]" (identifier "apuStack_50") ([ "[") (number_literal "3") (] "]"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (if_statement "if ((local_30 == (uint *)0x2) && (param_3[1] <= uVar10)) {\n    bVar4 = 0;\n    for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)\n        ) {\n      bVar4 = bVar4 + 1;\n    }\n    uVar7 = param_3[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f);\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_30 = puVar11;\n      __gmpn_cpuvec_init();\n      puVar11 = local_30;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,uVar7,0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }" (if "if") (parenthesized_expression "((local_30 == (uint *)0x2) && (param_3[1] <= uVar10))" (( "(") (binary_expression "(local_30 == (uint *)0x2) && (param_3[1] <= uVar10)" (parenthesized_expression "(local_30 == (uint *)0x2)" (( "(") (binary_expression "local_30 == (uint *)0x2" (identifier "local_30") (== "==") (cast_expression "(uint *)0x2" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")")) (&& "&&") (parenthesized_expression "(param_3[1] <= uVar10)" (( "(") (binary_expression "param_3[1] <= uVar10" (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) (<= "<=") (identifier "uVar10")) () ")"))) () ")")) (compound_statement "{\n    bVar4 = 0;\n    for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)\n        ) {\n      bVar4 = bVar4 + 1;\n    }\n    uVar7 = param_3[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f);\n    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_30 = puVar11;\n      __gmpn_cpuvec_init();\n      puVar11 = local_30;\n    }\n    puVar1 = local_34[-0x9b];\n    if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,uVar7,0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    goto LAB_000452d0;\n  }" ({ "{") (expression_statement "bVar4 = 0;" (assignment_expression "bVar4 = 0" (identifier "bVar4") (= "=") (number_literal "0")) (; ";")) (for_statement "for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)\n        ) {\n      bVar4 = bVar4 + 1;\n    }" (for "for") (( "(") (assignment_expression "puVar5 = puVar9" (identifier "puVar5") (= "=") (identifier "puVar9")) (; ";") (binary_expression "((uint)puVar5 & 1) == 0" (parenthesized_expression "((uint)puVar5 & 1)" (( "(") (binary_expression "(uint)puVar5 & 1" (cast_expression "(uint)puVar5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar5")) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) (; ";") (assignment_expression "puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)" (identifier "puVar5") (= "=") (cast_expression "(uint *)((uint)puVar5 >> 1 | 0x80000000)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)puVar5 >> 1 | 0x80000000)" (( "(") (binary_expression "(uint)puVar5 >> 1 | 0x80000000" (binary_expression "(uint)puVar5 >> 1" (cast_expression "(uint)puVar5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar5")) (>> ">>") (number_literal "1")) (| "|") (number_literal "0x80000000")) () ")")))) () ")") (compound_statement "{\n      bVar4 = bVar4 + 1;\n    }" ({ "{") (expression_statement "bVar4 = bVar4 + 1;" (assignment_expression "bVar4 = bVar4 + 1" (identifier "bVar4") (= "=") (binary_expression "bVar4 + 1" (identifier "bVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "uVar7 = param_3[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f);" (assignment_expression "uVar7 = param_3[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f)" (identifier "uVar7") (= "=") (binary_expression "param_3[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f)" (binary_expression "param_3[1] << (0x20 - bVar4 & 0x1f)" (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) (<< "<<") (parenthesized_expression "(0x20 - bVar4 & 0x1f)" (( "(") (binary_expression "0x20 - bVar4 & 0x1f" (binary_expression "0x20 - bVar4" (number_literal "0x20") (- "-") (identifier "bVar4")) (& "&") (number_literal "0x1f")) () ")"))) (| "|") (binary_expression "(uint)puVar9 >> (bVar4 & 0x1f)" (cast_expression "(uint)puVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar9")) (>> ">>") (parenthesized_expression "(bVar4 & 0x1f)" (( "(") (binary_expression "bVar4 & 0x1f" (identifier "bVar4") (& "&") (number_literal "0x1f")) () ")"))))) (; ";")) (if_statement "if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {\n      local_30 = puVar11;\n      __gmpn_cpuvec_init();\n      puVar11 = local_30;\n    }" (if "if") (parenthesized_expression "(*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0)" (( "(") (binary_expression "*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0" (pointer_expression "*(int *)PTR___gmpn_cpuvec_initialized_00098d58" (* "*") (cast_expression "(int *)PTR___gmpn_cpuvec_initialized_00098d58" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_cpuvec_initialized_00098d58"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_30 = puVar11;\n      __gmpn_cpuvec_init();\n      puVar11 = local_30;\n    }" ({ "{") (expression_statement "local_30 = puVar11;" (assignment_expression "local_30 = puVar11" (identifier "local_30") (= "=") (identifier "puVar11")) (; ";")) (expression_statement "__gmpn_cpuvec_init();" (call_expression "__gmpn_cpuvec_init()" (identifier "__gmpn_cpuvec_init") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar11 = local_30;" (assignment_expression "puVar11 = local_30" (identifier "puVar11") (= "=") (identifier "local_30")) (; ";")) (} "}"))) (expression_statement "puVar1 = local_34[-0x9b];" (assignment_expression "puVar1 = local_34[-0x9b]" (identifier "puVar1") (= "=") (subscript_expression "local_34[-0x9b]" (identifier "local_34") ([ "[") (number_literal "-0x9b") (] "]"))) (; ";")) (if_statement "if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,uVar7,0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }\n    else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }" (if "if") (parenthesized_expression "((int)puVar11 < *(int *)(puVar1 + 0xa4))" (( "(") (binary_expression "(int)puVar11 < *(int *)(puVar1 + 0xa4)" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (< "<") (pointer_expression "*(int *)(puVar1 + 0xa4)" (* "*") (cast_expression "(int *)(puVar1 + 0xa4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 0xa4)" (( "(") (binary_expression "puVar1 + 0xa4" (identifier "puVar1") (+ "+") (number_literal "0xa4")) () ")"))))) () ")")) (compound_statement "{\n      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,uVar7,0);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }" ({ "{") (expression_statement "iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,uVar7,0);" (assignment_expression "iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,uVar7,0)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(puVar1 + 0x60))(param_1,puVar11,uVar7,0)" (parenthesized_expression "(**(code **)(puVar1 + 0x60))" (( "(") (pointer_expression "**(code **)(puVar1 + 0x60)" (* "*") (pointer_expression "*(code **)(puVar1 + 0x60)" (* "*") (cast_expression "(code **)(puVar1 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar1 + 0x60)" (( "(") (binary_expression "puVar1 + 0x60" (identifier "puVar1") (+ "+") (number_literal "0x60")) () ")"))))) () ")")) (argument_list "(param_1,puVar11,uVar7,0)" (( "(") (identifier "param_1") (, ",") (identifier "puVar11") (, ",") (identifier "uVar7") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "puVar9 = (uint *)(uint)(iVar8 == 0);" (assignment_expression "puVar9 = (uint *)(uint)(iVar8 == 0)" (identifier "puVar9") (= "=") (cast_expression "(uint *)(uint)(iVar8 == 0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(iVar8 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")"))))) (; ";")) (expression_statement "puVar12 = auStack_5c;" (assignment_expression "puVar12 = auStack_5c" (identifier "puVar12") (= "=") (identifier "auStack_5c")) (; ";")) (} "}")) (else_clause "else {\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }" (else "else") (compound_statement "{\n      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7);\n      puVar9 = (uint *)(uint)(iVar8 == 0);\n      puVar12 = auStack_5c;\n    }" ({ "{") (expression_statement "iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7);" (assignment_expression "iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7)" (parenthesized_expression "(**(code **)(puVar1 + 0x40))" (( "(") (pointer_expression "**(code **)(puVar1 + 0x40)" (* "*") (pointer_expression "*(code **)(puVar1 + 0x40)" (* "*") (cast_expression "(code **)(puVar1 + 0x40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar1 + 0x40)" (( "(") (binary_expression "puVar1 + 0x40" (identifier "puVar1") (+ "+") (number_literal "0x40")) () ")"))))) () ")")) (argument_list "(param_1,puVar11,uVar7)" (( "(") (identifier "param_1") (, ",") (identifier "puVar11") (, ",") (identifier "uVar7") () ")")))) (; ";")) (expression_statement "puVar9 = (uint *)(uint)(iVar8 == 0);" (assignment_expression "puVar9 = (uint *)(uint)(iVar8 == 0)" (identifier "puVar9") (= "=") (cast_expression "(uint *)(uint)(iVar8 == 0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(iVar8 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")"))))) (; ";")) (expression_statement "puVar12 = auStack_5c;" (assignment_expression "puVar12 = auStack_5c" (identifier "puVar12") (= "=") (identifier "auStack_5c")) (; ";")) (} "}")))) (goto_statement "goto LAB_000452d0;" (goto "goto") (statement_identifier "LAB_000452d0") (; ";")) (} "}"))) (expression_statement "puStack_54 = (uint *)((int)puVar11 + 1);" (assignment_expression "puStack_54 = (uint *)((int)puVar11 + 1)" (identifier "puStack_54") (= "=") (cast_expression "(uint *)((int)puVar11 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + 1)" (( "(") (binary_expression "(int)puVar11 + 1" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "puStack_40 = (uint *)((int)puVar11 - (int)local_30);" (assignment_expression "puStack_40 = (uint *)((int)puVar11 - (int)local_30)" (identifier "puStack_40") (= "=") (cast_expression "(uint *)((int)puVar11 - (int)local_30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 - (int)local_30)" (( "(") (binary_expression "(int)puVar11 - (int)local_30" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (- "-") (cast_expression "(int)local_30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_30"))) () ")")))) (; ";")) (expression_statement "iStack_24 = 0;" (assignment_expression "iStack_24 = 0" (identifier "iStack_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar7 = ((int)puStack_40 + 1 + (int)puStack_54) * 4;" (assignment_expression "uVar7 = ((int)puStack_40 + 1 + (int)puStack_54) * 4" (identifier "uVar7") (= "=") (binary_expression "((int)puStack_40 + 1 + (int)puStack_54) * 4" (parenthesized_expression "((int)puStack_40 + 1 + (int)puStack_54)" (( "(") (binary_expression "(int)puStack_40 + 1 + (int)puStack_54" (binary_expression "(int)puStack_40 + 1" (cast_expression "(int)puStack_40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_40")) (+ "+") (number_literal "1")) (+ "+") (cast_expression "(int)puStack_54" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_54"))) () ")")) (* "*") (number_literal "4"))) (; ";")) (if_statement "if (uVar7 < 0x7f01) {\n    iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n    puVar13 = auStack_5c + iVar8;\n    local_38 = (uint *)((int)apuStack_50 + iVar8);\n  }\n  else {\n    apuStack_50[2] = puStack_54;\n    puStack_3c = puVar11;\n    local_38 = (uint *)__gmp_tmp_reentrant_alloc(&iStack_24,uVar7);\n    puVar13 = auStack_5c;\n    puStack_54 = apuStack_50[2];\n    puVar11 = puStack_3c;\n  }" (if "if") (parenthesized_expression "(uVar7 < 0x7f01)" (( "(") (binary_expression "uVar7 < 0x7f01" (identifier "uVar7") (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n    iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n    puVar13 = auStack_5c + iVar8;\n    local_38 = (uint *)((int)apuStack_50 + iVar8);\n  }" ({ "{") (expression_statement "iVar8 = -(uVar7 + 0x1b & 0xfffffff0);" (assignment_expression "iVar8 = -(uVar7 + 0x1b & 0xfffffff0)" (identifier "iVar8") (= "=") (unary_expression "-(uVar7 + 0x1b & 0xfffffff0)" (- "-") (parenthesized_expression "(uVar7 + 0x1b & 0xfffffff0)" (( "(") (binary_expression "uVar7 + 0x1b & 0xfffffff0" (binary_expression "uVar7 + 0x1b" (identifier "uVar7") (+ "+") (number_literal "0x1b")) (& "&") (number_literal "0xfffffff0")) () ")")))) (; ";")) (expression_statement "puVar13 = auStack_5c + iVar8;" (assignment_expression "puVar13 = auStack_5c + iVar8" (identifier "puVar13") (= "=") (binary_expression "auStack_5c + iVar8" (identifier "auStack_5c") (+ "+") (identifier "iVar8"))) (; ";")) (expression_statement "local_38 = (uint *)((int)apuStack_50 + iVar8);" (assignment_expression "local_38 = (uint *)((int)apuStack_50 + iVar8)" (identifier "local_38") (= "=") (cast_expression "(uint *)((int)apuStack_50 + iVar8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)apuStack_50 + iVar8)" (( "(") (binary_expression "(int)apuStack_50 + iVar8" (cast_expression "(int)apuStack_50" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "apuStack_50")) (+ "+") (identifier "iVar8")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n    apuStack_50[2] = puStack_54;\n    puStack_3c = puVar11;\n    local_38 = (uint *)__gmp_tmp_reentrant_alloc(&iStack_24,uVar7);\n    puVar13 = auStack_5c;\n    puStack_54 = apuStack_50[2];\n    puVar11 = puStack_3c;\n  }" (else "else") (compound_statement "{\n    apuStack_50[2] = puStack_54;\n    puStack_3c = puVar11;\n    local_38 = (uint *)__gmp_tmp_reentrant_alloc(&iStack_24,uVar7);\n    puVar13 = auStack_5c;\n    puStack_54 = apuStack_50[2];\n    puVar11 = puStack_3c;\n  }" ({ "{") (expression_statement "apuStack_50[2] = puStack_54;" (assignment_expression "apuStack_50[2] = puStack_54" (subscript_expression "apuStack_50[2]" (identifier "apuStack_50") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "puStack_54")) (; ";")) (expression_statement "puStack_3c = puVar11;" (assignment_expression "puStack_3c = puVar11" (identifier "puStack_3c") (= "=") (identifier "puVar11")) (; ";")) (expression_statement "local_38 = (uint *)__gmp_tmp_reentrant_alloc(&iStack_24,uVar7);" (assignment_expression "local_38 = (uint *)__gmp_tmp_reentrant_alloc(&iStack_24,uVar7)" (identifier "local_38") (= "=") (cast_expression "(uint *)__gmp_tmp_reentrant_alloc(&iStack_24,uVar7)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "__gmp_tmp_reentrant_alloc(&iStack_24,uVar7)" (identifier "__gmp_tmp_reentrant_alloc") (argument_list "(&iStack_24,uVar7)" (( "(") (pointer_expression "&iStack_24" (& "&") (identifier "iStack_24")) (, ",") (identifier "uVar7") () ")"))))) (; ";")) (expression_statement "puVar13 = auStack_5c;" (assignment_expression "puVar13 = auStack_5c" (identifier "puVar13") (= "=") (identifier "auStack_5c")) (; ";")) (expression_statement "puStack_54 = apuStack_50[2];" (assignment_expression "puStack_54 = apuStack_50[2]" (identifier "puStack_54") (= "=") (subscript_expression "apuStack_50[2]" (identifier "apuStack_50") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar11 = puStack_3c;" (assignment_expression "puVar11 = puStack_3c" (identifier "puVar11") (= "=") (identifier "puStack_3c")) (; ";")) (} "}")))) (expression_statement "ppuVar6 = local_34;" (assignment_expression "ppuVar6 = local_34" (identifier "ppuVar6") (= "=") (identifier "local_34")) (; ";")) (expression_statement "apuStack_50[2] = (uint *)((int)puStack_54 * 4);" (assignment_expression "apuStack_50[2] = (uint *)((int)puStack_54 * 4)" (subscript_expression "apuStack_50[2]" (identifier "apuStack_50") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(uint *)((int)puStack_54 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puStack_54 * 4)" (( "(") (binary_expression "(int)puStack_54 * 4" (cast_expression "(int)puStack_54" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_54")) (* "*") (number_literal "4")) () ")")))) (; ";")) (expression_statement "apuStack_50[0] = local_38 + (int)puStack_54;" (assignment_expression "apuStack_50[0] = local_38 + (int)puStack_54" (subscript_expression "apuStack_50[0]" (identifier "apuStack_50") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "local_38 + (int)puStack_54" (identifier "local_38") (+ "+") (cast_expression "(int)puStack_54" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_54")))) (; ";")) (if_statement "if (apuStack_50[3] == (uint *)0x0) {\n    *(uint **)(puVar13 + -8) = puVar11;\n    *(uint **)(puVar13 + -0xc) = param_1;\n    puVar1 = ppuVar6[-0x9b];\n    *(uint **)(puVar13 + -0x10) = local_38;\n    pcVar2 = *(code **)(puVar1 + 0x28);\n    apuStack_50[1] = (uint *)puVar1;\n    apuStack_50[3] = puVar11;\n    *(undefined4 *)(puVar13 + -0x14) = 0x45555;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    puStack_3c = param_3;\n  }\n  else {\n    uVar7 = (int)local_30 * 4;\n    apuStack_50[1] = puVar11;\n    if (uVar7 < 0x7f01) {\n      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n      puStack_3c = (uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0);\n      puVar13 = puVar13 + iVar8;\n    }\n    else {\n      *(uint *)(puVar13 + -0xc) = uVar7;\n      *(int **)(puVar13 + -0x10) = &iStack_24;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc();\n    }\n    puVar11 = apuStack_50[3];\n    puVar1 = local_34[-0x9b];\n    puStack_58 = puStack_54;\n    puStack_54 = apuStack_50[1];\n    *(uint **)(puVar13 + -4) = apuStack_50[3];\n    *(uint **)(puVar13 + -8) = local_30;\n    *(uint **)(puVar13 + -0xc) = param_3;\n    *(uint **)(puVar13 + -0x10) = puStack_3c;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    apuStack_50[1] = (uint *)puVar1;\n    *(undefined4 *)(puVar13 + -0x14) = 0x453c5;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = param_1;\n    *(uint **)(puVar13 + -0x20) = local_38;\n    apuStack_50[3] = puVar9;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    *(undefined4 *)(puVar13 + -0x24) = 0x453d7;\n    (*pcVar2)();\n    puVar9 = puStack_58;\n  }" (if "if") (parenthesized_expression "(apuStack_50[3] == (uint *)0x0)" (( "(") (binary_expression "apuStack_50[3] == (uint *)0x0" (subscript_expression "apuStack_50[3]" (identifier "apuStack_50") ([ "[") (number_literal "3") (] "]")) (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *(uint **)(puVar13 + -8) = puVar11;\n    *(uint **)(puVar13 + -0xc) = param_1;\n    puVar1 = ppuVar6[-0x9b];\n    *(uint **)(puVar13 + -0x10) = local_38;\n    pcVar2 = *(code **)(puVar1 + 0x28);\n    apuStack_50[1] = (uint *)puVar1;\n    apuStack_50[3] = puVar11;\n    *(undefined4 *)(puVar13 + -0x14) = 0x45555;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    puStack_3c = param_3;\n  }" ({ "{") (expression_statement "*(uint **)(puVar13 + -8) = puVar11;" (assignment_expression "*(uint **)(puVar13 + -8) = puVar11" (pointer_expression "*(uint **)(puVar13 + -8)" (* "*") (cast_expression "(uint **)(puVar13 + -8)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -8)" (( "(") (binary_expression "puVar13 + -8" (identifier "puVar13") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (expression_statement "*(uint **)(puVar13 + -0xc) = param_1;" (assignment_expression "*(uint **)(puVar13 + -0xc) = param_1" (pointer_expression "*(uint **)(puVar13 + -0xc)" (* "*") (cast_expression "(uint **)(puVar13 + -0xc)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0xc)" (( "(") (binary_expression "puVar13 + -0xc" (identifier "puVar13") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "puVar1 = ppuVar6[-0x9b];" (assignment_expression "puVar1 = ppuVar6[-0x9b]" (identifier "puVar1") (= "=") (subscript_expression "ppuVar6[-0x9b]" (identifier "ppuVar6") ([ "[") (number_literal "-0x9b") (] "]"))) (; ";")) (expression_statement "*(uint **)(puVar13 + -0x10) = local_38;" (assignment_expression "*(uint **)(puVar13 + -0x10) = local_38" (pointer_expression "*(uint **)(puVar13 + -0x10)" (* "*") (cast_expression "(uint **)(puVar13 + -0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x10)" (( "(") (binary_expression "puVar13 + -0x10" (identifier "puVar13") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_38")) (; ";")) (expression_statement "pcVar2 = *(code **)(puVar1 + 0x28);" (assignment_expression "pcVar2 = *(code **)(puVar1 + 0x28)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(puVar1 + 0x28)" (* "*") (cast_expression "(code **)(puVar1 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar1 + 0x28)" (( "(") (binary_expression "puVar1 + 0x28" (identifier "puVar1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "apuStack_50[1] = (uint *)puVar1;" (assignment_expression "apuStack_50[1] = (uint *)puVar1" (subscript_expression "apuStack_50[1]" (identifier "apuStack_50") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(uint *)puVar1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) (; ";")) (expression_statement "apuStack_50[3] = puVar11;" (assignment_expression "apuStack_50[3] = puVar11" (subscript_expression "apuStack_50[3]" (identifier "apuStack_50") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "puVar11")) (; ";")) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0x45555;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0x45555" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x14)" (( "(") (binary_expression "puVar13 + -0x14" (identifier "puVar13") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x45555")) (; ";")) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar9 = puStack_54;" (assignment_expression "puVar9 = puStack_54" (identifier "puVar9") (= "=") (identifier "puStack_54")) (; ";")) (expression_statement "puStack_3c = param_3;" (assignment_expression "puStack_3c = param_3" (identifier "puStack_3c") (= "=") (identifier "param_3")) (; ";")) (} "}")) (else_clause "else {\n    uVar7 = (int)local_30 * 4;\n    apuStack_50[1] = puVar11;\n    if (uVar7 < 0x7f01) {\n      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n      puStack_3c = (uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0);\n      puVar13 = puVar13 + iVar8;\n    }\n    else {\n      *(uint *)(puVar13 + -0xc) = uVar7;\n      *(int **)(puVar13 + -0x10) = &iStack_24;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc();\n    }\n    puVar11 = apuStack_50[3];\n    puVar1 = local_34[-0x9b];\n    puStack_58 = puStack_54;\n    puStack_54 = apuStack_50[1];\n    *(uint **)(puVar13 + -4) = apuStack_50[3];\n    *(uint **)(puVar13 + -8) = local_30;\n    *(uint **)(puVar13 + -0xc) = param_3;\n    *(uint **)(puVar13 + -0x10) = puStack_3c;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    apuStack_50[1] = (uint *)puVar1;\n    *(undefined4 *)(puVar13 + -0x14) = 0x453c5;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = param_1;\n    *(uint **)(puVar13 + -0x20) = local_38;\n    apuStack_50[3] = puVar9;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    *(undefined4 *)(puVar13 + -0x24) = 0x453d7;\n    (*pcVar2)();\n    puVar9 = puStack_58;\n  }" (else "else") (compound_statement "{\n    uVar7 = (int)local_30 * 4;\n    apuStack_50[1] = puVar11;\n    if (uVar7 < 0x7f01) {\n      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n      puStack_3c = (uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0);\n      puVar13 = puVar13 + iVar8;\n    }\n    else {\n      *(uint *)(puVar13 + -0xc) = uVar7;\n      *(int **)(puVar13 + -0x10) = &iStack_24;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc();\n    }\n    puVar11 = apuStack_50[3];\n    puVar1 = local_34[-0x9b];\n    puStack_58 = puStack_54;\n    puStack_54 = apuStack_50[1];\n    *(uint **)(puVar13 + -4) = apuStack_50[3];\n    *(uint **)(puVar13 + -8) = local_30;\n    *(uint **)(puVar13 + -0xc) = param_3;\n    *(uint **)(puVar13 + -0x10) = puStack_3c;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    apuStack_50[1] = (uint *)puVar1;\n    *(undefined4 *)(puVar13 + -0x14) = 0x453c5;\n    (*pcVar2)();\n    puVar9 = puStack_54;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = param_1;\n    *(uint **)(puVar13 + -0x20) = local_38;\n    apuStack_50[3] = puVar9;\n    pcVar2 = *(code **)(puVar1 + 0x80);\n    *(undefined4 *)(puVar13 + -0x24) = 0x453d7;\n    (*pcVar2)();\n    puVar9 = puStack_58;\n  }" ({ "{") (expression_statement "uVar7 = (int)local_30 * 4;" (assignment_expression "uVar7 = (int)local_30 * 4" (identifier "uVar7") (= "=") (binary_expression "(int)local_30 * 4" (cast_expression "(int)local_30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_30")) (* "*") (number_literal "4"))) (; ";")) (expression_statement "apuStack_50[1] = puVar11;" (assignment_expression "apuStack_50[1] = puVar11" (subscript_expression "apuStack_50[1]" (identifier "apuStack_50") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "puVar11")) (; ";")) (if_statement "if (uVar7 < 0x7f01) {\n      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n      puStack_3c = (uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0);\n      puVar13 = puVar13 + iVar8;\n    }\n    else {\n      *(uint *)(puVar13 + -0xc) = uVar7;\n      *(int **)(puVar13 + -0x10) = &iStack_24;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc();\n    }" (if "if") (parenthesized_expression "(uVar7 < 0x7f01)" (( "(") (binary_expression "uVar7 < 0x7f01" (identifier "uVar7") (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n      puStack_3c = (uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0);\n      puVar13 = puVar13 + iVar8;\n    }" ({ "{") (expression_statement "iVar8 = -(uVar7 + 0x1b & 0xfffffff0);" (assignment_expression "iVar8 = -(uVar7 + 0x1b & 0xfffffff0)" (identifier "iVar8") (= "=") (unary_expression "-(uVar7 + 0x1b & 0xfffffff0)" (- "-") (parenthesized_expression "(uVar7 + 0x1b & 0xfffffff0)" (( "(") (binary_expression "uVar7 + 0x1b & 0xfffffff0" (binary_expression "uVar7 + 0x1b" (identifier "uVar7") (+ "+") (number_literal "0x1b")) (& "&") (number_literal "0xfffffff0")) () ")")))) (; ";")) (expression_statement "puStack_3c = (uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0);" (assignment_expression "puStack_3c = (uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0)" (identifier "puStack_3c") (= "=") (cast_expression "(uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0)" (( "(") (binary_expression "(uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0" (call_expression "(uint)(puVar13 + iVar8 + 0xf)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar13 + iVar8 + 0xf)" (( "(") (binary_expression "puVar13 + iVar8 + 0xf" (binary_expression "puVar13 + iVar8" (identifier "puVar13") (+ "+") (identifier "iVar8")) (+ "+") (number_literal "0xf")) () ")"))) (& "&") (number_literal "0xfffffff0")) () ")")))) (; ";")) (expression_statement "puVar13 = puVar13 + iVar8;" (assignment_expression "puVar13 = puVar13 + iVar8" (identifier "puVar13") (= "=") (binary_expression "puVar13 + iVar8" (identifier "puVar13") (+ "+") (identifier "iVar8"))) (; ";")) (} "}")) (else_clause "else {\n      *(uint *)(puVar13 + -0xc) = uVar7;\n      *(int **)(puVar13 + -0x10) = &iStack_24;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc();\n    }" (else "else") (compound_statement "{\n      *(uint *)(puVar13 + -0xc) = uVar7;\n      *(int **)(puVar13 + -0x10) = &iStack_24;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45770;\n      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc();\n    }" ({ "{") (expression_statement "*(uint *)(puVar13 + -0xc) = uVar7;" (assignment_expression "*(uint *)(puVar13 + -0xc) = uVar7" (pointer_expression "*(uint *)(puVar13 + -0xc)" (* "*") (cast_expression "(uint *)(puVar13 + -0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0xc)" (( "(") (binary_expression "puVar13 + -0xc" (identifier "puVar13") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "*(int **)(puVar13 + -0x10) = &iStack_24;" (assignment_expression "*(int **)(puVar13 + -0x10) = &iStack_24" (pointer_expression "*(int **)(puVar13 + -0x10)" (* "*") (cast_expression "(int **)(puVar13 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x10)" (( "(") (binary_expression "puVar13 + -0x10" (identifier "puVar13") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "&iStack_24" (& "&") (identifier "iStack_24"))) (; ";")) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0x45770;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0x45770" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x14)" (( "(") (binary_expression "puVar13 + -0x14" (identifier "puVar13") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x45770")) (; ";")) (expression_statement "puStack_3c = (uint *)__gmp_tmp_reentrant_alloc();" (assignment_expression "puStack_3c = (uint *)__gmp_tmp_reentrant_alloc()" (identifier "puStack_3c") (= "=") (cast_expression "(uint *)__gmp_tmp_reentrant_alloc()" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "__gmp_tmp_reentrant_alloc()" (identifier "__gmp_tmp_reentrant_alloc") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}")))) (expression_statement "puVar11 = apuStack_50[3];" (assignment_expression "puVar11 = apuStack_50[3]" (identifier "puVar11") (= "=") (subscript_expression "apuStack_50[3]" (identifier "apuStack_50") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar1 = local_34[-0x9b];" (assignment_expression "puVar1 = local_34[-0x9b]" (identifier "puVar1") (= "=") (subscript_expression "local_34[-0x9b]" (identifier "local_34") ([ "[") (number_literal "-0x9b") (] "]"))) (; ";")) (expression_statement "puStack_58 = puStack_54;" (assignment_expression "puStack_58 = puStack_54" (identifier "puStack_58") (= "=") (identifier "puStack_54")) (; ";")) (expression_statement "puStack_54 = apuStack_50[1];" (assignment_expression "puStack_54 = apuStack_50[1]" (identifier "puStack_54") (= "=") (subscript_expression "apuStack_50[1]" (identifier "apuStack_50") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(uint **)(puVar13 + -4) = apuStack_50[3];" (assignment_expression "*(uint **)(puVar13 + -4) = apuStack_50[3]" (pointer_expression "*(uint **)(puVar13 + -4)" (* "*") (cast_expression "(uint **)(puVar13 + -4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -4)" (( "(") (binary_expression "puVar13 + -4" (identifier "puVar13") (+ "+") (number_literal "-4")) () ")")))) (= "=") (subscript_expression "apuStack_50[3]" (identifier "apuStack_50") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*(uint **)(puVar13 + -8) = local_30;" (assignment_expression "*(uint **)(puVar13 + -8) = local_30" (pointer_expression "*(uint **)(puVar13 + -8)" (* "*") (cast_expression "(uint **)(puVar13 + -8)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -8)" (( "(") (binary_expression "puVar13 + -8" (identifier "puVar13") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_30")) (; ";")) (expression_statement "*(uint **)(puVar13 + -0xc) = param_3;" (assignment_expression "*(uint **)(puVar13 + -0xc) = param_3" (pointer_expression "*(uint **)(puVar13 + -0xc)" (* "*") (cast_expression "(uint **)(puVar13 + -0xc)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0xc)" (( "(") (binary_expression "puVar13 + -0xc" (identifier "puVar13") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*(uint **)(puVar13 + -0x10) = puStack_3c;" (assignment_expression "*(uint **)(puVar13 + -0x10) = puStack_3c" (pointer_expression "*(uint **)(puVar13 + -0x10)" (* "*") (cast_expression "(uint **)(puVar13 + -0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x10)" (( "(") (binary_expression "puVar13 + -0x10" (identifier "puVar13") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "puStack_3c")) (; ";")) (expression_statement "pcVar2 = *(code **)(puVar1 + 0x80);" (assignment_expression "pcVar2 = *(code **)(puVar1 + 0x80)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(puVar1 + 0x80)" (* "*") (cast_expression "(code **)(puVar1 + 0x80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar1 + 0x80)" (( "(") (binary_expression "puVar1 + 0x80" (identifier "puVar1") (+ "+") (number_literal "0x80")) () ")"))))) (; ";")) (expression_statement "apuStack_50[1] = (uint *)puVar1;" (assignment_expression "apuStack_50[1] = (uint *)puVar1" (subscript_expression "apuStack_50[1]" (identifier "apuStack_50") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(uint *)puVar1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) (; ";")) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0x453c5;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0x453c5" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x14)" (( "(") (binary_expression "puVar13 + -0x14" (identifier "puVar13") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x453c5")) (; ";")) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar9 = puStack_54;" (assignment_expression "puVar9 = puStack_54" (identifier "puVar9") (= "=") (identifier "puStack_54")) (; ";")) (expression_statement "*(uint **)(puVar13 + -0x14) = puVar11;" (assignment_expression "*(uint **)(puVar13 + -0x14) = puVar11" (pointer_expression "*(uint **)(puVar13 + -0x14)" (* "*") (cast_expression "(uint **)(puVar13 + -0x14)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x14)" (( "(") (binary_expression "puVar13 + -0x14" (identifier "puVar13") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (expression_statement "*(uint **)(puVar13 + -0x18) = puVar9;" (assignment_expression "*(uint **)(puVar13 + -0x18) = puVar9" (pointer_expression "*(uint **)(puVar13 + -0x18)" (* "*") (cast_expression "(uint **)(puVar13 + -0x18)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x18)" (( "(") (binary_expression "puVar13 + -0x18" (identifier "puVar13") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "puVar9")) (; ";")) (expression_statement "*(uint **)(puVar13 + -0x1c) = param_1;" (assignment_expression "*(uint **)(puVar13 + -0x1c) = param_1" (pointer_expression "*(uint **)(puVar13 + -0x1c)" (* "*") (cast_expression "(uint **)(puVar13 + -0x1c)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x1c)" (( "(") (binary_expression "puVar13 + -0x1c" (identifier "puVar13") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(uint **)(puVar13 + -0x20) = local_38;" (assignment_expression "*(uint **)(puVar13 + -0x20) = local_38" (pointer_expression "*(uint **)(puVar13 + -0x20)" (* "*") (cast_expression "(uint **)(puVar13 + -0x20)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x20)" (( "(") (binary_expression "puVar13 + -0x20" (identifier "puVar13") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "local_38")) (; ";")) (expression_statement "apuStack_50[3] = puVar9;" (assignment_expression "apuStack_50[3] = puVar9" (subscript_expression "apuStack_50[3]" (identifier "apuStack_50") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "puVar9")) (; ";")) (expression_statement "pcVar2 = *(code **)(puVar1 + 0x80);" (assignment_expression "pcVar2 = *(code **)(puVar1 + 0x80)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(puVar1 + 0x80)" (* "*") (cast_expression "(code **)(puVar1 + 0x80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar1 + 0x80)" (( "(") (binary_expression "puVar1 + 0x80" (identifier "puVar1") (+ "+") (number_literal "0x80")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar13 + -0x24) = 0x453d7;" (assignment_expression "*(undefined4 *)(puVar13 + -0x24) = 0x453d7" (pointer_expression "*(undefined4 *)(puVar13 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x24)" (( "(") (binary_expression "puVar13 + -0x24" (identifier "puVar13") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x453d7")) (; ";")) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar9 = puStack_58;" (assignment_expression "puVar9 = puStack_58" (identifier "puVar9") (= "=") (identifier "puStack_58")) (; ";")) (} "}")))) (if_statement "if (*(uint *)((int)local_38 + (int)apuStack_50[2] + -8) < puStack_3c[(int)local_30 + -1]) {\n    if (local_30 == apuStack_50[3]) {\nLAB_000454ba:\n      if (iStack_24 != 0) {\n        *(int *)(puVar13 + -0x10) = iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free();\n      }\n      goto LAB_000452ce;\n    }\n  }\n  else {\n    *(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0;\n    puStack_40 = (uint *)((int)puVar9 - (int)local_30);\n    apuStack_50[3] = puVar9;\n  }" (if "if") (parenthesized_expression "(*(uint *)((int)local_38 + (int)apuStack_50[2] + -8) < puStack_3c[(int)local_30 + -1])" (( "(") (binary_expression "*(uint *)((int)local_38 + (int)apuStack_50[2] + -8) < puStack_3c[(int)local_30 + -1]" (pointer_expression "*(uint *)((int)local_38 + (int)apuStack_50[2] + -8)" (* "*") (cast_expression "(uint *)((int)local_38 + (int)apuStack_50[2] + -8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_38 + (int)apuStack_50[2] + -8)" (( "(") (binary_expression "(int)local_38 + (int)apuStack_50[2] + -8" (binary_expression "(int)local_38 + (int)apuStack_50[2]" (cast_expression "(int)local_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_38")) (+ "+") (cast_expression "(int)apuStack_50[2]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "apuStack_50[2]" (identifier "apuStack_50") ([ "[") (number_literal "2") (] "]")))) (+ "+") (number_literal "-8")) () ")")))) (< "<") (subscript_expression "puStack_3c[(int)local_30 + -1]" (identifier "puStack_3c") ([ "[") (binary_expression "(int)local_30 + -1" (cast_expression "(int)local_30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_30")) (+ "+") (number_literal "-1")) (] "]"))) () ")")) (compound_statement "{\n    if (local_30 == apuStack_50[3]) {\nLAB_000454ba:\n      if (iStack_24 != 0) {\n        *(int *)(puVar13 + -0x10) = iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free();\n      }\n      goto LAB_000452ce;\n    }\n  }" ({ "{") (if_statement "if (local_30 == apuStack_50[3]) {\nLAB_000454ba:\n      if (iStack_24 != 0) {\n        *(int *)(puVar13 + -0x10) = iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free();\n      }\n      goto LAB_000452ce;\n    }" (if "if") (parenthesized_expression "(local_30 == apuStack_50[3])" (( "(") (binary_expression "local_30 == apuStack_50[3]" (identifier "local_30") (== "==") (subscript_expression "apuStack_50[3]" (identifier "apuStack_50") ([ "[") (number_literal "3") (] "]"))) () ")")) (compound_statement "{\nLAB_000454ba:\n      if (iStack_24 != 0) {\n        *(int *)(puVar13 + -0x10) = iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free();\n      }\n      goto LAB_000452ce;\n    }" ({ "{") (labeled_statement "LAB_000454ba:\n      if (iStack_24 != 0) {\n        *(int *)(puVar13 + -0x10) = iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free();\n      }" (statement_identifier "LAB_000454ba") (: ":") (if_statement "if (iStack_24 != 0) {\n        *(int *)(puVar13 + -0x10) = iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free();\n      }" (if "if") (parenthesized_expression "(iStack_24 != 0)" (( "(") (binary_expression "iStack_24 != 0" (identifier "iStack_24") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        *(int *)(puVar13 + -0x10) = iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x454d1;\n        __gmp_tmp_reentrant_free();\n      }" ({ "{") (expression_statement "*(int *)(puVar13 + -0x10) = iStack_24;" (assignment_expression "*(int *)(puVar13 + -0x10) = iStack_24" (pointer_expression "*(int *)(puVar13 + -0x10)" (* "*") (cast_expression "(int *)(puVar13 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x10)" (( "(") (binary_expression "puVar13 + -0x10" (identifier "puVar13") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "iStack_24")) (; ";")) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0x454d1;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0x454d1" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x14)" (( "(") (binary_expression "puVar13 + -0x14" (identifier "puVar13") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x454d1")) (; ";")) (expression_statement "__gmp_tmp_reentrant_free();" (call_expression "__gmp_tmp_reentrant_free()" (identifier "__gmp_tmp_reentrant_free") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (goto_statement "goto LAB_000452ce;" (goto "goto") (statement_identifier "LAB_000452ce") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    *(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0;\n    puStack_40 = (uint *)((int)puVar9 - (int)local_30);\n    apuStack_50[3] = puVar9;\n  }" (else "else") (compound_statement "{\n    *(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0;\n    puStack_40 = (uint *)((int)puVar9 - (int)local_30);\n    apuStack_50[3] = puVar9;\n  }" ({ "{") (expression_statement "*(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0;" (assignment_expression "*(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0" (pointer_expression "*(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4)" (* "*") (cast_expression "(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_38 + (int)apuStack_50[2] + -4)" (( "(") (binary_expression "(int)local_38 + (int)apuStack_50[2] + -4" (binary_expression "(int)local_38 + (int)apuStack_50[2]" (cast_expression "(int)local_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_38")) (+ "+") (cast_expression "(int)apuStack_50[2]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "apuStack_50[2]" (identifier "apuStack_50") ([ "[") (number_literal "2") (] "]")))) (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puStack_40 = (uint *)((int)puVar9 - (int)local_30);" (assignment_expression "puStack_40 = (uint *)((int)puVar9 - (int)local_30)" (identifier "puStack_40") (= "=") (cast_expression "(uint *)((int)puVar9 - (int)local_30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar9 - (int)local_30)" (( "(") (binary_expression "(int)puVar9 - (int)local_30" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (- "-") (cast_expression "(int)local_30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_30"))) () ")")))) (; ";")) (expression_statement "apuStack_50[3] = puVar9;" (assignment_expression "apuStack_50[3] = puVar9" (subscript_expression "apuStack_50[3]" (identifier "apuStack_50") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "puVar9")) (; ";")) (} "}")))) (expression_statement "piVar3 = (int *)local_34[-0xaa];" (assignment_expression "piVar3 = (int *)local_34[-0xaa]" (identifier "piVar3") (= "=") (cast_expression "(int *)local_34[-0xaa]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_34[-0xaa]" (identifier "local_34") ([ "[") (number_literal "-0xaa") (] "]")))) (; ";")) (expression_statement "puVar9 = apuStack_50[3];" (assignment_expression "puVar9 = apuStack_50[3]" (identifier "puVar9") (= "=") (subscript_expression "apuStack_50[3]" (identifier "apuStack_50") ([ "[") (number_literal "3") (] "]"))) (; ";")) (if_statement "if (*piVar3 == 0) {\n    *(undefined4 *)(puVar13 + -4) = 0x45702;\n    __gmpn_cpuvec_init();\n    puVar9 = apuStack_50[3];\n  }" (if "if") (parenthesized_expression "(*piVar3 == 0)" (( "(") (binary_expression "*piVar3 == 0" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *(undefined4 *)(puVar13 + -4) = 0x45702;\n    __gmpn_cpuvec_init();\n    puVar9 = apuStack_50[3];\n  }" ({ "{") (expression_statement "*(undefined4 *)(puVar13 + -4) = 0x45702;" (assignment_expression "*(undefined4 *)(puVar13 + -4) = 0x45702" (pointer_expression "*(undefined4 *)(puVar13 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -4)" (( "(") (binary_expression "puVar13 + -4" (identifier "puVar13") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x45702")) (; ";")) (expression_statement "__gmpn_cpuvec_init();" (call_expression "__gmpn_cpuvec_init()" (identifier "__gmpn_cpuvec_init") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar9 = apuStack_50[3];" (assignment_expression "puVar9 = apuStack_50[3]" (identifier "puVar9") (= "=") (subscript_expression "apuStack_50[3]" (identifier "apuStack_50") ([ "[") (number_literal "3") (] "]"))) (; ";")) (} "}"))) (expression_statement "apuStack_50[3] = *(uint **)((int)apuStack_50[1] + 0x94);" (assignment_expression "apuStack_50[3] = *(uint **)((int)apuStack_50[1] + 0x94)" (subscript_expression "apuStack_50[3]" (identifier "apuStack_50") ([ "[") (number_literal "3") (] "]")) (= "=") (pointer_expression "*(uint **)((int)apuStack_50[1] + 0x94)" (* "*") (cast_expression "(uint **)((int)apuStack_50[1] + 0x94)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)apuStack_50[1] + 0x94)" (( "(") (binary_expression "(int)apuStack_50[1] + 0x94" (cast_expression "(int)apuStack_50[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "apuStack_50[1]" (identifier "apuStack_50") ([ "[") (number_literal "1") (] "]"))) (+ "+") (number_literal "0x94")) () ")"))))) (; ";")) (expression_statement "iVar8 = (int)apuStack_50[3] * 2;" (assignment_expression "iVar8 = (int)apuStack_50[3] * 2" (identifier "iVar8") (= "=") (binary_expression "(int)apuStack_50[3] * 2" (cast_expression "(int)apuStack_50[3]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "apuStack_50[3]" (identifier "apuStack_50") ([ "[") (number_literal "3") (] "]"))) (* "*") (number_literal "2"))) (; ";")) (if_statement "if (SBORROW4((int)local_30,iVar8) == (int)local_30 + (int)apuStack_50[3] * -2 < 0) {\n    if (*piVar3 == 0) {\n      apuStack_50[3] = puVar9;\n      *(undefined4 *)(puVar13 + -4) = 0x4572e;\n      __gmpn_cpuvec_init();\n      iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;\n      puVar9 = apuStack_50[3];\n    }\n    puVar11 = puStack_3c;\n    if ((int)puStack_40 < iVar8) goto LAB_00045444;\n    if ((int)local_30 < 2000) {\n      uVar7 = *puStack_3c;\n      uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n      iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n      *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n      *(uint **)(puVar13 + -0x10) = local_30;\n      *(uint **)(puVar13 + -0x14) = puVar11;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0x18) = puVar9;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x456e7;\n      __gmpn_dcpi1_bdiv_qr();\n      local_38 = puVar11 + (int)puStack_40;\n    }\n    else {\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puVar9;\n      puStack_40 = puVar9;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45613;\n      iVar8 = __gmpn_mu_bdiv_qr_itch();\n      uVar7 = iVar8 * 4;\n      if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;\n        puVar13 = puVar13 + iVar8;\n      }\n      else {\n        *(uint *)(puVar13 + -0xc) = uVar7;\n        *(int **)(puVar13 + -0x10) = &iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x45794;\n        uVar7 = __gmp_tmp_reentrant_alloc();\n      }\n      puVar9 = puStack_40;\n      *(uint *)(puVar13 + -8) = uVar7;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puStack_3c;\n      *(uint **)(puVar13 + -0x14) = puVar9;\n      *(uint **)(puVar13 + -0x18) = puVar11;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x45651;\n      __gmpn_mu_bdiv_qr();\n    }\n  }\n  else {\nLAB_00045444:\n    puVar11 = puStack_3c;\n    uVar7 = *puStack_3c;\n    uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n    iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n    *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n    *(uint **)(puVar13 + -0x10) = local_30;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    puVar11 = local_38;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = puVar11;\n    *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n    *(undefined4 *)(puVar13 + -0x24) = 0x4548b;\n    __gmpn_sbpi1_bdiv_qr();\n    local_38 = puVar11 + (int)puStack_40;\n  }" (if "if") (parenthesized_expression "(SBORROW4((int)local_30,iVar8) == (int)local_30 + (int)apuStack_50[3] * -2 < 0)" (( "(") (binary_expression "SBORROW4((int)local_30,iVar8) == (int)local_30 + (int)apuStack_50[3] * -2 < 0" (call_expression "SBORROW4((int)local_30,iVar8)" (identifier "SBORROW4") (argument_list "((int)local_30,iVar8)" (( "(") (cast_expression "(int)local_30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_30")) (, ",") (identifier "iVar8") () ")"))) (== "==") (binary_expression "(int)local_30 + (int)apuStack_50[3] * -2 < 0" (binary_expression "(int)local_30 + (int)apuStack_50[3] * -2" (cast_expression "(int)local_30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_30")) (+ "+") (binary_expression "(int)apuStack_50[3] * -2" (cast_expression "(int)apuStack_50[3]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "apuStack_50[3]" (identifier "apuStack_50") ([ "[") (number_literal "3") (] "]"))) (* "*") (number_literal "-2"))) (< "<") (number_literal "0"))) () ")")) (compound_statement "{\n    if (*piVar3 == 0) {\n      apuStack_50[3] = puVar9;\n      *(undefined4 *)(puVar13 + -4) = 0x4572e;\n      __gmpn_cpuvec_init();\n      iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;\n      puVar9 = apuStack_50[3];\n    }\n    puVar11 = puStack_3c;\n    if ((int)puStack_40 < iVar8) goto LAB_00045444;\n    if ((int)local_30 < 2000) {\n      uVar7 = *puStack_3c;\n      uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n      iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n      *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n      *(uint **)(puVar13 + -0x10) = local_30;\n      *(uint **)(puVar13 + -0x14) = puVar11;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0x18) = puVar9;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x456e7;\n      __gmpn_dcpi1_bdiv_qr();\n      local_38 = puVar11 + (int)puStack_40;\n    }\n    else {\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puVar9;\n      puStack_40 = puVar9;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45613;\n      iVar8 = __gmpn_mu_bdiv_qr_itch();\n      uVar7 = iVar8 * 4;\n      if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;\n        puVar13 = puVar13 + iVar8;\n      }\n      else {\n        *(uint *)(puVar13 + -0xc) = uVar7;\n        *(int **)(puVar13 + -0x10) = &iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x45794;\n        uVar7 = __gmp_tmp_reentrant_alloc();\n      }\n      puVar9 = puStack_40;\n      *(uint *)(puVar13 + -8) = uVar7;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puStack_3c;\n      *(uint **)(puVar13 + -0x14) = puVar9;\n      *(uint **)(puVar13 + -0x18) = puVar11;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x45651;\n      __gmpn_mu_bdiv_qr();\n    }\n  }" ({ "{") (if_statement "if (*piVar3 == 0) {\n      apuStack_50[3] = puVar9;\n      *(undefined4 *)(puVar13 + -4) = 0x4572e;\n      __gmpn_cpuvec_init();\n      iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;\n      puVar9 = apuStack_50[3];\n    }" (if "if") (parenthesized_expression "(*piVar3 == 0)" (( "(") (binary_expression "*piVar3 == 0" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      apuStack_50[3] = puVar9;\n      *(undefined4 *)(puVar13 + -4) = 0x4572e;\n      __gmpn_cpuvec_init();\n      iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;\n      puVar9 = apuStack_50[3];\n    }" ({ "{") (expression_statement "apuStack_50[3] = puVar9;" (assignment_expression "apuStack_50[3] = puVar9" (subscript_expression "apuStack_50[3]" (identifier "apuStack_50") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "puVar9")) (; ";")) (expression_statement "*(undefined4 *)(puVar13 + -4) = 0x4572e;" (assignment_expression "*(undefined4 *)(puVar13 + -4) = 0x4572e" (pointer_expression "*(undefined4 *)(puVar13 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -4)" (( "(") (binary_expression "puVar13 + -4" (identifier "puVar13") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x4572e")) (; ";")) (expression_statement "__gmpn_cpuvec_init();" (call_expression "__gmpn_cpuvec_init()" (identifier "__gmpn_cpuvec_init") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;" (assignment_expression "iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2" (identifier "iVar8") (= "=") (binary_expression "*(int *)((int)apuStack_50[1] + 0x94) * 2" (pointer_expression "*(int *)((int)apuStack_50[1] + 0x94)" (* "*") (cast_expression "(int *)((int)apuStack_50[1] + 0x94)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)apuStack_50[1] + 0x94)" (( "(") (binary_expression "(int)apuStack_50[1] + 0x94" (cast_expression "(int)apuStack_50[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "apuStack_50[1]" (identifier "apuStack_50") ([ "[") (number_literal "1") (] "]"))) (+ "+") (number_literal "0x94")) () ")")))) (* "*") (number_literal "2"))) (; ";")) (expression_statement "puVar9 = apuStack_50[3];" (assignment_expression "puVar9 = apuStack_50[3]" (identifier "puVar9") (= "=") (subscript_expression "apuStack_50[3]" (identifier "apuStack_50") ([ "[") (number_literal "3") (] "]"))) (; ";")) (} "}"))) (expression_statement "puVar11 = puStack_3c;" (assignment_expression "puVar11 = puStack_3c" (identifier "puVar11") (= "=") (identifier "puStack_3c")) (; ";")) (if_statement "if ((int)puStack_40 < iVar8) goto LAB_00045444;" (if "if") (parenthesized_expression "((int)puStack_40 < iVar8)" (( "(") (binary_expression "(int)puStack_40 < iVar8" (cast_expression "(int)puStack_40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_40")) (< "<") (identifier "iVar8")) () ")")) (goto_statement "goto LAB_00045444;" (goto "goto") (statement_identifier "LAB_00045444") (; ";"))) (if_statement "if ((int)local_30 < 2000) {\n      uVar7 = *puStack_3c;\n      uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n      iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n      *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n      *(uint **)(puVar13 + -0x10) = local_30;\n      *(uint **)(puVar13 + -0x14) = puVar11;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0x18) = puVar9;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x456e7;\n      __gmpn_dcpi1_bdiv_qr();\n      local_38 = puVar11 + (int)puStack_40;\n    }\n    else {\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puVar9;\n      puStack_40 = puVar9;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45613;\n      iVar8 = __gmpn_mu_bdiv_qr_itch();\n      uVar7 = iVar8 * 4;\n      if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;\n        puVar13 = puVar13 + iVar8;\n      }\n      else {\n        *(uint *)(puVar13 + -0xc) = uVar7;\n        *(int **)(puVar13 + -0x10) = &iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x45794;\n        uVar7 = __gmp_tmp_reentrant_alloc();\n      }\n      puVar9 = puStack_40;\n      *(uint *)(puVar13 + -8) = uVar7;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puStack_3c;\n      *(uint **)(puVar13 + -0x14) = puVar9;\n      *(uint **)(puVar13 + -0x18) = puVar11;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x45651;\n      __gmpn_mu_bdiv_qr();\n    }" (if "if") (parenthesized_expression "((int)local_30 < 2000)" (( "(") (binary_expression "(int)local_30 < 2000" (cast_expression "(int)local_30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_30")) (< "<") (number_literal "2000")) () ")")) (compound_statement "{\n      uVar7 = *puStack_3c;\n      uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n      iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n      *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n      *(uint **)(puVar13 + -0x10) = local_30;\n      *(uint **)(puVar13 + -0x14) = puVar11;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0x18) = puVar9;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x456e7;\n      __gmpn_dcpi1_bdiv_qr();\n      local_38 = puVar11 + (int)puStack_40;\n    }" ({ "{") (expression_statement "uVar7 = *puStack_3c;" (assignment_expression "uVar7 = *puStack_3c" (identifier "uVar7") (= "=") (pointer_expression "*puStack_3c" (* "*") (identifier "puStack_3c"))) (; ";")) (expression_statement "uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];" (assignment_expression "uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f]" (identifier "uVar10") (= "=") (cast_expression "(uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "local_34[-0x4e][uVar7 >> 1 & 0x7f]" (subscript_expression "local_34[-0x4e]" (identifier "local_34") ([ "[") (number_literal "-0x4e") (] "]")) ([ "[") (binary_expression "uVar7 >> 1 & 0x7f" (binary_expression "uVar7 >> 1" (identifier "uVar7") (>> ">>") (number_literal "1")) (& "&") (number_literal "0x7f")) (] "]"))))) (; ";")) (expression_statement "iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;" (assignment_expression "iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7" (identifier "iVar8") (= "=") (binary_expression "uVar10 * 2 - uVar10 * uVar10 * uVar7" (binary_expression "uVar10 * 2" (identifier "uVar10") (* "*") (number_literal "2")) (- "-") (binary_expression "uVar10 * uVar10 * uVar7" (binary_expression "uVar10 * uVar10" (identifier "uVar10") (* "*") (identifier "uVar10")) (* "*") (identifier "uVar7")))) (; ";")) (expression_statement "*(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;" (assignment_expression "*(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2" (pointer_expression "*(uint *)(puVar13 + -0xc)" (* "*") (cast_expression "(uint *)(puVar13 + -0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0xc)" (( "(") (binary_expression "puVar13 + -0xc" (identifier "puVar13") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "iVar8 * iVar8 * uVar7 + iVar8 * -2" (binary_expression "iVar8 * iVar8 * uVar7" (binary_expression "iVar8 * iVar8" (identifier "iVar8") (* "*") (identifier "iVar8")) (* "*") (identifier "uVar7")) (+ "+") (binary_expression "iVar8 * -2" (identifier "iVar8") (* "*") (number_literal "-2")))) (; ";")) (expression_statement "*(uint **)(puVar13 + -0x10) = local_30;" (assignment_expression "*(uint **)(puVar13 + -0x10) = local_30" (pointer_expression "*(uint **)(puVar13 + -0x10)" (* "*") (cast_expression "(uint **)(puVar13 + -0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x10)" (( "(") (binary_expression "puVar13 + -0x10" (identifier "puVar13") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_30")) (; ";")) (expression_statement "*(uint **)(puVar13 + -0x14) = puVar11;" (assignment_expression "*(uint **)(puVar13 + -0x14) = puVar11" (pointer_expression "*(uint **)(puVar13 + -0x14)" (* "*") (cast_expression "(uint **)(puVar13 + -0x14)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x14)" (( "(") (binary_expression "puVar13 + -0x14" (identifier "puVar13") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (expression_statement "puVar11 = local_38;" (assignment_expression "puVar11 = local_38" (identifier "puVar11") (= "=") (identifier "local_38")) (; ";")) (expression_statement "*(uint **)(puVar13 + -0x18) = puVar9;" (assignment_expression "*(uint **)(puVar13 + -0x18) = puVar9" (pointer_expression "*(uint **)(puVar13 + -0x18)" (* "*") (cast_expression "(uint **)(puVar13 + -0x18)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x18)" (( "(") (binary_expression "puVar13 + -0x18" (identifier "puVar13") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "puVar9")) (; ";")) (expression_statement "*(uint **)(puVar13 + -0x1c) = puVar11;" (assignment_expression "*(uint **)(puVar13 + -0x1c) = puVar11" (pointer_expression "*(uint **)(puVar13 + -0x1c)" (* "*") (cast_expression "(uint **)(puVar13 + -0x1c)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x1c)" (( "(") (binary_expression "puVar13 + -0x1c" (identifier "puVar13") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (expression_statement "*(uint **)(puVar13 + -0x20) = apuStack_50[0];" (assignment_expression "*(uint **)(puVar13 + -0x20) = apuStack_50[0]" (pointer_expression "*(uint **)(puVar13 + -0x20)" (* "*") (cast_expression "(uint **)(puVar13 + -0x20)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x20)" (( "(") (binary_expression "puVar13 + -0x20" (identifier "puVar13") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (subscript_expression "apuStack_50[0]" (identifier "apuStack_50") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar13 + -0x24) = 0x456e7;" (assignment_expression "*(undefined4 *)(puVar13 + -0x24) = 0x456e7" (pointer_expression "*(undefined4 *)(puVar13 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x24)" (( "(") (binary_expression "puVar13 + -0x24" (identifier "puVar13") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x456e7")) (; ";")) (expression_statement "__gmpn_dcpi1_bdiv_qr();" (call_expression "__gmpn_dcpi1_bdiv_qr()" (identifier "__gmpn_dcpi1_bdiv_qr") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_38 = puVar11 + (int)puStack_40;" (assignment_expression "local_38 = puVar11 + (int)puStack_40" (identifier "local_38") (= "=") (binary_expression "puVar11 + (int)puStack_40" (identifier "puVar11") (+ "+") (cast_expression "(int)puStack_40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_40")))) (; ";")) (} "}")) (else_clause "else {\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puVar9;\n      puStack_40 = puVar9;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45613;\n      iVar8 = __gmpn_mu_bdiv_qr_itch();\n      uVar7 = iVar8 * 4;\n      if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;\n        puVar13 = puVar13 + iVar8;\n      }\n      else {\n        *(uint *)(puVar13 + -0xc) = uVar7;\n        *(int **)(puVar13 + -0x10) = &iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x45794;\n        uVar7 = __gmp_tmp_reentrant_alloc();\n      }\n      puVar9 = puStack_40;\n      *(uint *)(puVar13 + -8) = uVar7;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puStack_3c;\n      *(uint **)(puVar13 + -0x14) = puVar9;\n      *(uint **)(puVar13 + -0x18) = puVar11;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x45651;\n      __gmpn_mu_bdiv_qr();\n    }" (else "else") (compound_statement "{\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puVar9;\n      puStack_40 = puVar9;\n      *(undefined4 *)(puVar13 + -0x14) = 0x45613;\n      iVar8 = __gmpn_mu_bdiv_qr_itch();\n      uVar7 = iVar8 * 4;\n      if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;\n        puVar13 = puVar13 + iVar8;\n      }\n      else {\n        *(uint *)(puVar13 + -0xc) = uVar7;\n        *(int **)(puVar13 + -0x10) = &iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x45794;\n        uVar7 = __gmp_tmp_reentrant_alloc();\n      }\n      puVar9 = puStack_40;\n      *(uint *)(puVar13 + -8) = uVar7;\n      puVar11 = local_38;\n      *(uint **)(puVar13 + -0xc) = local_30;\n      *(uint **)(puVar13 + -0x10) = puStack_3c;\n      *(uint **)(puVar13 + -0x14) = puVar9;\n      *(uint **)(puVar13 + -0x18) = puVar11;\n      *(uint **)(puVar13 + -0x1c) = puVar11;\n      *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n      *(undefined4 *)(puVar13 + -0x24) = 0x45651;\n      __gmpn_mu_bdiv_qr();\n    }" ({ "{") (expression_statement "*(uint **)(puVar13 + -0xc) = local_30;" (assignment_expression "*(uint **)(puVar13 + -0xc) = local_30" (pointer_expression "*(uint **)(puVar13 + -0xc)" (* "*") (cast_expression "(uint **)(puVar13 + -0xc)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0xc)" (( "(") (binary_expression "puVar13 + -0xc" (identifier "puVar13") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_30")) (; ";")) (expression_statement "*(uint **)(puVar13 + -0x10) = puVar9;" (assignment_expression "*(uint **)(puVar13 + -0x10) = puVar9" (pointer_expression "*(uint **)(puVar13 + -0x10)" (* "*") (cast_expression "(uint **)(puVar13 + -0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x10)" (( "(") (binary_expression "puVar13 + -0x10" (identifier "puVar13") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "puVar9")) (; ";")) (expression_statement "puStack_40 = puVar9;" (assignment_expression "puStack_40 = puVar9" (identifier "puStack_40") (= "=") (identifier "puVar9")) (; ";")) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0x45613;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0x45613" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x14)" (( "(") (binary_expression "puVar13 + -0x14" (identifier "puVar13") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x45613")) (; ";")) (expression_statement "iVar8 = __gmpn_mu_bdiv_qr_itch();" (assignment_expression "iVar8 = __gmpn_mu_bdiv_qr_itch()" (identifier "iVar8") (= "=") (call_expression "__gmpn_mu_bdiv_qr_itch()" (identifier "__gmpn_mu_bdiv_qr_itch") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar7 = iVar8 * 4;" (assignment_expression "uVar7 = iVar8 * 4" (identifier "uVar7") (= "=") (binary_expression "iVar8 * 4" (identifier "iVar8") (* "*") (number_literal "4"))) (; ";")) (if_statement "if (uVar7 < 0x7f01) {\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;\n        puVar13 = puVar13 + iVar8;\n      }\n      else {\n        *(uint *)(puVar13 + -0xc) = uVar7;\n        *(int **)(puVar13 + -0x10) = &iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x45794;\n        uVar7 = __gmp_tmp_reentrant_alloc();\n      }" (if "if") (parenthesized_expression "(uVar7 < 0x7f01)" (( "(") (binary_expression "uVar7 < 0x7f01" (identifier "uVar7") (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);\n        uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;\n        puVar13 = puVar13 + iVar8;\n      }" ({ "{") (expression_statement "iVar8 = -(uVar7 + 0x1b & 0xfffffff0);" (assignment_expression "iVar8 = -(uVar7 + 0x1b & 0xfffffff0)" (identifier "iVar8") (= "=") (unary_expression "-(uVar7 + 0x1b & 0xfffffff0)" (- "-") (parenthesized_expression "(uVar7 + 0x1b & 0xfffffff0)" (( "(") (binary_expression "uVar7 + 0x1b & 0xfffffff0" (binary_expression "uVar7 + 0x1b" (identifier "uVar7") (+ "+") (number_literal "0x1b")) (& "&") (number_literal "0xfffffff0")) () ")")))) (; ";")) (expression_statement "uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;" (assignment_expression "uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0" (identifier "uVar7") (= "=") (binary_expression "(uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0" (call_expression "(uint)(puVar13 + iVar8 + 0xf)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar13 + iVar8 + 0xf)" (( "(") (binary_expression "puVar13 + iVar8 + 0xf" (binary_expression "puVar13 + iVar8" (identifier "puVar13") (+ "+") (identifier "iVar8")) (+ "+") (number_literal "0xf")) () ")"))) (& "&") (number_literal "0xfffffff0"))) (; ";")) (expression_statement "puVar13 = puVar13 + iVar8;" (assignment_expression "puVar13 = puVar13 + iVar8" (identifier "puVar13") (= "=") (binary_expression "puVar13 + iVar8" (identifier "puVar13") (+ "+") (identifier "iVar8"))) (; ";")) (} "}")) (else_clause "else {\n        *(uint *)(puVar13 + -0xc) = uVar7;\n        *(int **)(puVar13 + -0x10) = &iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x45794;\n        uVar7 = __gmp_tmp_reentrant_alloc();\n      }" (else "else") (compound_statement "{\n        *(uint *)(puVar13 + -0xc) = uVar7;\n        *(int **)(puVar13 + -0x10) = &iStack_24;\n        *(undefined4 *)(puVar13 + -0x14) = 0x45794;\n        uVar7 = __gmp_tmp_reentrant_alloc();\n      }" ({ "{") (expression_statement "*(uint *)(puVar13 + -0xc) = uVar7;" (assignment_expression "*(uint *)(puVar13 + -0xc) = uVar7" (pointer_expression "*(uint *)(puVar13 + -0xc)" (* "*") (cast_expression "(uint *)(puVar13 + -0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0xc)" (( "(") (binary_expression "puVar13 + -0xc" (identifier "puVar13") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "*(int **)(puVar13 + -0x10) = &iStack_24;" (assignment_expression "*(int **)(puVar13 + -0x10) = &iStack_24" (pointer_expression "*(int **)(puVar13 + -0x10)" (* "*") (cast_expression "(int **)(puVar13 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x10)" (( "(") (binary_expression "puVar13 + -0x10" (identifier "puVar13") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "&iStack_24" (& "&") (identifier "iStack_24"))) (; ";")) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0x45794;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0x45794" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x14)" (( "(") (binary_expression "puVar13 + -0x14" (identifier "puVar13") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x45794")) (; ";")) (expression_statement "uVar7 = __gmp_tmp_reentrant_alloc();" (assignment_expression "uVar7 = __gmp_tmp_reentrant_alloc()" (identifier "uVar7") (= "=") (call_expression "__gmp_tmp_reentrant_alloc()" (identifier "__gmp_tmp_reentrant_alloc") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "puVar9 = puStack_40;" (assignment_expression "puVar9 = puStack_40" (identifier "puVar9") (= "=") (identifier "puStack_40")) (; ";")) (expression_statement "*(uint *)(puVar13 + -8) = uVar7;" (assignment_expression "*(uint *)(puVar13 + -8) = uVar7" (pointer_expression "*(uint *)(puVar13 + -8)" (* "*") (cast_expression "(uint *)(puVar13 + -8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -8)" (( "(") (binary_expression "puVar13 + -8" (identifier "puVar13") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "puVar11 = local_38;" (assignment_expression "puVar11 = local_38" (identifier "puVar11") (= "=") (identifier "local_38")) (; ";")) (expression_statement "*(uint **)(puVar13 + -0xc) = local_30;" (assignment_expression "*(uint **)(puVar13 + -0xc) = local_30" (pointer_expression "*(uint **)(puVar13 + -0xc)" (* "*") (cast_expression "(uint **)(puVar13 + -0xc)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0xc)" (( "(") (binary_expression "puVar13 + -0xc" (identifier "puVar13") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_30")) (; ";")) (expression_statement "*(uint **)(puVar13 + -0x10) = puStack_3c;" (assignment_expression "*(uint **)(puVar13 + -0x10) = puStack_3c" (pointer_expression "*(uint **)(puVar13 + -0x10)" (* "*") (cast_expression "(uint **)(puVar13 + -0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x10)" (( "(") (binary_expression "puVar13 + -0x10" (identifier "puVar13") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "puStack_3c")) (; ";")) (expression_statement "*(uint **)(puVar13 + -0x14) = puVar9;" (assignment_expression "*(uint **)(puVar13 + -0x14) = puVar9" (pointer_expression "*(uint **)(puVar13 + -0x14)" (* "*") (cast_expression "(uint **)(puVar13 + -0x14)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x14)" (( "(") (binary_expression "puVar13 + -0x14" (identifier "puVar13") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "puVar9")) (; ";")) (expression_statement "*(uint **)(puVar13 + -0x18) = puVar11;" (assignment_expression "*(uint **)(puVar13 + -0x18) = puVar11" (pointer_expression "*(uint **)(puVar13 + -0x18)" (* "*") (cast_expression "(uint **)(puVar13 + -0x18)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x18)" (( "(") (binary_expression "puVar13 + -0x18" (identifier "puVar13") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (expression_statement "*(uint **)(puVar13 + -0x1c) = puVar11;" (assignment_expression "*(uint **)(puVar13 + -0x1c) = puVar11" (pointer_expression "*(uint **)(puVar13 + -0x1c)" (* "*") (cast_expression "(uint **)(puVar13 + -0x1c)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x1c)" (( "(") (binary_expression "puVar13 + -0x1c" (identifier "puVar13") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (expression_statement "*(uint **)(puVar13 + -0x20) = apuStack_50[0];" (assignment_expression "*(uint **)(puVar13 + -0x20) = apuStack_50[0]" (pointer_expression "*(uint **)(puVar13 + -0x20)" (* "*") (cast_expression "(uint **)(puVar13 + -0x20)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x20)" (( "(") (binary_expression "puVar13 + -0x20" (identifier "puVar13") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (subscript_expression "apuStack_50[0]" (identifier "apuStack_50") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar13 + -0x24) = 0x45651;" (assignment_expression "*(undefined4 *)(puVar13 + -0x24) = 0x45651" (pointer_expression "*(undefined4 *)(puVar13 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x24)" (( "(") (binary_expression "puVar13 + -0x24" (identifier "puVar13") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x45651")) (; ";")) (expression_statement "__gmpn_mu_bdiv_qr();" (call_expression "__gmpn_mu_bdiv_qr()" (identifier "__gmpn_mu_bdiv_qr") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\nLAB_00045444:\n    puVar11 = puStack_3c;\n    uVar7 = *puStack_3c;\n    uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n    iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n    *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n    *(uint **)(puVar13 + -0x10) = local_30;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    puVar11 = local_38;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = puVar11;\n    *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n    *(undefined4 *)(puVar13 + -0x24) = 0x4548b;\n    __gmpn_sbpi1_bdiv_qr();\n    local_38 = puVar11 + (int)puStack_40;\n  }" (else "else") (compound_statement "{\nLAB_00045444:\n    puVar11 = puStack_3c;\n    uVar7 = *puStack_3c;\n    uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];\n    iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;\n    *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;\n    *(uint **)(puVar13 + -0x10) = local_30;\n    *(uint **)(puVar13 + -0x14) = puVar11;\n    puVar11 = local_38;\n    *(uint **)(puVar13 + -0x18) = puVar9;\n    *(uint **)(puVar13 + -0x1c) = puVar11;\n    *(uint **)(puVar13 + -0x20) = apuStack_50[0];\n    *(undefined4 *)(puVar13 + -0x24) = 0x4548b;\n    __gmpn_sbpi1_bdiv_qr();\n    local_38 = puVar11 + (int)puStack_40;\n  }" ({ "{") (labeled_statement "LAB_00045444:\n    puVar11 = puStack_3c;" (statement_identifier "LAB_00045444") (: ":") (expression_statement "puVar11 = puStack_3c;" (assignment_expression "puVar11 = puStack_3c" (identifier "puVar11") (= "=") (identifier "puStack_3c")) (; ";"))) (expression_statement "uVar7 = *puStack_3c;" (assignment_expression "uVar7 = *puStack_3c" (identifier "uVar7") (= "=") (pointer_expression "*puStack_3c" (* "*") (identifier "puStack_3c"))) (; ";")) (expression_statement "uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];" (assignment_expression "uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f]" (identifier "uVar10") (= "=") (cast_expression "(uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "local_34[-0x4e][uVar7 >> 1 & 0x7f]" (subscript_expression "local_34[-0x4e]" (identifier "local_34") ([ "[") (number_literal "-0x4e") (] "]")) ([ "[") (binary_expression "uVar7 >> 1 & 0x7f" (binary_expression "uVar7 >> 1" (identifier "uVar7") (>> ">>") (number_literal "1")) (& "&") (number_literal "0x7f")) (] "]"))))) (; ";")) (expression_statement "iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;" (assignment_expression "iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7" (identifier "iVar8") (= "=") (binary_expression "uVar10 * 2 - uVar10 * uVar10 * uVar7" (binary_expression "uVar10 * 2" (identifier "uVar10") (* "*") (number_literal "2")) (- "-") (binary_expression "uVar10 * uVar10 * uVar7" (binary_expression "uVar10 * uVar10" (identifier "uVar10") (* "*") (identifier "uVar10")) (* "*") (identifier "uVar7")))) (; ";")) (expression_statement "*(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;" (assignment_expression "*(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2" (pointer_expression "*(uint *)(puVar13 + -0xc)" (* "*") (cast_expression "(uint *)(puVar13 + -0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0xc)" (( "(") (binary_expression "puVar13 + -0xc" (identifier "puVar13") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "iVar8 * iVar8 * uVar7 + iVar8 * -2" (binary_expression "iVar8 * iVar8 * uVar7" (binary_expression "iVar8 * iVar8" (identifier "iVar8") (* "*") (identifier "iVar8")) (* "*") (identifier "uVar7")) (+ "+") (binary_expression "iVar8 * -2" (identifier "iVar8") (* "*") (number_literal "-2")))) (; ";")) (expression_statement "*(uint **)(puVar13 + -0x10) = local_30;" (assignment_expression "*(uint **)(puVar13 + -0x10) = local_30" (pointer_expression "*(uint **)(puVar13 + -0x10)" (* "*") (cast_expression "(uint **)(puVar13 + -0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x10)" (( "(") (binary_expression "puVar13 + -0x10" (identifier "puVar13") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_30")) (; ";")) (expression_statement "*(uint **)(puVar13 + -0x14) = puVar11;" (assignment_expression "*(uint **)(puVar13 + -0x14) = puVar11" (pointer_expression "*(uint **)(puVar13 + -0x14)" (* "*") (cast_expression "(uint **)(puVar13 + -0x14)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x14)" (( "(") (binary_expression "puVar13 + -0x14" (identifier "puVar13") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (expression_statement "puVar11 = local_38;" (assignment_expression "puVar11 = local_38" (identifier "puVar11") (= "=") (identifier "local_38")) (; ";")) (expression_statement "*(uint **)(puVar13 + -0x18) = puVar9;" (assignment_expression "*(uint **)(puVar13 + -0x18) = puVar9" (pointer_expression "*(uint **)(puVar13 + -0x18)" (* "*") (cast_expression "(uint **)(puVar13 + -0x18)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x18)" (( "(") (binary_expression "puVar13 + -0x18" (identifier "puVar13") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "puVar9")) (; ";")) (expression_statement "*(uint **)(puVar13 + -0x1c) = puVar11;" (assignment_expression "*(uint **)(puVar13 + -0x1c) = puVar11" (pointer_expression "*(uint **)(puVar13 + -0x1c)" (* "*") (cast_expression "(uint **)(puVar13 + -0x1c)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x1c)" (( "(") (binary_expression "puVar13 + -0x1c" (identifier "puVar13") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "puVar11")) (; ";")) (expression_statement "*(uint **)(puVar13 + -0x20) = apuStack_50[0];" (assignment_expression "*(uint **)(puVar13 + -0x20) = apuStack_50[0]" (pointer_expression "*(uint **)(puVar13 + -0x20)" (* "*") (cast_expression "(uint **)(puVar13 + -0x20)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x20)" (( "(") (binary_expression "puVar13 + -0x20" (identifier "puVar13") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (subscript_expression "apuStack_50[0]" (identifier "apuStack_50") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar13 + -0x24) = 0x4548b;" (assignment_expression "*(undefined4 *)(puVar13 + -0x24) = 0x4548b" (pointer_expression "*(undefined4 *)(puVar13 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x24)" (( "(") (binary_expression "puVar13 + -0x24" (identifier "puVar13") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x4548b")) (; ";")) (expression_statement "__gmpn_sbpi1_bdiv_qr();" (call_expression "__gmpn_sbpi1_bdiv_qr()" (identifier "__gmpn_sbpi1_bdiv_qr") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_38 = puVar11 + (int)puStack_40;" (assignment_expression "local_38 = puVar11 + (int)puStack_40" (identifier "local_38") (= "=") (binary_expression "puVar11 + (int)puStack_40" (identifier "puVar11") (+ "+") (cast_expression "(int)puStack_40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_40")))) (; ";")) (} "}")))) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n    if (local_38[iVar8] != 0) goto LAB_000454ba;\n    iVar8 = iVar8 + 1;\n  } while (iVar8 < (int)local_30);" (do "do") (compound_statement "{\n    if (local_38[iVar8] != 0) goto LAB_000454ba;\n    iVar8 = iVar8 + 1;\n  }" ({ "{") (if_statement "if (local_38[iVar8] != 0) goto LAB_000454ba;" (if "if") (parenthesized_expression "(local_38[iVar8] != 0)" (( "(") (binary_expression "local_38[iVar8] != 0" (subscript_expression "local_38[iVar8]" (identifier "local_38") ([ "[") (identifier "iVar8") (] "]")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000454ba;" (goto "goto") (statement_identifier "LAB_000454ba") (; ";"))) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + 1" (identifier "iVar8") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar8 < (int)local_30)" (( "(") (binary_expression "iVar8 < (int)local_30" (identifier "iVar8") (< "<") (cast_expression "(int)local_30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_30"))) () ")")) (; ";")) (expression_statement "puVar9 = (uint *)0x1;" (assignment_expression "puVar9 = (uint *)0x1" (identifier "puVar9") (= "=") (cast_expression "(uint *)0x1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "puVar12 = puVar13;" (assignment_expression "puVar12 = puVar13" (identifier "puVar12") (= "=") (identifier "puVar13")) (; ";")) (if_statement "if (iStack_24 != 0) {\n    local_30 = (uint *)0x1;\n    *(int *)(puVar13 + -0x10) = iStack_24;\n    *(undefined4 *)(puVar13 + -0x14) = 0x45585;\n    __gmp_tmp_reentrant_free();\n    puVar9 = local_30;\n  }" (if "if") (parenthesized_expression "(iStack_24 != 0)" (( "(") (binary_expression "iStack_24 != 0" (identifier "iStack_24") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_30 = (uint *)0x1;\n    *(int *)(puVar13 + -0x10) = iStack_24;\n    *(undefined4 *)(puVar13 + -0x14) = 0x45585;\n    __gmp_tmp_reentrant_free();\n    puVar9 = local_30;\n  }" ({ "{") (expression_statement "local_30 = (uint *)0x1;" (assignment_expression "local_30 = (uint *)0x1" (identifier "local_30") (= "=") (cast_expression "(uint *)0x1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "*(int *)(puVar13 + -0x10) = iStack_24;" (assignment_expression "*(int *)(puVar13 + -0x10) = iStack_24" (pointer_expression "*(int *)(puVar13 + -0x10)" (* "*") (cast_expression "(int *)(puVar13 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x10)" (( "(") (binary_expression "puVar13 + -0x10" (identifier "puVar13") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "iStack_24")) (; ";")) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0x45585;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0x45585" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x14)" (( "(") (binary_expression "puVar13 + -0x14" (identifier "puVar13") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x45585")) (; ";")) (expression_statement "__gmp_tmp_reentrant_free();" (call_expression "__gmp_tmp_reentrant_free()" (identifier "__gmp_tmp_reentrant_free") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar9 = local_30;" (assignment_expression "puVar9 = local_30" (identifier "puVar9") (= "=") (identifier "local_30")) (; ";")) (} "}"))) (labeled_statement "LAB_000452d0:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    *(undefined4 *)(puVar12 + -4) = 0x457b7;\n    FUN_00079d30();\n  }" (statement_identifier "LAB_000452d0") (: ":") (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    *(undefined4 *)(puVar12 + -4) = 0x457b7;\n    FUN_00079d30();\n  }" (if "if") (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                    \n    *(undefined4 *)(puVar12 + -4) = 0x457b7;\n    FUN_00079d30();\n  }" ({ "{") (expression_statement "*(undefined4 *)(puVar12 + -4) = 0x457b7;" (assignment_expression "*(undefined4 *)(puVar12 + -4) = 0x457b7" (pointer_expression "*(undefined4 *)(puVar12 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar12 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar12 + -4)" (( "(") (binary_expression "puVar12 + -4" (identifier "puVar12") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x457b7")) (; ";")) (expression_statement "FUN_00079d30();" (call_expression "FUN_00079d30()" (identifier "FUN_00079d30") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return puVar9;" (return "return") (identifier "puVar9") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

int function_1(type_1 var_7,type_2 var_2,type_1 var_6,type_2 var_3)

{
  type_3 *var_11;
  type_4 *pcVar2;
  int *piVar3;
  type_5 var_12;
  type_6 *puVar5;
  type_3 **ppuVar6;
  type_6 var_5;
  int var_13;
  type_6 *var_4;
  type_2 var_24;
  void *pvVar11;
  type_6 var_8;
  type_6 *var_22;
  type_7 *var_28;
  type_7 *var_17;
  int var_1;
  type_7 var_14 [4];
  type_6 *puStack_58;
  type_6 *puStack_54;
  type_6 *apuStack_50 [4];
  type_6 *puStack_40;
  type_6 *puStack_3c;
  type_6 *var_16;
  type_3 **local_34;
  type_6 *var_9;
  type_8 *var_18;
  int var_27;
  
  var_17 = var_14;
  var_28 = var_14;
  local_34 = &_GLOBAL_OFFSET_TABLE_;
  var_27 = *(int *)(var_1 + 0x14);
  if (var_2 < var_3) {
    var_4 = (type_6 *)(type_6)(var_2 == 0);
    goto LAB_000452d0;
  }
  var_4 = (type_6 *)*var_6;
  var_5 = *var_7;
  var_22 = (type_6 *)var_2;
  if (var_4 == (type_6 *)0x0) {
    do {
      if (var_5 != 0) goto LAB_000452ce;
      var_22 = (type_6 *)((int)var_22 + -1);
      var_6 = var_6 + 1;
      var_7 = var_7 + 1;
      var_5 = *var_7;
      var_9 = (type_6 *)((int)var_22 + (var_3 - var_2));
      var_4 = (type_6 *)*var_6;
    } while (var_4 == (type_6 *)0x0);
  }
  else {
    var_9 = (type_6 *)var_3;
  }
  var_8 = (-(int)var_4 & (type_6)var_4) - 1;
  var_17 = var_14;
  if ((var_5 & var_8) != 0) {
LAB_000452ce:
    var_4 = (type_6 *)0x0;
    var_28 = var_17;
    goto LAB_000452d0;
  }
  if (var_9 == (type_6 *)0x1) {
    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {
      var_16 = var_22;
      var_9 = var_4;
      var_10();
      var_4 = var_9;
      var_22 = var_16;
    }
    var_11 = local_34[-0x9b];
    if ((int)var_22 < *(int *)(var_11 + 0xa4)) {
      var_12 = 0;
      for (puVar5 = var_4; ((type_6)puVar5 & 1) == 0;
          puVar5 = (type_6 *)((type_6)puVar5 >> 1 | 0x80000000)) {
        var_12 = var_12 + 1;
      }
      var_13 = (**(type_4 **)(var_11 + 0x60))(var_7,var_22,(type_6)var_4 >> (var_12 & 0x1f),0);
      var_4 = (type_6 *)(type_6)(var_13 == 0);
      var_28 = var_14;
    }
    else {
      var_13 = (**(type_4 **)(var_11 + 0x40))(var_7,var_22,var_4);
      var_4 = (type_6 *)(type_6)(var_13 == 0);
      var_28 = var_14;
    }
    goto LAB_000452d0;
  }
  apuStack_50[3] = (type_6 *)0x0;
  for (puVar5 = var_4; ((type_6)puVar5 & 1) == 0; puVar5 = (type_6 *)((type_6)puVar5 >> 1 | 0x80000000))
  {
    apuStack_50[3] = (type_6 *)((int)apuStack_50[3] + 1);
  }
  if ((var_9 == (type_6 *)0x2) && (var_6[1] <= var_8)) {
    var_12 = 0;
    for (puVar5 = var_4; ((type_6)puVar5 & 1) == 0; puVar5 = (type_6 *)((type_6)puVar5 >> 1 | 0x80000000)
        ) {
      var_12 = var_12 + 1;
    }
    var_5 = var_6[1] << (0x20 - var_12 & 0x1f) | (type_6)var_4 >> (var_12 & 0x1f);
    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {
      var_9 = var_22;
      var_10();
      var_22 = var_9;
    }
    var_11 = local_34[-0x9b];
    if ((int)var_22 < *(int *)(var_11 + 0xa4)) {
      var_13 = (**(type_4 **)(var_11 + 0x60))(var_7,var_22,var_5,0);
      var_4 = (type_6 *)(type_6)(var_13 == 0);
      var_28 = var_14;
    }
    else {
      var_13 = (**(type_4 **)(var_11 + 0x40))(var_7,var_22,var_5);
      var_4 = (type_6 *)(type_6)(var_13 == 0);
      var_28 = var_14;
    }
    goto LAB_000452d0;
  }
  puStack_54 = (type_6 *)((int)var_22 + 1);
  var_18 = (type_8 *)0x0;
  puStack_40 = (type_6 *)((int)var_22 - (int)var_9);
  var_5 = (((int)var_22 - (int)var_9) + 1 + (int)puStack_54) * 4;
  if (var_5 < 0x7f01) {
    var_13 = -(var_5 + 0x1b & 0xfffffff0);
    var_17 = var_14 + var_13;
    var_16 = (type_6 *)((int)apuStack_50 + var_13);
  }
  else {
    apuStack_50[2] = puStack_54;
    puStack_3c = var_22;
    var_16 = (type_6 *)var_15(&var_18,var_5);
    var_17 = var_14;
    puStack_54 = apuStack_50[2];
    var_22 = puStack_3c;
  }
  ppuVar6 = local_34;
  apuStack_50[2] = (type_6 *)((int)puStack_54 * 4);
  apuStack_50[0] = var_16 + (int)puStack_54;
  if (apuStack_50[3] == (type_6 *)0x0) {
    *(type_6 **)(var_17 + -8) = var_22;
    *(type_1 *)(var_17 + -0xc) = var_7;
    var_11 = ppuVar6[-0x9b];
    *(type_6 **)(var_17 + -0x10) = var_16;
    pcVar2 = *(type_4 **)(var_11 + 0x28);
    apuStack_50[1] = (type_6 *)var_11;
    apuStack_50[3] = var_22;
    *(type_9 *)(var_17 + -0x14) = 0x45555;
    (*pcVar2)();
    puStack_3c = var_6;
    var_4 = puStack_54;
  }
  else {
    var_5 = (int)var_9 * 4;
    if (var_5 < 0x7f01) {
      var_13 = -(var_5 + 0x1b & 0xfffffff0);
      puStack_3c = (type_6 *)((type_6)(var_17 + var_13 + 0xf) & 0xfffffff0);
      apuStack_50[1] = var_22;
      var_17 = var_17 + var_13;
    }
    else {
      *(type_6 *)(var_17 + -0xc) = var_5;
      *(type_8 ***)(var_17 + -0x10) = &var_18;
      apuStack_50[1] = var_22;
      *(type_9 *)(var_17 + -0x14) = 0x45770;
      puStack_3c = (type_6 *)var_15
                                     (*(type_8 ***)(var_17 + -0x10),
                                      *(size_t *)(var_17 + -0xc));
    }
    var_22 = apuStack_50[3];
    var_11 = local_34[-0x9b];
    puStack_58 = puStack_54;
    puStack_54 = apuStack_50[1];
    *(type_6 **)(var_17 + -4) = apuStack_50[3];
    *(type_6 **)(var_17 + -8) = var_9;
    *(type_1 *)(var_17 + -0xc) = var_6;
    *(type_6 **)(var_17 + -0x10) = puStack_3c;
    pcVar2 = *(type_4 **)(var_11 + 0x80);
    apuStack_50[1] = (type_6 *)var_11;
    *(type_9 *)(var_17 + -0x14) = 0x453c5;
    (*pcVar2)();
    var_4 = puStack_54;
    *(type_6 **)(var_17 + -0x14) = var_22;
    *(type_6 **)(var_17 + -0x18) = var_4;
    *(type_1 *)(var_17 + -0x1c) = var_7;
    *(type_6 **)(var_17 + -0x20) = var_16;
    apuStack_50[3] = var_4;
    pcVar2 = *(type_4 **)(var_11 + 0x80);
    *(type_9 *)(var_17 + -0x24) = 0x453d7;
    (*pcVar2)();
    var_4 = puStack_58;
  }
  if (*(type_6 *)((int)var_16 + (int)apuStack_50[2] + -8) < puStack_3c[(int)var_9 + -1]) {
    if (var_9 == apuStack_50[3]) {
LAB_000454ba:
      if (var_18 != (type_8 *)0x0) {
        *(type_8 **)(var_17 + -0x10) = var_18;
        *(type_9 *)(var_17 + -0x14) = 0x454d1;
        var_19(*(type_8 **)(var_17 + -0x10));
      }
      goto LAB_000452ce;
    }
  }
  else {
    *(type_9 *)((int)var_16 + (int)apuStack_50[2] + -4) = 0;
    puStack_40 = (type_6 *)((int)var_4 - (int)var_9);
    apuStack_50[3] = var_4;
  }
  piVar3 = (int *)local_34[-0xaa];
  var_4 = apuStack_50[3];
  if (*piVar3 == 0) {
    *(type_9 *)(var_17 + -4) = 0x45702;
    var_10();
    var_4 = apuStack_50[3];
  }
  apuStack_50[3] = *(type_6 **)((int)apuStack_50[1] + 0x94);
  var_13 = (int)apuStack_50[3] * 2;
  if (var_20((int)var_9,var_13) == (int)var_9 + (int)apuStack_50[3] * -2 < 0) {
    if (*piVar3 == 0) {
      apuStack_50[3] = var_4;
      *(type_9 *)(var_17 + -4) = 0x4572e;
      var_10();
      var_13 = *(int *)((int)apuStack_50[1] + 0x94) * 2;
      var_4 = apuStack_50[3];
    }
    var_22 = puStack_3c;
    if ((int)puStack_40 < var_13) goto LAB_00045444;
    if ((int)var_9 < 2000) {
      var_5 = *puStack_3c;
      var_8 = (type_6)(type_5)local_34[-0x4e][var_5 >> 1 & 0x7f];
      var_13 = var_8 * 2 - var_8 * var_8 * var_5;
      *(type_6 *)(var_17 + -0xc) = var_13 * var_13 * var_5 + var_13 * -2;
      *(type_6 **)(var_17 + -0x10) = var_9;
      *(type_6 **)(var_17 + -0x14) = var_22;
      var_22 = var_16;
      *(type_6 **)(var_17 + -0x18) = var_4;
      *(type_6 **)(var_17 + -0x1c) = var_22;
      *(type_6 **)(var_17 + -0x20) = apuStack_50[0];
      *(type_9 *)(var_17 + -0x24) = 0x456e7;
      var_21
                (*(type_10 *)(var_17 + -0x20),*(type_10 *)(var_17 + -0x1c),
                 *(type_2 *)(var_17 + -0x18),*(type_1 *)(var_17 + -0x14),
                 *(type_2 *)(var_17 + -0x10),*(type_11 *)(var_17 + -0xc));
      var_16 = var_22 + (int)puStack_40;
    }
    else {
      *(type_6 **)(var_17 + -0xc) = var_9;
      *(type_6 **)(var_17 + -0x10) = var_4;
      puStack_40 = var_4;
      *(type_9 *)(var_17 + -0x14) = 0x45613;
      var_24 = var_23
                         (*(type_2 *)(var_17 + -0x10),*(type_2 *)(var_17 + -0xc));
      var_5 = var_24 * 4;
      if (var_5 < 0x7f01) {
        var_13 = -(var_5 + 0x1b & 0xfffffff0);
        pvVar11 = (void *)((type_6)(var_17 + var_13 + 0xf) & 0xfffffff0);
        var_17 = var_17 + var_13;
      }
      else {
        *(type_6 *)(var_17 + -0xc) = var_5;
        *(type_8 ***)(var_17 + -0x10) = &var_18;
        *(type_9 *)(var_17 + -0x14) = 0x45794;
        pvVar11 = var_15
                            (*(type_8 ***)(var_17 + -0x10),*(size_t *)(var_17 + -0xc));
      }
      var_4 = puStack_40;
      *(void **)(var_17 + -8) = pvVar11;
      var_22 = var_16;
      *(type_6 **)(var_17 + -0xc) = var_9;
      *(type_6 **)(var_17 + -0x10) = puStack_3c;
      *(type_6 **)(var_17 + -0x14) = var_4;
      *(type_6 **)(var_17 + -0x18) = var_22;
      *(type_6 **)(var_17 + -0x1c) = var_22;
      *(type_6 **)(var_17 + -0x20) = apuStack_50[0];
      *(type_9 *)(var_17 + -0x24) = 0x45651;
      var_25(*(type_10 *)(var_17 + -0x20),*(type_10 *)(var_17 + -0x1c),
                        *(type_1 *)(var_17 + -0x18),*(type_2 *)(var_17 + -0x14),
                        *(type_1 *)(var_17 + -0x10),*(type_2 *)(var_17 + -0xc),
                        *(type_10 *)(var_17 + -8));
    }
  }
  else {
LAB_00045444:
    var_22 = puStack_3c;
    var_5 = *puStack_3c;
    var_8 = (type_6)(type_5)local_34[-0x4e][var_5 >> 1 & 0x7f];
    var_13 = var_8 * 2 - var_8 * var_8 * var_5;
    *(type_6 *)(var_17 + -0xc) = var_13 * var_13 * var_5 + var_13 * -2;
    *(type_6 **)(var_17 + -0x10) = var_9;
    *(type_6 **)(var_17 + -0x14) = var_22;
    var_22 = var_16;
    *(type_6 **)(var_17 + -0x18) = var_4;
    *(type_6 **)(var_17 + -0x1c) = var_22;
    *(type_6 **)(var_17 + -0x20) = apuStack_50[0];
    *(type_9 *)(var_17 + -0x24) = 0x4548b;
    var_26
              (*(type_10 *)(var_17 + -0x20),*(type_10 *)(var_17 + -0x1c),
               *(type_2 *)(var_17 + -0x18),*(type_1 *)(var_17 + -0x14),
               *(type_2 *)(var_17 + -0x10),*(type_11 *)(var_17 + -0xc));
    var_16 = var_22 + (int)puStack_40;
  }
  var_13 = 0;
  do {
    if (var_16[var_13] != 0) goto LAB_000454ba;
    var_13 = var_13 + 1;
  } while (var_13 < (int)var_9);
  var_4 = (type_6 *)0x1;
  var_28 = var_17;
  if (var_18 != (type_8 *)0x0) {
    var_9 = (type_6 *)0x1;
    *(type_8 **)(var_17 + -0x10) = var_18;
    *(type_9 *)(var_17 + -0x14) = 0x45585;
    var_19(*(type_8 **)(var_17 + -0x10));
    var_4 = var_9;
  }
LAB_000452d0:
  if (var_27 != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    *(type_9 *)(var_28 + -4) = 0x457b7;
    var_29();
  }
  return (int)var_4;
}


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

/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

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

{
  undefined *puVar1;
  code *pcVar2;
  int *piVar3;
  byte bVar4;
  uint *puVar5;
  undefined **ppuVar6;
  uint uVar7;
  int iVar8;
  uint *puVar9;
  uint uVar10;
  uint *puVar11;
  undefined1 *puVar12;
  undefined1 *puVar13;
  int in_GS_OFFSET;
  undefined1 auStack_5c [4];
  uint *puStack_58;
  uint *puStack_54;
  uint *apuStack_50 [4];
  uint *puStack_40;
  uint *puStack_3c;
  uint *local_38;
  undefined **local_34;
  uint *local_30;
  int iStack_24;
  int local_20;
  
  puVar13 = auStack_5c;
  puVar12 = auStack_5c;
  local_34 = &__DT_PLTGOT;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if ((int)param_2 < (int)param_4) {
    puVar9 = (uint *)(uint)(param_2 == (uint *)0x0);
    local_34 = &__DT_PLTGOT;
    goto LAB_000452d0;
  }
  puVar9 = (uint *)*param_3;
  uVar7 = *param_1;
  puVar11 = param_2;
  if (puVar9 == (uint *)0x0) {
    do {
      if (uVar7 != 0) goto LAB_000452ce;
      puVar11 = (uint *)((int)puVar11 + -1);
      param_3 = param_3 + 1;
      param_1 = param_1 + 1;
      uVar7 = *param_1;
      local_30 = (uint *)(((int)puVar11 + (int)param_4) - (int)param_2);
      puVar9 = (uint *)*param_3;
    } while (puVar9 == (uint *)0x0);
  }
  else {
    local_30 = param_4;
  }
  uVar10 = (-(int)puVar9 & (uint)puVar9) - 1;
  puVar13 = auStack_5c;
  local_34 = &__DT_PLTGOT;
  if ((uVar7 & uVar10) != 0) {
LAB_000452ce:
    puVar9 = (uint *)0x0;
    puVar12 = puVar13;
    goto LAB_000452d0;
  }
  if (local_30 == (uint *)0x1) {
    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {
      local_38 = puVar11;
      local_30 = puVar9;
      __gmpn_cpuvec_init();
      puVar9 = local_30;
      puVar11 = local_38;
    }
    puVar1 = local_34[-0x9b];
    if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {
      bVar4 = 0;
      for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0;
          puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)) {
        bVar4 = bVar4 + 1;
      }
      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,(uint)puVar9 >> (bVar4 & 0x1f),0);
      puVar9 = (uint *)(uint)(iVar8 == 0);
      puVar12 = auStack_5c;
    }
    else {
      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,puVar9);
      puVar9 = (uint *)(uint)(iVar8 == 0);
      puVar12 = auStack_5c;
    }
    goto LAB_000452d0;
  }
  apuStack_50[3] = (uint *)0x0;
  for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000))
  {
    apuStack_50[3] = (uint *)((int)apuStack_50[3] + 1);
  }
  if ((local_30 == (uint *)0x2) && (param_3[1] <= uVar10)) {
    bVar4 = 0;
    for (puVar5 = puVar9; ((uint)puVar5 & 1) == 0; puVar5 = (uint *)((uint)puVar5 >> 1 | 0x80000000)
        ) {
      bVar4 = bVar4 + 1;
    }
    uVar7 = param_3[1] << (0x20 - bVar4 & 0x1f) | (uint)puVar9 >> (bVar4 & 0x1f);
    if (*(int *)PTR___gmpn_cpuvec_initialized_00098d58 == 0) {
      local_30 = puVar11;
      __gmpn_cpuvec_init();
      puVar11 = local_30;
    }
    puVar1 = local_34[-0x9b];
    if ((int)puVar11 < *(int *)(puVar1 + 0xa4)) {
      iVar8 = (**(code **)(puVar1 + 0x60))(param_1,puVar11,uVar7,0);
      puVar9 = (uint *)(uint)(iVar8 == 0);
      puVar12 = auStack_5c;
    }
    else {
      iVar8 = (**(code **)(puVar1 + 0x40))(param_1,puVar11,uVar7);
      puVar9 = (uint *)(uint)(iVar8 == 0);
      puVar12 = auStack_5c;
    }
    goto LAB_000452d0;
  }
  puStack_54 = (uint *)((int)puVar11 + 1);
  puStack_40 = (uint *)((int)puVar11 - (int)local_30);
  iStack_24 = 0;
  uVar7 = ((int)puStack_40 + 1 + (int)puStack_54) * 4;
  if (uVar7 < 0x7f01) {
    iVar8 = -(uVar7 + 0x1b & 0xfffffff0);
    puVar13 = auStack_5c + iVar8;
    local_38 = (uint *)((int)apuStack_50 + iVar8);
  }
  else {
    apuStack_50[2] = puStack_54;
    puStack_3c = puVar11;
    local_38 = (uint *)__gmp_tmp_reentrant_alloc(&iStack_24,uVar7);
    puVar13 = auStack_5c;
    puStack_54 = apuStack_50[2];
    puVar11 = puStack_3c;
  }
  ppuVar6 = local_34;
  apuStack_50[2] = (uint *)((int)puStack_54 * 4);
  apuStack_50[0] = local_38 + (int)puStack_54;
  if (apuStack_50[3] == (uint *)0x0) {
    *(uint **)(puVar13 + -8) = puVar11;
    *(uint **)(puVar13 + -0xc) = param_1;
    puVar1 = ppuVar6[-0x9b];
    *(uint **)(puVar13 + -0x10) = local_38;
    pcVar2 = *(code **)(puVar1 + 0x28);
    apuStack_50[1] = (uint *)puVar1;
    apuStack_50[3] = puVar11;
    *(undefined4 *)(puVar13 + -0x14) = 0x45555;
    (*pcVar2)();
    puVar9 = puStack_54;
    puStack_3c = param_3;
  }
  else {
    uVar7 = (int)local_30 * 4;
    apuStack_50[1] = puVar11;
    if (uVar7 < 0x7f01) {
      iVar8 = -(uVar7 + 0x1b & 0xfffffff0);
      puStack_3c = (uint *)((uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0);
      puVar13 = puVar13 + iVar8;
    }
    else {
      *(uint *)(puVar13 + -0xc) = uVar7;
      *(int **)(puVar13 + -0x10) = &iStack_24;
      *(undefined4 *)(puVar13 + -0x14) = 0x45770;
      puStack_3c = (uint *)__gmp_tmp_reentrant_alloc();
    }
    puVar11 = apuStack_50[3];
    puVar1 = local_34[-0x9b];
    puStack_58 = puStack_54;
    puStack_54 = apuStack_50[1];
    *(uint **)(puVar13 + -4) = apuStack_50[3];
    *(uint **)(puVar13 + -8) = local_30;
    *(uint **)(puVar13 + -0xc) = param_3;
    *(uint **)(puVar13 + -0x10) = puStack_3c;
    pcVar2 = *(code **)(puVar1 + 0x80);
    apuStack_50[1] = (uint *)puVar1;
    *(undefined4 *)(puVar13 + -0x14) = 0x453c5;
    (*pcVar2)();
    puVar9 = puStack_54;
    *(uint **)(puVar13 + -0x14) = puVar11;
    *(uint **)(puVar13 + -0x18) = puVar9;
    *(uint **)(puVar13 + -0x1c) = param_1;
    *(uint **)(puVar13 + -0x20) = local_38;
    apuStack_50[3] = puVar9;
    pcVar2 = *(code **)(puVar1 + 0x80);
    *(undefined4 *)(puVar13 + -0x24) = 0x453d7;
    (*pcVar2)();
    puVar9 = puStack_58;
  }
  if (*(uint *)((int)local_38 + (int)apuStack_50[2] + -8) < puStack_3c[(int)local_30 + -1]) {
    if (local_30 == apuStack_50[3]) {
LAB_000454ba:
      if (iStack_24 != 0) {
        *(int *)(puVar13 + -0x10) = iStack_24;
        *(undefined4 *)(puVar13 + -0x14) = 0x454d1;
        __gmp_tmp_reentrant_free();
      }
      goto LAB_000452ce;
    }
  }
  else {
    *(undefined4 *)((int)local_38 + (int)apuStack_50[2] + -4) = 0;
    puStack_40 = (uint *)((int)puVar9 - (int)local_30);
    apuStack_50[3] = puVar9;
  }
  piVar3 = (int *)local_34[-0xaa];
  puVar9 = apuStack_50[3];
  if (*piVar3 == 0) {
    *(undefined4 *)(puVar13 + -4) = 0x45702;
    __gmpn_cpuvec_init();
    puVar9 = apuStack_50[3];
  }
  apuStack_50[3] = *(uint **)((int)apuStack_50[1] + 0x94);
  iVar8 = (int)apuStack_50[3] * 2;
  if (SBORROW4((int)local_30,iVar8) == (int)local_30 + (int)apuStack_50[3] * -2 < 0) {
    if (*piVar3 == 0) {
      apuStack_50[3] = puVar9;
      *(undefined4 *)(puVar13 + -4) = 0x4572e;
      __gmpn_cpuvec_init();
      iVar8 = *(int *)((int)apuStack_50[1] + 0x94) * 2;
      puVar9 = apuStack_50[3];
    }
    puVar11 = puStack_3c;
    if ((int)puStack_40 < iVar8) goto LAB_00045444;
    if ((int)local_30 < 2000) {
      uVar7 = *puStack_3c;
      uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];
      iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;
      *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;
      *(uint **)(puVar13 + -0x10) = local_30;
      *(uint **)(puVar13 + -0x14) = puVar11;
      puVar11 = local_38;
      *(uint **)(puVar13 + -0x18) = puVar9;
      *(uint **)(puVar13 + -0x1c) = puVar11;
      *(uint **)(puVar13 + -0x20) = apuStack_50[0];
      *(undefined4 *)(puVar13 + -0x24) = 0x456e7;
      __gmpn_dcpi1_bdiv_qr();
      local_38 = puVar11 + (int)puStack_40;
    }
    else {
      *(uint **)(puVar13 + -0xc) = local_30;
      *(uint **)(puVar13 + -0x10) = puVar9;
      puStack_40 = puVar9;
      *(undefined4 *)(puVar13 + -0x14) = 0x45613;
      iVar8 = __gmpn_mu_bdiv_qr_itch();
      uVar7 = iVar8 * 4;
      if (uVar7 < 0x7f01) {
        iVar8 = -(uVar7 + 0x1b & 0xfffffff0);
        uVar7 = (uint)(puVar13 + iVar8 + 0xf) & 0xfffffff0;
        puVar13 = puVar13 + iVar8;
      }
      else {
        *(uint *)(puVar13 + -0xc) = uVar7;
        *(int **)(puVar13 + -0x10) = &iStack_24;
        *(undefined4 *)(puVar13 + -0x14) = 0x45794;
        uVar7 = __gmp_tmp_reentrant_alloc();
      }
      puVar9 = puStack_40;
      *(uint *)(puVar13 + -8) = uVar7;
      puVar11 = local_38;
      *(uint **)(puVar13 + -0xc) = local_30;
      *(uint **)(puVar13 + -0x10) = puStack_3c;
      *(uint **)(puVar13 + -0x14) = puVar9;
      *(uint **)(puVar13 + -0x18) = puVar11;
      *(uint **)(puVar13 + -0x1c) = puVar11;
      *(uint **)(puVar13 + -0x20) = apuStack_50[0];
      *(undefined4 *)(puVar13 + -0x24) = 0x45651;
      __gmpn_mu_bdiv_qr();
    }
  }
  else {
LAB_00045444:
    puVar11 = puStack_3c;
    uVar7 = *puStack_3c;
    uVar10 = (uint)(byte)local_34[-0x4e][uVar7 >> 1 & 0x7f];
    iVar8 = uVar10 * 2 - uVar10 * uVar10 * uVar7;
    *(uint *)(puVar13 + -0xc) = iVar8 * iVar8 * uVar7 + iVar8 * -2;
    *(uint **)(puVar13 + -0x10) = local_30;
    *(uint **)(puVar13 + -0x14) = puVar11;
    puVar11 = local_38;
    *(uint **)(puVar13 + -0x18) = puVar9;
    *(uint **)(puVar13 + -0x1c) = puVar11;
    *(uint **)(puVar13 + -0x20) = apuStack_50[0];
    *(undefined4 *)(puVar13 + -0x24) = 0x4548b;
    __gmpn_sbpi1_bdiv_qr();
    local_38 = puVar11 + (int)puStack_40;
  }
  iVar8 = 0;
  do {
    if (local_38[iVar8] != 0) goto LAB_000454ba;
    iVar8 = iVar8 + 1;
  } while (iVar8 < (int)local_30);
  puVar9 = (uint *)0x1;
  puVar12 = puVar13;
  if (iStack_24 != 0) {
    local_30 = (uint *)0x1;
    *(int *)(puVar13 + -0x10) = iStack_24;
    *(undefined4 *)(puVar13 + -0x14) = 0x45585;
    __gmp_tmp_reentrant_free();
    puVar9 = local_30;
  }
LAB_000452d0:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    *(undefined4 *)(puVar12 + -4) = 0x457b7;
    FUN_00079d30();
  }
  return puVar9;
}

