
void __gmpn_powlo(mp_ptr rp,mp_srcptr bp,mp_srcptr ep,mp_size_t en,mp_size_t n,mp_ptr tp)

{
  mp_ptr pmVar1;
  mp_ptr pmVar2;
  undefined *puVar3;
  uint uVar4;
  uint uVar5;
  mp_limb_t *pmVar6;
  int iVar7;
  undefined4 uVar8;
  int iVar9;
  size_t *psVar10;
  mp_limb_t *pmVar11;
  uint *puVar12;
  uint uVar13;
  mp_ptr pmVar14;
  tmp_reentrant_t *ptVar15;
  int iVar16;
  tmp_reentrant_t *ptVar17;
  mp_ptr pmVar18;
  mp_limb_t mVar19;
  mp_limb_t *pmVar20;
  undefined4 *puVar21;
  tmp_reentrant_t *ptVar22;
  undefined4 uVar23;
  undefined1 *puVar24;
  undefined4 uVar25;
  int iVar26;
  undefined4 *puVar27;
  int iVar28;
  mp_limb_t *pmVar29;
  size_t *psVar30;
  mp_limb_t *pmVar31;
  int *piVar32;
  undefined4 *puVar33;
  int iVar34;
  undefined4 *puVar35;
  undefined4 *puVar36;
  undefined *puVar37;
  code *UNRECOVERED_JUMPTABLE;
  int iVar38;
  int iVar39;
  undefined1 *puVar40;
  int iVar41;
  undefined4 uVar42;
  undefined1 auStack_70 [16];
  uint local_4c;
  mp_limb_t *local_44;
  int local_3c;
  mp_limb_t *local_38;
  tmp_reentrant_t *__tmp_marker;
  int local_2c;
  
  puVar3 = PTR___stack_chk_guard_0009d540;
  puVar37 = PTR___gmpn_clz_tab_0009d18c;
  puVar40 = auStack_70;
  puVar24 = auStack_70;
  local_2c = *(int *)PTR___stack_chk_guard_0009d540;
  uVar4 = ep[en + -1];
  __tmp_marker = (tmp_reentrant_t *)0x0;
  if (uVar4 < 0x10000) {
    iVar28 = 9;
    if (uVar4 < 0x100) {
      iVar28 = 1;
    }
    pmVar29 = (mp_limb_t *)
              (en * 0x20 + -0x21 + iVar28 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar4 >> iVar28]
              );
  }
  else {
    iVar28 = 0x19;
    if (uVar4 < 0x1000000) {
      iVar28 = 0x11;
    }
    pmVar29 = (mp_limb_t *)
              (en * 0x20 + -0x21 + iVar28 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar4 >> iVar28]
              );
  }
  if (pmVar29 < &DAT_00000008) {
    local_4c = 1;
    local_38 = (mp_limb_t *)&DAT_00000001;
    uVar4 = n << 2;
    iVar28 = 0;
    local_44 = local_38;
  }
  else {
    if (pmVar29 < (mp_limb_t *)0x1a) {
      local_44 = (mp_limb_t *)0x2;
      iVar28 = 1;
    }
    else if (pmVar29 < (mp_limb_t *)0x52) {
      local_44 = (mp_limb_t *)0x3;
      iVar28 = 2;
    }
    else if (pmVar29 < (mp_limb_t *)0xf2) {
      local_44 = (mp_limb_t *)&DAT_00000004;
      iVar28 = 3;
    }
    else if (pmVar29 < (mp_limb_t *)0x2a2) {
      local_44 = (mp_limb_t *)&DAT_00000005;
      iVar28 = 4;
    }
    else if (pmVar29 < (mp_limb_t *)0x702) {
      local_44 = (mp_limb_t *)&DAT_00000006;
      iVar28 = 5;
    }
    else if (pmVar29 < (mp_limb_t *)0x1202) {
      local_44 = (mp_limb_t *)0x7;
      iVar28 = 6;
    }
    else {
      iVar28 = 9;
      if (pmVar29 < (mp_limb_t *)0x2d02) {
        local_44 = (mp_limb_t *)&DAT_00000008;
        iVar28 = 7;
      }
      else {
        local_44 = (mp_limb_t *)&DAT_0000000a;
        if (pmVar29 < (mp_limb_t *)0x6e02) {
          local_44 = (mp_limb_t *)&DAT_00000009;
          iVar28 = 8;
        }
      }
    }
    uVar4 = (n << iVar28) << 2;
    local_4c = ~(-1 << (int)local_44);
    iVar28 = (1 << iVar28) + -1;
  }
  if (uVar4 < 0x7f01) {
    iVar34 = -(uVar4 + 7 & 0xfffffff8);
    puVar24 = auStack_70 + iVar34;
    puVar40 = auStack_70 + iVar34;
    pmVar6 = (mp_limb_t *)(&stack0xffffffa0 + iVar34);
    ptVar15 = __tmp_marker;
  }
  else {
    pmVar6 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);
    ptVar15 = __tmp_marker;
  }
  __tmp_marker = ptVar15;
  if (n == 0) {
    local_3c = -1;
    puVar40 = puVar24;
  }
  else {
    local_3c = n + -1;
    mVar19 = *bp;
    if (local_3c == 0) {
      *pmVar6 = mVar19;
    }
    else {
      iVar34 = local_3c;
      pmVar11 = pmVar6;
      pmVar31 = bp + 1;
      do {
        *pmVar11 = mVar19;
        iVar34 = iVar34 + -1;
        mVar19 = *pmVar31;
        pmVar11 = pmVar11 + 1;
        pmVar31 = pmVar31 + 1;
      } while (iVar34 != 0);
      pmVar6[n + -1] = mVar19;
    }
  }
  (*(code *)PTR___gmpn_sqrlo_0009d354)(tp,bp,n);
  iVar34 = n * 4;
  pmVar11 = pmVar6;
  for (; iVar28 != 0; iVar28 = iVar28 + -1) {
    bp = pmVar11 + n;
    en = n;
    (*(code *)PTR___gmpn_mullo_n_0009d234)(bp,pmVar11,tp);
    pmVar11 = bp;
  }
  uVar4 = (int)pmVar29 - (int)local_44;
  if (pmVar29 < local_44) {
    uVar5 = ~(-1 << ((uint)pmVar29 & 0x1f)) & *ep;
  }
  else {
    uVar13 = 0x20 - (uVar4 & 0x1f);
    en = (mp_size_t)((int)uVar13 < (int)local_44);
    uVar5 = ep[uVar4 >> 5] >> (uVar4 & 0x1f);
    if (en != 0) {
      uVar5 = uVar5 + ((ep + (uVar4 >> 5))[1] << (uVar13 & 0x1f));
    }
    uVar5 = uVar5 & local_4c;
  }
  if ((uVar5 & 0xff) == 0) {
    uVar13 = uVar5 >> 8;
    en = 6;
    iVar28 = 0x1e;
    if (uVar13 != 0) {
      iVar28 = 6;
    }
    uVar13 = (uint)(byte)puVar37[-uVar13 & uVar13] + iVar28;
  }
  else {
    uVar13 = (byte)puVar37[-uVar5 & uVar5] - 2;
  }
  pmVar11 = (mp_limb_t *)(uVar13 + uVar4);
  if (n != 0) {
    en = ((uVar5 >> (uVar13 & 0x1f)) >> 1) * iVar34;
    pmVar20 = (mp_limb_t *)(en + (int)pmVar6);
    mVar19 = *pmVar20;
    iVar28 = local_3c;
    pmVar31 = rp;
    if (local_3c == 0) {
      *rp = mVar19;
    }
    else {
      do {
        pmVar20 = pmVar20 + 1;
        *pmVar31 = mVar19;
        iVar28 = iVar28 + -1;
        mVar19 = *pmVar20;
        pmVar31 = pmVar31 + 1;
      } while (iVar28 != 0);
      rp[n + -1] = mVar19;
    }
  }
  pmVar31 = (mp_limb_t *)((int)pmVar11 + -1);
  if ((ep[(uint)pmVar31 >> 5] >> ((uint)pmVar31 & 0x1f) & 1) != 0) goto LAB_0007b010;
LAB_0007afb0:
  pmVar18 = rp;
  pmVar20 = (mp_limb_t *)n;
  (*(code *)PTR___gmpn_sqrlo_0009d354)(tp);
  pmVar11 = pmVar31;
  ptVar15 = __tmp_marker;
  if (n != 0) {
    pmVar18 = (mp_ptr)*tp;
    pmVar1 = rp;
    pmVar2 = rp;
    pmVar14 = tp;
    for (iVar28 = local_3c; iVar28 != 0; iVar28 = iVar28 + -1) {
      pmVar14 = pmVar14 + 1;
      *pmVar2 = (mp_limb_t)pmVar18;
      pmVar18 = (mp_ptr)*pmVar14;
      pmVar1 = rp + n + -1;
      pmVar2 = pmVar2 + 1;
    }
    *pmVar1 = (mp_limb_t)pmVar18;
  }
  do {
    __tmp_marker = ptVar15;
    if (pmVar11 == (mp_limb_t *)0x0) {
      if (ptVar15 != (tmp_reentrant_t *)0x0) {
        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();
      }
      if (local_2c == *(int *)puVar3) {
        return;
      }
      uVar42 = 0x7b45c;
      puVar37 = PTR___stack_chk_fail_0009d4d0;
      (*(code *)PTR___stack_chk_fail_0009d4d0)();
      uVar4 = *(uint *)(puVar40 + 0x10);
      *(mp_size_t *)(puVar40 + -0x24) = n;
      *(undefined **)(puVar40 + -0x68) = puVar37 + 0x29be0;
      *(undefined4 *)(puVar40 + -0x18) = 0;
      *(mp_limb_t **)(puVar40 + -0x28) = pmVar29;
      *(undefined4 *)(puVar40 + -4) = uVar42;
      *(undefined1 **)(puVar40 + -8) = auStack_70;
      *(int *)(puVar40 + -0xc) = iVar34;
      *(mp_srcptr *)(puVar40 + -0x10) = ep;
      *(mp_srcptr *)(puVar40 + -0x14) = bp;
      *(mp_ptr *)(puVar40 + -0x1c) = rp;
      *(mp_ptr *)(puVar40 + -0x20) = tp;
      *(uint *)(puVar40 + -0x60) = uVar4;
      *(mp_ptr *)(puVar40 + -0x44) = pmVar18;
      *(mp_size_t *)(puVar40 + -0x4c) = en;
      piVar32 = *(int **)(puVar40 + 0x14);
      iVar28 = *(int *)(puVar40 + 0x18);
      *(undefined4 *)(puVar40 + -0x54) = *(undefined4 *)(puVar40 + 0x1c);
      if (uVar4 < 3) {
        iVar34 = 0;
        *(undefined4 *)(puVar40 + -0x5c) = 1;
        *(undefined4 *)(puVar40 + -0x50) = 2;
        iVar7 = 1;
        *(undefined4 *)(puVar40 + -0x58) = 1;
      }
      else {
        if (uVar4 < 0x22) {
          *(undefined4 *)(puVar40 + -0x58) = 2;
          iVar7 = 2;
        }
        else if (uVar4 < 0x61) {
          *(undefined4 *)(puVar40 + -0x58) = 3;
          iVar7 = 3;
        }
        else if (uVar4 < 0x30d) {
          *(undefined4 *)(puVar40 + -0x58) = 4;
          iVar7 = 4;
        }
        else {
          iVar7 = 6;
          if (uVar4 < 0xab6) {
            iVar7 = 5;
          }
          *(int *)(puVar40 + -0x58) = iVar7;
        }
        *(int *)(puVar40 + -0x5c) = iVar7;
        *(int *)(puVar40 + -0x50) = 1 << iVar7;
        iVar34 = (1 << iVar7) + -2;
      }
      iVar16 = *piVar32;
      iVar41 = iVar28 * 4;
      puVar35 = *(undefined4 **)(puVar40 + -0x54);
      puVar24 = (undefined1 *)(iVar28 + (int)pmVar20);
      puVar33 = puVar35 + iVar28;
      uVar4 = (uint)*(byte *)(*(int *)(puVar37 + 0x21ea4) + ((uint)(iVar16 << 0x18) >> 0x19));
      puVar27 = puVar33 + iVar28;
      puVar21 = puVar35 + iVar28 + 1;
      *(undefined4 **)(puVar40 + -0x48) = puVar27 + (int)puVar24;
      psVar30 = puVar35 + (iVar28 << iVar7);
      *puVar33 = 1;
      iVar7 = uVar4 * 2 - uVar4 * uVar4 * iVar16;
      iVar7 = iVar7 * iVar7 * iVar16 + iVar7 * -2;
      puVar36 = puVar33;
      if (iVar28 == 0) {
        UNRECOVERED_JUMPTABLE = *(code **)(puVar37 + 0x2211c);
        puVar21[iVar28] = 1;
        *(mp_limb_t **)(puVar40 + -0x38) = pmVar20;
        *(undefined1 **)(puVar40 + -0x3c) = puVar24;
        *(undefined4 **)(puVar40 + -0x40) = puVar27;
        *(undefined4 **)(puVar40 + -0x70) = puVar21 + iVar28 + 1;
        (*UNRECOVERED_JUMPTABLE)(puVar21,1,piVar32,0);
        iVar26 = *(int *)(puVar40 + -0x3c);
        iVar39 = *(int *)(puVar40 + -0x68);
        iVar16 = *(int *)(puVar40 + -0x40);
        iVar38 = *(int *)(puVar40 + -0x38);
        if (iVar26 == 0) {
          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);
          *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x48);
          (*UNRECOVERED_JUMPTABLE)(iVar16,0,piVar32,0);
          iVar16 = *(int *)(puVar40 + -0x68);
          goto joined_r0x0007b75c;
        }
        iVar9 = iVar38 + -1;
        puVar27 = (undefined4 *)(iVar16 + iVar41);
        uVar42 = **(undefined4 **)(puVar40 + -0x44);
        if (iVar9 != 0) {
          puVar35 = *(undefined4 **)(puVar40 + -0x44);
          puVar21 = puVar27;
          goto LAB_0007b70c;
        }
        uVar8 = *(undefined4 *)(puVar40 + -0x48);
        UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);
        *puVar27 = uVar42;
        *(undefined4 *)(puVar40 + -0x70) = uVar8;
        (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,0);
        iVar16 = *(int *)(puVar40 + -0x68);
      }
      else {
        UNRECOVERED_JUMPTABLE = *(code **)(puVar37 + 0x21e88);
        *(mp_limb_t **)(puVar40 + -0x2c) = pmVar20;
        *(undefined1 **)(puVar40 + -0x30) = puVar24;
        *(undefined4 **)(puVar40 + -0x34) = puVar21 + iVar28;
        *(undefined4 **)(puVar40 + -0x38) = puVar27;
        *(undefined4 **)(puVar40 + -0x3c) = puVar21 + iVar28 + 1;
        uVar42 = (*UNRECOVERED_JUMPTABLE)(puVar21,0,iVar41);
        uVar8 = *puVar33;
        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7ac4);
        *(int *)(puVar40 + -0x40) = iVar28 + -1;
        *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x3c);
        *(undefined4 *)(puVar40 + -0x3c) = uVar42;
        **(undefined4 **)(puVar40 + -0x34) = uVar8;
        (*UNRECOVERED_JUMPTABLE)(uVar42,iVar28 + 1,piVar32,iVar28);
        iVar16 = iVar28 + -1;
        puVar27 = *(undefined4 **)(puVar40 + -0x3c);
        iVar38 = *(int *)(puVar40 + -0x68);
        uVar42 = *(undefined4 *)(puVar40 + -0x38);
        uVar25 = *(undefined4 *)(puVar40 + -0x30);
        uVar8 = *puVar27;
        uVar23 = *(undefined4 *)(puVar40 + -0x2c);
        if (iVar16 == 0) {
          puVar35 = *(undefined4 **)(puVar40 + -0x54);
        }
        else {
          do {
            puVar27 = puVar27 + 1;
            *puVar35 = uVar8;
            iVar16 = iVar16 + -1;
            uVar8 = *puVar27;
            puVar35 = puVar35 + 1;
          } while (iVar16 != 0);
          puVar35 = (undefined4 *)(*(int *)(puVar40 + -0x54) + iVar41 + -4);
        }
        UNRECOVERED_JUMPTABLE = *(code **)(iVar38 + -0x7d58);
        *(undefined4 *)(puVar40 + -0x38) = uVar23;
        *(undefined4 *)(puVar40 + -0x3c) = uVar25;
        *puVar35 = uVar8;
        iVar16 = (*UNRECOVERED_JUMPTABLE)(uVar42,0,iVar41);
        iVar38 = *(int *)(puVar40 + -0x38);
        iVar39 = *(int *)(puVar40 + -0x68);
        iVar26 = *(int *)(puVar40 + -0x3c);
        if (iVar38 == 0) {
          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);
          *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x48);
          iVar38 = iVar26;
LAB_0007bb8c:
          *(int *)(puVar40 + -0x48) = iVar16;
          (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,iVar38);
          iVar16 = *(int *)(puVar40 + -0x68);
          puVar35 = *(undefined4 **)(puVar40 + -0x48);
        }
        else {
          puVar35 = *(undefined4 **)(puVar40 + -0x44);
          iVar9 = iVar38 + -1;
          puVar27 = (undefined4 *)(iVar16 + iVar41);
          uVar42 = *puVar35;
          puVar21 = puVar27;
          if (iVar9 == 0) {
            uVar8 = *(undefined4 *)(puVar40 + -0x48);
            UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);
            *puVar27 = uVar42;
            *(undefined4 *)(puVar40 + -0x70) = uVar8;
            iVar38 = iVar28;
            goto LAB_0007bb8c;
          }
LAB_0007b70c:
          do {
            puVar35 = puVar35 + 1;
            *puVar27 = uVar42;
            iVar9 = iVar9 + -1;
            uVar42 = *puVar35;
            puVar27 = puVar27 + 1;
          } while (iVar9 != 0);
          uVar8 = *(undefined4 *)(puVar40 + -0x48);
          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);
          *(int *)(puVar40 + -0x48) = iVar16;
          *(undefined4 *)(puVar40 + -0x70) = uVar8;
          puVar21[iVar38 + -1] = uVar42;
          (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,iVar28);
          iVar16 = *(int *)(puVar40 + -0x68);
          if (iVar28 == 0) goto joined_r0x0007b75c;
          puVar35 = *(undefined4 **)(puVar40 + -0x48);
          *(int *)(puVar40 + -0x40) = iVar28 + -1;
        }
        iVar38 = *(int *)(puVar40 + -0x40);
        uVar42 = *puVar35;
        puVar27 = puVar33;
        if (iVar38 == 0) {
          *puVar33 = uVar42;
        }
        else {
          do {
            puVar35 = puVar35 + 1;
            *puVar27 = uVar42;
            iVar38 = iVar38 + -1;
            uVar42 = *puVar35;
            puVar27 = puVar27 + 1;
          } while (iVar38 != 0);
          puVar33[*(int *)(puVar40 + -0x40)] = uVar42;
        }
      }
joined_r0x0007b75c:
      for (; iVar34 != 0; iVar34 = iVar34 + -1) {
        UNRECOVERED_JUMPTABLE = *(code **)(iVar16 + -0x7bd0);
        *(int *)(puVar40 + -0x70) = iVar28;
        (*UNRECOVERED_JUMPTABLE)(psVar30,puVar36,iVar28,puVar33);
        puVar36 = puVar36 + iVar28;
        *(int *)(puVar40 + -0x70) = iVar7;
        uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))(puVar36,psVar30,piVar32,iVar28);
        *(int *)(puVar40 + -0x70) = iVar28;
        (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,puVar36,puVar36,piVar32);
        iVar16 = *(int *)(puVar40 + -0x68);
      }
      if (*(uint *)(puVar40 + -0x5c) <= *(uint *)(puVar40 + -0x60)) {
        uVar4 = *(int *)(puVar40 + -0x60) - *(uint *)(puVar40 + -0x5c);
        uVar13 = 0x20 - (uVar4 & 0x1f);
        puVar12 = (uint *)(*(int *)(puVar40 + -0x4c) + (uVar4 >> 5) * 4);
        uVar5 = *puVar12 >> (uVar4 & 0x1f);
        if ((int)uVar13 < *(int *)(puVar40 + -0x58)) {
          uVar5 = uVar5 + (puVar12[1] << (uVar13 & 0x1f));
        }
        UNRECOVERED_JUMPTABLE = *(code **)(iVar16 + -0x7bac);
        *(int *)(puVar40 + -0x44) = ~(-1 << (*(uint *)(puVar40 + -0x58) & 0x1f));
        *(uint *)(puVar40 + -0x70) = ~(-1 << (*(uint *)(puVar40 + -0x58) & 0x1f)) & uVar5;
        (*UNRECOVERED_JUMPTABLE)
                  (ptVar15,*(undefined4 *)(puVar40 + -0x54),iVar28,*(undefined4 *)(puVar40 + -0x50))
        ;
        iVar34 = *(int *)(puVar40 + -0x68);
        if (uVar4 != 0) {
          *(uint *)(puVar40 + -0x48) = (uint)(iVar28 < 0x39);
          do {
            if (uVar4 < *(uint *)(puVar40 + -0x5c)) {
              uVar13 = 0;
              *(uint *)(puVar40 + -0x60) = ~(-1 << (uVar4 & 0x1f)) & **(uint **)(puVar40 + -0x4c);
            }
            else {
              uVar13 = uVar4 - *(int *)(puVar40 + -0x5c);
              uVar4 = 0x20 - (uVar13 & 0x1f);
              puVar12 = (uint *)(*(int *)(puVar40 + -0x4c) + (uVar13 >> 5) * 4);
              uVar5 = *puVar12 >> (uVar13 & 0x1f);
              if ((int)uVar4 < *(int *)(puVar40 + -0x58)) {
                uVar5 = uVar5 + (puVar12[1] << (uVar4 & 0x1f));
              }
              uVar4 = *(uint *)(puVar40 + -0x58);
              *(uint *)(puVar40 + -0x60) = *(uint *)(puVar40 + -0x44) & uVar5;
            }
            UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);
            if (*(int *)(puVar40 + -0x48) == 0) {
              do {
                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bd0);
                *(int *)(puVar40 + -0x70) = iVar28;
                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28,ptVar15);
                *(int *)(puVar40 + -0x70) = iVar7;
                uVar4 = uVar4 - 1;
                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))
                                   (ptVar15,psVar30,piVar32,iVar28);
                *(int *)(puVar40 + -0x70) = iVar28;
                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);
                iVar34 = *(int *)(puVar40 + -0x68);
              } while (uVar4 != 0);
              uVar42 = *(undefined4 *)(puVar40 + -0x60);
            }
            else {
              while( true ) {
                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28);
                *(int *)(puVar40 + -0x70) = iVar7;
                uVar4 = uVar4 - 1;
                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))
                                   (ptVar15,psVar30,piVar32,iVar28);
                *(int *)(puVar40 + -0x70) = iVar28;
                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);
                iVar34 = *(int *)(puVar40 + -0x68);
                if (uVar4 == 0) break;
                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);
              }
              uVar42 = *(undefined4 *)(puVar40 + -0x60);
            }
            UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bac);
            *(undefined4 *)(puVar40 + -0x70) = uVar42;
            (*UNRECOVERED_JUMPTABLE)
                      (psVar30 + iVar28 * 2,*(undefined4 *)(puVar40 + -0x54),iVar28,
                       *(undefined4 *)(puVar40 + -0x50));
            *(int *)(puVar40 + -0x70) = iVar28;
            (**(code **)(*(int *)(puVar40 + -0x68) + -0x7bd0))
                      (psVar30,ptVar15,iVar28,psVar30 + iVar28 * 2);
            *(int *)(puVar40 + -0x70) = iVar7;
            uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))
                               (ptVar15,psVar30,piVar32,iVar28);
            *(int *)(puVar40 + -0x70) = iVar28;
            (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);
            iVar34 = *(int *)(puVar40 + -0x68);
            uVar4 = uVar13;
          } while (uVar13 != 0);
        }
        UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7eb0);
        if (iVar28 != 0) {
          iVar16 = iVar28 + -1;
          ptVar22 = ptVar15->next;
          psVar10 = psVar30;
          ptVar17 = ptVar15;
          if (iVar16 != 0) {
            do {
              *psVar10 = (size_t)ptVar22;
              iVar16 = iVar16 + -1;
              ptVar22 = (tmp_reentrant_t *)ptVar17->size;
              psVar10 = psVar10 + 1;
              ptVar17 = (tmp_reentrant_t *)&ptVar17->size;
            } while (iVar16 != 0);
            psVar10 = psVar30 + iVar28 + -1;
          }
          UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7d58);
          *psVar10 = (size_t)ptVar22;
          (*UNRECOVERED_JUMPTABLE)(psVar30 + iVar28,0,iVar41);
          UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0);
        }
        *(int *)(puVar40 + -0x70) = iVar7;
        uVar42 = (*UNRECOVERED_JUMPTABLE)(ptVar15,psVar30,piVar32,iVar28);
        *(int *)(puVar40 + -0x70) = iVar28;
        (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);
        iVar34 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7b2c))(psVar30,ptVar15,piVar32,iVar28);
        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7a70);
        *(int *)(puVar40 + 0x10) = iVar28;
                    /* WARNING: Could not recover jumptable at 0x0007bab0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        (*UNRECOVERED_JUMPTABLE)(iVar34 == 0,ptVar15,ptVar15,piVar32);
        return;
      }
      (**(code **)(iVar16 + -0x7c20))
                (*(int *)(iVar16 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar16 + -0x7fd4) + 0x5438);
      return;
    }
    pmVar31 = (mp_limb_t *)((int)pmVar11 + -1);
    if ((ep[(uint)pmVar31 >> 5] >> ((uint)pmVar31 & 0x1f) & 1) == 0) goto LAB_0007afb0;
LAB_0007b010:
    if (pmVar11 < local_44) {
      uVar5 = ~(-1 << ((uint)pmVar11 & 0x1f)) & *ep;
      uVar13 = 0;
      if ((uVar5 & 0xff) == 0) goto LAB_0007b270;
LAB_0007b040:
      uVar4 = (byte)puVar37[-uVar5 & uVar5] - 2;
    }
    else {
      uVar13 = (int)pmVar11 - (int)local_44;
      uVar4 = 0x20 - (uVar13 & 0x1f);
      uVar5 = ep[uVar13 >> 5] >> (uVar13 & 0x1f);
      if ((int)uVar4 < (int)local_44) {
        uVar5 = uVar5 + ((ep + (uVar13 >> 5))[1] << (uVar4 & 0x1f));
      }
      uVar5 = uVar5 & local_4c;
      pmVar11 = local_44;
      if ((uVar5 & 0xff) != 0) goto LAB_0007b040;
LAB_0007b270:
      uVar4 = uVar5 >> 8;
      iVar28 = 0x1e;
      if (uVar4 != 0) {
        iVar28 = 6;
      }
      uVar4 = (uint)(byte)puVar37[-uVar4 & uVar4] + iVar28;
    }
    bp = (mp_srcptr)((int)pmVar11 - uVar4);
    pmVar11 = bp;
    if (1 < (int)bp) {
      do {
        (*(code *)PTR___gmpn_sqrlo_0009d354)(tp,rp,n);
        pmVar29 = (mp_limb_t *)((int)pmVar11 + -2);
        (*(code *)PTR___gmpn_sqrlo_0009d354)(rp,tp,n);
        pmVar11 = pmVar29;
      } while (1 < (int)pmVar29);
      bp = (mp_srcptr)((uint)bp & 1);
    }
    if (bp == (mp_limb_t *)0x0) {
      if (n != 0) {
        mVar19 = *rp;
        pmVar11 = tp;
        if (local_3c != 0) {
          iVar28 = local_3c;
          pmVar18 = tp;
          pmVar31 = rp + 1;
          do {
            *pmVar18 = mVar19;
            iVar28 = iVar28 + -1;
            mVar19 = *pmVar31;
            pmVar11 = tp + n + -1;
            pmVar18 = pmVar18 + 1;
            pmVar31 = pmVar31 + 1;
          } while (iVar28 != 0);
        }
        *pmVar11 = mVar19;
      }
    }
    else {
      (*(code *)PTR___gmpn_sqrlo_0009d354)(tp,rp,n);
    }
    pmVar20 = (mp_limb_t *)(((uVar5 >> (uVar4 & 0x1f)) >> 1) * iVar34 + (int)pmVar6);
    pmVar18 = tp;
    en = n;
    (*(code *)PTR___gmpn_mullo_n_0009d234)(rp);
    pmVar11 = (mp_limb_t *)(uVar4 + uVar13);
    ptVar15 = __tmp_marker;
  } while( true );
}



void __gmpn_powlo(undefined4 *param_1,undefined4 *param_2,uint *param_3,undefined4 *param_4,
                 undefined4 *param_5,undefined4 *param_6)

{
  undefined *puVar1;
  uint uVar2;
  uint uVar3;
  int iVar4;
  undefined4 uVar5;
  int iVar6;
  undefined4 *puVar7;
  uint extraout_v1;
  uint *puVar8;
  uint uVar9;
  undefined4 *puVar10;
  int iVar11;
  undefined4 *puVar12;
  undefined4 uVar13;
  undefined4 *puVar14;
  undefined4 uVar15;
  undefined1 *puVar16;
  undefined4 uVar17;
  int iVar18;
  int iVar19;
  undefined4 *puVar20;
  undefined4 *puVar21;
  undefined4 *puVar22;
  int *piVar23;
  undefined4 *puVar24;
  int iVar25;
  undefined4 *puVar26;
  undefined *puVar27;
  code *UNRECOVERED_JUMPTABLE;
  int iVar28;
  int iVar29;
  undefined1 *puVar30;
  int iVar31;
  undefined1 auStack_70 [16];
  uint local_4c;
  undefined4 *local_44;
  undefined1 *local_3c;
  undefined4 *local_38;
  undefined4 *local_30;
  int local_2c;
  
  puVar1 = PTR___stack_chk_guard_0009d540;
  puVar27 = PTR___gmpn_clz_tab_0009d18c;
  puVar30 = auStack_70;
  puVar16 = auStack_70;
  local_2c = *(int *)PTR___stack_chk_guard_0009d540;
  uVar2 = param_3[(int)((int)param_4 + -1)];
  local_30 = (undefined4 *)0x0;
  if (uVar2 < 0x10000) {
    iVar19 = 9;
    if (uVar2 < 0x100) {
      iVar19 = 1;
    }
    puVar20 = (undefined4 *)
              ((int)param_4 * 0x20 + -0x21 + iVar19 +
              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);
  }
  else {
    iVar19 = 0x19;
    if (uVar2 < 0x1000000) {
      iVar19 = 0x11;
    }
    puVar20 = (undefined4 *)
              ((int)param_4 * 0x20 + -0x21 + iVar19 +
              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);
  }
  if (puVar20 < &DAT_00000008) {
    local_4c = 1;
    local_38 = (undefined4 *)0x1;
    uVar2 = (int)param_5 << 2;
    iVar19 = 0;
    local_44 = local_38;
  }
  else {
    if (puVar20 < (undefined4 *)0x1a) {
      local_44 = (undefined4 *)0x2;
      iVar19 = 1;
    }
    else if (puVar20 < (undefined4 *)0x52) {
      local_44 = (undefined4 *)0x3;
      iVar19 = 2;
    }
    else if (puVar20 < (undefined4 *)0xf2) {
      local_44 = (undefined4 *)&DAT_00000004;
      iVar19 = 3;
    }
    else if (puVar20 < (undefined4 *)0x2a2) {
      local_44 = (undefined4 *)&DAT_00000005;
      iVar19 = 4;
    }
    else if (puVar20 < (undefined4 *)0x702) {
      local_44 = (undefined4 *)&DAT_00000006;
      iVar19 = 5;
    }
    else if (puVar20 < (undefined4 *)0x1202) {
      local_44 = (undefined4 *)0x7;
      iVar19 = 6;
    }
    else {
      iVar19 = 9;
      if (puVar20 < (undefined4 *)0x2d02) {
        local_44 = (undefined4 *)&DAT_00000008;
        iVar19 = 7;
      }
      else {
        local_44 = (undefined4 *)&DAT_0000000a;
        if (puVar20 < (undefined4 *)0x6e02) {
          local_44 = (undefined4 *)&DAT_00000009;
          iVar19 = 8;
        }
      }
    }
    uVar2 = ((int)param_5 << iVar19) << 2;
    local_4c = ~(-1 << (int)local_44);
    iVar19 = (1 << iVar19) + -1;
  }
  if (uVar2 < 0x7f01) {
    iVar25 = -(uVar2 + 7 & 0xfffffff8);
    puVar16 = auStack_70 + iVar25;
    puVar30 = auStack_70 + iVar25;
    puVar26 = (undefined4 *)(&stack0xffffffa0 + iVar25);
  }
  else {
    puVar26 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);
  }
  if (param_5 == (undefined4 *)0x0) {
    local_3c = (undefined1 *)0xffffffff;
    puVar30 = puVar16;
  }
  else {
    local_3c = (undefined1 *)((int)param_5 + -1);
    uVar13 = *param_2;
    if (local_3c == (undefined1 *)0x0) {
      *puVar26 = uVar13;
    }
    else {
      puVar16 = local_3c;
      puVar7 = puVar26;
      puVar22 = param_2 + 1;
      do {
        *puVar7 = uVar13;
        puVar16 = puVar16 + -1;
        uVar13 = *puVar22;
        puVar7 = puVar7 + 1;
        puVar22 = puVar22 + 1;
      } while (puVar16 != (undefined1 *)0x0);
      puVar26[(int)((int)param_5 + -1)] = uVar13;
    }
  }
  (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_2,param_5);
  iVar25 = (int)param_5 * 4;
  puVar7 = puVar26;
  for (; iVar19 != 0; iVar19 = iVar19 + -1) {
    param_2 = puVar7 + (int)param_5;
    param_4 = param_5;
    (*(code *)PTR___gmpn_mullo_n_0009d234)(param_2,puVar7,param_6);
    puVar7 = param_2;
  }
  uVar2 = (int)puVar20 - (int)local_44;
  if (puVar20 < local_44) {
    uVar3 = ~(-1 << ((uint)puVar20 & 0x1f)) & *param_3;
  }
  else {
    uVar9 = 0x20 - (uVar2 & 0x1f);
    param_4 = (undefined4 *)(uint)((int)uVar9 < (int)local_44);
    uVar3 = param_3[uVar2 >> 5] >> (uVar2 & 0x1f);
    if (param_4 != (undefined4 *)0x0) {
      uVar3 = uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f));
    }
    uVar3 = uVar3 & local_4c;
  }
  if ((uVar3 & 0xff) == 0) {
    uVar9 = uVar3 >> 8;
    param_4 = (undefined4 *)&DAT_00000006;
    iVar19 = 0x1e;
    if (uVar9 != 0) {
      iVar19 = 6;
    }
    uVar9 = (uint)(byte)puVar27[-uVar9 & uVar9] + iVar19;
  }
  else {
    uVar9 = (byte)puVar27[-uVar3 & uVar3] - 2;
  }
  puVar7 = (undefined4 *)(uVar9 + uVar2);
  if (param_5 != (undefined4 *)0x0) {
    param_4 = (undefined4 *)(((uVar3 >> (uVar9 & 0x1f)) >> 1) * iVar25);
    puVar12 = (undefined4 *)((int)param_4 + (int)puVar26);
    uVar13 = *puVar12;
    puVar16 = local_3c;
    puVar22 = param_1;
    if (local_3c == (undefined1 *)0x0) {
      *param_1 = uVar13;
    }
    else {
      do {
        puVar12 = puVar12 + 1;
        *puVar22 = uVar13;
        puVar16 = puVar16 + -1;
        uVar13 = *puVar12;
        puVar22 = puVar22 + 1;
      } while (puVar16 != (undefined1 *)0x0);
      param_1[(int)((int)param_5 + -1)] = uVar13;
    }
  }
  puVar22 = (undefined4 *)((int)puVar7 + -1);
  if ((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) != 0) goto LAB_0007b010;
LAB_0007afb0:
  puVar12 = param_1;
  puVar14 = param_5;
  (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6);
  puVar7 = puVar22;
  puVar22 = local_30;
  if (param_5 != (undefined4 *)0x0) {
    puVar12 = (undefined4 *)*param_6;
    puVar21 = param_1;
    puVar24 = param_1;
    puVar10 = param_6;
    for (puVar16 = local_3c; puVar16 != (undefined1 *)0x0; puVar16 = puVar16 + -1) {
      puVar10 = puVar10 + 1;
      *puVar24 = puVar12;
      puVar12 = (undefined4 *)*puVar10;
      puVar21 = param_1 + (int)((int)param_5 + -1);
      puVar24 = puVar24 + 1;
    }
    *puVar21 = puVar12;
  }
  do {
    local_30 = puVar22;
    if (puVar7 == (undefined4 *)0x0) {
      if (puVar22 != (undefined4 *)0x0) {
        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();
      }
      if (local_2c == *(int *)puVar1) {
        return;
      }
      uVar13 = 0x7b45c;
      puVar27 = PTR___stack_chk_fail_0009d4d0;
      (*(code *)PTR___stack_chk_fail_0009d4d0)();
      uVar2 = *(uint *)(puVar30 + 0x10);
      *(undefined4 **)(puVar30 + -0x24) = param_5;
      *(undefined **)(puVar30 + -0x68) = puVar27 + 0x29be0;
      *(undefined4 *)(puVar30 + -0x18) = 0;
      *(undefined4 **)(puVar30 + -0x28) = puVar20;
      *(undefined4 *)(puVar30 + -4) = uVar13;
      *(undefined1 **)(puVar30 + -8) = auStack_70;
      *(int *)(puVar30 + -0xc) = iVar25;
      *(uint **)(puVar30 + -0x10) = param_3;
      *(undefined4 **)(puVar30 + -0x14) = param_2;
      *(undefined4 **)(puVar30 + -0x1c) = param_1;
      *(undefined4 **)(puVar30 + -0x20) = param_6;
      *(uint *)(puVar30 + -0x60) = uVar2;
      *(undefined4 **)(puVar30 + -0x44) = puVar12;
      *(undefined4 **)(puVar30 + -0x4c) = param_4;
      piVar23 = *(int **)(puVar30 + 0x14);
      iVar19 = *(int *)(puVar30 + 0x18);
      *(undefined4 *)(puVar30 + -0x54) = *(undefined4 *)(puVar30 + 0x1c);
      if (uVar2 < 3) {
        iVar25 = 0;
        *(undefined4 *)(puVar30 + -0x5c) = 1;
        *(undefined4 *)(puVar30 + -0x50) = 2;
        iVar4 = 1;
        *(undefined4 *)(puVar30 + -0x58) = 1;
      }
      else {
        if (uVar2 < 0x22) {
          *(undefined4 *)(puVar30 + -0x58) = 2;
          iVar4 = 2;
        }
        else if (uVar2 < 0x61) {
          *(undefined4 *)(puVar30 + -0x58) = 3;
          iVar4 = 3;
        }
        else if (uVar2 < 0x30d) {
          *(undefined4 *)(puVar30 + -0x58) = 4;
          iVar4 = 4;
        }
        else {
          iVar4 = 6;
          if (uVar2 < 0xab6) {
            iVar4 = 5;
          }
          *(int *)(puVar30 + -0x58) = iVar4;
        }
        *(int *)(puVar30 + -0x5c) = iVar4;
        *(int *)(puVar30 + -0x50) = 1 << iVar4;
        iVar25 = (1 << iVar4) + -2;
      }
      iVar11 = *piVar23;
      iVar31 = iVar19 * 4;
      puVar26 = *(undefined4 **)(puVar30 + -0x54);
      puVar16 = (undefined1 *)(iVar19 + (int)puVar14);
      puVar24 = puVar26 + iVar19;
      uVar2 = (uint)*(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19));
      puVar7 = puVar24 + iVar19;
      puVar12 = puVar26 + iVar19 + 1;
      *(undefined4 **)(puVar30 + -0x48) = puVar7 + (int)puVar16;
      puVar21 = puVar26 + (iVar19 << iVar4);
      *puVar24 = 1;
      iVar4 = uVar2 * 2 - uVar2 * uVar2 * iVar11;
      iVar4 = iVar4 * iVar4 * iVar11 + iVar4 * -2;
      puVar20 = puVar24;
      if (iVar19 == 0) {
        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c);
        puVar12[iVar19] = 1;
        *(undefined4 **)(puVar30 + -0x38) = puVar14;
        *(undefined1 **)(puVar30 + -0x3c) = puVar16;
        *(undefined4 **)(puVar30 + -0x40) = puVar7;
        *(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1;
        (*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0);
        iVar18 = *(int *)(puVar30 + -0x3c);
        iVar29 = *(int *)(puVar30 + -0x68);
        iVar11 = *(int *)(puVar30 + -0x40);
        iVar28 = *(int *)(puVar30 + -0x38);
        if (iVar18 == 0) {
          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);
          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);
          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);
          iVar11 = *(int *)(puVar30 + -0x68);
          goto joined_r0x0007b75c;
        }
        iVar6 = iVar28 + -1;
        puVar7 = (undefined4 *)(iVar11 + iVar31);
        uVar13 = **(undefined4 **)(puVar30 + -0x44);
        if (iVar6 != 0) {
          puVar26 = *(undefined4 **)(puVar30 + -0x44);
          puVar12 = puVar7;
          goto LAB_0007b70c;
        }
        uVar5 = *(undefined4 *)(puVar30 + -0x48);
        UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);
        *puVar7 = uVar13;
        *(undefined4 *)(puVar30 + -0x70) = uVar5;
        (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0);
        iVar11 = *(int *)(puVar30 + -0x68);
      }
      else {
        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);
        *(undefined4 **)(puVar30 + -0x2c) = puVar14;
        *(undefined1 **)(puVar30 + -0x30) = puVar16;
        *(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;
        *(undefined4 **)(puVar30 + -0x38) = puVar7;
        *(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;
        uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);
        uVar5 = *puVar24;
        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);
        *(int *)(puVar30 + -0x40) = iVar19 + -1;
        *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);
        *(undefined4 *)(puVar30 + -0x3c) = uVar13;
        **(undefined4 **)(puVar30 + -0x34) = uVar5;
        (*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);
        iVar11 = iVar19 + -1;
        puVar7 = *(undefined4 **)(puVar30 + -0x3c);
        iVar28 = *(int *)(puVar30 + -0x68);
        uVar13 = *(undefined4 *)(puVar30 + -0x38);
        uVar17 = *(undefined4 *)(puVar30 + -0x30);
        uVar5 = *puVar7;
        uVar15 = *(undefined4 *)(puVar30 + -0x2c);
        if (iVar11 == 0) {
          puVar26 = *(undefined4 **)(puVar30 + -0x54);
        }
        else {
          do {
            puVar7 = puVar7 + 1;
            *puVar26 = uVar5;
            iVar11 = iVar11 + -1;
            uVar5 = *puVar7;
            puVar26 = puVar26 + 1;
          } while (iVar11 != 0);
          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);
        }
        UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);
        *(undefined4 *)(puVar30 + -0x38) = uVar15;
        *(undefined4 *)(puVar30 + -0x3c) = uVar17;
        *puVar26 = uVar5;
        iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);
        iVar28 = *(int *)(puVar30 + -0x38);
        iVar29 = *(int *)(puVar30 + -0x68);
        iVar18 = *(int *)(puVar30 + -0x3c);
        if (iVar28 == 0) {
          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);
          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);
          iVar28 = iVar18;
LAB_0007bb8c:
          *(int *)(puVar30 + -0x48) = iVar11;
          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);
          iVar11 = *(int *)(puVar30 + -0x68);
          puVar26 = *(undefined4 **)(puVar30 + -0x48);
        }
        else {
          puVar26 = *(undefined4 **)(puVar30 + -0x44);
          iVar6 = iVar28 + -1;
          puVar7 = (undefined4 *)(iVar11 + iVar31);
          uVar13 = *puVar26;
          puVar12 = puVar7;
          if (iVar6 == 0) {
            uVar5 = *(undefined4 *)(puVar30 + -0x48);
            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);
            *puVar7 = uVar13;
            *(undefined4 *)(puVar30 + -0x70) = uVar5;
            iVar28 = iVar19;
            goto LAB_0007bb8c;
          }
LAB_0007b70c:
          do {
            puVar26 = puVar26 + 1;
            *puVar7 = uVar13;
            iVar6 = iVar6 + -1;
            uVar13 = *puVar26;
            puVar7 = puVar7 + 1;
          } while (iVar6 != 0);
          uVar5 = *(undefined4 *)(puVar30 + -0x48);
          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);
          *(int *)(puVar30 + -0x48) = iVar11;
          *(undefined4 *)(puVar30 + -0x70) = uVar5;
          puVar12[iVar28 + -1] = uVar13;
          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);
          iVar11 = *(int *)(puVar30 + -0x68);
          if (iVar19 == 0) goto joined_r0x0007b75c;
          puVar26 = *(undefined4 **)(puVar30 + -0x48);
          *(int *)(puVar30 + -0x40) = iVar19 + -1;
        }
        iVar28 = *(int *)(puVar30 + -0x40);
        uVar13 = *puVar26;
        puVar7 = puVar24;
        if (iVar28 == 0) {
          *puVar24 = uVar13;
        }
        else {
          do {
            puVar26 = puVar26 + 1;
            *puVar7 = uVar13;
            iVar28 = iVar28 + -1;
            uVar13 = *puVar26;
            puVar7 = puVar7 + 1;
          } while (iVar28 != 0);
          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;
        }
      }
joined_r0x0007b75c:
      for (; iVar25 != 0; iVar25 = iVar25 + -1) {
        UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);
        *(int *)(puVar30 + -0x70) = iVar19;
        (*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);
        puVar20 = puVar20 + iVar19;
        *(int *)(puVar30 + -0x70) = iVar4;
        uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);
        *(int *)(puVar30 + -0x70) = iVar19;
        (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);
        iVar11 = *(int *)(puVar30 + -0x68);
      }
      uVar2 = *(uint *)(puVar30 + -0x5c);
      if (*(uint *)(puVar30 + -0x60) < uVar2) {
        (**(code **)(iVar11 + -0x7c20))
                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438);
        uVar2 = extraout_v1;
      }
      uVar2 = *(int *)(puVar30 + -0x60) - uVar2;
      uVar9 = 0x20 - (uVar2 & 0x1f);
      puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4);
      uVar3 = *puVar8 >> (uVar2 & 0x1f);
      if ((int)uVar9 < *(int *)(puVar30 + -0x58)) {
        uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f));
      }
      UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bac);
      *(int *)(puVar30 + -0x44) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f));
      *(uint *)(puVar30 + -0x70) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)) & uVar3;
      (*UNRECOVERED_JUMPTABLE)
                (puVar22,*(undefined4 *)(puVar30 + -0x54),iVar19,*(undefined4 *)(puVar30 + -0x50));
      iVar25 = *(int *)(puVar30 + -0x68);
      if (uVar2 != 0) {
        *(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39);
        do {
          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {
            uVar9 = 0;
            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);
          }
          else {
            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);
            uVar2 = 0x20 - (uVar9 & 0x1f);
            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);
            uVar3 = *puVar8 >> (uVar9 & 0x1f);
            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {
              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));
            }
            uVar2 = *(uint *)(puVar30 + -0x58);
            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;
          }
          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);
          if (*(int *)(puVar30 + -0x48) == 0) {
            do {
              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);
              *(int *)(puVar30 + -0x70) = iVar19;
              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);
              *(int *)(puVar30 + -0x70) = iVar4;
              uVar2 = uVar2 - 1;
              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))
                                 (puVar22,puVar21,piVar23,iVar19);
              *(int *)(puVar30 + -0x70) = iVar19;
              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);
              iVar25 = *(int *)(puVar30 + -0x68);
            } while (uVar2 != 0);
            uVar13 = *(undefined4 *)(puVar30 + -0x60);
          }
          else {
            while( true ) {
              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);
              *(int *)(puVar30 + -0x70) = iVar4;
              uVar2 = uVar2 - 1;
              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))
                                 (puVar22,puVar21,piVar23,iVar19);
              *(int *)(puVar30 + -0x70) = iVar19;
              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);
              iVar25 = *(int *)(puVar30 + -0x68);
              if (uVar2 == 0) break;
              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);
            }
            uVar13 = *(undefined4 *)(puVar30 + -0x60);
          }
          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);
          *(undefined4 *)(puVar30 + -0x70) = uVar13;
          (*UNRECOVERED_JUMPTABLE)
                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,
                     *(undefined4 *)(puVar30 + -0x50));
          *(int *)(puVar30 + -0x70) = iVar19;
          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))
                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);
          *(int *)(puVar30 + -0x70) = iVar4;
          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))
                             (puVar22,puVar21,piVar23,iVar19);
          *(int *)(puVar30 + -0x70) = iVar19;
          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);
          iVar25 = *(int *)(puVar30 + -0x68);
          uVar2 = uVar9;
        } while (uVar9 != 0);
      }
      UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7eb0);
      if (iVar19 != 0) {
        iVar11 = iVar19 + -1;
        uVar13 = *puVar22;
        puVar20 = puVar21;
        puVar26 = puVar22;
        if (iVar11 != 0) {
          do {
            *puVar20 = uVar13;
            iVar11 = iVar11 + -1;
            uVar13 = puVar26[1];
            puVar20 = puVar20 + 1;
            puVar26 = puVar26 + 1;
          } while (iVar11 != 0);
          puVar20 = puVar21 + iVar19 + -1;
        }
        UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58);
        *puVar20 = uVar13;
        (*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31);
        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0);
      }
      *(int *)(puVar30 + -0x70) = iVar4;
      uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar22,puVar21,piVar23,iVar19);
      *(int *)(puVar30 + -0x70) = iVar19;
      (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);
      iVar25 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))(puVar21,puVar22,piVar23,iVar19);
      UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7a70);
      *(int *)(puVar30 + 0x10) = iVar19;
                    /* WARNING: Could not recover jumptable at 0x0007bab0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      (*UNRECOVERED_JUMPTABLE)(iVar25 == 0,puVar22,puVar22,piVar23);
      return;
    }
    puVar22 = (undefined4 *)((int)puVar7 + -1);
    if ((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) == 0) goto LAB_0007afb0;
LAB_0007b010:
    if (puVar7 < local_44) {
      uVar3 = ~(-1 << ((uint)puVar7 & 0x1f)) & *param_3;
      uVar9 = 0;
      if ((uVar3 & 0xff) == 0) goto LAB_0007b270;
LAB_0007b040:
      uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2;
    }
    else {
      uVar9 = (int)puVar7 - (int)local_44;
      uVar2 = 0x20 - (uVar9 & 0x1f);
      uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f);
      if ((int)uVar2 < (int)local_44) {
        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));
      }
      uVar3 = uVar3 & local_4c;
      puVar7 = local_44;
      if ((uVar3 & 0xff) != 0) goto LAB_0007b040;
LAB_0007b270:
      uVar2 = uVar3 >> 8;
      iVar19 = 0x1e;
      if (uVar2 != 0) {
        iVar19 = 6;
      }
      uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19;
    }
    param_2 = (undefined4 *)((int)puVar7 - uVar2);
    puVar7 = param_2;
    if (1 < (int)param_2) {
      do {
        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);
        puVar20 = (undefined4 *)((int)puVar7 + -2);
        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5);
        puVar7 = puVar20;
      } while (1 < (int)puVar20);
      param_2 = (undefined4 *)((uint)param_2 & 1);
    }
    if (param_2 == (undefined4 *)0x0) {
      if (param_5 != (undefined4 *)0x0) {
        uVar13 = *param_1;
        puVar7 = param_6;
        if (local_3c != (undefined1 *)0x0) {
          puVar16 = local_3c;
          puVar22 = param_6;
          puVar12 = param_1 + 1;
          do {
            *puVar22 = uVar13;
            puVar16 = puVar16 + -1;
            uVar13 = *puVar12;
            puVar7 = param_6 + (int)((int)param_5 + -1);
            puVar22 = puVar22 + 1;
            puVar12 = puVar12 + 1;
          } while (puVar16 != (undefined1 *)0x0);
        }
        *puVar7 = uVar13;
      }
    }
    else {
      (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);
    }
    puVar14 = (undefined4 *)(((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25 + (int)puVar26);
    puVar12 = param_6;
    param_4 = param_5;
    (*(code *)PTR___gmpn_mullo_n_0009d234)(param_1);
    puVar7 = (undefined4 *)(uVar2 + uVar9);
    puVar22 = local_30;
  } while( true );
}


lui gp,0x3
addiu gp,gp,-0x5d10
addu gp,gp,t9
addiu sp,sp,-0x70
lw v1,-0x7b00(gp)
sll v0,a3,0x2
sw s8,0x68(sp)
or s8,sp,zero
addu v0,a2,v0
sw s6,0x60(sp)
sw v1,0x1c(s8)
or s6,a2,zero
lw v1,0x0(v1)
lw v0,-0x4(v0)
sw s5,0x5c(sp)
or s5,a1,zero
sw v1,0x44(s8)
lui v1,0x1
sw s3,0x54(sp)
or s3,a0,zero
sltu v1,v0,v1
sw s2,0x50(sp)
sw s1,0x4c(sp)
sw ra,0x6c(sp)
sw s7,0x64(sp)
sw s4,0x58(sp)
sw s0,0x48(sp)
sw gp,0x10(sp)
sw zero,0x40(s8)
lw s1,0x80(s8)
beq v1,zero,0x0007b158
_lw s2,0x84(s8)
li a0,0x1
li s0,0x9
sltiu v1,v0,0x100
movn s0,a0,v1
lw a0,-0x7eb4(gp)
or v1,s0,zero
srlv v0,v0,v1
sll s0,a3,0x5
addu v0,a0,v0
addiu s0,s0,-0x21
lbu v0,0x0(v0)
addu s0,s0,v1
addu s0,s0,v0
sltiu v0,s0,0x8
bne v0,zero,0x0007b19c
_sw a0,0x28(s8)
sltiu v0,s0,0x1a
bne v0,zero,0x0007b404
_li v0,0x2
sltiu v0,s0,0x52
bne v0,zero,0x0007b410
_li v0,0x3
sltiu v0,s0,0xf2
bne v0,zero,0x0007b41c
_li v0,0x4
sltiu v0,s0,0x2a2
bne v0,zero,0x0007b428
_li v0,0x5
sltiu v0,s0,0x702
bne v0,zero,0x0007b3e8
_li v0,0x6
sltiu v0,s0,0x1202
bne v0,zero,0x0007b434
_li v0,0x7
sltiu v0,s0,0x2d02
bne v0,zero,0x0007b440
_li v1,0x9
li a0,0xa
sltiu v0,s0,0x6e02
movn a0,v1,v0
sw a0,0x2c(s8)
li a0,0x8
movn v1,a0,v0
or v0,v1,zero
li s4,0x1
lw a0,0x2c(s8)
li v1,-0x1
sllv s4,s4,v0
sllv v0,s1,v0
sw a0,0x38(s8)
sllv v1,v1,a0
sll a1,v0,0x2
nor v1,zero,v1
sltiu v0,a1,0x7f01
sw v1,0x24(s8)
beq v0,zero,0x0007b1c0
_addiu s4,s4,-0x1
addiu v0,a1,0x7
srl v0,v0,0x3
sll v0,v0,0x3
subu sp,sp,v0
addiu v0,sp,0x10
bne s1,zero,0x0007b1d8
_sw v0,0x30(s8)
li v0,-0x1
sw v0,0x34(s8)
lw t9,-0x7cec(gp)
or a1,s5,zero
or a2,s1,zero
jalr t9
_or a0,s2,zero
sll s7,s1,0x2
lw gp,0x10(s8)
beq s4,zero,0x0007af24
_lw a1,0x30(s8)
addu s5,a1,s7
lw t9,-0x7e0c(gp)
addiu s4,s4,-0x1
or a3,s1,zero
or a2,s2,zero
jalr t9
_or a0,s5,zero
or a1,s5,zero
bne s4,zero,0x0007aefc
_lw gp,0x10(s8)
lw v1,0x38(s8)
sltu v0,s0,v1
beq v0,zero,0x0007b358
_subu v1,s0,v1
li v0,-0x1
lw a0,0x0(s6)
sllv v0,v0,s0
nor v0,zero,v0
and v0,v0,a0
andi a0,v0,0xff
beq a0,zero,0x0007b3a4
_srl a0,v0,0x8
subu a0,zero,v0
lw a1,0x28(s8)
and a0,a0,v0
addu a0,a1,a0
lbu a0,0x0(a0)
addiu a0,a0,-0x2
bne s1,zero,0x0007b304
_addu v1,a0,v1
addiu v0,s7,-0x4
addu a0,s2,v0
addiu s4,v1,-0x1
addu v0,s3,v0
sw a0,0x18(s8)
sw v0,0x20(s8)
srl v0,s4,0x5
sll v0,v0,0x2
addu v0,s6,v0
lw v0,0x0(v0)
srlv v0,v0,s4
andi v0,v0,0x1
bne v0,zero,0x0007b010
_lw v0,0x38(s8)
lw t9,-0x7cec(gp)
or a2,s1,zero
or a1,s3,zero
jalr t9
_or a0,s2,zero
beq s1,zero,0x0007afdc
_lw gp,0x10(s8)
lw v0,0x34(s8)
bne v0,zero,0x0007b2b4
_lw a1,0x0(s2)
or v0,s3,zero
sw a1,0x0(v0)
beq s4,zero,0x0007b108
_nop
or v1,s4,zero
addiu s4,v1,-0x1
srl v0,s4,0x5
sll v0,v0,0x2
addu v0,s6,v0
lw v0,0x0(v0)
srlv v0,v0,s4
andi v0,v0,0x1
beq v0,zero,0x0007afb0
_lw t9,-0x7cec(gp)
lw v0,0x38(s8)
sltu v0,v1,v0
beq v0,zero,0x0007b220
_lw v0,0x38(s8)
li a2,-0x1
lw v0,0x0(s6)
or s5,v1,zero
sllv a2,a2,v1
nor a2,zero,a2
and a2,a2,v0
andi v0,a2,0xff
beq v0,zero,0x0007b270
_or s4,zero,zero
subu v0,zero,a2
lw v1,0x28(s8)
and v0,v0,a2
addu v0,v1,v0
lbu v0,0x0(v0)
addiu v0,v0,-0x2
subu s5,s5,v0
addu s4,v0,s4
srlv v0,a2,v0
slti v1,s5,0x2
bne v1,zero,0x0007b0b4
_sw v0,0x3c(s8)
or s0,s5,zero
lw t9,-0x7cec(gp)
or a2,s1,zero
or a1,s3,zero
jalr t9
_or a0,s2,zero
addiu s0,s0,-0x2
lw gp,0x10(s8)
or a2,s1,zero
or a1,s2,zero
lw t9,-0x7cec(gp)
jalr t9
_or a0,s3,zero
slti v0,s0,0x2
beq v0,zero,0x0007b074
_lw gp,0x10(s8)
andi s5,s5,0x1
bne s5,zero,0x0007b29c
_lw t9,-0x7cec(gp)
beq s1,zero,0x0007b0dc
_lw v0,0x3c(s8)
lw v0,0x34(s8)
bne v0,zero,0x0007b2dc
_lw a1,0x0(s3)
or v0,s2,zero
sw a1,0x0(v0)
lw v0,0x3c(s8)
or a3,s1,zero
lw t9,-0x7e0c(gp)
or a1,s2,zero
or a0,s3,zero
srl a2,v0,0x1
lw v0,0x30(s8)
mul v1,a2,s7
jalr t9
_addu a2,v1,v0
bne s4,zero,0x0007afe4
_lw gp,0x10(s8)
lw a0,0x40(s8)
bne a0,zero,0x0007b3f4
_lw t9,-0x7a28(gp)
lw v0,0x1c(s8)
lw v1,0x44(s8)
lw v0,0x0(v0)
bne v1,v0,0x0007b450
_lw ra,0x6c(s8)
or sp,s8,zero
lw s8,0x68(sp)
lw s7,0x64(sp)
lw s6,0x60(sp)
lw s5,0x5c(sp)
lw s4,0x58(sp)
lw s3,0x54(sp)
lw s2,0x50(sp)
lw s1,0x4c(sp)
lw s0,0x48(sp)
jr ra
_addiu sp,sp,0x70
lui v1,0x100
li a0,0x11
li s0,0x19
sltu v1,v0,v1
movn s0,a0,v1
lw a0,-0x7eb4(gp)
or v1,s0,zero
srlv v0,v0,v1
sll s0,a3,0x5
addu v0,a0,v0
addiu s0,s0,-0x21
lbu v0,0x0(v0)
addu s0,s0,v1
addu s0,s0,v0
sltiu v0,s0,0x8
beq v0,zero,0x0007ae10
_sw a0,0x28(s8)
li v0,0x1
sw v0,0x24(s8)
sw v0,0x38(s8)
sw v0,0x2c(s8)
or v0,s1,zero
sll a1,v0,0x2
sltiu v0,a1,0x7f01
bne v0,zero,0x0007aeb4
_or s4,zero,zero
lw t9,-0x7d50(gp)
jalr t9
_addiu a0,s8,0x40
lw gp,0x10(s8)
beq s1,zero,0x0007aed0
_sw v0,0x30(s8)
addiu v0,s1,-0x1
lw a1,0x0(s5)
beq v0,zero,0x0007b3cc
_sw v0,0x34(s8)
lw v1,0x30(s8)
addiu a0,s5,0x4
addiu v1,v1,0x4
sw a1,-0x4(v1)
addiu a0,a0,0x4
addiu v0,v0,-0x1
bne v0,zero,0x0007b1f0
_lw a1,-0x4(a0)
sll v0,s1,0x2
lw v1,0x30(s8)
addiu v0,v0,-0x4
addu v0,v1,v0
b 0x0007aed8
_sw a1,0x0(v0)
li a0,0x20
lw a1,0x2c(s8)
subu s4,v1,v0
srl v0,s4,0x5
andi v1,s4,0x1f
sll v0,v0,0x2
subu a0,a0,v1
addu v0,s6,v0
slt a1,a0,a1
lw a2,0x0(v0)
beq a1,zero,0x0007b25c
_srlv a2,a2,v1
lw v0,0x4(v0)
sllv a0,v0,a0
addu a2,a2,a0
lw v0,0x24(s8)
and a2,a2,v0
andi v0,a2,0xff
bne v0,zero,0x0007b040
_lw s5,0x2c(s8)
srl v1,a2,0x8
li a0,0x1e
subu v0,zero,v1
li a1,0x6
and v0,v0,v1
movn a0,a1,v1
lw v1,0x28(s8)
addu v0,v1,v0
lbu v0,0x0(v0)
b 0x0007b058
_addu v0,v0,a0
or a2,s1,zero
or a1,s3,zero
jalr t9
_or a0,s2,zero
b 0x0007b0d8
_lw gp,0x10(s8)
addiu a0,s2,0x4
or v1,s3,zero
addiu v1,v1,0x4
sw a1,-0x4(v1)
addiu a0,a0,0x4
addiu v0,v0,-0x1
bne v0,zero,0x0007b2bc
_lw a1,-0x4(a0)
b 0x0007afd8
_lw v0,0x20(s8)
addiu a0,s3,0x4
or v1,s2,zero
addiu v1,v1,0x4
sw a1,-0x4(v1)
addiu a0,a0,0x4
addiu v0,v0,-0x1
bne v0,zero,0x0007b2e4
_lw a1,-0x4(a0)
b 0x0007b0d4
_lw v0,0x18(s8)
srlv v0,v0,a0
lw a2,0x30(s8)
lw a1,0x34(s8)
srl v0,v0,0x1
mul a3,v0,s7
or a0,a1,zero
addu v0,a3,a2
beq a1,zero,0x0007b3d8
_lw a2,0x0(v0)
addiu v0,v0,0x4
or a1,s3,zero
addiu a1,a1,0x4
sw a2,-0x4(a1)
addiu v0,v0,0x4
addiu a0,a0,-0x1
bne a0,zero,0x0007b330
_lw a2,-0x4(v0)
addiu v0,s7,-0x4
addu a0,s3,v0
b 0x0007af78
_sw a2,0x0(a0)
srl a0,v1,0x5
lw a3,0x2c(s8)
li a1,0x20
sll a0,a0,0x2
andi a2,v1,0x1f
addu a0,s6,a0
subu a1,a1,a2
lw v0,0x0(a0)
slt a3,a1,a3
beq a3,zero,0x0007b390
_srlv v0,v0,a2
lw a0,0x4(a0)
sllv a1,a0,a1
addu v0,v0,a1
lw a0,0x24(s8)
and v0,v0,a0
andi a0,v0,0xff
bne a0,zero,0x0007af54
_srl a0,v0,0x8
lw a1,0x28(s8)
li a3,0x6
subu a2,zero,a0
and a2,a2,a0
addu a2,a1,a2
li a1,0x1e
movn a1,a3,a0
lbu a0,0x0(a2)
b 0x0007af6c
_addu a0,a0,a1
lw v0,0x30(s8)
b 0x0007aed8
_sw a1,0x0(v0)
or a0,s3,zero
addiu v0,s7,-0x4
b 0x0007af78
_sw a2,0x0(a0)
sw v0,0x2c(s8)
b 0x0007ae80
_li v0,0x5
jalr t9
_nop
b 0x0007b114
_lw gp,0x10(s8)
sw v0,0x2c(s8)
b 0x0007ae80
_li v0,0x1
sw v0,0x2c(s8)
b 0x0007ae80
_li v0,0x2
sw v0,0x2c(s8)
b 0x0007ae80
_li v0,0x3
sw v0,0x2c(s8)
b 0x0007ae80
_li v0,0x4
sw v0,0x2c(s8)
b 0x0007ae80
_li v0,0x6
li v0,0x8
sw v0,0x2c(s8)
b 0x0007ae80
_li v0,0x7
lw t9,-0x7b70(gp)
jalr t9
_nop
nop
(translation_unit "void __gmpn_powlo(undefined4 *param_1,undefined4 *param_2,uint *param_3,undefined4 *param_4,\n                 undefined4 *param_5,undefined4 *param_6)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  uint extraout_v1;\n  uint *puVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  undefined4 uVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined1 *puVar16;\n  undefined4 uVar17;\n  int iVar18;\n  int iVar19;\n  undefined4 *puVar20;\n  undefined4 *puVar21;\n  undefined4 *puVar22;\n  int *piVar23;\n  undefined4 *puVar24;\n  int iVar25;\n  undefined4 *puVar26;\n  undefined *puVar27;\n  code *UNRECOVERED_JUMPTABLE;\n  int iVar28;\n  int iVar29;\n  undefined1 *puVar30;\n  int iVar31;\n  undefined1 auStack_70 [16];\n  uint local_4c;\n  undefined4 *local_44;\n  undefined1 *local_3c;\n  undefined4 *local_38;\n  undefined4 *local_30;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0009d540;\n  puVar27 = PTR___gmpn_clz_tab_0009d18c;\n  puVar30 = auStack_70;\n  puVar16 = auStack_70;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  uVar2 = param_3[(int)((int)param_4 + -1)];\n  local_30 = (undefined4 *)0x0;\n  if (uVar2 < 0x10000) {\n    iVar19 = 9;\n    if (uVar2 < 0x100) {\n      iVar19 = 1;\n    }\n    puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);\n  }\n  else {\n    iVar19 = 0x19;\n    if (uVar2 < 0x1000000) {\n      iVar19 = 0x11;\n    }\n    puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);\n  }\n  if (puVar20 < &DAT_00000008) {\n    local_4c = 1;\n    local_38 = (undefined4 *)0x1;\n    uVar2 = (int)param_5 << 2;\n    iVar19 = 0;\n    local_44 = local_38;\n  }\n  else {\n    if (puVar20 < (undefined4 *)0x1a) {\n      local_44 = (undefined4 *)0x2;\n      iVar19 = 1;\n    }\n    else if (puVar20 < (undefined4 *)0x52) {\n      local_44 = (undefined4 *)0x3;\n      iVar19 = 2;\n    }\n    else if (puVar20 < (undefined4 *)0xf2) {\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }\n    else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }\n    uVar2 = ((int)param_5 << iVar19) << 2;\n    local_4c = ~(-1 << (int)local_44);\n    iVar19 = (1 << iVar19) + -1;\n  }\n  if (uVar2 < 0x7f01) {\n    iVar25 = -(uVar2 + 7 & 0xfffffff8);\n    puVar16 = auStack_70 + iVar25;\n    puVar30 = auStack_70 + iVar25;\n    puVar26 = (undefined4 *)(&stack0xffffffa0 + iVar25);\n  }\n  else {\n    puVar26 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }\n  if (param_5 == (undefined4 *)0x0) {\n    local_3c = (undefined1 *)0xffffffff;\n    puVar30 = puVar16;\n  }\n  else {\n    local_3c = (undefined1 *)((int)param_5 + -1);\n    uVar13 = *param_2;\n    if (local_3c == (undefined1 *)0x0) {\n      *puVar26 = uVar13;\n    }\n    else {\n      puVar16 = local_3c;\n      puVar7 = puVar26;\n      puVar22 = param_2 + 1;\n      do {\n        *puVar7 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar22;\n        puVar7 = puVar7 + 1;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      puVar26[(int)((int)param_5 + -1)] = uVar13;\n    }\n  }\n  (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_2,param_5);\n  iVar25 = (int)param_5 * 4;\n  puVar7 = puVar26;\n  for (; iVar19 != 0; iVar19 = iVar19 + -1) {\n    param_2 = puVar7 + (int)param_5;\n    param_4 = param_5;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(param_2,puVar7,param_6);\n    puVar7 = param_2;\n  }\n  uVar2 = (int)puVar20 - (int)local_44;\n  if (puVar20 < local_44) {\n    uVar3 = ~(-1 << ((uint)puVar20 & 0x1f)) & *param_3;\n  }\n  else {\n    uVar9 = 0x20 - (uVar2 & 0x1f);\n    param_4 = (undefined4 *)(uint)((int)uVar9 < (int)local_44);\n    uVar3 = param_3[uVar2 >> 5] >> (uVar2 & 0x1f);\n    if (param_4 != (undefined4 *)0x0) {\n      uVar3 = uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f));\n    }\n    uVar3 = uVar3 & local_4c;\n  }\n  if ((uVar3 & 0xff) == 0) {\n    uVar9 = uVar3 >> 8;\n    param_4 = (undefined4 *)&DAT_00000006;\n    iVar19 = 0x1e;\n    if (uVar9 != 0) {\n      iVar19 = 6;\n    }\n    uVar9 = (uint)(byte)puVar27[-uVar9 & uVar9] + iVar19;\n  }\n  else {\n    uVar9 = (byte)puVar27[-uVar3 & uVar3] - 2;\n  }\n  puVar7 = (undefined4 *)(uVar9 + uVar2);\n  if (param_5 != (undefined4 *)0x0) {\n    param_4 = (undefined4 *)(((uVar3 >> (uVar9 & 0x1f)) >> 1) * iVar25);\n    puVar12 = (undefined4 *)((int)param_4 + (int)puVar26);\n    uVar13 = *puVar12;\n    puVar16 = local_3c;\n    puVar22 = param_1;\n    if (local_3c == (undefined1 *)0x0) {\n      *param_1 = uVar13;\n    }\n    else {\n      do {\n        puVar12 = puVar12 + 1;\n        *puVar22 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar12;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      param_1[(int)((int)param_5 + -1)] = uVar13;\n    }\n  }\n  puVar22 = (undefined4 *)((int)puVar7 + -1);\n  if ((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) != 0) goto LAB_0007b010;\nLAB_0007afb0:\n  puVar12 = param_1;\n  puVar14 = param_5;\n  (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6);\n  puVar7 = puVar22;\n  puVar22 = local_30;\n  if (param_5 != (undefined4 *)0x0) {\n    puVar12 = (undefined4 *)*param_6;\n    puVar21 = param_1;\n    puVar24 = param_1;\n    puVar10 = param_6;\n    for (puVar16 = local_3c; puVar16 != (undefined1 *)0x0; puVar16 = puVar16 + -1) {\n      puVar10 = puVar10 + 1;\n      *puVar24 = puVar12;\n      puVar12 = (undefined4 *)*puVar10;\n      puVar21 = param_1 + (int)((int)param_5 + -1);\n      puVar24 = puVar24 + 1;\n    }\n    *puVar21 = puVar12;\n  }\n  do {\n    local_30 = puVar22;\n    if (puVar7 == (undefined4 *)0x0) {\n      if (puVar22 != (undefined4 *)0x0) {\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      uVar13 = 0x7b45c;\n      puVar27 = PTR___stack_chk_fail_0009d4d0;\n      (*(code *)PTR___stack_chk_fail_0009d4d0)();\n      uVar2 = *(uint *)(puVar30 + 0x10);\n      *(undefined4 **)(puVar30 + -0x24) = param_5;\n      *(undefined **)(puVar30 + -0x68) = puVar27 + 0x29be0;\n      *(undefined4 *)(puVar30 + -0x18) = 0;\n      *(undefined4 **)(puVar30 + -0x28) = puVar20;\n      *(undefined4 *)(puVar30 + -4) = uVar13;\n      *(undefined1 **)(puVar30 + -8) = auStack_70;\n      *(int *)(puVar30 + -0xc) = iVar25;\n      *(uint **)(puVar30 + -0x10) = param_3;\n      *(undefined4 **)(puVar30 + -0x14) = param_2;\n      *(undefined4 **)(puVar30 + -0x1c) = param_1;\n      *(undefined4 **)(puVar30 + -0x20) = param_6;\n      *(uint *)(puVar30 + -0x60) = uVar2;\n      *(undefined4 **)(puVar30 + -0x44) = puVar12;\n      *(undefined4 **)(puVar30 + -0x4c) = param_4;\n      piVar23 = *(int **)(puVar30 + 0x14);\n      iVar19 = *(int *)(puVar30 + 0x18);\n      *(undefined4 *)(puVar30 + -0x54) = *(undefined4 *)(puVar30 + 0x1c);\n      if (uVar2 < 3) {\n        iVar25 = 0;\n        *(undefined4 *)(puVar30 + -0x5c) = 1;\n        *(undefined4 *)(puVar30 + -0x50) = 2;\n        iVar4 = 1;\n        *(undefined4 *)(puVar30 + -0x58) = 1;\n      }\n      else {\n        if (uVar2 < 0x22) {\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }\n        else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }\n        *(int *)(puVar30 + -0x5c) = iVar4;\n        *(int *)(puVar30 + -0x50) = 1 << iVar4;\n        iVar25 = (1 << iVar4) + -2;\n      }\n      iVar11 = *piVar23;\n      iVar31 = iVar19 * 4;\n      puVar26 = *(undefined4 **)(puVar30 + -0x54);\n      puVar16 = (undefined1 *)(iVar19 + (int)puVar14);\n      puVar24 = puVar26 + iVar19;\n      uVar2 = (uint)*(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19));\n      puVar7 = puVar24 + iVar19;\n      puVar12 = puVar26 + iVar19 + 1;\n      *(undefined4 **)(puVar30 + -0x48) = puVar7 + (int)puVar16;\n      puVar21 = puVar26 + (iVar19 << iVar4);\n      *puVar24 = 1;\n      iVar4 = uVar2 * 2 - uVar2 * uVar2 * iVar11;\n      iVar4 = iVar4 * iVar4 * iVar11 + iVar4 * -2;\n      puVar20 = puVar24;\n      if (iVar19 == 0) {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c);\n        puVar12[iVar19] = 1;\n        *(undefined4 **)(puVar30 + -0x38) = puVar14;\n        *(undefined1 **)(puVar30 + -0x3c) = puVar16;\n        *(undefined4 **)(puVar30 + -0x40) = puVar7;\n        *(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar11 = *(int *)(puVar30 + -0x40);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        if (iVar18 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar6 = iVar28 + -1;\n        puVar7 = (undefined4 *)(iVar11 + iVar31);\n        uVar13 = **(undefined4 **)(puVar30 + -0x44);\n        if (iVar6 != 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          puVar12 = puVar7;\n          goto LAB_0007b70c;\n        }\n        uVar5 = *(undefined4 *)(puVar30 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n        *puVar7 = uVar13;\n        *(undefined4 *)(puVar30 + -0x70) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);\n        *(undefined4 **)(puVar30 + -0x2c) = puVar14;\n        *(undefined1 **)(puVar30 + -0x30) = puVar16;\n        *(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;\n        *(undefined4 **)(puVar30 + -0x38) = puVar7;\n        *(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;\n        uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);\n        uVar5 = *puVar24;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);\n        *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);\n        *(undefined4 *)(puVar30 + -0x3c) = uVar13;\n        **(undefined4 **)(puVar30 + -0x34) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);\n        iVar11 = iVar19 + -1;\n        puVar7 = *(undefined4 **)(puVar30 + -0x3c);\n        iVar28 = *(int *)(puVar30 + -0x68);\n        uVar13 = *(undefined4 *)(puVar30 + -0x38);\n        uVar17 = *(undefined4 *)(puVar30 + -0x30);\n        uVar5 = *puVar7;\n        uVar15 = *(undefined4 *)(puVar30 + -0x2c);\n        if (iVar11 == 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }\n        else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);\n        *(undefined4 *)(puVar30 + -0x38) = uVar15;\n        *(undefined4 *)(puVar30 + -0x3c) = uVar17;\n        *puVar26 = uVar5;\n        iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        if (iVar28 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }\n        else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }\n        iVar28 = *(int *)(puVar30 + -0x40);\n        uVar13 = *puVar26;\n        puVar7 = puVar24;\n        if (iVar28 == 0) {\n          *puVar24 = uVar13;\n        }\n        else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }\n      }\njoined_r0x0007b75c:\n      for (; iVar25 != 0; iVar25 = iVar25 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);\n        puVar20 = puVar20 + iVar19;\n        *(int *)(puVar30 + -0x70) = iVar4;\n        uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      uVar2 = *(uint *)(puVar30 + -0x5c);\n      if (*(uint *)(puVar30 + -0x60) < uVar2) {\n        (**(code **)(iVar11 + -0x7c20))\n                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438);\n        uVar2 = extraout_v1;\n      }\n      uVar2 = *(int *)(puVar30 + -0x60) - uVar2;\n      uVar9 = 0x20 - (uVar2 & 0x1f);\n      puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4);\n      uVar3 = *puVar8 >> (uVar2 & 0x1f);\n      if ((int)uVar9 < *(int *)(puVar30 + -0x58)) {\n        uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f));\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bac);\n      *(int *)(puVar30 + -0x44) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f));\n      *(uint *)(puVar30 + -0x70) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)) & uVar3;\n      (*UNRECOVERED_JUMPTABLE)\n                (puVar22,*(undefined4 *)(puVar30 + -0x54),iVar19,*(undefined4 *)(puVar30 + -0x50));\n      iVar25 = *(int *)(puVar30 + -0x68);\n      if (uVar2 != 0) {\n        *(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39);\n        do {\n          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n          if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);\n          *(undefined4 *)(puVar30 + -0x70) = uVar13;\n          (*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);\n          *(int *)(puVar30 + -0x70) = iVar4;\n          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n          iVar25 = *(int *)(puVar30 + -0x68);\n          uVar2 = uVar9;\n        } while (uVar9 != 0);\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7eb0);\n      if (iVar19 != 0) {\n        iVar11 = iVar19 + -1;\n        uVar13 = *puVar22;\n        puVar20 = puVar21;\n        puVar26 = puVar22;\n        if (iVar11 != 0) {\n          do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar20 = puVar21 + iVar19 + -1;\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58);\n        *puVar20 = uVar13;\n        (*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0);\n      }\n      *(int *)(puVar30 + -0x70) = iVar4;\n      uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar22,puVar21,piVar23,iVar19);\n      *(int *)(puVar30 + -0x70) = iVar19;\n      (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n      iVar25 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))(puVar21,puVar22,piVar23,iVar19);\n      UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7a70);\n      *(int *)(puVar30 + 0x10) = iVar19;\n                    /* WARNING: Could not recover jumptable at 0x0007bab0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*UNRECOVERED_JUMPTABLE)(iVar25 == 0,puVar22,puVar22,piVar23);\n      return;\n    }\n    puVar22 = (undefined4 *)((int)puVar7 + -1);\n    if ((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) == 0) goto LAB_0007afb0;\nLAB_0007b010:\n    if (puVar7 < local_44) {\n      uVar3 = ~(-1 << ((uint)puVar7 & 0x1f)) & *param_3;\n      uVar9 = 0;\n      if ((uVar3 & 0xff) == 0) goto LAB_0007b270;\nLAB_0007b040:\n      uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2;\n    }\n    else {\n      uVar9 = (int)puVar7 - (int)local_44;\n      uVar2 = 0x20 - (uVar9 & 0x1f);\n      uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f);\n      if ((int)uVar2 < (int)local_44) {\n        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));\n      }\n      uVar3 = uVar3 & local_4c;\n      puVar7 = local_44;\n      if ((uVar3 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar2 = uVar3 >> 8;\n      iVar19 = 0x1e;\n      if (uVar2 != 0) {\n        iVar19 = 6;\n      }\n      uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19;\n    }\n    param_2 = (undefined4 *)((int)puVar7 - uVar2);\n    puVar7 = param_2;\n    if (1 < (int)param_2) {\n      do {\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n        puVar20 = (undefined4 *)((int)puVar7 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5);\n        puVar7 = puVar20;\n      } while (1 < (int)puVar20);\n      param_2 = (undefined4 *)((uint)param_2 & 1);\n    }\n    if (param_2 == (undefined4 *)0x0) {\n      if (param_5 != (undefined4 *)0x0) {\n        uVar13 = *param_1;\n        puVar7 = param_6;\n        if (local_3c != (undefined1 *)0x0) {\n          puVar16 = local_3c;\n          puVar22 = param_6;\n          puVar12 = param_1 + 1;\n          do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);\n        }\n        *puVar7 = uVar13;\n      }\n    }\n    else {\n      (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n    }\n    puVar14 = (undefined4 *)(((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25 + (int)puVar26);\n    puVar12 = param_6;\n    param_4 = param_5;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(param_1);\n    puVar7 = (undefined4 *)(uVar2 + uVar9);\n    puVar22 = local_30;\n  } while( true );\n}\n\n" (function_definition "void __gmpn_powlo(undefined4 *param_1,undefined4 *param_2,uint *param_3,undefined4 *param_4,\n                 undefined4 *param_5,undefined4 *param_6)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  uint extraout_v1;\n  uint *puVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  undefined4 uVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined1 *puVar16;\n  undefined4 uVar17;\n  int iVar18;\n  int iVar19;\n  undefined4 *puVar20;\n  undefined4 *puVar21;\n  undefined4 *puVar22;\n  int *piVar23;\n  undefined4 *puVar24;\n  int iVar25;\n  undefined4 *puVar26;\n  undefined *puVar27;\n  code *UNRECOVERED_JUMPTABLE;\n  int iVar28;\n  int iVar29;\n  undefined1 *puVar30;\n  int iVar31;\n  undefined1 auStack_70 [16];\n  uint local_4c;\n  undefined4 *local_44;\n  undefined1 *local_3c;\n  undefined4 *local_38;\n  undefined4 *local_30;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0009d540;\n  puVar27 = PTR___gmpn_clz_tab_0009d18c;\n  puVar30 = auStack_70;\n  puVar16 = auStack_70;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  uVar2 = param_3[(int)((int)param_4 + -1)];\n  local_30 = (undefined4 *)0x0;\n  if (uVar2 < 0x10000) {\n    iVar19 = 9;\n    if (uVar2 < 0x100) {\n      iVar19 = 1;\n    }\n    puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);\n  }\n  else {\n    iVar19 = 0x19;\n    if (uVar2 < 0x1000000) {\n      iVar19 = 0x11;\n    }\n    puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);\n  }\n  if (puVar20 < &DAT_00000008) {\n    local_4c = 1;\n    local_38 = (undefined4 *)0x1;\n    uVar2 = (int)param_5 << 2;\n    iVar19 = 0;\n    local_44 = local_38;\n  }\n  else {\n    if (puVar20 < (undefined4 *)0x1a) {\n      local_44 = (undefined4 *)0x2;\n      iVar19 = 1;\n    }\n    else if (puVar20 < (undefined4 *)0x52) {\n      local_44 = (undefined4 *)0x3;\n      iVar19 = 2;\n    }\n    else if (puVar20 < (undefined4 *)0xf2) {\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }\n    else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }\n    uVar2 = ((int)param_5 << iVar19) << 2;\n    local_4c = ~(-1 << (int)local_44);\n    iVar19 = (1 << iVar19) + -1;\n  }\n  if (uVar2 < 0x7f01) {\n    iVar25 = -(uVar2 + 7 & 0xfffffff8);\n    puVar16 = auStack_70 + iVar25;\n    puVar30 = auStack_70 + iVar25;\n    puVar26 = (undefined4 *)(&stack0xffffffa0 + iVar25);\n  }\n  else {\n    puVar26 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }\n  if (param_5 == (undefined4 *)0x0) {\n    local_3c = (undefined1 *)0xffffffff;\n    puVar30 = puVar16;\n  }\n  else {\n    local_3c = (undefined1 *)((int)param_5 + -1);\n    uVar13 = *param_2;\n    if (local_3c == (undefined1 *)0x0) {\n      *puVar26 = uVar13;\n    }\n    else {\n      puVar16 = local_3c;\n      puVar7 = puVar26;\n      puVar22 = param_2 + 1;\n      do {\n        *puVar7 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar22;\n        puVar7 = puVar7 + 1;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      puVar26[(int)((int)param_5 + -1)] = uVar13;\n    }\n  }\n  (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_2,param_5);\n  iVar25 = (int)param_5 * 4;\n  puVar7 = puVar26;\n  for (; iVar19 != 0; iVar19 = iVar19 + -1) {\n    param_2 = puVar7 + (int)param_5;\n    param_4 = param_5;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(param_2,puVar7,param_6);\n    puVar7 = param_2;\n  }\n  uVar2 = (int)puVar20 - (int)local_44;\n  if (puVar20 < local_44) {\n    uVar3 = ~(-1 << ((uint)puVar20 & 0x1f)) & *param_3;\n  }\n  else {\n    uVar9 = 0x20 - (uVar2 & 0x1f);\n    param_4 = (undefined4 *)(uint)((int)uVar9 < (int)local_44);\n    uVar3 = param_3[uVar2 >> 5] >> (uVar2 & 0x1f);\n    if (param_4 != (undefined4 *)0x0) {\n      uVar3 = uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f));\n    }\n    uVar3 = uVar3 & local_4c;\n  }\n  if ((uVar3 & 0xff) == 0) {\n    uVar9 = uVar3 >> 8;\n    param_4 = (undefined4 *)&DAT_00000006;\n    iVar19 = 0x1e;\n    if (uVar9 != 0) {\n      iVar19 = 6;\n    }\n    uVar9 = (uint)(byte)puVar27[-uVar9 & uVar9] + iVar19;\n  }\n  else {\n    uVar9 = (byte)puVar27[-uVar3 & uVar3] - 2;\n  }\n  puVar7 = (undefined4 *)(uVar9 + uVar2);\n  if (param_5 != (undefined4 *)0x0) {\n    param_4 = (undefined4 *)(((uVar3 >> (uVar9 & 0x1f)) >> 1) * iVar25);\n    puVar12 = (undefined4 *)((int)param_4 + (int)puVar26);\n    uVar13 = *puVar12;\n    puVar16 = local_3c;\n    puVar22 = param_1;\n    if (local_3c == (undefined1 *)0x0) {\n      *param_1 = uVar13;\n    }\n    else {\n      do {\n        puVar12 = puVar12 + 1;\n        *puVar22 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar12;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      param_1[(int)((int)param_5 + -1)] = uVar13;\n    }\n  }\n  puVar22 = (undefined4 *)((int)puVar7 + -1);\n  if ((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) != 0) goto LAB_0007b010;\nLAB_0007afb0:\n  puVar12 = param_1;\n  puVar14 = param_5;\n  (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6);\n  puVar7 = puVar22;\n  puVar22 = local_30;\n  if (param_5 != (undefined4 *)0x0) {\n    puVar12 = (undefined4 *)*param_6;\n    puVar21 = param_1;\n    puVar24 = param_1;\n    puVar10 = param_6;\n    for (puVar16 = local_3c; puVar16 != (undefined1 *)0x0; puVar16 = puVar16 + -1) {\n      puVar10 = puVar10 + 1;\n      *puVar24 = puVar12;\n      puVar12 = (undefined4 *)*puVar10;\n      puVar21 = param_1 + (int)((int)param_5 + -1);\n      puVar24 = puVar24 + 1;\n    }\n    *puVar21 = puVar12;\n  }\n  do {\n    local_30 = puVar22;\n    if (puVar7 == (undefined4 *)0x0) {\n      if (puVar22 != (undefined4 *)0x0) {\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      uVar13 = 0x7b45c;\n      puVar27 = PTR___stack_chk_fail_0009d4d0;\n      (*(code *)PTR___stack_chk_fail_0009d4d0)();\n      uVar2 = *(uint *)(puVar30 + 0x10);\n      *(undefined4 **)(puVar30 + -0x24) = param_5;\n      *(undefined **)(puVar30 + -0x68) = puVar27 + 0x29be0;\n      *(undefined4 *)(puVar30 + -0x18) = 0;\n      *(undefined4 **)(puVar30 + -0x28) = puVar20;\n      *(undefined4 *)(puVar30 + -4) = uVar13;\n      *(undefined1 **)(puVar30 + -8) = auStack_70;\n      *(int *)(puVar30 + -0xc) = iVar25;\n      *(uint **)(puVar30 + -0x10) = param_3;\n      *(undefined4 **)(puVar30 + -0x14) = param_2;\n      *(undefined4 **)(puVar30 + -0x1c) = param_1;\n      *(undefined4 **)(puVar30 + -0x20) = param_6;\n      *(uint *)(puVar30 + -0x60) = uVar2;\n      *(undefined4 **)(puVar30 + -0x44) = puVar12;\n      *(undefined4 **)(puVar30 + -0x4c) = param_4;\n      piVar23 = *(int **)(puVar30 + 0x14);\n      iVar19 = *(int *)(puVar30 + 0x18);\n      *(undefined4 *)(puVar30 + -0x54) = *(undefined4 *)(puVar30 + 0x1c);\n      if (uVar2 < 3) {\n        iVar25 = 0;\n        *(undefined4 *)(puVar30 + -0x5c) = 1;\n        *(undefined4 *)(puVar30 + -0x50) = 2;\n        iVar4 = 1;\n        *(undefined4 *)(puVar30 + -0x58) = 1;\n      }\n      else {\n        if (uVar2 < 0x22) {\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }\n        else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }\n        *(int *)(puVar30 + -0x5c) = iVar4;\n        *(int *)(puVar30 + -0x50) = 1 << iVar4;\n        iVar25 = (1 << iVar4) + -2;\n      }\n      iVar11 = *piVar23;\n      iVar31 = iVar19 * 4;\n      puVar26 = *(undefined4 **)(puVar30 + -0x54);\n      puVar16 = (undefined1 *)(iVar19 + (int)puVar14);\n      puVar24 = puVar26 + iVar19;\n      uVar2 = (uint)*(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19));\n      puVar7 = puVar24 + iVar19;\n      puVar12 = puVar26 + iVar19 + 1;\n      *(undefined4 **)(puVar30 + -0x48) = puVar7 + (int)puVar16;\n      puVar21 = puVar26 + (iVar19 << iVar4);\n      *puVar24 = 1;\n      iVar4 = uVar2 * 2 - uVar2 * uVar2 * iVar11;\n      iVar4 = iVar4 * iVar4 * iVar11 + iVar4 * -2;\n      puVar20 = puVar24;\n      if (iVar19 == 0) {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c);\n        puVar12[iVar19] = 1;\n        *(undefined4 **)(puVar30 + -0x38) = puVar14;\n        *(undefined1 **)(puVar30 + -0x3c) = puVar16;\n        *(undefined4 **)(puVar30 + -0x40) = puVar7;\n        *(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar11 = *(int *)(puVar30 + -0x40);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        if (iVar18 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar6 = iVar28 + -1;\n        puVar7 = (undefined4 *)(iVar11 + iVar31);\n        uVar13 = **(undefined4 **)(puVar30 + -0x44);\n        if (iVar6 != 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          puVar12 = puVar7;\n          goto LAB_0007b70c;\n        }\n        uVar5 = *(undefined4 *)(puVar30 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n        *puVar7 = uVar13;\n        *(undefined4 *)(puVar30 + -0x70) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);\n        *(undefined4 **)(puVar30 + -0x2c) = puVar14;\n        *(undefined1 **)(puVar30 + -0x30) = puVar16;\n        *(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;\n        *(undefined4 **)(puVar30 + -0x38) = puVar7;\n        *(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;\n        uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);\n        uVar5 = *puVar24;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);\n        *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);\n        *(undefined4 *)(puVar30 + -0x3c) = uVar13;\n        **(undefined4 **)(puVar30 + -0x34) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);\n        iVar11 = iVar19 + -1;\n        puVar7 = *(undefined4 **)(puVar30 + -0x3c);\n        iVar28 = *(int *)(puVar30 + -0x68);\n        uVar13 = *(undefined4 *)(puVar30 + -0x38);\n        uVar17 = *(undefined4 *)(puVar30 + -0x30);\n        uVar5 = *puVar7;\n        uVar15 = *(undefined4 *)(puVar30 + -0x2c);\n        if (iVar11 == 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }\n        else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);\n        *(undefined4 *)(puVar30 + -0x38) = uVar15;\n        *(undefined4 *)(puVar30 + -0x3c) = uVar17;\n        *puVar26 = uVar5;\n        iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        if (iVar28 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }\n        else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }\n        iVar28 = *(int *)(puVar30 + -0x40);\n        uVar13 = *puVar26;\n        puVar7 = puVar24;\n        if (iVar28 == 0) {\n          *puVar24 = uVar13;\n        }\n        else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }\n      }\njoined_r0x0007b75c:\n      for (; iVar25 != 0; iVar25 = iVar25 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);\n        puVar20 = puVar20 + iVar19;\n        *(int *)(puVar30 + -0x70) = iVar4;\n        uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      uVar2 = *(uint *)(puVar30 + -0x5c);\n      if (*(uint *)(puVar30 + -0x60) < uVar2) {\n        (**(code **)(iVar11 + -0x7c20))\n                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438);\n        uVar2 = extraout_v1;\n      }\n      uVar2 = *(int *)(puVar30 + -0x60) - uVar2;\n      uVar9 = 0x20 - (uVar2 & 0x1f);\n      puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4);\n      uVar3 = *puVar8 >> (uVar2 & 0x1f);\n      if ((int)uVar9 < *(int *)(puVar30 + -0x58)) {\n        uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f));\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bac);\n      *(int *)(puVar30 + -0x44) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f));\n      *(uint *)(puVar30 + -0x70) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)) & uVar3;\n      (*UNRECOVERED_JUMPTABLE)\n                (puVar22,*(undefined4 *)(puVar30 + -0x54),iVar19,*(undefined4 *)(puVar30 + -0x50));\n      iVar25 = *(int *)(puVar30 + -0x68);\n      if (uVar2 != 0) {\n        *(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39);\n        do {\n          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n          if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);\n          *(undefined4 *)(puVar30 + -0x70) = uVar13;\n          (*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);\n          *(int *)(puVar30 + -0x70) = iVar4;\n          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n          iVar25 = *(int *)(puVar30 + -0x68);\n          uVar2 = uVar9;\n        } while (uVar9 != 0);\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7eb0);\n      if (iVar19 != 0) {\n        iVar11 = iVar19 + -1;\n        uVar13 = *puVar22;\n        puVar20 = puVar21;\n        puVar26 = puVar22;\n        if (iVar11 != 0) {\n          do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar20 = puVar21 + iVar19 + -1;\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58);\n        *puVar20 = uVar13;\n        (*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0);\n      }\n      *(int *)(puVar30 + -0x70) = iVar4;\n      uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar22,puVar21,piVar23,iVar19);\n      *(int *)(puVar30 + -0x70) = iVar19;\n      (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n      iVar25 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))(puVar21,puVar22,piVar23,iVar19);\n      UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7a70);\n      *(int *)(puVar30 + 0x10) = iVar19;\n                    /* WARNING: Could not recover jumptable at 0x0007bab0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*UNRECOVERED_JUMPTABLE)(iVar25 == 0,puVar22,puVar22,piVar23);\n      return;\n    }\n    puVar22 = (undefined4 *)((int)puVar7 + -1);\n    if ((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) == 0) goto LAB_0007afb0;\nLAB_0007b010:\n    if (puVar7 < local_44) {\n      uVar3 = ~(-1 << ((uint)puVar7 & 0x1f)) & *param_3;\n      uVar9 = 0;\n      if ((uVar3 & 0xff) == 0) goto LAB_0007b270;\nLAB_0007b040:\n      uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2;\n    }\n    else {\n      uVar9 = (int)puVar7 - (int)local_44;\n      uVar2 = 0x20 - (uVar9 & 0x1f);\n      uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f);\n      if ((int)uVar2 < (int)local_44) {\n        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));\n      }\n      uVar3 = uVar3 & local_4c;\n      puVar7 = local_44;\n      if ((uVar3 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar2 = uVar3 >> 8;\n      iVar19 = 0x1e;\n      if (uVar2 != 0) {\n        iVar19 = 6;\n      }\n      uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19;\n    }\n    param_2 = (undefined4 *)((int)puVar7 - uVar2);\n    puVar7 = param_2;\n    if (1 < (int)param_2) {\n      do {\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n        puVar20 = (undefined4 *)((int)puVar7 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5);\n        puVar7 = puVar20;\n      } while (1 < (int)puVar20);\n      param_2 = (undefined4 *)((uint)param_2 & 1);\n    }\n    if (param_2 == (undefined4 *)0x0) {\n      if (param_5 != (undefined4 *)0x0) {\n        uVar13 = *param_1;\n        puVar7 = param_6;\n        if (local_3c != (undefined1 *)0x0) {\n          puVar16 = local_3c;\n          puVar22 = param_6;\n          puVar12 = param_1 + 1;\n          do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);\n        }\n        *puVar7 = uVar13;\n      }\n    }\n    else {\n      (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n    }\n    puVar14 = (undefined4 *)(((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25 + (int)puVar26);\n    puVar12 = param_6;\n    param_4 = param_5;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(param_1);\n    puVar7 = (undefined4 *)(uVar2 + uVar9);\n    puVar22 = local_30;\n  } while( true );\n}" primitive_type (function_declarator "__gmpn_powlo(undefined4 *param_1,undefined4 *param_2,uint *param_3,undefined4 *param_4,\n                 undefined4 *param_5,undefined4 *param_6)" identifier (parameter_list "(undefined4 *param_1,undefined4 *param_2,uint *param_3,undefined4 *param_4,\n                 undefined4 *param_5,undefined4 *param_6)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "undefined4 *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "undefined4 *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  uint extraout_v1;\n  uint *puVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  undefined4 uVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined1 *puVar16;\n  undefined4 uVar17;\n  int iVar18;\n  int iVar19;\n  undefined4 *puVar20;\n  undefined4 *puVar21;\n  undefined4 *puVar22;\n  int *piVar23;\n  undefined4 *puVar24;\n  int iVar25;\n  undefined4 *puVar26;\n  undefined *puVar27;\n  code *UNRECOVERED_JUMPTABLE;\n  int iVar28;\n  int iVar29;\n  undefined1 *puVar30;\n  int iVar31;\n  undefined1 auStack_70 [16];\n  uint local_4c;\n  undefined4 *local_44;\n  undefined1 *local_3c;\n  undefined4 *local_38;\n  undefined4 *local_30;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0009d540;\n  puVar27 = PTR___gmpn_clz_tab_0009d18c;\n  puVar30 = auStack_70;\n  puVar16 = auStack_70;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  uVar2 = param_3[(int)((int)param_4 + -1)];\n  local_30 = (undefined4 *)0x0;\n  if (uVar2 < 0x10000) {\n    iVar19 = 9;\n    if (uVar2 < 0x100) {\n      iVar19 = 1;\n    }\n    puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);\n  }\n  else {\n    iVar19 = 0x19;\n    if (uVar2 < 0x1000000) {\n      iVar19 = 0x11;\n    }\n    puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);\n  }\n  if (puVar20 < &DAT_00000008) {\n    local_4c = 1;\n    local_38 = (undefined4 *)0x1;\n    uVar2 = (int)param_5 << 2;\n    iVar19 = 0;\n    local_44 = local_38;\n  }\n  else {\n    if (puVar20 < (undefined4 *)0x1a) {\n      local_44 = (undefined4 *)0x2;\n      iVar19 = 1;\n    }\n    else if (puVar20 < (undefined4 *)0x52) {\n      local_44 = (undefined4 *)0x3;\n      iVar19 = 2;\n    }\n    else if (puVar20 < (undefined4 *)0xf2) {\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }\n    else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }\n    uVar2 = ((int)param_5 << iVar19) << 2;\n    local_4c = ~(-1 << (int)local_44);\n    iVar19 = (1 << iVar19) + -1;\n  }\n  if (uVar2 < 0x7f01) {\n    iVar25 = -(uVar2 + 7 & 0xfffffff8);\n    puVar16 = auStack_70 + iVar25;\n    puVar30 = auStack_70 + iVar25;\n    puVar26 = (undefined4 *)(&stack0xffffffa0 + iVar25);\n  }\n  else {\n    puVar26 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }\n  if (param_5 == (undefined4 *)0x0) {\n    local_3c = (undefined1 *)0xffffffff;\n    puVar30 = puVar16;\n  }\n  else {\n    local_3c = (undefined1 *)((int)param_5 + -1);\n    uVar13 = *param_2;\n    if (local_3c == (undefined1 *)0x0) {\n      *puVar26 = uVar13;\n    }\n    else {\n      puVar16 = local_3c;\n      puVar7 = puVar26;\n      puVar22 = param_2 + 1;\n      do {\n        *puVar7 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar22;\n        puVar7 = puVar7 + 1;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      puVar26[(int)((int)param_5 + -1)] = uVar13;\n    }\n  }\n  (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_2,param_5);\n  iVar25 = (int)param_5 * 4;\n  puVar7 = puVar26;\n  for (; iVar19 != 0; iVar19 = iVar19 + -1) {\n    param_2 = puVar7 + (int)param_5;\n    param_4 = param_5;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(param_2,puVar7,param_6);\n    puVar7 = param_2;\n  }\n  uVar2 = (int)puVar20 - (int)local_44;\n  if (puVar20 < local_44) {\n    uVar3 = ~(-1 << ((uint)puVar20 & 0x1f)) & *param_3;\n  }\n  else {\n    uVar9 = 0x20 - (uVar2 & 0x1f);\n    param_4 = (undefined4 *)(uint)((int)uVar9 < (int)local_44);\n    uVar3 = param_3[uVar2 >> 5] >> (uVar2 & 0x1f);\n    if (param_4 != (undefined4 *)0x0) {\n      uVar3 = uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f));\n    }\n    uVar3 = uVar3 & local_4c;\n  }\n  if ((uVar3 & 0xff) == 0) {\n    uVar9 = uVar3 >> 8;\n    param_4 = (undefined4 *)&DAT_00000006;\n    iVar19 = 0x1e;\n    if (uVar9 != 0) {\n      iVar19 = 6;\n    }\n    uVar9 = (uint)(byte)puVar27[-uVar9 & uVar9] + iVar19;\n  }\n  else {\n    uVar9 = (byte)puVar27[-uVar3 & uVar3] - 2;\n  }\n  puVar7 = (undefined4 *)(uVar9 + uVar2);\n  if (param_5 != (undefined4 *)0x0) {\n    param_4 = (undefined4 *)(((uVar3 >> (uVar9 & 0x1f)) >> 1) * iVar25);\n    puVar12 = (undefined4 *)((int)param_4 + (int)puVar26);\n    uVar13 = *puVar12;\n    puVar16 = local_3c;\n    puVar22 = param_1;\n    if (local_3c == (undefined1 *)0x0) {\n      *param_1 = uVar13;\n    }\n    else {\n      do {\n        puVar12 = puVar12 + 1;\n        *puVar22 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar12;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      param_1[(int)((int)param_5 + -1)] = uVar13;\n    }\n  }\n  puVar22 = (undefined4 *)((int)puVar7 + -1);\n  if ((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) != 0) goto LAB_0007b010;\nLAB_0007afb0:\n  puVar12 = param_1;\n  puVar14 = param_5;\n  (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6);\n  puVar7 = puVar22;\n  puVar22 = local_30;\n  if (param_5 != (undefined4 *)0x0) {\n    puVar12 = (undefined4 *)*param_6;\n    puVar21 = param_1;\n    puVar24 = param_1;\n    puVar10 = param_6;\n    for (puVar16 = local_3c; puVar16 != (undefined1 *)0x0; puVar16 = puVar16 + -1) {\n      puVar10 = puVar10 + 1;\n      *puVar24 = puVar12;\n      puVar12 = (undefined4 *)*puVar10;\n      puVar21 = param_1 + (int)((int)param_5 + -1);\n      puVar24 = puVar24 + 1;\n    }\n    *puVar21 = puVar12;\n  }\n  do {\n    local_30 = puVar22;\n    if (puVar7 == (undefined4 *)0x0) {\n      if (puVar22 != (undefined4 *)0x0) {\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      uVar13 = 0x7b45c;\n      puVar27 = PTR___stack_chk_fail_0009d4d0;\n      (*(code *)PTR___stack_chk_fail_0009d4d0)();\n      uVar2 = *(uint *)(puVar30 + 0x10);\n      *(undefined4 **)(puVar30 + -0x24) = param_5;\n      *(undefined **)(puVar30 + -0x68) = puVar27 + 0x29be0;\n      *(undefined4 *)(puVar30 + -0x18) = 0;\n      *(undefined4 **)(puVar30 + -0x28) = puVar20;\n      *(undefined4 *)(puVar30 + -4) = uVar13;\n      *(undefined1 **)(puVar30 + -8) = auStack_70;\n      *(int *)(puVar30 + -0xc) = iVar25;\n      *(uint **)(puVar30 + -0x10) = param_3;\n      *(undefined4 **)(puVar30 + -0x14) = param_2;\n      *(undefined4 **)(puVar30 + -0x1c) = param_1;\n      *(undefined4 **)(puVar30 + -0x20) = param_6;\n      *(uint *)(puVar30 + -0x60) = uVar2;\n      *(undefined4 **)(puVar30 + -0x44) = puVar12;\n      *(undefined4 **)(puVar30 + -0x4c) = param_4;\n      piVar23 = *(int **)(puVar30 + 0x14);\n      iVar19 = *(int *)(puVar30 + 0x18);\n      *(undefined4 *)(puVar30 + -0x54) = *(undefined4 *)(puVar30 + 0x1c);\n      if (uVar2 < 3) {\n        iVar25 = 0;\n        *(undefined4 *)(puVar30 + -0x5c) = 1;\n        *(undefined4 *)(puVar30 + -0x50) = 2;\n        iVar4 = 1;\n        *(undefined4 *)(puVar30 + -0x58) = 1;\n      }\n      else {\n        if (uVar2 < 0x22) {\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }\n        else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }\n        *(int *)(puVar30 + -0x5c) = iVar4;\n        *(int *)(puVar30 + -0x50) = 1 << iVar4;\n        iVar25 = (1 << iVar4) + -2;\n      }\n      iVar11 = *piVar23;\n      iVar31 = iVar19 * 4;\n      puVar26 = *(undefined4 **)(puVar30 + -0x54);\n      puVar16 = (undefined1 *)(iVar19 + (int)puVar14);\n      puVar24 = puVar26 + iVar19;\n      uVar2 = (uint)*(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19));\n      puVar7 = puVar24 + iVar19;\n      puVar12 = puVar26 + iVar19 + 1;\n      *(undefined4 **)(puVar30 + -0x48) = puVar7 + (int)puVar16;\n      puVar21 = puVar26 + (iVar19 << iVar4);\n      *puVar24 = 1;\n      iVar4 = uVar2 * 2 - uVar2 * uVar2 * iVar11;\n      iVar4 = iVar4 * iVar4 * iVar11 + iVar4 * -2;\n      puVar20 = puVar24;\n      if (iVar19 == 0) {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c);\n        puVar12[iVar19] = 1;\n        *(undefined4 **)(puVar30 + -0x38) = puVar14;\n        *(undefined1 **)(puVar30 + -0x3c) = puVar16;\n        *(undefined4 **)(puVar30 + -0x40) = puVar7;\n        *(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar11 = *(int *)(puVar30 + -0x40);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        if (iVar18 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar6 = iVar28 + -1;\n        puVar7 = (undefined4 *)(iVar11 + iVar31);\n        uVar13 = **(undefined4 **)(puVar30 + -0x44);\n        if (iVar6 != 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          puVar12 = puVar7;\n          goto LAB_0007b70c;\n        }\n        uVar5 = *(undefined4 *)(puVar30 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n        *puVar7 = uVar13;\n        *(undefined4 *)(puVar30 + -0x70) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);\n        *(undefined4 **)(puVar30 + -0x2c) = puVar14;\n        *(undefined1 **)(puVar30 + -0x30) = puVar16;\n        *(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;\n        *(undefined4 **)(puVar30 + -0x38) = puVar7;\n        *(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;\n        uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);\n        uVar5 = *puVar24;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);\n        *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);\n        *(undefined4 *)(puVar30 + -0x3c) = uVar13;\n        **(undefined4 **)(puVar30 + -0x34) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);\n        iVar11 = iVar19 + -1;\n        puVar7 = *(undefined4 **)(puVar30 + -0x3c);\n        iVar28 = *(int *)(puVar30 + -0x68);\n        uVar13 = *(undefined4 *)(puVar30 + -0x38);\n        uVar17 = *(undefined4 *)(puVar30 + -0x30);\n        uVar5 = *puVar7;\n        uVar15 = *(undefined4 *)(puVar30 + -0x2c);\n        if (iVar11 == 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }\n        else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);\n        *(undefined4 *)(puVar30 + -0x38) = uVar15;\n        *(undefined4 *)(puVar30 + -0x3c) = uVar17;\n        *puVar26 = uVar5;\n        iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        if (iVar28 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }\n        else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }\n        iVar28 = *(int *)(puVar30 + -0x40);\n        uVar13 = *puVar26;\n        puVar7 = puVar24;\n        if (iVar28 == 0) {\n          *puVar24 = uVar13;\n        }\n        else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }\n      }\njoined_r0x0007b75c:\n      for (; iVar25 != 0; iVar25 = iVar25 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);\n        puVar20 = puVar20 + iVar19;\n        *(int *)(puVar30 + -0x70) = iVar4;\n        uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      uVar2 = *(uint *)(puVar30 + -0x5c);\n      if (*(uint *)(puVar30 + -0x60) < uVar2) {\n        (**(code **)(iVar11 + -0x7c20))\n                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438);\n        uVar2 = extraout_v1;\n      }\n      uVar2 = *(int *)(puVar30 + -0x60) - uVar2;\n      uVar9 = 0x20 - (uVar2 & 0x1f);\n      puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4);\n      uVar3 = *puVar8 >> (uVar2 & 0x1f);\n      if ((int)uVar9 < *(int *)(puVar30 + -0x58)) {\n        uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f));\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bac);\n      *(int *)(puVar30 + -0x44) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f));\n      *(uint *)(puVar30 + -0x70) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)) & uVar3;\n      (*UNRECOVERED_JUMPTABLE)\n                (puVar22,*(undefined4 *)(puVar30 + -0x54),iVar19,*(undefined4 *)(puVar30 + -0x50));\n      iVar25 = *(int *)(puVar30 + -0x68);\n      if (uVar2 != 0) {\n        *(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39);\n        do {\n          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n          if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);\n          *(undefined4 *)(puVar30 + -0x70) = uVar13;\n          (*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);\n          *(int *)(puVar30 + -0x70) = iVar4;\n          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n          iVar25 = *(int *)(puVar30 + -0x68);\n          uVar2 = uVar9;\n        } while (uVar9 != 0);\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7eb0);\n      if (iVar19 != 0) {\n        iVar11 = iVar19 + -1;\n        uVar13 = *puVar22;\n        puVar20 = puVar21;\n        puVar26 = puVar22;\n        if (iVar11 != 0) {\n          do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar20 = puVar21 + iVar19 + -1;\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58);\n        *puVar20 = uVar13;\n        (*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0);\n      }\n      *(int *)(puVar30 + -0x70) = iVar4;\n      uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar22,puVar21,piVar23,iVar19);\n      *(int *)(puVar30 + -0x70) = iVar19;\n      (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n      iVar25 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))(puVar21,puVar22,piVar23,iVar19);\n      UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7a70);\n      *(int *)(puVar30 + 0x10) = iVar19;\n                    /* WARNING: Could not recover jumptable at 0x0007bab0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*UNRECOVERED_JUMPTABLE)(iVar25 == 0,puVar22,puVar22,piVar23);\n      return;\n    }\n    puVar22 = (undefined4 *)((int)puVar7 + -1);\n    if ((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) == 0) goto LAB_0007afb0;\nLAB_0007b010:\n    if (puVar7 < local_44) {\n      uVar3 = ~(-1 << ((uint)puVar7 & 0x1f)) & *param_3;\n      uVar9 = 0;\n      if ((uVar3 & 0xff) == 0) goto LAB_0007b270;\nLAB_0007b040:\n      uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2;\n    }\n    else {\n      uVar9 = (int)puVar7 - (int)local_44;\n      uVar2 = 0x20 - (uVar9 & 0x1f);\n      uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f);\n      if ((int)uVar2 < (int)local_44) {\n        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));\n      }\n      uVar3 = uVar3 & local_4c;\n      puVar7 = local_44;\n      if ((uVar3 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar2 = uVar3 >> 8;\n      iVar19 = 0x1e;\n      if (uVar2 != 0) {\n        iVar19 = 6;\n      }\n      uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19;\n    }\n    param_2 = (undefined4 *)((int)puVar7 - uVar2);\n    puVar7 = param_2;\n    if (1 < (int)param_2) {\n      do {\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n        puVar20 = (undefined4 *)((int)puVar7 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5);\n        puVar7 = puVar20;\n      } while (1 < (int)puVar20);\n      param_2 = (undefined4 *)((uint)param_2 & 1);\n    }\n    if (param_2 == (undefined4 *)0x0) {\n      if (param_5 != (undefined4 *)0x0) {\n        uVar13 = *param_1;\n        puVar7 = param_6;\n        if (local_3c != (undefined1 *)0x0) {\n          puVar16 = local_3c;\n          puVar22 = param_6;\n          puVar12 = param_1 + 1;\n          do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);\n        }\n        *puVar7 = uVar13;\n      }\n    }\n    else {\n      (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n    }\n    puVar14 = (undefined4 *)(((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25 + (int)puVar26);\n    puVar12 = param_6;\n    param_4 = param_5;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(param_1);\n    puVar7 = (undefined4 *)(uVar2 + uVar9);\n    puVar22 = local_30;\n  } while( true );\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint extraout_v1;" type_identifier identifier ;) (declaration "uint *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined4 uVar17;" type_identifier identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "undefined4 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined4 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "undefined4 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "int *piVar23;" primitive_type (pointer_declarator "*piVar23" * identifier) ;) (declaration "undefined4 *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "undefined4 *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "undefined *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "code *UNRECOVERED_JUMPTABLE;" type_identifier (pointer_declarator "*UNRECOVERED_JUMPTABLE" * identifier) ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "int iVar29;" primitive_type identifier ;) (declaration "undefined1 *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "int iVar31;" primitive_type identifier ;) (declaration "undefined1 auStack_70 [16];" type_identifier (array_declarator "auStack_70 [16]" identifier [ number_literal ]) ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "undefined4 *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "undefined1 *local_3c;" type_identifier (pointer_declarator "*local_3c" * identifier) ;) (declaration "undefined4 *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "undefined4 *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0009d540;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0009d540" identifier = identifier) ;) (expression_statement "puVar27 = PTR___gmpn_clz_tab_0009d18c;" (assignment_expression "puVar27 = PTR___gmpn_clz_tab_0009d18c" identifier = identifier) ;) (expression_statement "puVar30 = auStack_70;" (assignment_expression "puVar30 = auStack_70" identifier = identifier) ;) (expression_statement "puVar16 = auStack_70;" (assignment_expression "puVar16 = auStack_70" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0009d540;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0009d540" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0009d540" * (cast_expression "(int *)PTR___stack_chk_guard_0009d540" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar2 = param_3[(int)((int)param_4 + -1)];" (assignment_expression "uVar2 = param_3[(int)((int)param_4 + -1)]" identifier = (subscript_expression "param_3[(int)((int)param_4 + -1)]" identifier [ (cast_expression "(int)((int)param_4 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)param_4 + -1)" ( (binary_expression "(int)param_4 + -1" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ])) ;) (expression_statement "local_30 = (undefined4 *)0x0;" (assignment_expression "local_30 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (uVar2 < 0x10000) {\n    iVar19 = 9;\n    if (uVar2 < 0x100) {\n      iVar19 = 1;\n    }\n    puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);\n  }\n  else {\n    iVar19 = 0x19;\n    if (uVar2 < 0x1000000) {\n      iVar19 = 0x11;\n    }\n    puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);\n  }" if (parenthesized_expression "(uVar2 < 0x10000)" ( (binary_expression "uVar2 < 0x10000" identifier < number_literal) )) (compound_statement "{\n    iVar19 = 9;\n    if (uVar2 < 0x100) {\n      iVar19 = 1;\n    }\n    puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);\n  }" { (expression_statement "iVar19 = 9;" (assignment_expression "iVar19 = 9" identifier = number_literal) ;) (if_statement "if (uVar2 < 0x100) {\n      iVar19 = 1;\n    }" if (parenthesized_expression "(uVar2 < 0x100)" ( (binary_expression "uVar2 < 0x100" identifier < number_literal) )) (compound_statement "{\n      iVar19 = 1;\n    }" { (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" identifier = number_literal) ;) })) (expression_statement "puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);" (assignment_expression "puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19])" identifier = (cast_expression "(undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19])" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19])" ( (binary_expression "(int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]" (binary_expression "(int)param_4 * 0x20 + -0x21 + iVar19" (binary_expression "(int)param_4 * 0x20 + -0x21" (binary_expression "(int)param_4 * 0x20" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) + identifier) + (cast_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]" identifier [ (binary_expression "uVar2 >> iVar19" identifier >> identifier) ])))) )))) ;) }) (else_clause "else {\n    iVar19 = 0x19;\n    if (uVar2 < 0x1000000) {\n      iVar19 = 0x11;\n    }\n    puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);\n  }" else (compound_statement "{\n    iVar19 = 0x19;\n    if (uVar2 < 0x1000000) {\n      iVar19 = 0x11;\n    }\n    puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);\n  }" { (expression_statement "iVar19 = 0x19;" (assignment_expression "iVar19 = 0x19" identifier = number_literal) ;) (if_statement "if (uVar2 < 0x1000000) {\n      iVar19 = 0x11;\n    }" if (parenthesized_expression "(uVar2 < 0x1000000)" ( (binary_expression "uVar2 < 0x1000000" identifier < number_literal) )) (compound_statement "{\n      iVar19 = 0x11;\n    }" { (expression_statement "iVar19 = 0x11;" (assignment_expression "iVar19 = 0x11" identifier = number_literal) ;) })) (expression_statement "puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);" (assignment_expression "puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19])" identifier = (cast_expression "(undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19])" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19])" ( (binary_expression "(int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]" (binary_expression "(int)param_4 * 0x20 + -0x21 + iVar19" (binary_expression "(int)param_4 * 0x20 + -0x21" (binary_expression "(int)param_4 * 0x20" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) + identifier) + (cast_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]" identifier [ (binary_expression "uVar2 >> iVar19" identifier >> identifier) ])))) )))) ;) }))) (if_statement "if (puVar20 < &DAT_00000008) {\n    local_4c = 1;\n    local_38 = (undefined4 *)0x1;\n    uVar2 = (int)param_5 << 2;\n    iVar19 = 0;\n    local_44 = local_38;\n  }\n  else {\n    if (puVar20 < (undefined4 *)0x1a) {\n      local_44 = (undefined4 *)0x2;\n      iVar19 = 1;\n    }\n    else if (puVar20 < (undefined4 *)0x52) {\n      local_44 = (undefined4 *)0x3;\n      iVar19 = 2;\n    }\n    else if (puVar20 < (undefined4 *)0xf2) {\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }\n    else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }\n    uVar2 = ((int)param_5 << iVar19) << 2;\n    local_4c = ~(-1 << (int)local_44);\n    iVar19 = (1 << iVar19) + -1;\n  }" if (parenthesized_expression "(puVar20 < &DAT_00000008)" ( (binary_expression "puVar20 < &DAT_00000008" identifier < (pointer_expression "&DAT_00000008" & identifier)) )) (compound_statement "{\n    local_4c = 1;\n    local_38 = (undefined4 *)0x1;\n    uVar2 = (int)param_5 << 2;\n    iVar19 = 0;\n    local_44 = local_38;\n  }" { (expression_statement "local_4c = 1;" (assignment_expression "local_4c = 1" identifier = number_literal) ;) (expression_statement "local_38 = (undefined4 *)0x1;" (assignment_expression "local_38 = (undefined4 *)0x1" identifier = (cast_expression "(undefined4 *)0x1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar2 = (int)param_5 << 2;" (assignment_expression "uVar2 = (int)param_5 << 2" identifier = (binary_expression "(int)param_5 << 2" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "local_44 = local_38;" (assignment_expression "local_44 = local_38" identifier = identifier) ;) }) (else_clause "else {\n    if (puVar20 < (undefined4 *)0x1a) {\n      local_44 = (undefined4 *)0x2;\n      iVar19 = 1;\n    }\n    else if (puVar20 < (undefined4 *)0x52) {\n      local_44 = (undefined4 *)0x3;\n      iVar19 = 2;\n    }\n    else if (puVar20 < (undefined4 *)0xf2) {\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }\n    else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }\n    uVar2 = ((int)param_5 << iVar19) << 2;\n    local_4c = ~(-1 << (int)local_44);\n    iVar19 = (1 << iVar19) + -1;\n  }" else (compound_statement "{\n    if (puVar20 < (undefined4 *)0x1a) {\n      local_44 = (undefined4 *)0x2;\n      iVar19 = 1;\n    }\n    else if (puVar20 < (undefined4 *)0x52) {\n      local_44 = (undefined4 *)0x3;\n      iVar19 = 2;\n    }\n    else if (puVar20 < (undefined4 *)0xf2) {\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }\n    else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }\n    uVar2 = ((int)param_5 << iVar19) << 2;\n    local_4c = ~(-1 << (int)local_44);\n    iVar19 = (1 << iVar19) + -1;\n  }" { (if_statement "if (puVar20 < (undefined4 *)0x1a) {\n      local_44 = (undefined4 *)0x2;\n      iVar19 = 1;\n    }\n    else if (puVar20 < (undefined4 *)0x52) {\n      local_44 = (undefined4 *)0x3;\n      iVar19 = 2;\n    }\n    else if (puVar20 < (undefined4 *)0xf2) {\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }\n    else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" if (parenthesized_expression "(puVar20 < (undefined4 *)0x1a)" ( (binary_expression "puVar20 < (undefined4 *)0x1a" identifier < (cast_expression "(undefined4 *)0x1a" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_44 = (undefined4 *)0x2;\n      iVar19 = 1;\n    }" { (expression_statement "local_44 = (undefined4 *)0x2;" (assignment_expression "local_44 = (undefined4 *)0x2" identifier = (cast_expression "(undefined4 *)0x2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" identifier = number_literal) ;) }) (else_clause "else if (puVar20 < (undefined4 *)0x52) {\n      local_44 = (undefined4 *)0x3;\n      iVar19 = 2;\n    }\n    else if (puVar20 < (undefined4 *)0xf2) {\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }\n    else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" else (if_statement "if (puVar20 < (undefined4 *)0x52) {\n      local_44 = (undefined4 *)0x3;\n      iVar19 = 2;\n    }\n    else if (puVar20 < (undefined4 *)0xf2) {\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }\n    else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" if (parenthesized_expression "(puVar20 < (undefined4 *)0x52)" ( (binary_expression "puVar20 < (undefined4 *)0x52" identifier < (cast_expression "(undefined4 *)0x52" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_44 = (undefined4 *)0x3;\n      iVar19 = 2;\n    }" { (expression_statement "local_44 = (undefined4 *)0x3;" (assignment_expression "local_44 = (undefined4 *)0x3" identifier = (cast_expression "(undefined4 *)0x3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar19 = 2;" (assignment_expression "iVar19 = 2" identifier = number_literal) ;) }) (else_clause "else if (puVar20 < (undefined4 *)0xf2) {\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }\n    else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" else (if_statement "if (puVar20 < (undefined4 *)0xf2) {\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }\n    else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" if (parenthesized_expression "(puVar20 < (undefined4 *)0xf2)" ( (binary_expression "puVar20 < (undefined4 *)0xf2" identifier < (cast_expression "(undefined4 *)0xf2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }" { (expression_statement "local_44 = (undefined4 *)&DAT_00000004;" (assignment_expression "local_44 = (undefined4 *)&DAT_00000004" identifier = (cast_expression "(undefined4 *)&DAT_00000004" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000004" & identifier))) ;) (expression_statement "iVar19 = 3;" (assignment_expression "iVar19 = 3" identifier = number_literal) ;) }) (else_clause "else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" else (if_statement "if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" if (parenthesized_expression "(puVar20 < (undefined4 *)0x2a2)" ( (binary_expression "puVar20 < (undefined4 *)0x2a2" identifier < (cast_expression "(undefined4 *)0x2a2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }" { (expression_statement "local_44 = (undefined4 *)&DAT_00000005;" (assignment_expression "local_44 = (undefined4 *)&DAT_00000005" identifier = (cast_expression "(undefined4 *)&DAT_00000005" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000005" & identifier))) ;) (expression_statement "iVar19 = 4;" (assignment_expression "iVar19 = 4" identifier = number_literal) ;) }) (else_clause "else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" else (if_statement "if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" if (parenthesized_expression "(puVar20 < (undefined4 *)0x702)" ( (binary_expression "puVar20 < (undefined4 *)0x702" identifier < (cast_expression "(undefined4 *)0x702" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }" { (expression_statement "local_44 = (undefined4 *)&DAT_00000006;" (assignment_expression "local_44 = (undefined4 *)&DAT_00000006" identifier = (cast_expression "(undefined4 *)&DAT_00000006" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000006" & identifier))) ;) (expression_statement "iVar19 = 5;" (assignment_expression "iVar19 = 5" identifier = number_literal) ;) }) (else_clause "else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" else (if_statement "if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" if (parenthesized_expression "(puVar20 < (undefined4 *)0x1202)" ( (binary_expression "puVar20 < (undefined4 *)0x1202" identifier < (cast_expression "(undefined4 *)0x1202" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }" { (expression_statement "local_44 = (undefined4 *)0x7;" (assignment_expression "local_44 = (undefined4 *)0x7" identifier = (cast_expression "(undefined4 *)0x7" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar19 = 6;" (assignment_expression "iVar19 = 6" identifier = number_literal) ;) }) (else_clause "else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" else (compound_statement "{\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" { (expression_statement "iVar19 = 9;" (assignment_expression "iVar19 = 9" identifier = number_literal) ;) (if_statement "if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }" if (parenthesized_expression "(puVar20 < (undefined4 *)0x2d02)" ( (binary_expression "puVar20 < (undefined4 *)0x2d02" identifier < (cast_expression "(undefined4 *)0x2d02" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }" { (expression_statement "local_44 = (undefined4 *)&DAT_00000008;" (assignment_expression "local_44 = (undefined4 *)&DAT_00000008" identifier = (cast_expression "(undefined4 *)&DAT_00000008" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000008" & identifier))) ;) (expression_statement "iVar19 = 7;" (assignment_expression "iVar19 = 7" identifier = number_literal) ;) }) (else_clause "else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }" else (compound_statement "{\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }" { (expression_statement "local_44 = (undefined4 *)&DAT_0000000a;" (assignment_expression "local_44 = (undefined4 *)&DAT_0000000a" identifier = (cast_expression "(undefined4 *)&DAT_0000000a" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000000a" & identifier))) ;) (if_statement "if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }" if (parenthesized_expression "(puVar20 < (undefined4 *)0x6e02)" ( (binary_expression "puVar20 < (undefined4 *)0x6e02" identifier < (cast_expression "(undefined4 *)0x6e02" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }" { (expression_statement "local_44 = (undefined4 *)&DAT_00000009;" (assignment_expression "local_44 = (undefined4 *)&DAT_00000009" identifier = (cast_expression "(undefined4 *)&DAT_00000009" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000009" & identifier))) ;) (expression_statement "iVar19 = 8;" (assignment_expression "iVar19 = 8" identifier = number_literal) ;) })) }))) }))))))))))))) (expression_statement "uVar2 = ((int)param_5 << iVar19) << 2;" (assignment_expression "uVar2 = ((int)param_5 << iVar19) << 2" identifier = (binary_expression "((int)param_5 << iVar19) << 2" (parenthesized_expression "((int)param_5 << iVar19)" ( (binary_expression "(int)param_5 << iVar19" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) << identifier) )) << number_literal)) ;) (expression_statement "local_4c = ~(-1 << (int)local_44);" (assignment_expression "local_4c = ~(-1 << (int)local_44)" identifier = (unary_expression "~(-1 << (int)local_44)" ~ (parenthesized_expression "(-1 << (int)local_44)" ( (binary_expression "-1 << (int)local_44" number_literal << (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar19 = (1 << iVar19) + -1;" (assignment_expression "iVar19 = (1 << iVar19) + -1" identifier = (binary_expression "(1 << iVar19) + -1" (parenthesized_expression "(1 << iVar19)" ( (binary_expression "1 << iVar19" number_literal << identifier) )) + number_literal)) ;) }))) (if_statement "if (uVar2 < 0x7f01) {\n    iVar25 = -(uVar2 + 7 & 0xfffffff8);\n    puVar16 = auStack_70 + iVar25;\n    puVar30 = auStack_70 + iVar25;\n    puVar26 = (undefined4 *)(&stack0xffffffa0 + iVar25);\n  }\n  else {\n    puVar26 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }" if (parenthesized_expression "(uVar2 < 0x7f01)" ( (binary_expression "uVar2 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n    iVar25 = -(uVar2 + 7 & 0xfffffff8);\n    puVar16 = auStack_70 + iVar25;\n    puVar30 = auStack_70 + iVar25;\n    puVar26 = (undefined4 *)(&stack0xffffffa0 + iVar25);\n  }" { (expression_statement "iVar25 = -(uVar2 + 7 & 0xfffffff8);" (assignment_expression "iVar25 = -(uVar2 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar2 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar2 + 7 & 0xfffffff8)" ( (binary_expression "uVar2 + 7 & 0xfffffff8" (binary_expression "uVar2 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar16 = auStack_70 + iVar25;" (assignment_expression "puVar16 = auStack_70 + iVar25" identifier = (binary_expression "auStack_70 + iVar25" identifier + identifier)) ;) (expression_statement "puVar30 = auStack_70 + iVar25;" (assignment_expression "puVar30 = auStack_70 + iVar25" identifier = (binary_expression "auStack_70 + iVar25" identifier + identifier)) ;) (expression_statement "puVar26 = (undefined4 *)(&stack0xffffffa0 + iVar25);" (assignment_expression "puVar26 = (undefined4 *)(&stack0xffffffa0 + iVar25)" identifier = (cast_expression "(undefined4 *)(&stack0xffffffa0 + iVar25)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&stack0xffffffa0 + iVar25)" ( (binary_expression "&stack0xffffffa0 + iVar25" (pointer_expression "&stack0xffffffa0" & identifier) + identifier) )))) ;) }) (else_clause "else {\n    puVar26 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }" else (compound_statement "{\n    puVar26 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }" { (expression_statement "puVar26 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);" (assignment_expression "puVar26 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30)" ( (pointer_expression "&local_30" & identifier) ))))) ;) }))) (if_statement "if (param_5 == (undefined4 *)0x0) {\n    local_3c = (undefined1 *)0xffffffff;\n    puVar30 = puVar16;\n  }\n  else {\n    local_3c = (undefined1 *)((int)param_5 + -1);\n    uVar13 = *param_2;\n    if (local_3c == (undefined1 *)0x0) {\n      *puVar26 = uVar13;\n    }\n    else {\n      puVar16 = local_3c;\n      puVar7 = puVar26;\n      puVar22 = param_2 + 1;\n      do {\n        *puVar7 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar22;\n        puVar7 = puVar7 + 1;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      puVar26[(int)((int)param_5 + -1)] = uVar13;\n    }\n  }" if (parenthesized_expression "(param_5 == (undefined4 *)0x0)" ( (binary_expression "param_5 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_3c = (undefined1 *)0xffffffff;\n    puVar30 = puVar16;\n  }" { (expression_statement "local_3c = (undefined1 *)0xffffffff;" (assignment_expression "local_3c = (undefined1 *)0xffffffff" identifier = (cast_expression "(undefined1 *)0xffffffff" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar30 = puVar16;" (assignment_expression "puVar30 = puVar16" identifier = identifier) ;) }) (else_clause "else {\n    local_3c = (undefined1 *)((int)param_5 + -1);\n    uVar13 = *param_2;\n    if (local_3c == (undefined1 *)0x0) {\n      *puVar26 = uVar13;\n    }\n    else {\n      puVar16 = local_3c;\n      puVar7 = puVar26;\n      puVar22 = param_2 + 1;\n      do {\n        *puVar7 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar22;\n        puVar7 = puVar7 + 1;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      puVar26[(int)((int)param_5 + -1)] = uVar13;\n    }\n  }" else (compound_statement "{\n    local_3c = (undefined1 *)((int)param_5 + -1);\n    uVar13 = *param_2;\n    if (local_3c == (undefined1 *)0x0) {\n      *puVar26 = uVar13;\n    }\n    else {\n      puVar16 = local_3c;\n      puVar7 = puVar26;\n      puVar22 = param_2 + 1;\n      do {\n        *puVar7 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar22;\n        puVar7 = puVar7 + 1;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      puVar26[(int)((int)param_5 + -1)] = uVar13;\n    }\n  }" { (expression_statement "local_3c = (undefined1 *)((int)param_5 + -1);" (assignment_expression "local_3c = (undefined1 *)((int)param_5 + -1)" identifier = (cast_expression "(undefined1 *)((int)param_5 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_5 + -1)" ( (binary_expression "(int)param_5 + -1" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar13 = *param_2;" (assignment_expression "uVar13 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (local_3c == (undefined1 *)0x0) {\n      *puVar26 = uVar13;\n    }\n    else {\n      puVar16 = local_3c;\n      puVar7 = puVar26;\n      puVar22 = param_2 + 1;\n      do {\n        *puVar7 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar22;\n        puVar7 = puVar7 + 1;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      puVar26[(int)((int)param_5 + -1)] = uVar13;\n    }" if (parenthesized_expression "(local_3c == (undefined1 *)0x0)" ( (binary_expression "local_3c == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *puVar26 = uVar13;\n    }" { (expression_statement "*puVar26 = uVar13;" (assignment_expression "*puVar26 = uVar13" (pointer_expression "*puVar26" * identifier) = identifier) ;) }) (else_clause "else {\n      puVar16 = local_3c;\n      puVar7 = puVar26;\n      puVar22 = param_2 + 1;\n      do {\n        *puVar7 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar22;\n        puVar7 = puVar7 + 1;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      puVar26[(int)((int)param_5 + -1)] = uVar13;\n    }" else (compound_statement "{\n      puVar16 = local_3c;\n      puVar7 = puVar26;\n      puVar22 = param_2 + 1;\n      do {\n        *puVar7 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar22;\n        puVar7 = puVar7 + 1;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      puVar26[(int)((int)param_5 + -1)] = uVar13;\n    }" { (expression_statement "puVar16 = local_3c;" (assignment_expression "puVar16 = local_3c" identifier = identifier) ;) (expression_statement "puVar7 = puVar26;" (assignment_expression "puVar7 = puVar26" identifier = identifier) ;) (expression_statement "puVar22 = param_2 + 1;" (assignment_expression "puVar22 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (do_statement "do {\n        *puVar7 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar22;\n        puVar7 = puVar7 + 1;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);" do (compound_statement "{\n        *puVar7 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar22;\n        puVar7 = puVar7 + 1;\n        puVar22 = puVar22 + 1;\n      }" { (expression_statement "*puVar7 = uVar13;" (assignment_expression "*puVar7 = uVar13" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "puVar16 = puVar16 + -1;" (assignment_expression "puVar16 = puVar16 + -1" identifier = (binary_expression "puVar16 + -1" identifier + number_literal)) ;) (expression_statement "uVar13 = *puVar22;" (assignment_expression "uVar13 = *puVar22" identifier = (pointer_expression "*puVar22" * identifier)) ;) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) (expression_statement "puVar22 = puVar22 + 1;" (assignment_expression "puVar22 = puVar22 + 1" identifier = (binary_expression "puVar22 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar16 != (undefined1 *)0x0)" ( (binary_expression "puVar16 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "puVar26[(int)((int)param_5 + -1)] = uVar13;" (assignment_expression "puVar26[(int)((int)param_5 + -1)] = uVar13" (subscript_expression "puVar26[(int)((int)param_5 + -1)]" identifier [ (cast_expression "(int)((int)param_5 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)param_5 + -1)" ( (binary_expression "(int)param_5 + -1" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ]) = identifier) ;) }))) }))) (expression_statement "(*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_2,param_5);" (call_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_2,param_5)" (parenthesized_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)" ( (pointer_expression "*(code *)PTR___gmpn_sqrlo_0009d354" * (cast_expression "(code *)PTR___gmpn_sqrlo_0009d354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,param_2,param_5)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar25 = (int)param_5 * 4;" (assignment_expression "iVar25 = (int)param_5 * 4" identifier = (binary_expression "(int)param_5 * 4" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "puVar7 = puVar26;" (assignment_expression "puVar7 = puVar26" identifier = identifier) ;) (for_statement "for (; iVar19 != 0; iVar19 = iVar19 + -1) {\n    param_2 = puVar7 + (int)param_5;\n    param_4 = param_5;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(param_2,puVar7,param_6);\n    puVar7 = param_2;\n  }" for ( ; (binary_expression "iVar19 != 0" identifier != number_literal) ; (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ) (compound_statement "{\n    param_2 = puVar7 + (int)param_5;\n    param_4 = param_5;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(param_2,puVar7,param_6);\n    puVar7 = param_2;\n  }" { (expression_statement "param_2 = puVar7 + (int)param_5;" (assignment_expression "param_2 = puVar7 + (int)param_5" identifier = (binary_expression "puVar7 + (int)param_5" identifier + (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "param_4 = param_5;" (assignment_expression "param_4 = param_5" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_mullo_n_0009d234)(param_2,puVar7,param_6);" (call_expression "(*(code *)PTR___gmpn_mullo_n_0009d234)(param_2,puVar7,param_6)" (parenthesized_expression "(*(code *)PTR___gmpn_mullo_n_0009d234)" ( (pointer_expression "*(code *)PTR___gmpn_mullo_n_0009d234" * (cast_expression "(code *)PTR___gmpn_mullo_n_0009d234" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,puVar7,param_6)" ( identifier , identifier , identifier ))) ;) (expression_statement "puVar7 = param_2;" (assignment_expression "puVar7 = param_2" identifier = identifier) ;) })) (expression_statement "uVar2 = (int)puVar20 - (int)local_44;" (assignment_expression "uVar2 = (int)puVar20 - (int)local_44" identifier = (binary_expression "(int)puVar20 - (int)local_44" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (puVar20 < local_44) {\n    uVar3 = ~(-1 << ((uint)puVar20 & 0x1f)) & *param_3;\n  }\n  else {\n    uVar9 = 0x20 - (uVar2 & 0x1f);\n    param_4 = (undefined4 *)(uint)((int)uVar9 < (int)local_44);\n    uVar3 = param_3[uVar2 >> 5] >> (uVar2 & 0x1f);\n    if (param_4 != (undefined4 *)0x0) {\n      uVar3 = uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f));\n    }\n    uVar3 = uVar3 & local_4c;\n  }" if (parenthesized_expression "(puVar20 < local_44)" ( (binary_expression "puVar20 < local_44" identifier < identifier) )) (compound_statement "{\n    uVar3 = ~(-1 << ((uint)puVar20 & 0x1f)) & *param_3;\n  }" { (expression_statement "uVar3 = ~(-1 << ((uint)puVar20 & 0x1f)) & *param_3;" (assignment_expression "uVar3 = ~(-1 << ((uint)puVar20 & 0x1f)) & *param_3" identifier = (binary_expression "~(-1 << ((uint)puVar20 & 0x1f)) & *param_3" (unary_expression "~(-1 << ((uint)puVar20 & 0x1f))" ~ (parenthesized_expression "(-1 << ((uint)puVar20 & 0x1f))" ( (binary_expression "-1 << ((uint)puVar20 & 0x1f)" number_literal << (parenthesized_expression "((uint)puVar20 & 0x1f)" ( (binary_expression "(uint)puVar20 & 0x1f" (cast_expression "(uint)puVar20" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) ))) & (pointer_expression "*param_3" * identifier))) ;) }) (else_clause "else {\n    uVar9 = 0x20 - (uVar2 & 0x1f);\n    param_4 = (undefined4 *)(uint)((int)uVar9 < (int)local_44);\n    uVar3 = param_3[uVar2 >> 5] >> (uVar2 & 0x1f);\n    if (param_4 != (undefined4 *)0x0) {\n      uVar3 = uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f));\n    }\n    uVar3 = uVar3 & local_4c;\n  }" else (compound_statement "{\n    uVar9 = 0x20 - (uVar2 & 0x1f);\n    param_4 = (undefined4 *)(uint)((int)uVar9 < (int)local_44);\n    uVar3 = param_3[uVar2 >> 5] >> (uVar2 & 0x1f);\n    if (param_4 != (undefined4 *)0x0) {\n      uVar3 = uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f));\n    }\n    uVar3 = uVar3 & local_4c;\n  }" { (expression_statement "uVar9 = 0x20 - (uVar2 & 0x1f);" (assignment_expression "uVar9 = 0x20 - (uVar2 & 0x1f)" identifier = (binary_expression "0x20 - (uVar2 & 0x1f)" number_literal - (parenthesized_expression "(uVar2 & 0x1f)" ( (binary_expression "uVar2 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "param_4 = (undefined4 *)(uint)((int)uVar9 < (int)local_44);" (assignment_expression "param_4 = (undefined4 *)(uint)((int)uVar9 < (int)local_44)" identifier = (cast_expression "(undefined4 *)(uint)((int)uVar9 < (int)local_44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)((int)uVar9 < (int)local_44)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)uVar9 < (int)local_44)" ( (binary_expression "(int)uVar9 < (int)local_44" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "uVar3 = param_3[uVar2 >> 5] >> (uVar2 & 0x1f);" (assignment_expression "uVar3 = param_3[uVar2 >> 5] >> (uVar2 & 0x1f)" identifier = (binary_expression "param_3[uVar2 >> 5] >> (uVar2 & 0x1f)" (subscript_expression "param_3[uVar2 >> 5]" identifier [ (binary_expression "uVar2 >> 5" identifier >> number_literal) ]) >> (parenthesized_expression "(uVar2 & 0x1f)" ( (binary_expression "uVar2 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if (param_4 != (undefined4 *)0x0) {\n      uVar3 = uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f));\n    }" if (parenthesized_expression "(param_4 != (undefined4 *)0x0)" ( (binary_expression "param_4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar3 = uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f));\n    }" { (expression_statement "uVar3 = uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f));" (assignment_expression "uVar3 = uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f))" identifier = (binary_expression "uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f))" identifier + (parenthesized_expression "((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f))" ( (binary_expression "(param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f)" (subscript_expression "(param_3 + (uVar2 >> 5))[1]" (parenthesized_expression "(param_3 + (uVar2 >> 5))" ( (binary_expression "param_3 + (uVar2 >> 5)" identifier + (parenthesized_expression "(uVar2 >> 5)" ( (binary_expression "uVar2 >> 5" identifier >> number_literal) ))) )) [ number_literal ]) << (parenthesized_expression "(uVar9 & 0x1f)" ( (binary_expression "uVar9 & 0x1f" identifier & number_literal) ))) )))) ;) })) (expression_statement "uVar3 = uVar3 & local_4c;" (assignment_expression "uVar3 = uVar3 & local_4c" identifier = (binary_expression "uVar3 & local_4c" identifier & identifier)) ;) }))) (if_statement "if ((uVar3 & 0xff) == 0) {\n    uVar9 = uVar3 >> 8;\n    param_4 = (undefined4 *)&DAT_00000006;\n    iVar19 = 0x1e;\n    if (uVar9 != 0) {\n      iVar19 = 6;\n    }\n    uVar9 = (uint)(byte)puVar27[-uVar9 & uVar9] + iVar19;\n  }\n  else {\n    uVar9 = (byte)puVar27[-uVar3 & uVar3] - 2;\n  }" if (parenthesized_expression "((uVar3 & 0xff) == 0)" ( (binary_expression "(uVar3 & 0xff) == 0" (parenthesized_expression "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar9 = uVar3 >> 8;\n    param_4 = (undefined4 *)&DAT_00000006;\n    iVar19 = 0x1e;\n    if (uVar9 != 0) {\n      iVar19 = 6;\n    }\n    uVar9 = (uint)(byte)puVar27[-uVar9 & uVar9] + iVar19;\n  }" { (expression_statement "uVar9 = uVar3 >> 8;" (assignment_expression "uVar9 = uVar3 >> 8" identifier = (binary_expression "uVar3 >> 8" identifier >> number_literal)) ;) (expression_statement "param_4 = (undefined4 *)&DAT_00000006;" (assignment_expression "param_4 = (undefined4 *)&DAT_00000006" identifier = (cast_expression "(undefined4 *)&DAT_00000006" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000006" & identifier))) ;) (expression_statement "iVar19 = 0x1e;" (assignment_expression "iVar19 = 0x1e" identifier = number_literal) ;) (if_statement "if (uVar9 != 0) {\n      iVar19 = 6;\n    }" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar19 = 6;\n    }" { (expression_statement "iVar19 = 6;" (assignment_expression "iVar19 = 6" identifier = number_literal) ;) })) (expression_statement "uVar9 = (uint)(byte)puVar27[-uVar9 & uVar9] + iVar19;" (assignment_expression "uVar9 = (uint)(byte)puVar27[-uVar9 & uVar9] + iVar19" identifier = (binary_expression "(uint)(byte)puVar27[-uVar9 & uVar9] + iVar19" (cast_expression "(uint)(byte)puVar27[-uVar9 & uVar9]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar27[-uVar9 & uVar9]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar27[-uVar9 & uVar9]" identifier [ (binary_expression "-uVar9 & uVar9" (unary_expression "-uVar9" - identifier) & identifier) ]))) + identifier)) ;) }) (else_clause "else {\n    uVar9 = (byte)puVar27[-uVar3 & uVar3] - 2;\n  }" else (compound_statement "{\n    uVar9 = (byte)puVar27[-uVar3 & uVar3] - 2;\n  }" { (expression_statement "uVar9 = (byte)puVar27[-uVar3 & uVar3] - 2;" (assignment_expression "uVar9 = (byte)puVar27[-uVar3 & uVar3] - 2" identifier = (binary_expression "(byte)puVar27[-uVar3 & uVar3] - 2" (cast_expression "(byte)puVar27[-uVar3 & uVar3]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar27[-uVar3 & uVar3]" identifier [ (binary_expression "-uVar3 & uVar3" (unary_expression "-uVar3" - identifier) & identifier) ])) - number_literal)) ;) }))) (expression_statement "puVar7 = (undefined4 *)(uVar9 + uVar2);" (assignment_expression "puVar7 = (undefined4 *)(uVar9 + uVar2)" identifier = (cast_expression "(undefined4 *)(uVar9 + uVar2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + uVar2)" ( (binary_expression "uVar9 + uVar2" identifier + identifier) )))) ;) (if_statement "if (param_5 != (undefined4 *)0x0) {\n    param_4 = (undefined4 *)(((uVar3 >> (uVar9 & 0x1f)) >> 1) * iVar25);\n    puVar12 = (undefined4 *)((int)param_4 + (int)puVar26);\n    uVar13 = *puVar12;\n    puVar16 = local_3c;\n    puVar22 = param_1;\n    if (local_3c == (undefined1 *)0x0) {\n      *param_1 = uVar13;\n    }\n    else {\n      do {\n        puVar12 = puVar12 + 1;\n        *puVar22 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar12;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      param_1[(int)((int)param_5 + -1)] = uVar13;\n    }\n  }" if (parenthesized_expression "(param_5 != (undefined4 *)0x0)" ( (binary_expression "param_5 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    param_4 = (undefined4 *)(((uVar3 >> (uVar9 & 0x1f)) >> 1) * iVar25);\n    puVar12 = (undefined4 *)((int)param_4 + (int)puVar26);\n    uVar13 = *puVar12;\n    puVar16 = local_3c;\n    puVar22 = param_1;\n    if (local_3c == (undefined1 *)0x0) {\n      *param_1 = uVar13;\n    }\n    else {\n      do {\n        puVar12 = puVar12 + 1;\n        *puVar22 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar12;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      param_1[(int)((int)param_5 + -1)] = uVar13;\n    }\n  }" { (expression_statement "param_4 = (undefined4 *)(((uVar3 >> (uVar9 & 0x1f)) >> 1) * iVar25);" (assignment_expression "param_4 = (undefined4 *)(((uVar3 >> (uVar9 & 0x1f)) >> 1) * iVar25)" identifier = (cast_expression "(undefined4 *)(((uVar3 >> (uVar9 & 0x1f)) >> 1) * iVar25)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((uVar3 >> (uVar9 & 0x1f)) >> 1) * iVar25)" ( (binary_expression "((uVar3 >> (uVar9 & 0x1f)) >> 1) * iVar25" (parenthesized_expression "((uVar3 >> (uVar9 & 0x1f)) >> 1)" ( (binary_expression "(uVar3 >> (uVar9 & 0x1f)) >> 1" (parenthesized_expression "(uVar3 >> (uVar9 & 0x1f))" ( (binary_expression "uVar3 >> (uVar9 & 0x1f)" identifier >> (parenthesized_expression "(uVar9 & 0x1f)" ( (binary_expression "uVar9 & 0x1f" identifier & number_literal) ))) )) >> number_literal) )) * identifier) )))) ;) (expression_statement "puVar12 = (undefined4 *)((int)param_4 + (int)puVar26);" (assignment_expression "puVar12 = (undefined4 *)((int)param_4 + (int)puVar26)" identifier = (cast_expression "(undefined4 *)((int)param_4 + (int)puVar26)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + (int)puVar26)" ( (binary_expression "(int)param_4 + (int)puVar26" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "uVar13 = *puVar12;" (assignment_expression "uVar13 = *puVar12" identifier = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar16 = local_3c;" (assignment_expression "puVar16 = local_3c" identifier = identifier) ;) (expression_statement "puVar22 = param_1;" (assignment_expression "puVar22 = param_1" identifier = identifier) ;) (if_statement "if (local_3c == (undefined1 *)0x0) {\n      *param_1 = uVar13;\n    }\n    else {\n      do {\n        puVar12 = puVar12 + 1;\n        *puVar22 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar12;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      param_1[(int)((int)param_5 + -1)] = uVar13;\n    }" if (parenthesized_expression "(local_3c == (undefined1 *)0x0)" ( (binary_expression "local_3c == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *param_1 = uVar13;\n    }" { (expression_statement "*param_1 = uVar13;" (assignment_expression "*param_1 = uVar13" (pointer_expression "*param_1" * identifier) = identifier) ;) }) (else_clause "else {\n      do {\n        puVar12 = puVar12 + 1;\n        *puVar22 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar12;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      param_1[(int)((int)param_5 + -1)] = uVar13;\n    }" else (compound_statement "{\n      do {\n        puVar12 = puVar12 + 1;\n        *puVar22 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar12;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      param_1[(int)((int)param_5 + -1)] = uVar13;\n    }" { (do_statement "do {\n        puVar12 = puVar12 + 1;\n        *puVar22 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar12;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);" do (compound_statement "{\n        puVar12 = puVar12 + 1;\n        *puVar22 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar12;\n        puVar22 = puVar22 + 1;\n      }" { (expression_statement "puVar12 = puVar12 + 1;" (assignment_expression "puVar12 = puVar12 + 1" identifier = (binary_expression "puVar12 + 1" identifier + number_literal)) ;) (expression_statement "*puVar22 = uVar13;" (assignment_expression "*puVar22 = uVar13" (pointer_expression "*puVar22" * identifier) = identifier) ;) (expression_statement "puVar16 = puVar16 + -1;" (assignment_expression "puVar16 = puVar16 + -1" identifier = (binary_expression "puVar16 + -1" identifier + number_literal)) ;) (expression_statement "uVar13 = *puVar12;" (assignment_expression "uVar13 = *puVar12" identifier = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar22 = puVar22 + 1;" (assignment_expression "puVar22 = puVar22 + 1" identifier = (binary_expression "puVar22 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar16 != (undefined1 *)0x0)" ( (binary_expression "puVar16 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "param_1[(int)((int)param_5 + -1)] = uVar13;" (assignment_expression "param_1[(int)((int)param_5 + -1)] = uVar13" (subscript_expression "param_1[(int)((int)param_5 + -1)]" identifier [ (cast_expression "(int)((int)param_5 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)param_5 + -1)" ( (binary_expression "(int)param_5 + -1" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ]) = identifier) ;) }))) })) (expression_statement "puVar22 = (undefined4 *)((int)puVar7 + -1);" (assignment_expression "puVar22 = (undefined4 *)((int)puVar7 + -1)" identifier = (cast_expression "(undefined4 *)((int)puVar7 + -1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + -1)" ( (binary_expression "(int)puVar7 + -1" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) != 0) goto LAB_0007b010;" if (parenthesized_expression "((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) != 0)" ( (binary_expression "(param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) != 0" (parenthesized_expression "(param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1)" ( (binary_expression "param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1" (binary_expression "param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f)" (subscript_expression "param_3[(uint)puVar22 >> 5]" identifier [ (binary_expression "(uint)puVar22 >> 5" (cast_expression "(uint)puVar22" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ]) >> (parenthesized_expression "((uint)puVar22 & 0x1f)" ( (binary_expression "(uint)puVar22 & 0x1f" (cast_expression "(uint)puVar22" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0007b010;" goto statement_identifier ;)) (labeled_statement "LAB_0007afb0:\n  puVar12 = param_1;" statement_identifier : (expression_statement "puVar12 = param_1;" (assignment_expression "puVar12 = param_1" identifier = identifier) ;)) (expression_statement "puVar14 = param_5;" (assignment_expression "puVar14 = param_5" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_sqrlo_0009d354)(param_6);" (call_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)(param_6)" (parenthesized_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)" ( (pointer_expression "*(code *)PTR___gmpn_sqrlo_0009d354" * (cast_expression "(code *)PTR___gmpn_sqrlo_0009d354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6)" ( identifier ))) ;) (expression_statement "puVar7 = puVar22;" (assignment_expression "puVar7 = puVar22" identifier = identifier) ;) (expression_statement "puVar22 = local_30;" (assignment_expression "puVar22 = local_30" identifier = identifier) ;) (if_statement "if (param_5 != (undefined4 *)0x0) {\n    puVar12 = (undefined4 *)*param_6;\n    puVar21 = param_1;\n    puVar24 = param_1;\n    puVar10 = param_6;\n    for (puVar16 = local_3c; puVar16 != (undefined1 *)0x0; puVar16 = puVar16 + -1) {\n      puVar10 = puVar10 + 1;\n      *puVar24 = puVar12;\n      puVar12 = (undefined4 *)*puVar10;\n      puVar21 = param_1 + (int)((int)param_5 + -1);\n      puVar24 = puVar24 + 1;\n    }\n    *puVar21 = puVar12;\n  }" if (parenthesized_expression "(param_5 != (undefined4 *)0x0)" ( (binary_expression "param_5 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar12 = (undefined4 *)*param_6;\n    puVar21 = param_1;\n    puVar24 = param_1;\n    puVar10 = param_6;\n    for (puVar16 = local_3c; puVar16 != (undefined1 *)0x0; puVar16 = puVar16 + -1) {\n      puVar10 = puVar10 + 1;\n      *puVar24 = puVar12;\n      puVar12 = (undefined4 *)*puVar10;\n      puVar21 = param_1 + (int)((int)param_5 + -1);\n      puVar24 = puVar24 + 1;\n    }\n    *puVar21 = puVar12;\n  }" { (expression_statement "puVar12 = (undefined4 *)*param_6;" (assignment_expression "puVar12 = (undefined4 *)*param_6" identifier = (cast_expression "(undefined4 *)*param_6" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_6" * identifier))) ;) (expression_statement "puVar21 = param_1;" (assignment_expression "puVar21 = param_1" identifier = identifier) ;) (expression_statement "puVar24 = param_1;" (assignment_expression "puVar24 = param_1" identifier = identifier) ;) (expression_statement "puVar10 = param_6;" (assignment_expression "puVar10 = param_6" identifier = identifier) ;) (for_statement "for (puVar16 = local_3c; puVar16 != (undefined1 *)0x0; puVar16 = puVar16 + -1) {\n      puVar10 = puVar10 + 1;\n      *puVar24 = puVar12;\n      puVar12 = (undefined4 *)*puVar10;\n      puVar21 = param_1 + (int)((int)param_5 + -1);\n      puVar24 = puVar24 + 1;\n    }" for ( (assignment_expression "puVar16 = local_3c" identifier = identifier) ; (binary_expression "puVar16 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar16 = puVar16 + -1" identifier = (binary_expression "puVar16 + -1" identifier + number_literal)) ) (compound_statement "{\n      puVar10 = puVar10 + 1;\n      *puVar24 = puVar12;\n      puVar12 = (undefined4 *)*puVar10;\n      puVar21 = param_1 + (int)((int)param_5 + -1);\n      puVar24 = puVar24 + 1;\n    }" { (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) (expression_statement "*puVar24 = puVar12;" (assignment_expression "*puVar24 = puVar12" (pointer_expression "*puVar24" * identifier) = identifier) ;) (expression_statement "puVar12 = (undefined4 *)*puVar10;" (assignment_expression "puVar12 = (undefined4 *)*puVar10" identifier = (cast_expression "(undefined4 *)*puVar10" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar10" * identifier))) ;) (expression_statement "puVar21 = param_1 + (int)((int)param_5 + -1);" (assignment_expression "puVar21 = param_1 + (int)((int)param_5 + -1)" identifier = (binary_expression "param_1 + (int)((int)param_5 + -1)" identifier + (cast_expression "(int)((int)param_5 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)param_5 + -1)" ( (binary_expression "(int)param_5 + -1" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar24 = puVar24 + 1;" (assignment_expression "puVar24 = puVar24 + 1" identifier = (binary_expression "puVar24 + 1" identifier + number_literal)) ;) })) (expression_statement "*puVar21 = puVar12;" (assignment_expression "*puVar21 = puVar12" (pointer_expression "*puVar21" * identifier) = identifier) ;) })) (do_statement "do {\n    local_30 = puVar22;\n    if (puVar7 == (undefined4 *)0x0) {\n      if (puVar22 != (undefined4 *)0x0) {\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      uVar13 = 0x7b45c;\n      puVar27 = PTR___stack_chk_fail_0009d4d0;\n      (*(code *)PTR___stack_chk_fail_0009d4d0)();\n      uVar2 = *(uint *)(puVar30 + 0x10);\n      *(undefined4 **)(puVar30 + -0x24) = param_5;\n      *(undefined **)(puVar30 + -0x68) = puVar27 + 0x29be0;\n      *(undefined4 *)(puVar30 + -0x18) = 0;\n      *(undefined4 **)(puVar30 + -0x28) = puVar20;\n      *(undefined4 *)(puVar30 + -4) = uVar13;\n      *(undefined1 **)(puVar30 + -8) = auStack_70;\n      *(int *)(puVar30 + -0xc) = iVar25;\n      *(uint **)(puVar30 + -0x10) = param_3;\n      *(undefined4 **)(puVar30 + -0x14) = param_2;\n      *(undefined4 **)(puVar30 + -0x1c) = param_1;\n      *(undefined4 **)(puVar30 + -0x20) = param_6;\n      *(uint *)(puVar30 + -0x60) = uVar2;\n      *(undefined4 **)(puVar30 + -0x44) = puVar12;\n      *(undefined4 **)(puVar30 + -0x4c) = param_4;\n      piVar23 = *(int **)(puVar30 + 0x14);\n      iVar19 = *(int *)(puVar30 + 0x18);\n      *(undefined4 *)(puVar30 + -0x54) = *(undefined4 *)(puVar30 + 0x1c);\n      if (uVar2 < 3) {\n        iVar25 = 0;\n        *(undefined4 *)(puVar30 + -0x5c) = 1;\n        *(undefined4 *)(puVar30 + -0x50) = 2;\n        iVar4 = 1;\n        *(undefined4 *)(puVar30 + -0x58) = 1;\n      }\n      else {\n        if (uVar2 < 0x22) {\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }\n        else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }\n        *(int *)(puVar30 + -0x5c) = iVar4;\n        *(int *)(puVar30 + -0x50) = 1 << iVar4;\n        iVar25 = (1 << iVar4) + -2;\n      }\n      iVar11 = *piVar23;\n      iVar31 = iVar19 * 4;\n      puVar26 = *(undefined4 **)(puVar30 + -0x54);\n      puVar16 = (undefined1 *)(iVar19 + (int)puVar14);\n      puVar24 = puVar26 + iVar19;\n      uVar2 = (uint)*(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19));\n      puVar7 = puVar24 + iVar19;\n      puVar12 = puVar26 + iVar19 + 1;\n      *(undefined4 **)(puVar30 + -0x48) = puVar7 + (int)puVar16;\n      puVar21 = puVar26 + (iVar19 << iVar4);\n      *puVar24 = 1;\n      iVar4 = uVar2 * 2 - uVar2 * uVar2 * iVar11;\n      iVar4 = iVar4 * iVar4 * iVar11 + iVar4 * -2;\n      puVar20 = puVar24;\n      if (iVar19 == 0) {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c);\n        puVar12[iVar19] = 1;\n        *(undefined4 **)(puVar30 + -0x38) = puVar14;\n        *(undefined1 **)(puVar30 + -0x3c) = puVar16;\n        *(undefined4 **)(puVar30 + -0x40) = puVar7;\n        *(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar11 = *(int *)(puVar30 + -0x40);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        if (iVar18 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar6 = iVar28 + -1;\n        puVar7 = (undefined4 *)(iVar11 + iVar31);\n        uVar13 = **(undefined4 **)(puVar30 + -0x44);\n        if (iVar6 != 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          puVar12 = puVar7;\n          goto LAB_0007b70c;\n        }\n        uVar5 = *(undefined4 *)(puVar30 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n        *puVar7 = uVar13;\n        *(undefined4 *)(puVar30 + -0x70) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);\n        *(undefined4 **)(puVar30 + -0x2c) = puVar14;\n        *(undefined1 **)(puVar30 + -0x30) = puVar16;\n        *(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;\n        *(undefined4 **)(puVar30 + -0x38) = puVar7;\n        *(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;\n        uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);\n        uVar5 = *puVar24;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);\n        *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);\n        *(undefined4 *)(puVar30 + -0x3c) = uVar13;\n        **(undefined4 **)(puVar30 + -0x34) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);\n        iVar11 = iVar19 + -1;\n        puVar7 = *(undefined4 **)(puVar30 + -0x3c);\n        iVar28 = *(int *)(puVar30 + -0x68);\n        uVar13 = *(undefined4 *)(puVar30 + -0x38);\n        uVar17 = *(undefined4 *)(puVar30 + -0x30);\n        uVar5 = *puVar7;\n        uVar15 = *(undefined4 *)(puVar30 + -0x2c);\n        if (iVar11 == 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }\n        else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);\n        *(undefined4 *)(puVar30 + -0x38) = uVar15;\n        *(undefined4 *)(puVar30 + -0x3c) = uVar17;\n        *puVar26 = uVar5;\n        iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        if (iVar28 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }\n        else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }\n        iVar28 = *(int *)(puVar30 + -0x40);\n        uVar13 = *puVar26;\n        puVar7 = puVar24;\n        if (iVar28 == 0) {\n          *puVar24 = uVar13;\n        }\n        else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }\n      }\njoined_r0x0007b75c:\n      for (; iVar25 != 0; iVar25 = iVar25 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);\n        puVar20 = puVar20 + iVar19;\n        *(int *)(puVar30 + -0x70) = iVar4;\n        uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      uVar2 = *(uint *)(puVar30 + -0x5c);\n      if (*(uint *)(puVar30 + -0x60) < uVar2) {\n        (**(code **)(iVar11 + -0x7c20))\n                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438);\n        uVar2 = extraout_v1;\n      }\n      uVar2 = *(int *)(puVar30 + -0x60) - uVar2;\n      uVar9 = 0x20 - (uVar2 & 0x1f);\n      puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4);\n      uVar3 = *puVar8 >> (uVar2 & 0x1f);\n      if ((int)uVar9 < *(int *)(puVar30 + -0x58)) {\n        uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f));\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bac);\n      *(int *)(puVar30 + -0x44) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f));\n      *(uint *)(puVar30 + -0x70) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)) & uVar3;\n      (*UNRECOVERED_JUMPTABLE)\n                (puVar22,*(undefined4 *)(puVar30 + -0x54),iVar19,*(undefined4 *)(puVar30 + -0x50));\n      iVar25 = *(int *)(puVar30 + -0x68);\n      if (uVar2 != 0) {\n        *(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39);\n        do {\n          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n          if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);\n          *(undefined4 *)(puVar30 + -0x70) = uVar13;\n          (*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);\n          *(int *)(puVar30 + -0x70) = iVar4;\n          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n          iVar25 = *(int *)(puVar30 + -0x68);\n          uVar2 = uVar9;\n        } while (uVar9 != 0);\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7eb0);\n      if (iVar19 != 0) {\n        iVar11 = iVar19 + -1;\n        uVar13 = *puVar22;\n        puVar20 = puVar21;\n        puVar26 = puVar22;\n        if (iVar11 != 0) {\n          do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar20 = puVar21 + iVar19 + -1;\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58);\n        *puVar20 = uVar13;\n        (*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0);\n      }\n      *(int *)(puVar30 + -0x70) = iVar4;\n      uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar22,puVar21,piVar23,iVar19);\n      *(int *)(puVar30 + -0x70) = iVar19;\n      (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n      iVar25 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))(puVar21,puVar22,piVar23,iVar19);\n      UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7a70);\n      *(int *)(puVar30 + 0x10) = iVar19;\n                    /* WARNING: Could not recover jumptable at 0x0007bab0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*UNRECOVERED_JUMPTABLE)(iVar25 == 0,puVar22,puVar22,piVar23);\n      return;\n    }\n    puVar22 = (undefined4 *)((int)puVar7 + -1);\n    if ((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) == 0) goto LAB_0007afb0;\nLAB_0007b010:\n    if (puVar7 < local_44) {\n      uVar3 = ~(-1 << ((uint)puVar7 & 0x1f)) & *param_3;\n      uVar9 = 0;\n      if ((uVar3 & 0xff) == 0) goto LAB_0007b270;\nLAB_0007b040:\n      uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2;\n    }\n    else {\n      uVar9 = (int)puVar7 - (int)local_44;\n      uVar2 = 0x20 - (uVar9 & 0x1f);\n      uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f);\n      if ((int)uVar2 < (int)local_44) {\n        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));\n      }\n      uVar3 = uVar3 & local_4c;\n      puVar7 = local_44;\n      if ((uVar3 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar2 = uVar3 >> 8;\n      iVar19 = 0x1e;\n      if (uVar2 != 0) {\n        iVar19 = 6;\n      }\n      uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19;\n    }\n    param_2 = (undefined4 *)((int)puVar7 - uVar2);\n    puVar7 = param_2;\n    if (1 < (int)param_2) {\n      do {\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n        puVar20 = (undefined4 *)((int)puVar7 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5);\n        puVar7 = puVar20;\n      } while (1 < (int)puVar20);\n      param_2 = (undefined4 *)((uint)param_2 & 1);\n    }\n    if (param_2 == (undefined4 *)0x0) {\n      if (param_5 != (undefined4 *)0x0) {\n        uVar13 = *param_1;\n        puVar7 = param_6;\n        if (local_3c != (undefined1 *)0x0) {\n          puVar16 = local_3c;\n          puVar22 = param_6;\n          puVar12 = param_1 + 1;\n          do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);\n        }\n        *puVar7 = uVar13;\n      }\n    }\n    else {\n      (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n    }\n    puVar14 = (undefined4 *)(((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25 + (int)puVar26);\n    puVar12 = param_6;\n    param_4 = param_5;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(param_1);\n    puVar7 = (undefined4 *)(uVar2 + uVar9);\n    puVar22 = local_30;\n  } while( true );" do (compound_statement "{\n    local_30 = puVar22;\n    if (puVar7 == (undefined4 *)0x0) {\n      if (puVar22 != (undefined4 *)0x0) {\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      uVar13 = 0x7b45c;\n      puVar27 = PTR___stack_chk_fail_0009d4d0;\n      (*(code *)PTR___stack_chk_fail_0009d4d0)();\n      uVar2 = *(uint *)(puVar30 + 0x10);\n      *(undefined4 **)(puVar30 + -0x24) = param_5;\n      *(undefined **)(puVar30 + -0x68) = puVar27 + 0x29be0;\n      *(undefined4 *)(puVar30 + -0x18) = 0;\n      *(undefined4 **)(puVar30 + -0x28) = puVar20;\n      *(undefined4 *)(puVar30 + -4) = uVar13;\n      *(undefined1 **)(puVar30 + -8) = auStack_70;\n      *(int *)(puVar30 + -0xc) = iVar25;\n      *(uint **)(puVar30 + -0x10) = param_3;\n      *(undefined4 **)(puVar30 + -0x14) = param_2;\n      *(undefined4 **)(puVar30 + -0x1c) = param_1;\n      *(undefined4 **)(puVar30 + -0x20) = param_6;\n      *(uint *)(puVar30 + -0x60) = uVar2;\n      *(undefined4 **)(puVar30 + -0x44) = puVar12;\n      *(undefined4 **)(puVar30 + -0x4c) = param_4;\n      piVar23 = *(int **)(puVar30 + 0x14);\n      iVar19 = *(int *)(puVar30 + 0x18);\n      *(undefined4 *)(puVar30 + -0x54) = *(undefined4 *)(puVar30 + 0x1c);\n      if (uVar2 < 3) {\n        iVar25 = 0;\n        *(undefined4 *)(puVar30 + -0x5c) = 1;\n        *(undefined4 *)(puVar30 + -0x50) = 2;\n        iVar4 = 1;\n        *(undefined4 *)(puVar30 + -0x58) = 1;\n      }\n      else {\n        if (uVar2 < 0x22) {\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }\n        else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }\n        *(int *)(puVar30 + -0x5c) = iVar4;\n        *(int *)(puVar30 + -0x50) = 1 << iVar4;\n        iVar25 = (1 << iVar4) + -2;\n      }\n      iVar11 = *piVar23;\n      iVar31 = iVar19 * 4;\n      puVar26 = *(undefined4 **)(puVar30 + -0x54);\n      puVar16 = (undefined1 *)(iVar19 + (int)puVar14);\n      puVar24 = puVar26 + iVar19;\n      uVar2 = (uint)*(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19));\n      puVar7 = puVar24 + iVar19;\n      puVar12 = puVar26 + iVar19 + 1;\n      *(undefined4 **)(puVar30 + -0x48) = puVar7 + (int)puVar16;\n      puVar21 = puVar26 + (iVar19 << iVar4);\n      *puVar24 = 1;\n      iVar4 = uVar2 * 2 - uVar2 * uVar2 * iVar11;\n      iVar4 = iVar4 * iVar4 * iVar11 + iVar4 * -2;\n      puVar20 = puVar24;\n      if (iVar19 == 0) {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c);\n        puVar12[iVar19] = 1;\n        *(undefined4 **)(puVar30 + -0x38) = puVar14;\n        *(undefined1 **)(puVar30 + -0x3c) = puVar16;\n        *(undefined4 **)(puVar30 + -0x40) = puVar7;\n        *(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar11 = *(int *)(puVar30 + -0x40);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        if (iVar18 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar6 = iVar28 + -1;\n        puVar7 = (undefined4 *)(iVar11 + iVar31);\n        uVar13 = **(undefined4 **)(puVar30 + -0x44);\n        if (iVar6 != 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          puVar12 = puVar7;\n          goto LAB_0007b70c;\n        }\n        uVar5 = *(undefined4 *)(puVar30 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n        *puVar7 = uVar13;\n        *(undefined4 *)(puVar30 + -0x70) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);\n        *(undefined4 **)(puVar30 + -0x2c) = puVar14;\n        *(undefined1 **)(puVar30 + -0x30) = puVar16;\n        *(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;\n        *(undefined4 **)(puVar30 + -0x38) = puVar7;\n        *(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;\n        uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);\n        uVar5 = *puVar24;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);\n        *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);\n        *(undefined4 *)(puVar30 + -0x3c) = uVar13;\n        **(undefined4 **)(puVar30 + -0x34) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);\n        iVar11 = iVar19 + -1;\n        puVar7 = *(undefined4 **)(puVar30 + -0x3c);\n        iVar28 = *(int *)(puVar30 + -0x68);\n        uVar13 = *(undefined4 *)(puVar30 + -0x38);\n        uVar17 = *(undefined4 *)(puVar30 + -0x30);\n        uVar5 = *puVar7;\n        uVar15 = *(undefined4 *)(puVar30 + -0x2c);\n        if (iVar11 == 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }\n        else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);\n        *(undefined4 *)(puVar30 + -0x38) = uVar15;\n        *(undefined4 *)(puVar30 + -0x3c) = uVar17;\n        *puVar26 = uVar5;\n        iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        if (iVar28 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }\n        else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }\n        iVar28 = *(int *)(puVar30 + -0x40);\n        uVar13 = *puVar26;\n        puVar7 = puVar24;\n        if (iVar28 == 0) {\n          *puVar24 = uVar13;\n        }\n        else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }\n      }\njoined_r0x0007b75c:\n      for (; iVar25 != 0; iVar25 = iVar25 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);\n        puVar20 = puVar20 + iVar19;\n        *(int *)(puVar30 + -0x70) = iVar4;\n        uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      uVar2 = *(uint *)(puVar30 + -0x5c);\n      if (*(uint *)(puVar30 + -0x60) < uVar2) {\n        (**(code **)(iVar11 + -0x7c20))\n                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438);\n        uVar2 = extraout_v1;\n      }\n      uVar2 = *(int *)(puVar30 + -0x60) - uVar2;\n      uVar9 = 0x20 - (uVar2 & 0x1f);\n      puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4);\n      uVar3 = *puVar8 >> (uVar2 & 0x1f);\n      if ((int)uVar9 < *(int *)(puVar30 + -0x58)) {\n        uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f));\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bac);\n      *(int *)(puVar30 + -0x44) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f));\n      *(uint *)(puVar30 + -0x70) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)) & uVar3;\n      (*UNRECOVERED_JUMPTABLE)\n                (puVar22,*(undefined4 *)(puVar30 + -0x54),iVar19,*(undefined4 *)(puVar30 + -0x50));\n      iVar25 = *(int *)(puVar30 + -0x68);\n      if (uVar2 != 0) {\n        *(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39);\n        do {\n          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n          if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);\n          *(undefined4 *)(puVar30 + -0x70) = uVar13;\n          (*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);\n          *(int *)(puVar30 + -0x70) = iVar4;\n          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n          iVar25 = *(int *)(puVar30 + -0x68);\n          uVar2 = uVar9;\n        } while (uVar9 != 0);\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7eb0);\n      if (iVar19 != 0) {\n        iVar11 = iVar19 + -1;\n        uVar13 = *puVar22;\n        puVar20 = puVar21;\n        puVar26 = puVar22;\n        if (iVar11 != 0) {\n          do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar20 = puVar21 + iVar19 + -1;\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58);\n        *puVar20 = uVar13;\n        (*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0);\n      }\n      *(int *)(puVar30 + -0x70) = iVar4;\n      uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar22,puVar21,piVar23,iVar19);\n      *(int *)(puVar30 + -0x70) = iVar19;\n      (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n      iVar25 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))(puVar21,puVar22,piVar23,iVar19);\n      UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7a70);\n      *(int *)(puVar30 + 0x10) = iVar19;\n                    /* WARNING: Could not recover jumptable at 0x0007bab0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*UNRECOVERED_JUMPTABLE)(iVar25 == 0,puVar22,puVar22,piVar23);\n      return;\n    }\n    puVar22 = (undefined4 *)((int)puVar7 + -1);\n    if ((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) == 0) goto LAB_0007afb0;\nLAB_0007b010:\n    if (puVar7 < local_44) {\n      uVar3 = ~(-1 << ((uint)puVar7 & 0x1f)) & *param_3;\n      uVar9 = 0;\n      if ((uVar3 & 0xff) == 0) goto LAB_0007b270;\nLAB_0007b040:\n      uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2;\n    }\n    else {\n      uVar9 = (int)puVar7 - (int)local_44;\n      uVar2 = 0x20 - (uVar9 & 0x1f);\n      uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f);\n      if ((int)uVar2 < (int)local_44) {\n        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));\n      }\n      uVar3 = uVar3 & local_4c;\n      puVar7 = local_44;\n      if ((uVar3 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar2 = uVar3 >> 8;\n      iVar19 = 0x1e;\n      if (uVar2 != 0) {\n        iVar19 = 6;\n      }\n      uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19;\n    }\n    param_2 = (undefined4 *)((int)puVar7 - uVar2);\n    puVar7 = param_2;\n    if (1 < (int)param_2) {\n      do {\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n        puVar20 = (undefined4 *)((int)puVar7 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5);\n        puVar7 = puVar20;\n      } while (1 < (int)puVar20);\n      param_2 = (undefined4 *)((uint)param_2 & 1);\n    }\n    if (param_2 == (undefined4 *)0x0) {\n      if (param_5 != (undefined4 *)0x0) {\n        uVar13 = *param_1;\n        puVar7 = param_6;\n        if (local_3c != (undefined1 *)0x0) {\n          puVar16 = local_3c;\n          puVar22 = param_6;\n          puVar12 = param_1 + 1;\n          do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);\n        }\n        *puVar7 = uVar13;\n      }\n    }\n    else {\n      (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n    }\n    puVar14 = (undefined4 *)(((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25 + (int)puVar26);\n    puVar12 = param_6;\n    param_4 = param_5;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(param_1);\n    puVar7 = (undefined4 *)(uVar2 + uVar9);\n    puVar22 = local_30;\n  }" { (expression_statement "local_30 = puVar22;" (assignment_expression "local_30 = puVar22" identifier = identifier) ;) (if_statement "if (puVar7 == (undefined4 *)0x0) {\n      if (puVar22 != (undefined4 *)0x0) {\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      uVar13 = 0x7b45c;\n      puVar27 = PTR___stack_chk_fail_0009d4d0;\n      (*(code *)PTR___stack_chk_fail_0009d4d0)();\n      uVar2 = *(uint *)(puVar30 + 0x10);\n      *(undefined4 **)(puVar30 + -0x24) = param_5;\n      *(undefined **)(puVar30 + -0x68) = puVar27 + 0x29be0;\n      *(undefined4 *)(puVar30 + -0x18) = 0;\n      *(undefined4 **)(puVar30 + -0x28) = puVar20;\n      *(undefined4 *)(puVar30 + -4) = uVar13;\n      *(undefined1 **)(puVar30 + -8) = auStack_70;\n      *(int *)(puVar30 + -0xc) = iVar25;\n      *(uint **)(puVar30 + -0x10) = param_3;\n      *(undefined4 **)(puVar30 + -0x14) = param_2;\n      *(undefined4 **)(puVar30 + -0x1c) = param_1;\n      *(undefined4 **)(puVar30 + -0x20) = param_6;\n      *(uint *)(puVar30 + -0x60) = uVar2;\n      *(undefined4 **)(puVar30 + -0x44) = puVar12;\n      *(undefined4 **)(puVar30 + -0x4c) = param_4;\n      piVar23 = *(int **)(puVar30 + 0x14);\n      iVar19 = *(int *)(puVar30 + 0x18);\n      *(undefined4 *)(puVar30 + -0x54) = *(undefined4 *)(puVar30 + 0x1c);\n      if (uVar2 < 3) {\n        iVar25 = 0;\n        *(undefined4 *)(puVar30 + -0x5c) = 1;\n        *(undefined4 *)(puVar30 + -0x50) = 2;\n        iVar4 = 1;\n        *(undefined4 *)(puVar30 + -0x58) = 1;\n      }\n      else {\n        if (uVar2 < 0x22) {\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }\n        else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }\n        *(int *)(puVar30 + -0x5c) = iVar4;\n        *(int *)(puVar30 + -0x50) = 1 << iVar4;\n        iVar25 = (1 << iVar4) + -2;\n      }\n      iVar11 = *piVar23;\n      iVar31 = iVar19 * 4;\n      puVar26 = *(undefined4 **)(puVar30 + -0x54);\n      puVar16 = (undefined1 *)(iVar19 + (int)puVar14);\n      puVar24 = puVar26 + iVar19;\n      uVar2 = (uint)*(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19));\n      puVar7 = puVar24 + iVar19;\n      puVar12 = puVar26 + iVar19 + 1;\n      *(undefined4 **)(puVar30 + -0x48) = puVar7 + (int)puVar16;\n      puVar21 = puVar26 + (iVar19 << iVar4);\n      *puVar24 = 1;\n      iVar4 = uVar2 * 2 - uVar2 * uVar2 * iVar11;\n      iVar4 = iVar4 * iVar4 * iVar11 + iVar4 * -2;\n      puVar20 = puVar24;\n      if (iVar19 == 0) {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c);\n        puVar12[iVar19] = 1;\n        *(undefined4 **)(puVar30 + -0x38) = puVar14;\n        *(undefined1 **)(puVar30 + -0x3c) = puVar16;\n        *(undefined4 **)(puVar30 + -0x40) = puVar7;\n        *(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar11 = *(int *)(puVar30 + -0x40);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        if (iVar18 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar6 = iVar28 + -1;\n        puVar7 = (undefined4 *)(iVar11 + iVar31);\n        uVar13 = **(undefined4 **)(puVar30 + -0x44);\n        if (iVar6 != 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          puVar12 = puVar7;\n          goto LAB_0007b70c;\n        }\n        uVar5 = *(undefined4 *)(puVar30 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n        *puVar7 = uVar13;\n        *(undefined4 *)(puVar30 + -0x70) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);\n        *(undefined4 **)(puVar30 + -0x2c) = puVar14;\n        *(undefined1 **)(puVar30 + -0x30) = puVar16;\n        *(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;\n        *(undefined4 **)(puVar30 + -0x38) = puVar7;\n        *(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;\n        uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);\n        uVar5 = *puVar24;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);\n        *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);\n        *(undefined4 *)(puVar30 + -0x3c) = uVar13;\n        **(undefined4 **)(puVar30 + -0x34) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);\n        iVar11 = iVar19 + -1;\n        puVar7 = *(undefined4 **)(puVar30 + -0x3c);\n        iVar28 = *(int *)(puVar30 + -0x68);\n        uVar13 = *(undefined4 *)(puVar30 + -0x38);\n        uVar17 = *(undefined4 *)(puVar30 + -0x30);\n        uVar5 = *puVar7;\n        uVar15 = *(undefined4 *)(puVar30 + -0x2c);\n        if (iVar11 == 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }\n        else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);\n        *(undefined4 *)(puVar30 + -0x38) = uVar15;\n        *(undefined4 *)(puVar30 + -0x3c) = uVar17;\n        *puVar26 = uVar5;\n        iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        if (iVar28 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }\n        else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }\n        iVar28 = *(int *)(puVar30 + -0x40);\n        uVar13 = *puVar26;\n        puVar7 = puVar24;\n        if (iVar28 == 0) {\n          *puVar24 = uVar13;\n        }\n        else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }\n      }\njoined_r0x0007b75c:\n      for (; iVar25 != 0; iVar25 = iVar25 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);\n        puVar20 = puVar20 + iVar19;\n        *(int *)(puVar30 + -0x70) = iVar4;\n        uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      uVar2 = *(uint *)(puVar30 + -0x5c);\n      if (*(uint *)(puVar30 + -0x60) < uVar2) {\n        (**(code **)(iVar11 + -0x7c20))\n                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438);\n        uVar2 = extraout_v1;\n      }\n      uVar2 = *(int *)(puVar30 + -0x60) - uVar2;\n      uVar9 = 0x20 - (uVar2 & 0x1f);\n      puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4);\n      uVar3 = *puVar8 >> (uVar2 & 0x1f);\n      if ((int)uVar9 < *(int *)(puVar30 + -0x58)) {\n        uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f));\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bac);\n      *(int *)(puVar30 + -0x44) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f));\n      *(uint *)(puVar30 + -0x70) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)) & uVar3;\n      (*UNRECOVERED_JUMPTABLE)\n                (puVar22,*(undefined4 *)(puVar30 + -0x54),iVar19,*(undefined4 *)(puVar30 + -0x50));\n      iVar25 = *(int *)(puVar30 + -0x68);\n      if (uVar2 != 0) {\n        *(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39);\n        do {\n          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n          if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);\n          *(undefined4 *)(puVar30 + -0x70) = uVar13;\n          (*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);\n          *(int *)(puVar30 + -0x70) = iVar4;\n          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n          iVar25 = *(int *)(puVar30 + -0x68);\n          uVar2 = uVar9;\n        } while (uVar9 != 0);\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7eb0);\n      if (iVar19 != 0) {\n        iVar11 = iVar19 + -1;\n        uVar13 = *puVar22;\n        puVar20 = puVar21;\n        puVar26 = puVar22;\n        if (iVar11 != 0) {\n          do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar20 = puVar21 + iVar19 + -1;\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58);\n        *puVar20 = uVar13;\n        (*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0);\n      }\n      *(int *)(puVar30 + -0x70) = iVar4;\n      uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar22,puVar21,piVar23,iVar19);\n      *(int *)(puVar30 + -0x70) = iVar19;\n      (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n      iVar25 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))(puVar21,puVar22,piVar23,iVar19);\n      UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7a70);\n      *(int *)(puVar30 + 0x10) = iVar19;\n                    /* WARNING: Could not recover jumptable at 0x0007bab0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*UNRECOVERED_JUMPTABLE)(iVar25 == 0,puVar22,puVar22,piVar23);\n      return;\n    }" if (parenthesized_expression "(puVar7 == (undefined4 *)0x0)" ( (binary_expression "puVar7 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (puVar22 != (undefined4 *)0x0) {\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      uVar13 = 0x7b45c;\n      puVar27 = PTR___stack_chk_fail_0009d4d0;\n      (*(code *)PTR___stack_chk_fail_0009d4d0)();\n      uVar2 = *(uint *)(puVar30 + 0x10);\n      *(undefined4 **)(puVar30 + -0x24) = param_5;\n      *(undefined **)(puVar30 + -0x68) = puVar27 + 0x29be0;\n      *(undefined4 *)(puVar30 + -0x18) = 0;\n      *(undefined4 **)(puVar30 + -0x28) = puVar20;\n      *(undefined4 *)(puVar30 + -4) = uVar13;\n      *(undefined1 **)(puVar30 + -8) = auStack_70;\n      *(int *)(puVar30 + -0xc) = iVar25;\n      *(uint **)(puVar30 + -0x10) = param_3;\n      *(undefined4 **)(puVar30 + -0x14) = param_2;\n      *(undefined4 **)(puVar30 + -0x1c) = param_1;\n      *(undefined4 **)(puVar30 + -0x20) = param_6;\n      *(uint *)(puVar30 + -0x60) = uVar2;\n      *(undefined4 **)(puVar30 + -0x44) = puVar12;\n      *(undefined4 **)(puVar30 + -0x4c) = param_4;\n      piVar23 = *(int **)(puVar30 + 0x14);\n      iVar19 = *(int *)(puVar30 + 0x18);\n      *(undefined4 *)(puVar30 + -0x54) = *(undefined4 *)(puVar30 + 0x1c);\n      if (uVar2 < 3) {\n        iVar25 = 0;\n        *(undefined4 *)(puVar30 + -0x5c) = 1;\n        *(undefined4 *)(puVar30 + -0x50) = 2;\n        iVar4 = 1;\n        *(undefined4 *)(puVar30 + -0x58) = 1;\n      }\n      else {\n        if (uVar2 < 0x22) {\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }\n        else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }\n        *(int *)(puVar30 + -0x5c) = iVar4;\n        *(int *)(puVar30 + -0x50) = 1 << iVar4;\n        iVar25 = (1 << iVar4) + -2;\n      }\n      iVar11 = *piVar23;\n      iVar31 = iVar19 * 4;\n      puVar26 = *(undefined4 **)(puVar30 + -0x54);\n      puVar16 = (undefined1 *)(iVar19 + (int)puVar14);\n      puVar24 = puVar26 + iVar19;\n      uVar2 = (uint)*(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19));\n      puVar7 = puVar24 + iVar19;\n      puVar12 = puVar26 + iVar19 + 1;\n      *(undefined4 **)(puVar30 + -0x48) = puVar7 + (int)puVar16;\n      puVar21 = puVar26 + (iVar19 << iVar4);\n      *puVar24 = 1;\n      iVar4 = uVar2 * 2 - uVar2 * uVar2 * iVar11;\n      iVar4 = iVar4 * iVar4 * iVar11 + iVar4 * -2;\n      puVar20 = puVar24;\n      if (iVar19 == 0) {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c);\n        puVar12[iVar19] = 1;\n        *(undefined4 **)(puVar30 + -0x38) = puVar14;\n        *(undefined1 **)(puVar30 + -0x3c) = puVar16;\n        *(undefined4 **)(puVar30 + -0x40) = puVar7;\n        *(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar11 = *(int *)(puVar30 + -0x40);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        if (iVar18 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar6 = iVar28 + -1;\n        puVar7 = (undefined4 *)(iVar11 + iVar31);\n        uVar13 = **(undefined4 **)(puVar30 + -0x44);\n        if (iVar6 != 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          puVar12 = puVar7;\n          goto LAB_0007b70c;\n        }\n        uVar5 = *(undefined4 *)(puVar30 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n        *puVar7 = uVar13;\n        *(undefined4 *)(puVar30 + -0x70) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);\n        *(undefined4 **)(puVar30 + -0x2c) = puVar14;\n        *(undefined1 **)(puVar30 + -0x30) = puVar16;\n        *(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;\n        *(undefined4 **)(puVar30 + -0x38) = puVar7;\n        *(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;\n        uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);\n        uVar5 = *puVar24;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);\n        *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);\n        *(undefined4 *)(puVar30 + -0x3c) = uVar13;\n        **(undefined4 **)(puVar30 + -0x34) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);\n        iVar11 = iVar19 + -1;\n        puVar7 = *(undefined4 **)(puVar30 + -0x3c);\n        iVar28 = *(int *)(puVar30 + -0x68);\n        uVar13 = *(undefined4 *)(puVar30 + -0x38);\n        uVar17 = *(undefined4 *)(puVar30 + -0x30);\n        uVar5 = *puVar7;\n        uVar15 = *(undefined4 *)(puVar30 + -0x2c);\n        if (iVar11 == 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }\n        else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);\n        *(undefined4 *)(puVar30 + -0x38) = uVar15;\n        *(undefined4 *)(puVar30 + -0x3c) = uVar17;\n        *puVar26 = uVar5;\n        iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        if (iVar28 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }\n        else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }\n        iVar28 = *(int *)(puVar30 + -0x40);\n        uVar13 = *puVar26;\n        puVar7 = puVar24;\n        if (iVar28 == 0) {\n          *puVar24 = uVar13;\n        }\n        else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }\n      }\njoined_r0x0007b75c:\n      for (; iVar25 != 0; iVar25 = iVar25 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);\n        puVar20 = puVar20 + iVar19;\n        *(int *)(puVar30 + -0x70) = iVar4;\n        uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      uVar2 = *(uint *)(puVar30 + -0x5c);\n      if (*(uint *)(puVar30 + -0x60) < uVar2) {\n        (**(code **)(iVar11 + -0x7c20))\n                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438);\n        uVar2 = extraout_v1;\n      }\n      uVar2 = *(int *)(puVar30 + -0x60) - uVar2;\n      uVar9 = 0x20 - (uVar2 & 0x1f);\n      puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4);\n      uVar3 = *puVar8 >> (uVar2 & 0x1f);\n      if ((int)uVar9 < *(int *)(puVar30 + -0x58)) {\n        uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f));\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bac);\n      *(int *)(puVar30 + -0x44) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f));\n      *(uint *)(puVar30 + -0x70) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)) & uVar3;\n      (*UNRECOVERED_JUMPTABLE)\n                (puVar22,*(undefined4 *)(puVar30 + -0x54),iVar19,*(undefined4 *)(puVar30 + -0x50));\n      iVar25 = *(int *)(puVar30 + -0x68);\n      if (uVar2 != 0) {\n        *(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39);\n        do {\n          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n          if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);\n          *(undefined4 *)(puVar30 + -0x70) = uVar13;\n          (*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);\n          *(int *)(puVar30 + -0x70) = iVar4;\n          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n          iVar25 = *(int *)(puVar30 + -0x68);\n          uVar2 = uVar9;\n        } while (uVar9 != 0);\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7eb0);\n      if (iVar19 != 0) {\n        iVar11 = iVar19 + -1;\n        uVar13 = *puVar22;\n        puVar20 = puVar21;\n        puVar26 = puVar22;\n        if (iVar11 != 0) {\n          do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar20 = puVar21 + iVar19 + -1;\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58);\n        *puVar20 = uVar13;\n        (*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0);\n      }\n      *(int *)(puVar30 + -0x70) = iVar4;\n      uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar22,puVar21,piVar23,iVar19);\n      *(int *)(puVar30 + -0x70) = iVar19;\n      (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n      iVar25 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))(puVar21,puVar22,piVar23,iVar19);\n      UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7a70);\n      *(int *)(puVar30 + 0x10) = iVar19;\n                    /* WARNING: Could not recover jumptable at 0x0007bab0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*UNRECOVERED_JUMPTABLE)(iVar25 == 0,puVar22,puVar22,piVar23);\n      return;\n    }" { (if_statement "if (puVar22 != (undefined4 *)0x0) {\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }" if (parenthesized_expression "(puVar22 != (undefined4 *)0x0)" ( (binary_expression "puVar22 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }" { (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_0009d618" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_0009d618" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (if_statement "if (local_2c == *(int *)puVar1) {\n        return;\n      }" if (parenthesized_expression "(local_2c == *(int *)puVar1)" ( (binary_expression "local_2c == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "uVar13 = 0x7b45c;" (assignment_expression "uVar13 = 0x7b45c" identifier = number_literal) ;) (expression_statement "puVar27 = PTR___stack_chk_fail_0009d4d0;" (assignment_expression "puVar27 = PTR___stack_chk_fail_0009d4d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0009d4d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0009d4d0" * (cast_expression "(code *)PTR___stack_chk_fail_0009d4d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar2 = *(uint *)(puVar30 + 0x10);" (assignment_expression "uVar2 = *(uint *)(puVar30 + 0x10)" identifier = (pointer_expression "*(uint *)(puVar30 + 0x10)" * (cast_expression "(uint *)(puVar30 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + 0x10)" ( (binary_expression "puVar30 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x24) = param_5;" (assignment_expression "*(undefined4 **)(puVar30 + -0x24) = param_5" (pointer_expression "*(undefined4 **)(puVar30 + -0x24)" * (cast_expression "(undefined4 **)(puVar30 + -0x24)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x24)" ( (binary_expression "puVar30 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar30 + -0x68) = puVar27 + 0x29be0;" (assignment_expression "*(undefined **)(puVar30 + -0x68) = puVar27 + 0x29be0" (pointer_expression "*(undefined **)(puVar30 + -0x68)" * (cast_expression "(undefined **)(puVar30 + -0x68)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) = (binary_expression "puVar27 + 0x29be0" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x18) = 0;" (assignment_expression "*(undefined4 *)(puVar30 + -0x18) = 0" (pointer_expression "*(undefined4 *)(puVar30 + -0x18)" * (cast_expression "(undefined4 *)(puVar30 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x18)" ( (binary_expression "puVar30 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x28) = puVar20;" (assignment_expression "*(undefined4 **)(puVar30 + -0x28) = puVar20" (pointer_expression "*(undefined4 **)(puVar30 + -0x28)" * (cast_expression "(undefined4 **)(puVar30 + -0x28)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x28)" ( (binary_expression "puVar30 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar30 + -4) = uVar13;" (assignment_expression "*(undefined4 *)(puVar30 + -4) = uVar13" (pointer_expression "*(undefined4 *)(puVar30 + -4)" * (cast_expression "(undefined4 *)(puVar30 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -4)" ( (binary_expression "puVar30 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar30 + -8) = auStack_70;" (assignment_expression "*(undefined1 **)(puVar30 + -8) = auStack_70" (pointer_expression "*(undefined1 **)(puVar30 + -8)" * (cast_expression "(undefined1 **)(puVar30 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -8)" ( (binary_expression "puVar30 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar30 + -0xc) = iVar25;" (assignment_expression "*(int *)(puVar30 + -0xc) = iVar25" (pointer_expression "*(int *)(puVar30 + -0xc)" * (cast_expression "(int *)(puVar30 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0xc)" ( (binary_expression "puVar30 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar30 + -0x10) = param_3;" (assignment_expression "*(uint **)(puVar30 + -0x10) = param_3" (pointer_expression "*(uint **)(puVar30 + -0x10)" * (cast_expression "(uint **)(puVar30 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x10)" ( (binary_expression "puVar30 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x14) = param_2;" (assignment_expression "*(undefined4 **)(puVar30 + -0x14) = param_2" (pointer_expression "*(undefined4 **)(puVar30 + -0x14)" * (cast_expression "(undefined4 **)(puVar30 + -0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x14)" ( (binary_expression "puVar30 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x1c) = param_1;" (assignment_expression "*(undefined4 **)(puVar30 + -0x1c) = param_1" (pointer_expression "*(undefined4 **)(puVar30 + -0x1c)" * (cast_expression "(undefined4 **)(puVar30 + -0x1c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x1c)" ( (binary_expression "puVar30 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x20) = param_6;" (assignment_expression "*(undefined4 **)(puVar30 + -0x20) = param_6" (pointer_expression "*(undefined4 **)(puVar30 + -0x20)" * (cast_expression "(undefined4 **)(puVar30 + -0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x20)" ( (binary_expression "puVar30 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar30 + -0x60) = uVar2;" (assignment_expression "*(uint *)(puVar30 + -0x60) = uVar2" (pointer_expression "*(uint *)(puVar30 + -0x60)" * (cast_expression "(uint *)(puVar30 + -0x60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x60)" ( (binary_expression "puVar30 + -0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x44) = puVar12;" (assignment_expression "*(undefined4 **)(puVar30 + -0x44) = puVar12" (pointer_expression "*(undefined4 **)(puVar30 + -0x44)" * (cast_expression "(undefined4 **)(puVar30 + -0x44)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x44)" ( (binary_expression "puVar30 + -0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x4c) = param_4;" (assignment_expression "*(undefined4 **)(puVar30 + -0x4c) = param_4" (pointer_expression "*(undefined4 **)(puVar30 + -0x4c)" * (cast_expression "(undefined4 **)(puVar30 + -0x4c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x4c)" ( (binary_expression "puVar30 + -0x4c" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar23 = *(int **)(puVar30 + 0x14);" (assignment_expression "piVar23 = *(int **)(puVar30 + 0x14)" identifier = (pointer_expression "*(int **)(puVar30 + 0x14)" * (cast_expression "(int **)(puVar30 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + 0x14)" ( (binary_expression "puVar30 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar19 = *(int *)(puVar30 + 0x18);" (assignment_expression "iVar19 = *(int *)(puVar30 + 0x18)" identifier = (pointer_expression "*(int *)(puVar30 + 0x18)" * (cast_expression "(int *)(puVar30 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + 0x18)" ( (binary_expression "puVar30 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x54) = *(undefined4 *)(puVar30 + 0x1c);" (assignment_expression "*(undefined4 *)(puVar30 + -0x54) = *(undefined4 *)(puVar30 + 0x1c)" (pointer_expression "*(undefined4 *)(puVar30 + -0x54)" * (cast_expression "(undefined4 *)(puVar30 + -0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar30 + 0x1c)" * (cast_expression "(undefined4 *)(puVar30 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + 0x1c)" ( (binary_expression "puVar30 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (uVar2 < 3) {\n        iVar25 = 0;\n        *(undefined4 *)(puVar30 + -0x5c) = 1;\n        *(undefined4 *)(puVar30 + -0x50) = 2;\n        iVar4 = 1;\n        *(undefined4 *)(puVar30 + -0x58) = 1;\n      }\n      else {\n        if (uVar2 < 0x22) {\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }\n        else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }\n        *(int *)(puVar30 + -0x5c) = iVar4;\n        *(int *)(puVar30 + -0x50) = 1 << iVar4;\n        iVar25 = (1 << iVar4) + -2;\n      }" if (parenthesized_expression "(uVar2 < 3)" ( (binary_expression "uVar2 < 3" identifier < number_literal) )) (compound_statement "{\n        iVar25 = 0;\n        *(undefined4 *)(puVar30 + -0x5c) = 1;\n        *(undefined4 *)(puVar30 + -0x50) = 2;\n        iVar4 = 1;\n        *(undefined4 *)(puVar30 + -0x58) = 1;\n      }" { (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x5c) = 1;" (assignment_expression "*(undefined4 *)(puVar30 + -0x5c) = 1" (pointer_expression "*(undefined4 *)(puVar30 + -0x5c)" * (cast_expression "(undefined4 *)(puVar30 + -0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x5c)" ( (binary_expression "puVar30 + -0x5c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x50) = 2;" (assignment_expression "*(undefined4 *)(puVar30 + -0x50) = 2" (pointer_expression "*(undefined4 *)(puVar30 + -0x50)" * (cast_expression "(undefined4 *)(puVar30 + -0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x58) = 1;" (assignment_expression "*(undefined4 *)(puVar30 + -0x58) = 1" (pointer_expression "*(undefined4 *)(puVar30 + -0x58)" * (cast_expression "(undefined4 *)(puVar30 + -0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x58)" ( (binary_expression "puVar30 + -0x58" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        if (uVar2 < 0x22) {\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }\n        else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }\n        *(int *)(puVar30 + -0x5c) = iVar4;\n        *(int *)(puVar30 + -0x50) = 1 << iVar4;\n        iVar25 = (1 << iVar4) + -2;\n      }" else (compound_statement "{\n        if (uVar2 < 0x22) {\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }\n        else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }\n        *(int *)(puVar30 + -0x5c) = iVar4;\n        *(int *)(puVar30 + -0x50) = 1 << iVar4;\n        iVar25 = (1 << iVar4) + -2;\n      }" { (if_statement "if (uVar2 < 0x22) {\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }\n        else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }" if (parenthesized_expression "(uVar2 < 0x22)" ( (binary_expression "uVar2 < 0x22" identifier < number_literal) )) (compound_statement "{\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }" { (expression_statement "*(undefined4 *)(puVar30 + -0x58) = 2;" (assignment_expression "*(undefined4 *)(puVar30 + -0x58) = 2" (pointer_expression "*(undefined4 *)(puVar30 + -0x58)" * (cast_expression "(undefined4 *)(puVar30 + -0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x58)" ( (binary_expression "puVar30 + -0x58" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }) (else_clause "else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }" else (if_statement "if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }" if (parenthesized_expression "(uVar2 < 0x61)" ( (binary_expression "uVar2 < 0x61" identifier < number_literal) )) (compound_statement "{\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }" { (expression_statement "*(undefined4 *)(puVar30 + -0x58) = 3;" (assignment_expression "*(undefined4 *)(puVar30 + -0x58) = 3" (pointer_expression "*(undefined4 *)(puVar30 + -0x58)" * (cast_expression "(undefined4 *)(puVar30 + -0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x58)" ( (binary_expression "puVar30 + -0x58" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar4 = 3;" (assignment_expression "iVar4 = 3" identifier = number_literal) ;) }) (else_clause "else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }" else (if_statement "if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }" if (parenthesized_expression "(uVar2 < 0x30d)" ( (binary_expression "uVar2 < 0x30d" identifier < number_literal) )) (compound_statement "{\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }" { (expression_statement "*(undefined4 *)(puVar30 + -0x58) = 4;" (assignment_expression "*(undefined4 *)(puVar30 + -0x58) = 4" (pointer_expression "*(undefined4 *)(puVar30 + -0x58)" * (cast_expression "(undefined4 *)(puVar30 + -0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x58)" ( (binary_expression "puVar30 + -0x58" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar4 = 4;" (assignment_expression "iVar4 = 4" identifier = number_literal) ;) }) (else_clause "else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }" else (compound_statement "{\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }" { (expression_statement "iVar4 = 6;" (assignment_expression "iVar4 = 6" identifier = number_literal) ;) (if_statement "if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }" if (parenthesized_expression "(uVar2 < 0xab6)" ( (binary_expression "uVar2 < 0xab6" identifier < number_literal) )) (compound_statement "{\n            iVar4 = 5;\n          }" { (expression_statement "iVar4 = 5;" (assignment_expression "iVar4 = 5" identifier = number_literal) ;) })) (expression_statement "*(int *)(puVar30 + -0x58) = iVar4;" (assignment_expression "*(int *)(puVar30 + -0x58) = iVar4" (pointer_expression "*(int *)(puVar30 + -0x58)" * (cast_expression "(int *)(puVar30 + -0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x58)" ( (binary_expression "puVar30 + -0x58" identifier + number_literal) )))) = identifier) ;) }))))))) (expression_statement "*(int *)(puVar30 + -0x5c) = iVar4;" (assignment_expression "*(int *)(puVar30 + -0x5c) = iVar4" (pointer_expression "*(int *)(puVar30 + -0x5c)" * (cast_expression "(int *)(puVar30 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x5c)" ( (binary_expression "puVar30 + -0x5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar30 + -0x50) = 1 << iVar4;" (assignment_expression "*(int *)(puVar30 + -0x50) = 1 << iVar4" (pointer_expression "*(int *)(puVar30 + -0x50)" * (cast_expression "(int *)(puVar30 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) )))) = (binary_expression "1 << iVar4" number_literal << identifier)) ;) (expression_statement "iVar25 = (1 << iVar4) + -2;" (assignment_expression "iVar25 = (1 << iVar4) + -2" identifier = (binary_expression "(1 << iVar4) + -2" (parenthesized_expression "(1 << iVar4)" ( (binary_expression "1 << iVar4" number_literal << identifier) )) + number_literal)) ;) }))) (expression_statement "iVar11 = *piVar23;" (assignment_expression "iVar11 = *piVar23" identifier = (pointer_expression "*piVar23" * identifier)) ;) (expression_statement "iVar31 = iVar19 * 4;" (assignment_expression "iVar31 = iVar19 * 4" identifier = (binary_expression "iVar19 * 4" identifier * number_literal)) ;) (expression_statement "puVar26 = *(undefined4 **)(puVar30 + -0x54);" (assignment_expression "puVar26 = *(undefined4 **)(puVar30 + -0x54)" identifier = (pointer_expression "*(undefined4 **)(puVar30 + -0x54)" * (cast_expression "(undefined4 **)(puVar30 + -0x54)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = (undefined1 *)(iVar19 + (int)puVar14);" (assignment_expression "puVar16 = (undefined1 *)(iVar19 + (int)puVar14)" identifier = (cast_expression "(undefined1 *)(iVar19 + (int)puVar14)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + (int)puVar14)" ( (binary_expression "iVar19 + (int)puVar14" identifier + (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar24 = puVar26 + iVar19;" (assignment_expression "puVar24 = puVar26 + iVar19" identifier = (binary_expression "puVar26 + iVar19" identifier + identifier)) ;) (expression_statement "uVar2 = (uint)*(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19));" (assignment_expression "uVar2 = (uint)*(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19))" identifier = (binary_expression "(uint)*(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19))" ( (binary_expression "*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19)" (pointer_expression "*(int *)(puVar27 + 0x21ea4)" * (cast_expression "(int *)(puVar27 + 0x21ea4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + 0x21ea4)" ( (binary_expression "puVar27 + 0x21ea4" identifier + number_literal) )))) + (parenthesized_expression "((uint)(iVar11 << 0x18) >> 0x19)" ( (binary_expression "(uint)(iVar11 << 0x18) >> 0x19" (call_expression "(uint)(iVar11 << 0x18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar11 << 0x18)" ( (binary_expression "iVar11 << 0x18" identifier << number_literal) ))) >> number_literal) ))) ))))) ;) (expression_statement "puVar7 = puVar24 + iVar19;" (assignment_expression "puVar7 = puVar24 + iVar19" identifier = (binary_expression "puVar24 + iVar19" identifier + identifier)) ;) (expression_statement "puVar12 = puVar26 + iVar19 + 1;" (assignment_expression "puVar12 = puVar26 + iVar19 + 1" identifier = (binary_expression "puVar26 + iVar19 + 1" (binary_expression "puVar26 + iVar19" identifier + identifier) + number_literal)) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x48) = puVar7 + (int)puVar16;" (assignment_expression "*(undefined4 **)(puVar30 + -0x48) = puVar7 + (int)puVar16" (pointer_expression "*(undefined4 **)(puVar30 + -0x48)" * (cast_expression "(undefined4 **)(puVar30 + -0x48)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x48)" ( (binary_expression "puVar30 + -0x48" identifier + number_literal) )))) = (binary_expression "puVar7 + (int)puVar16" identifier + (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar21 = puVar26 + (iVar19 << iVar4);" (assignment_expression "puVar21 = puVar26 + (iVar19 << iVar4)" identifier = (binary_expression "puVar26 + (iVar19 << iVar4)" identifier + (parenthesized_expression "(iVar19 << iVar4)" ( (binary_expression "iVar19 << iVar4" identifier << identifier) )))) ;) (expression_statement "*puVar24 = 1;" (assignment_expression "*puVar24 = 1" (pointer_expression "*puVar24" * identifier) = number_literal) ;) (expression_statement "iVar4 = uVar2 * 2 - uVar2 * uVar2 * iVar11;" (assignment_expression "iVar4 = uVar2 * 2 - uVar2 * uVar2 * iVar11" identifier = (binary_expression "uVar2 * 2 - uVar2 * uVar2 * iVar11" (binary_expression "uVar2 * 2" identifier * number_literal) - (binary_expression "uVar2 * uVar2 * iVar11" (binary_expression "uVar2 * uVar2" identifier * identifier) * identifier))) ;) (expression_statement "iVar4 = iVar4 * iVar4 * iVar11 + iVar4 * -2;" (assignment_expression "iVar4 = iVar4 * iVar4 * iVar11 + iVar4 * -2" identifier = (binary_expression "iVar4 * iVar4 * iVar11 + iVar4 * -2" (binary_expression "iVar4 * iVar4 * iVar11" (binary_expression "iVar4 * iVar4" identifier * identifier) * identifier) + (binary_expression "iVar4 * -2" identifier * number_literal))) ;) (expression_statement "puVar20 = puVar24;" (assignment_expression "puVar20 = puVar24" identifier = identifier) ;) (if_statement "if (iVar19 == 0) {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c);\n        puVar12[iVar19] = 1;\n        *(undefined4 **)(puVar30 + -0x38) = puVar14;\n        *(undefined1 **)(puVar30 + -0x3c) = puVar16;\n        *(undefined4 **)(puVar30 + -0x40) = puVar7;\n        *(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar11 = *(int *)(puVar30 + -0x40);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        if (iVar18 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar6 = iVar28 + -1;\n        puVar7 = (undefined4 *)(iVar11 + iVar31);\n        uVar13 = **(undefined4 **)(puVar30 + -0x44);\n        if (iVar6 != 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          puVar12 = puVar7;\n          goto LAB_0007b70c;\n        }\n        uVar5 = *(undefined4 *)(puVar30 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n        *puVar7 = uVar13;\n        *(undefined4 *)(puVar30 + -0x70) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);\n        *(undefined4 **)(puVar30 + -0x2c) = puVar14;\n        *(undefined1 **)(puVar30 + -0x30) = puVar16;\n        *(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;\n        *(undefined4 **)(puVar30 + -0x38) = puVar7;\n        *(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;\n        uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);\n        uVar5 = *puVar24;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);\n        *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);\n        *(undefined4 *)(puVar30 + -0x3c) = uVar13;\n        **(undefined4 **)(puVar30 + -0x34) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);\n        iVar11 = iVar19 + -1;\n        puVar7 = *(undefined4 **)(puVar30 + -0x3c);\n        iVar28 = *(int *)(puVar30 + -0x68);\n        uVar13 = *(undefined4 *)(puVar30 + -0x38);\n        uVar17 = *(undefined4 *)(puVar30 + -0x30);\n        uVar5 = *puVar7;\n        uVar15 = *(undefined4 *)(puVar30 + -0x2c);\n        if (iVar11 == 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }\n        else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);\n        *(undefined4 *)(puVar30 + -0x38) = uVar15;\n        *(undefined4 *)(puVar30 + -0x3c) = uVar17;\n        *puVar26 = uVar5;\n        iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        if (iVar28 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }\n        else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }\n        iVar28 = *(int *)(puVar30 + -0x40);\n        uVar13 = *puVar26;\n        puVar7 = puVar24;\n        if (iVar28 == 0) {\n          *puVar24 = uVar13;\n        }\n        else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }\n      }" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (compound_statement "{\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c);\n        puVar12[iVar19] = 1;\n        *(undefined4 **)(puVar30 + -0x38) = puVar14;\n        *(undefined1 **)(puVar30 + -0x3c) = puVar16;\n        *(undefined4 **)(puVar30 + -0x40) = puVar7;\n        *(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar11 = *(int *)(puVar30 + -0x40);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        if (iVar18 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar6 = iVar28 + -1;\n        puVar7 = (undefined4 *)(iVar11 + iVar31);\n        uVar13 = **(undefined4 **)(puVar30 + -0x44);\n        if (iVar6 != 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          puVar12 = puVar7;\n          goto LAB_0007b70c;\n        }\n        uVar5 = *(undefined4 *)(puVar30 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n        *puVar7 = uVar13;\n        *(undefined4 *)(puVar30 + -0x70) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }" { (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c)" identifier = (pointer_expression "*(code **)(puVar27 + 0x2211c)" * (cast_expression "(code **)(puVar27 + 0x2211c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + 0x2211c)" ( (binary_expression "puVar27 + 0x2211c" identifier + number_literal) ))))) ;) (expression_statement "puVar12[iVar19] = 1;" (assignment_expression "puVar12[iVar19] = 1" (subscript_expression "puVar12[iVar19]" identifier [ identifier ]) = number_literal) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x38) = puVar14;" (assignment_expression "*(undefined4 **)(puVar30 + -0x38) = puVar14" (pointer_expression "*(undefined4 **)(puVar30 + -0x38)" * (cast_expression "(undefined4 **)(puVar30 + -0x38)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x38)" ( (binary_expression "puVar30 + -0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar30 + -0x3c) = puVar16;" (assignment_expression "*(undefined1 **)(puVar30 + -0x3c) = puVar16" (pointer_expression "*(undefined1 **)(puVar30 + -0x3c)" * (cast_expression "(undefined1 **)(puVar30 + -0x3c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x3c)" ( (binary_expression "puVar30 + -0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x40) = puVar7;" (assignment_expression "*(undefined4 **)(puVar30 + -0x40) = puVar7" (pointer_expression "*(undefined4 **)(puVar30 + -0x40)" * (cast_expression "(undefined4 **)(puVar30 + -0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x40)" ( (binary_expression "puVar30 + -0x40" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1;" (assignment_expression "*(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1" (pointer_expression "*(undefined4 **)(puVar30 + -0x70)" * (cast_expression "(undefined4 **)(puVar30 + -0x70)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = (binary_expression "puVar12 + iVar19 + 1" (binary_expression "puVar12 + iVar19" identifier + identifier) + number_literal)) ;) (expression_statement "(*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0);" (call_expression "(*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(puVar12,1,piVar23,0)" ( identifier , number_literal , identifier , number_literal ))) ;) (expression_statement "iVar18 = *(int *)(puVar30 + -0x3c);" (assignment_expression "iVar18 = *(int *)(puVar30 + -0x3c)" identifier = (pointer_expression "*(int *)(puVar30 + -0x3c)" * (cast_expression "(int *)(puVar30 + -0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x3c)" ( (binary_expression "puVar30 + -0x3c" identifier + number_literal) ))))) ;) (expression_statement "iVar29 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar29 = *(int *)(puVar30 + -0x68)" identifier = (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(puVar30 + -0x40);" (assignment_expression "iVar11 = *(int *)(puVar30 + -0x40)" identifier = (pointer_expression "*(int *)(puVar30 + -0x40)" * (cast_expression "(int *)(puVar30 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x40)" ( (binary_expression "puVar30 + -0x40" identifier + number_literal) ))))) ;) (expression_statement "iVar28 = *(int *)(puVar30 + -0x38);" (assignment_expression "iVar28 = *(int *)(puVar30 + -0x38)" identifier = (pointer_expression "*(int *)(puVar30 + -0x38)" * (cast_expression "(int *)(puVar30 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x38)" ( (binary_expression "puVar30 + -0x38" identifier + number_literal) ))))) ;) (if_statement "if (iVar18 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          goto joined_r0x0007b75c;\n        }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          goto joined_r0x0007b75c;\n        }" { (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4)" identifier = (pointer_expression "*(code **)(iVar29 + -0x7ac4)" * (cast_expression "(code **)(iVar29 + -0x7ac4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar29 + -0x7ac4)" ( (binary_expression "iVar29 + -0x7ac4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);" (assignment_expression "*(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48)" (pointer_expression "*(undefined4 *)(puVar30 + -0x70)" * (cast_expression "(undefined4 *)(puVar30 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar30 + -0x48)" * (cast_expression "(undefined4 *)(puVar30 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x48)" ( (binary_expression "puVar30 + -0x48" identifier + number_literal) ))))) ;) (expression_statement "(*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);" (call_expression "(*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(iVar11,0,piVar23,0)" ( identifier , number_literal , identifier , number_literal ))) ;) (expression_statement "iVar11 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar11 = *(int *)(puVar30 + -0x68)" identifier = (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) ))))) ;) (goto_statement "goto joined_r0x0007b75c;" goto statement_identifier ;) })) (expression_statement "iVar6 = iVar28 + -1;" (assignment_expression "iVar6 = iVar28 + -1" identifier = (binary_expression "iVar28 + -1" identifier + number_literal)) ;) (expression_statement "puVar7 = (undefined4 *)(iVar11 + iVar31);" (assignment_expression "puVar7 = (undefined4 *)(iVar11 + iVar31)" identifier = (cast_expression "(undefined4 *)(iVar11 + iVar31)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + iVar31)" ( (binary_expression "iVar11 + iVar31" identifier + identifier) )))) ;) (expression_statement "uVar13 = **(undefined4 **)(puVar30 + -0x44);" (assignment_expression "uVar13 = **(undefined4 **)(puVar30 + -0x44)" identifier = (pointer_expression "**(undefined4 **)(puVar30 + -0x44)" * (pointer_expression "*(undefined4 **)(puVar30 + -0x44)" * (cast_expression "(undefined4 **)(puVar30 + -0x44)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x44)" ( (binary_expression "puVar30 + -0x44" identifier + number_literal) )))))) ;) (if_statement "if (iVar6 != 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          puVar12 = puVar7;\n          goto LAB_0007b70c;\n        }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          puVar12 = puVar7;\n          goto LAB_0007b70c;\n        }" { (expression_statement "puVar26 = *(undefined4 **)(puVar30 + -0x44);" (assignment_expression "puVar26 = *(undefined4 **)(puVar30 + -0x44)" identifier = (pointer_expression "*(undefined4 **)(puVar30 + -0x44)" * (cast_expression "(undefined4 **)(puVar30 + -0x44)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x44)" ( (binary_expression "puVar30 + -0x44" identifier + number_literal) ))))) ;) (expression_statement "puVar12 = puVar7;" (assignment_expression "puVar12 = puVar7" identifier = identifier) ;) (goto_statement "goto LAB_0007b70c;" goto statement_identifier ;) })) (expression_statement "uVar5 = *(undefined4 *)(puVar30 + -0x48);" (assignment_expression "uVar5 = *(undefined4 *)(puVar30 + -0x48)" identifier = (pointer_expression "*(undefined4 *)(puVar30 + -0x48)" * (cast_expression "(undefined4 *)(puVar30 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x48)" ( (binary_expression "puVar30 + -0x48" identifier + number_literal) ))))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4)" identifier = (pointer_expression "*(code **)(iVar29 + -0x7ac4)" * (cast_expression "(code **)(iVar29 + -0x7ac4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar29 + -0x7ac4)" ( (binary_expression "iVar29 + -0x7ac4" identifier + number_literal) ))))) ;) (expression_statement "*puVar7 = uVar13;" (assignment_expression "*puVar7 = uVar13" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x70) = uVar5;" (assignment_expression "*(undefined4 *)(puVar30 + -0x70) = uVar5" (pointer_expression "*(undefined4 *)(puVar30 + -0x70)" * (cast_expression "(undefined4 *)(puVar30 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0);" (call_expression "(*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(iVar11,iVar18,piVar23,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "iVar11 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar11 = *(int *)(puVar30 + -0x68)" identifier = (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);\n        *(undefined4 **)(puVar30 + -0x2c) = puVar14;\n        *(undefined1 **)(puVar30 + -0x30) = puVar16;\n        *(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;\n        *(undefined4 **)(puVar30 + -0x38) = puVar7;\n        *(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;\n        uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);\n        uVar5 = *puVar24;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);\n        *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);\n        *(undefined4 *)(puVar30 + -0x3c) = uVar13;\n        **(undefined4 **)(puVar30 + -0x34) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);\n        iVar11 = iVar19 + -1;\n        puVar7 = *(undefined4 **)(puVar30 + -0x3c);\n        iVar28 = *(int *)(puVar30 + -0x68);\n        uVar13 = *(undefined4 *)(puVar30 + -0x38);\n        uVar17 = *(undefined4 *)(puVar30 + -0x30);\n        uVar5 = *puVar7;\n        uVar15 = *(undefined4 *)(puVar30 + -0x2c);\n        if (iVar11 == 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }\n        else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);\n        *(undefined4 *)(puVar30 + -0x38) = uVar15;\n        *(undefined4 *)(puVar30 + -0x3c) = uVar17;\n        *puVar26 = uVar5;\n        iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        if (iVar28 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }\n        else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }\n        iVar28 = *(int *)(puVar30 + -0x40);\n        uVar13 = *puVar26;\n        puVar7 = puVar24;\n        if (iVar28 == 0) {\n          *puVar24 = uVar13;\n        }\n        else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }\n      }" else (compound_statement "{\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);\n        *(undefined4 **)(puVar30 + -0x2c) = puVar14;\n        *(undefined1 **)(puVar30 + -0x30) = puVar16;\n        *(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;\n        *(undefined4 **)(puVar30 + -0x38) = puVar7;\n        *(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;\n        uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);\n        uVar5 = *puVar24;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);\n        *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);\n        *(undefined4 *)(puVar30 + -0x3c) = uVar13;\n        **(undefined4 **)(puVar30 + -0x34) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);\n        iVar11 = iVar19 + -1;\n        puVar7 = *(undefined4 **)(puVar30 + -0x3c);\n        iVar28 = *(int *)(puVar30 + -0x68);\n        uVar13 = *(undefined4 *)(puVar30 + -0x38);\n        uVar17 = *(undefined4 *)(puVar30 + -0x30);\n        uVar5 = *puVar7;\n        uVar15 = *(undefined4 *)(puVar30 + -0x2c);\n        if (iVar11 == 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }\n        else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);\n        *(undefined4 *)(puVar30 + -0x38) = uVar15;\n        *(undefined4 *)(puVar30 + -0x3c) = uVar17;\n        *puVar26 = uVar5;\n        iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        if (iVar28 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }\n        else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }\n        iVar28 = *(int *)(puVar30 + -0x40);\n        uVar13 = *puVar26;\n        puVar7 = puVar24;\n        if (iVar28 == 0) {\n          *puVar24 = uVar13;\n        }\n        else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }\n      }" { (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88)" identifier = (pointer_expression "*(code **)(puVar27 + 0x21e88)" * (cast_expression "(code **)(puVar27 + 0x21e88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + 0x21e88)" ( (binary_expression "puVar27 + 0x21e88" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x2c) = puVar14;" (assignment_expression "*(undefined4 **)(puVar30 + -0x2c) = puVar14" (pointer_expression "*(undefined4 **)(puVar30 + -0x2c)" * (cast_expression "(undefined4 **)(puVar30 + -0x2c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x2c)" ( (binary_expression "puVar30 + -0x2c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar30 + -0x30) = puVar16;" (assignment_expression "*(undefined1 **)(puVar30 + -0x30) = puVar16" (pointer_expression "*(undefined1 **)(puVar30 + -0x30)" * (cast_expression "(undefined1 **)(puVar30 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x30)" ( (binary_expression "puVar30 + -0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;" (assignment_expression "*(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19" (pointer_expression "*(undefined4 **)(puVar30 + -0x34)" * (cast_expression "(undefined4 **)(puVar30 + -0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x34)" ( (binary_expression "puVar30 + -0x34" identifier + number_literal) )))) = (binary_expression "puVar12 + iVar19" identifier + identifier)) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x38) = puVar7;" (assignment_expression "*(undefined4 **)(puVar30 + -0x38) = puVar7" (pointer_expression "*(undefined4 **)(puVar30 + -0x38)" * (cast_expression "(undefined4 **)(puVar30 + -0x38)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x38)" ( (binary_expression "puVar30 + -0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;" (assignment_expression "*(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1" (pointer_expression "*(undefined4 **)(puVar30 + -0x3c)" * (cast_expression "(undefined4 **)(puVar30 + -0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x3c)" ( (binary_expression "puVar30 + -0x3c" identifier + number_literal) )))) = (binary_expression "puVar12 + iVar19 + 1" (binary_expression "puVar12 + iVar19" identifier + identifier) + number_literal)) ;) (expression_statement "uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);" (assignment_expression "uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(puVar12,0,iVar31)" ( identifier , number_literal , identifier )))) ;) (expression_statement "uVar5 = *puVar24;" (assignment_expression "uVar5 = *puVar24" identifier = (pointer_expression "*puVar24" * identifier)) ;) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4)" identifier = (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4)" * (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7ac4)" ( (binary_expression "*(int *)(puVar30 + -0x68) + -0x7ac4" (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(int *)(puVar30 + -0x40) = iVar19 + -1;" (assignment_expression "*(int *)(puVar30 + -0x40) = iVar19 + -1" (pointer_expression "*(int *)(puVar30 + -0x40)" * (cast_expression "(int *)(puVar30 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x40)" ( (binary_expression "puVar30 + -0x40" identifier + number_literal) )))) = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);" (assignment_expression "*(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c)" (pointer_expression "*(undefined4 *)(puVar30 + -0x70)" * (cast_expression "(undefined4 *)(puVar30 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar30 + -0x3c)" * (cast_expression "(undefined4 *)(puVar30 + -0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x3c)" ( (binary_expression "puVar30 + -0x3c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x3c) = uVar13;" (assignment_expression "*(undefined4 *)(puVar30 + -0x3c) = uVar13" (pointer_expression "*(undefined4 *)(puVar30 + -0x3c)" * (cast_expression "(undefined4 *)(puVar30 + -0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x3c)" ( (binary_expression "puVar30 + -0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "**(undefined4 **)(puVar30 + -0x34) = uVar5;" (assignment_expression "**(undefined4 **)(puVar30 + -0x34) = uVar5" (pointer_expression "**(undefined4 **)(puVar30 + -0x34)" * (pointer_expression "*(undefined4 **)(puVar30 + -0x34)" * (cast_expression "(undefined4 **)(puVar30 + -0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x34)" ( (binary_expression "puVar30 + -0x34" identifier + number_literal) ))))) = identifier) ;) (expression_statement "(*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);" (call_expression "(*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(uVar13,iVar19 + 1,piVar23,iVar19)" ( identifier , (binary_expression "iVar19 + 1" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "iVar11 = iVar19 + -1;" (assignment_expression "iVar11 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "puVar7 = *(undefined4 **)(puVar30 + -0x3c);" (assignment_expression "puVar7 = *(undefined4 **)(puVar30 + -0x3c)" identifier = (pointer_expression "*(undefined4 **)(puVar30 + -0x3c)" * (cast_expression "(undefined4 **)(puVar30 + -0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x3c)" ( (binary_expression "puVar30 + -0x3c" identifier + number_literal) ))))) ;) (expression_statement "iVar28 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar28 = *(int *)(puVar30 + -0x68)" identifier = (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = *(undefined4 *)(puVar30 + -0x38);" (assignment_expression "uVar13 = *(undefined4 *)(puVar30 + -0x38)" identifier = (pointer_expression "*(undefined4 *)(puVar30 + -0x38)" * (cast_expression "(undefined4 *)(puVar30 + -0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x38)" ( (binary_expression "puVar30 + -0x38" identifier + number_literal) ))))) ;) (expression_statement "uVar17 = *(undefined4 *)(puVar30 + -0x30);" (assignment_expression "uVar17 = *(undefined4 *)(puVar30 + -0x30)" identifier = (pointer_expression "*(undefined4 *)(puVar30 + -0x30)" * (cast_expression "(undefined4 *)(puVar30 + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x30)" ( (binary_expression "puVar30 + -0x30" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = *puVar7;" (assignment_expression "uVar5 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "uVar15 = *(undefined4 *)(puVar30 + -0x2c);" (assignment_expression "uVar15 = *(undefined4 *)(puVar30 + -0x2c)" identifier = (pointer_expression "*(undefined4 *)(puVar30 + -0x2c)" * (cast_expression "(undefined4 *)(puVar30 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x2c)" ( (binary_expression "puVar30 + -0x2c" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 == 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }\n        else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }" { (expression_statement "puVar26 = *(undefined4 **)(puVar30 + -0x54);" (assignment_expression "puVar26 = *(undefined4 **)(puVar30 + -0x54)" identifier = (pointer_expression "*(undefined4 **)(puVar30 + -0x54)" * (cast_expression "(undefined4 **)(puVar30 + -0x54)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }" else (compound_statement "{\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }" { (do_statement "do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);" do (compound_statement "{\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          }" { (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) (expression_statement "*puVar26 = uVar5;" (assignment_expression "*puVar26 = uVar5" (pointer_expression "*puVar26" * identifier) = identifier) ;) (expression_statement "iVar11 = iVar11 + -1;" (assignment_expression "iVar11 = iVar11 + -1" identifier = (binary_expression "iVar11 + -1" identifier + number_literal)) ;) (expression_statement "uVar5 = *puVar7;" (assignment_expression "uVar5 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "puVar26 = puVar26 + 1;" (assignment_expression "puVar26 = puVar26 + 1" identifier = (binary_expression "puVar26 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) ;) (expression_statement "puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);" (assignment_expression "puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4)" identifier = (cast_expression "(undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar30 + -0x54) + iVar31 + -4)" ( (binary_expression "*(int *)(puVar30 + -0x54) + iVar31 + -4" (binary_expression "*(int *)(puVar30 + -0x54) + iVar31" (pointer_expression "*(int *)(puVar30 + -0x54)" * (cast_expression "(int *)(puVar30 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) )))) + identifier) + number_literal) )))) ;) }))) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58)" identifier = (pointer_expression "*(code **)(iVar28 + -0x7d58)" * (cast_expression "(code **)(iVar28 + -0x7d58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7d58)" ( (binary_expression "iVar28 + -0x7d58" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x38) = uVar15;" (assignment_expression "*(undefined4 *)(puVar30 + -0x38) = uVar15" (pointer_expression "*(undefined4 *)(puVar30 + -0x38)" * (cast_expression "(undefined4 *)(puVar30 + -0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x38)" ( (binary_expression "puVar30 + -0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x3c) = uVar17;" (assignment_expression "*(undefined4 *)(puVar30 + -0x3c) = uVar17" (pointer_expression "*(undefined4 *)(puVar30 + -0x3c)" * (cast_expression "(undefined4 *)(puVar30 + -0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x3c)" ( (binary_expression "puVar30 + -0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*puVar26 = uVar5;" (assignment_expression "*puVar26 = uVar5" (pointer_expression "*puVar26" * identifier) = identifier) ;) (expression_statement "iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);" (assignment_expression "iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(uVar13,0,iVar31)" ( identifier , number_literal , identifier )))) ;) (expression_statement "iVar28 = *(int *)(puVar30 + -0x38);" (assignment_expression "iVar28 = *(int *)(puVar30 + -0x38)" identifier = (pointer_expression "*(int *)(puVar30 + -0x38)" * (cast_expression "(int *)(puVar30 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x38)" ( (binary_expression "puVar30 + -0x38" identifier + number_literal) ))))) ;) (expression_statement "iVar29 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar29 = *(int *)(puVar30 + -0x68)" identifier = (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = *(int *)(puVar30 + -0x3c);" (assignment_expression "iVar18 = *(int *)(puVar30 + -0x3c)" identifier = (pointer_expression "*(int *)(puVar30 + -0x3c)" * (cast_expression "(int *)(puVar30 + -0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x3c)" ( (binary_expression "puVar30 + -0x3c" identifier + number_literal) ))))) ;) (if_statement "if (iVar28 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }\n        else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (compound_statement "{\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }" { (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4)" identifier = (pointer_expression "*(code **)(iVar29 + -0x7ac4)" * (cast_expression "(code **)(iVar29 + -0x7ac4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar29 + -0x7ac4)" ( (binary_expression "iVar29 + -0x7ac4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);" (assignment_expression "*(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48)" (pointer_expression "*(undefined4 *)(puVar30 + -0x70)" * (cast_expression "(undefined4 *)(puVar30 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar30 + -0x48)" * (cast_expression "(undefined4 *)(puVar30 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x48)" ( (binary_expression "puVar30 + -0x48" identifier + number_literal) ))))) ;) (expression_statement "iVar28 = iVar18;" (assignment_expression "iVar28 = iVar18" identifier = identifier) ;) (labeled_statement "LAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;" statement_identifier : (expression_statement "*(int *)(puVar30 + -0x48) = iVar11;" (assignment_expression "*(int *)(puVar30 + -0x48) = iVar11" (pointer_expression "*(int *)(puVar30 + -0x48)" * (cast_expression "(int *)(puVar30 + -0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x48)" ( (binary_expression "puVar30 + -0x48" identifier + number_literal) )))) = identifier) ;)) (expression_statement "(*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);" (call_expression "(*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(iVar11,iVar18,piVar23,iVar28)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar11 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar11 = *(int *)(puVar30 + -0x68)" identifier = (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) ))))) ;) (expression_statement "puVar26 = *(undefined4 **)(puVar30 + -0x48);" (assignment_expression "puVar26 = *(undefined4 **)(puVar30 + -0x48)" identifier = (pointer_expression "*(undefined4 **)(puVar30 + -0x48)" * (cast_expression "(undefined4 **)(puVar30 + -0x48)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x48)" ( (binary_expression "puVar30 + -0x48" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }" else (compound_statement "{\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }" { (expression_statement "puVar26 = *(undefined4 **)(puVar30 + -0x44);" (assignment_expression "puVar26 = *(undefined4 **)(puVar30 + -0x44)" identifier = (pointer_expression "*(undefined4 **)(puVar30 + -0x44)" * (cast_expression "(undefined4 **)(puVar30 + -0x44)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x44)" ( (binary_expression "puVar30 + -0x44" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = iVar28 + -1;" (assignment_expression "iVar6 = iVar28 + -1" identifier = (binary_expression "iVar28 + -1" identifier + number_literal)) ;) (expression_statement "puVar7 = (undefined4 *)(iVar11 + iVar31);" (assignment_expression "puVar7 = (undefined4 *)(iVar11 + iVar31)" identifier = (cast_expression "(undefined4 *)(iVar11 + iVar31)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + iVar31)" ( (binary_expression "iVar11 + iVar31" identifier + identifier) )))) ;) (expression_statement "uVar13 = *puVar26;" (assignment_expression "uVar13 = *puVar26" identifier = (pointer_expression "*puVar26" * identifier)) ;) (expression_statement "puVar12 = puVar7;" (assignment_expression "puVar12 = puVar7" identifier = identifier) ;) (if_statement "if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }" { (expression_statement "uVar5 = *(undefined4 *)(puVar30 + -0x48);" (assignment_expression "uVar5 = *(undefined4 *)(puVar30 + -0x48)" identifier = (pointer_expression "*(undefined4 *)(puVar30 + -0x48)" * (cast_expression "(undefined4 *)(puVar30 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x48)" ( (binary_expression "puVar30 + -0x48" identifier + number_literal) ))))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4)" identifier = (pointer_expression "*(code **)(iVar29 + -0x7ac4)" * (cast_expression "(code **)(iVar29 + -0x7ac4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar29 + -0x7ac4)" ( (binary_expression "iVar29 + -0x7ac4" identifier + number_literal) ))))) ;) (expression_statement "*puVar7 = uVar13;" (assignment_expression "*puVar7 = uVar13" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x70) = uVar5;" (assignment_expression "*(undefined4 *)(puVar30 + -0x70) = uVar5" (pointer_expression "*(undefined4 *)(puVar30 + -0x70)" * (cast_expression "(undefined4 *)(puVar30 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar28 = iVar19;" (assignment_expression "iVar28 = iVar19" identifier = identifier) ;) (goto_statement "goto LAB_0007bb8c;" goto statement_identifier ;) })) (labeled_statement "LAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);" statement_identifier : (do_statement "do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);" do (compound_statement "{\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          }" { (expression_statement "puVar26 = puVar26 + 1;" (assignment_expression "puVar26 = puVar26 + 1" identifier = (binary_expression "puVar26 + 1" identifier + number_literal)) ;) (expression_statement "*puVar7 = uVar13;" (assignment_expression "*puVar7 = uVar13" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "uVar13 = *puVar26;" (assignment_expression "uVar13 = *puVar26" identifier = (pointer_expression "*puVar26" * identifier)) ;) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) ;)) (expression_statement "uVar5 = *(undefined4 *)(puVar30 + -0x48);" (assignment_expression "uVar5 = *(undefined4 *)(puVar30 + -0x48)" identifier = (pointer_expression "*(undefined4 *)(puVar30 + -0x48)" * (cast_expression "(undefined4 *)(puVar30 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x48)" ( (binary_expression "puVar30 + -0x48" identifier + number_literal) ))))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4)" identifier = (pointer_expression "*(code **)(iVar29 + -0x7ac4)" * (cast_expression "(code **)(iVar29 + -0x7ac4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar29 + -0x7ac4)" ( (binary_expression "iVar29 + -0x7ac4" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar30 + -0x48) = iVar11;" (assignment_expression "*(int *)(puVar30 + -0x48) = iVar11" (pointer_expression "*(int *)(puVar30 + -0x48)" * (cast_expression "(int *)(puVar30 + -0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x48)" ( (binary_expression "puVar30 + -0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x70) = uVar5;" (assignment_expression "*(undefined4 *)(puVar30 + -0x70) = uVar5" (pointer_expression "*(undefined4 *)(puVar30 + -0x70)" * (cast_expression "(undefined4 *)(puVar30 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar12[iVar28 + -1] = uVar13;" (assignment_expression "puVar12[iVar28 + -1] = uVar13" (subscript_expression "puVar12[iVar28 + -1]" identifier [ (binary_expression "iVar28 + -1" identifier + number_literal) ]) = identifier) ;) (expression_statement "(*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);" (call_expression "(*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(iVar11,iVar18,piVar23,iVar19)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar11 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar11 = *(int *)(puVar30 + -0x68)" identifier = (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) ))))) ;) (if_statement "if (iVar19 == 0) goto joined_r0x0007b75c;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (goto_statement "goto joined_r0x0007b75c;" goto statement_identifier ;)) (expression_statement "puVar26 = *(undefined4 **)(puVar30 + -0x48);" (assignment_expression "puVar26 = *(undefined4 **)(puVar30 + -0x48)" identifier = (pointer_expression "*(undefined4 **)(puVar30 + -0x48)" * (cast_expression "(undefined4 **)(puVar30 + -0x48)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x48)" ( (binary_expression "puVar30 + -0x48" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar30 + -0x40) = iVar19 + -1;" (assignment_expression "*(int *)(puVar30 + -0x40) = iVar19 + -1" (pointer_expression "*(int *)(puVar30 + -0x40)" * (cast_expression "(int *)(puVar30 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x40)" ( (binary_expression "puVar30 + -0x40" identifier + number_literal) )))) = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) }))) (expression_statement "iVar28 = *(int *)(puVar30 + -0x40);" (assignment_expression "iVar28 = *(int *)(puVar30 + -0x40)" identifier = (pointer_expression "*(int *)(puVar30 + -0x40)" * (cast_expression "(int *)(puVar30 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x40)" ( (binary_expression "puVar30 + -0x40" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = *puVar26;" (assignment_expression "uVar13 = *puVar26" identifier = (pointer_expression "*puVar26" * identifier)) ;) (expression_statement "puVar7 = puVar24;" (assignment_expression "puVar7 = puVar24" identifier = identifier) ;) (if_statement "if (iVar28 == 0) {\n          *puVar24 = uVar13;\n        }\n        else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (compound_statement "{\n          *puVar24 = uVar13;\n        }" { (expression_statement "*puVar24 = uVar13;" (assignment_expression "*puVar24 = uVar13" (pointer_expression "*puVar24" * identifier) = identifier) ;) }) (else_clause "else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }" else (compound_statement "{\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }" { (do_statement "do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);" do (compound_statement "{\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          }" { (expression_statement "puVar26 = puVar26 + 1;" (assignment_expression "puVar26 = puVar26 + 1" identifier = (binary_expression "puVar26 + 1" identifier + number_literal)) ;) (expression_statement "*puVar7 = uVar13;" (assignment_expression "*puVar7 = uVar13" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "iVar28 = iVar28 + -1;" (assignment_expression "iVar28 = iVar28 + -1" identifier = (binary_expression "iVar28 + -1" identifier + number_literal)) ;) (expression_statement "uVar13 = *puVar26;" (assignment_expression "uVar13 = *puVar26" identifier = (pointer_expression "*puVar26" * identifier)) ;) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar28 != 0)" ( (binary_expression "iVar28 != 0" identifier != number_literal) )) ;) (expression_statement "puVar24[*(int *)(puVar30 + -0x40)] = uVar13;" (assignment_expression "puVar24[*(int *)(puVar30 + -0x40)] = uVar13" (subscript_expression "puVar24[*(int *)(puVar30 + -0x40)]" identifier [ (pointer_expression "*(int *)(puVar30 + -0x40)" * (cast_expression "(int *)(puVar30 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x40)" ( (binary_expression "puVar30 + -0x40" identifier + number_literal) )))) ]) = identifier) ;) }))) }))) (labeled_statement "joined_r0x0007b75c:\n      for (; iVar25 != 0; iVar25 = iVar25 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);\n        puVar20 = puVar20 + iVar19;\n        *(int *)(puVar30 + -0x70) = iVar4;\n        uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }" statement_identifier : (for_statement "for (; iVar25 != 0; iVar25 = iVar25 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);\n        puVar20 = puVar20 + iVar19;\n        *(int *)(puVar30 + -0x70) = iVar4;\n        uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }" for ( ; (binary_expression "iVar25 != 0" identifier != number_literal) ; (assignment_expression "iVar25 = iVar25 + -1" identifier = (binary_expression "iVar25 + -1" identifier + number_literal)) ) (compound_statement "{\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);\n        puVar20 = puVar20 + iVar19;\n        *(int *)(puVar30 + -0x70) = iVar4;\n        uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }" { (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0)" identifier = (pointer_expression "*(code **)(iVar11 + -0x7bd0)" * (cast_expression "(code **)(iVar11 + -0x7bd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7bd0)" ( (binary_expression "iVar11 + -0x7bd0" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar30 + -0x70) = iVar19;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar19" (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);" (call_expression "(*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(puVar21,puVar20,iVar19,puVar24)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar20 = puVar20 + iVar19;" (assignment_expression "puVar20 = puVar20 + iVar19" identifier = (binary_expression "puVar20 + iVar19" identifier + identifier)) ;) (expression_statement "*(int *)(puVar30 + -0x70) = iVar4;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar4" (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);" (assignment_expression "uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19)" identifier = (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))" ( (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" * (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" * (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7eb0)" ( (binary_expression "*(int *)(puVar30 + -0x68) + -0x7eb0" (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar20,puVar21,piVar23,iVar19)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "*(int *)(puVar30 + -0x70) = iVar19;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar19" (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);" (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))" ( (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" * (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" * (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7a70)" ( (binary_expression "*(int *)(puVar30 + -0x68) + -0x7a70" (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar13,puVar20,puVar20,piVar23)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar11 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar11 = *(int *)(puVar30 + -0x68)" identifier = (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) ))))) ;) }))) (expression_statement "uVar2 = *(uint *)(puVar30 + -0x5c);" (assignment_expression "uVar2 = *(uint *)(puVar30 + -0x5c)" identifier = (pointer_expression "*(uint *)(puVar30 + -0x5c)" * (cast_expression "(uint *)(puVar30 + -0x5c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x5c)" ( (binary_expression "puVar30 + -0x5c" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(puVar30 + -0x60) < uVar2) {\n        (**(code **)(iVar11 + -0x7c20))\n                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438);\n        uVar2 = extraout_v1;\n      }" if (parenthesized_expression "(*(uint *)(puVar30 + -0x60) < uVar2)" ( (binary_expression "*(uint *)(puVar30 + -0x60) < uVar2" (pointer_expression "*(uint *)(puVar30 + -0x60)" * (cast_expression "(uint *)(puVar30 + -0x60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x60)" ( (binary_expression "puVar30 + -0x60" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n        (**(code **)(iVar11 + -0x7c20))\n                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438);\n        uVar2 = extraout_v1;\n      }" { (expression_statement "(**(code **)(iVar11 + -0x7c20))\n                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438);" (call_expression "(**(code **)(iVar11 + -0x7c20))\n                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438)" (parenthesized_expression "(**(code **)(iVar11 + -0x7c20))" ( (pointer_expression "**(code **)(iVar11 + -0x7c20)" * (pointer_expression "*(code **)(iVar11 + -0x7c20)" * (cast_expression "(code **)(iVar11 + -0x7c20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7c20)" ( (binary_expression "iVar11 + -0x7c20" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438)" ( (binary_expression "*(int *)(iVar11 + -0x7fd4) + 0x544c" (pointer_expression "*(int *)(iVar11 + -0x7fd4)" * (cast_expression "(int *)(iVar11 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -0x7fd4)" ( (binary_expression "iVar11 + -0x7fd4" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(iVar11 + -0x7fd4) + 0x5438" (pointer_expression "*(int *)(iVar11 + -0x7fd4)" * (cast_expression "(int *)(iVar11 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -0x7fd4)" ( (binary_expression "iVar11 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "uVar2 = extraout_v1;" (assignment_expression "uVar2 = extraout_v1" identifier = identifier) ;) })) (expression_statement "uVar2 = *(int *)(puVar30 + -0x60) - uVar2;" (assignment_expression "uVar2 = *(int *)(puVar30 + -0x60) - uVar2" identifier = (binary_expression "*(int *)(puVar30 + -0x60) - uVar2" (pointer_expression "*(int *)(puVar30 + -0x60)" * (cast_expression "(int *)(puVar30 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x60)" ( (binary_expression "puVar30 + -0x60" identifier + number_literal) )))) - identifier)) ;) (expression_statement "uVar9 = 0x20 - (uVar2 & 0x1f);" (assignment_expression "uVar9 = 0x20 - (uVar2 & 0x1f)" identifier = (binary_expression "0x20 - (uVar2 & 0x1f)" number_literal - (parenthesized_expression "(uVar2 & 0x1f)" ( (binary_expression "uVar2 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4);" (assignment_expression "puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4)" identifier = (cast_expression "(uint *)(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4)" ( (binary_expression "*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4" (pointer_expression "*(int *)(puVar30 + -0x4c)" * (cast_expression "(int *)(puVar30 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x4c)" ( (binary_expression "puVar30 + -0x4c" identifier + number_literal) )))) + (binary_expression "(uVar2 >> 5) * 4" (parenthesized_expression "(uVar2 >> 5)" ( (binary_expression "uVar2 >> 5" identifier >> number_literal) )) * number_literal)) )))) ;) (expression_statement "uVar3 = *puVar8 >> (uVar2 & 0x1f);" (assignment_expression "uVar3 = *puVar8 >> (uVar2 & 0x1f)" identifier = (binary_expression "*puVar8 >> (uVar2 & 0x1f)" (pointer_expression "*puVar8" * identifier) >> (parenthesized_expression "(uVar2 & 0x1f)" ( (binary_expression "uVar2 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if ((int)uVar9 < *(int *)(puVar30 + -0x58)) {\n        uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f));\n      }" if (parenthesized_expression "((int)uVar9 < *(int *)(puVar30 + -0x58))" ( (binary_expression "(int)uVar9 < *(int *)(puVar30 + -0x58)" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(puVar30 + -0x58)" * (cast_expression "(int *)(puVar30 + -0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x58)" ( (binary_expression "puVar30 + -0x58" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f));\n      }" { (expression_statement "uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f));" (assignment_expression "uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f))" identifier = (binary_expression "uVar3 + (puVar8[1] << (uVar9 & 0x1f))" identifier + (parenthesized_expression "(puVar8[1] << (uVar9 & 0x1f))" ( (binary_expression "puVar8[1] << (uVar9 & 0x1f)" (subscript_expression "puVar8[1]" identifier [ number_literal ]) << (parenthesized_expression "(uVar9 & 0x1f)" ( (binary_expression "uVar9 & 0x1f" identifier & number_literal) ))) )))) ;) })) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bac);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bac)" identifier = (pointer_expression "*(code **)(iVar11 + -0x7bac)" * (cast_expression "(code **)(iVar11 + -0x7bac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7bac)" ( (binary_expression "iVar11 + -0x7bac" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar30 + -0x44) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f));" (assignment_expression "*(int *)(puVar30 + -0x44) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f))" (pointer_expression "*(int *)(puVar30 + -0x44)" * (cast_expression "(int *)(puVar30 + -0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x44)" ( (binary_expression "puVar30 + -0x44" identifier + number_literal) )))) = (unary_expression "~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f))" ~ (parenthesized_expression "(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f))" ( (binary_expression "-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)" number_literal << (parenthesized_expression "(*(uint *)(puVar30 + -0x58) & 0x1f)" ( (binary_expression "*(uint *)(puVar30 + -0x58) & 0x1f" (pointer_expression "*(uint *)(puVar30 + -0x58)" * (cast_expression "(uint *)(puVar30 + -0x58)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x58)" ( (binary_expression "puVar30 + -0x58" identifier + number_literal) )))) & number_literal) ))) )))) ;) (expression_statement "*(uint *)(puVar30 + -0x70) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)) & uVar3;" (assignment_expression "*(uint *)(puVar30 + -0x70) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)) & uVar3" (pointer_expression "*(uint *)(puVar30 + -0x70)" * (cast_expression "(uint *)(puVar30 + -0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = (binary_expression "~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)) & uVar3" (unary_expression "~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f))" ~ (parenthesized_expression "(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f))" ( (binary_expression "-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)" number_literal << (parenthesized_expression "(*(uint *)(puVar30 + -0x58) & 0x1f)" ( (binary_expression "*(uint *)(puVar30 + -0x58) & 0x1f" (pointer_expression "*(uint *)(puVar30 + -0x58)" * (cast_expression "(uint *)(puVar30 + -0x58)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x58)" ( (binary_expression "puVar30 + -0x58" identifier + number_literal) )))) & number_literal) ))) ))) & identifier)) ;) (expression_statement "(*UNRECOVERED_JUMPTABLE)\n                (puVar22,*(undefined4 *)(puVar30 + -0x54),iVar19,*(undefined4 *)(puVar30 + -0x50));" (call_expression "(*UNRECOVERED_JUMPTABLE)\n                (puVar22,*(undefined4 *)(puVar30 + -0x54),iVar19,*(undefined4 *)(puVar30 + -0x50))" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(puVar22,*(undefined4 *)(puVar30 + -0x54),iVar19,*(undefined4 *)(puVar30 + -0x50))" ( identifier , (pointer_expression "*(undefined4 *)(puVar30 + -0x54)" * (cast_expression "(undefined4 *)(puVar30 + -0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) )))) , identifier , (pointer_expression "*(undefined4 *)(puVar30 + -0x50)" * (cast_expression "(undefined4 *)(puVar30 + -0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) )))) ))) ;) (expression_statement "iVar25 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar25 = *(int *)(puVar30 + -0x68)" identifier = (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) ))))) ;) (if_statement "if (uVar2 != 0) {\n        *(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39);\n        do {\n          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n          if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);\n          *(undefined4 *)(puVar30 + -0x70) = uVar13;\n          (*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);\n          *(int *)(puVar30 + -0x70) = iVar4;\n          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n          iVar25 = *(int *)(puVar30 + -0x68);\n          uVar2 = uVar9;\n        } while (uVar9 != 0);\n      }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        *(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39);\n        do {\n          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n          if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);\n          *(undefined4 *)(puVar30 + -0x70) = uVar13;\n          (*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);\n          *(int *)(puVar30 + -0x70) = iVar4;\n          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n          iVar25 = *(int *)(puVar30 + -0x68);\n          uVar2 = uVar9;\n        } while (uVar9 != 0);\n      }" { (expression_statement "*(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39);" (assignment_expression "*(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39)" (pointer_expression "*(uint *)(puVar30 + -0x48)" * (cast_expression "(uint *)(puVar30 + -0x48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x48)" ( (binary_expression "puVar30 + -0x48" identifier + number_literal) )))) = (call_expression "(uint)(iVar19 < 0x39)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar19 < 0x39)" ( (binary_expression "iVar19 < 0x39" identifier < number_literal) )))) ;) (do_statement "do {\n          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n          if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);\n          *(undefined4 *)(puVar30 + -0x70) = uVar13;\n          (*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);\n          *(int *)(puVar30 + -0x70) = iVar4;\n          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n          iVar25 = *(int *)(puVar30 + -0x68);\n          uVar2 = uVar9;\n        } while (uVar9 != 0);" do (compound_statement "{\n          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n          if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);\n          *(undefined4 *)(puVar30 + -0x70) = uVar13;\n          (*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);\n          *(int *)(puVar30 + -0x70) = iVar4;\n          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n          iVar25 = *(int *)(puVar30 + -0x68);\n          uVar2 = uVar9;\n        }" { (if_statement "if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }" if (parenthesized_expression "(uVar2 < *(uint *)(puVar30 + -0x5c))" ( (binary_expression "uVar2 < *(uint *)(puVar30 + -0x5c)" identifier < (pointer_expression "*(uint *)(puVar30 + -0x5c)" * (cast_expression "(uint *)(puVar30 + -0x5c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x5c)" ( (binary_expression "puVar30 + -0x5c" identifier + number_literal) ))))) )) (compound_statement "{\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "*(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);" (assignment_expression "*(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c)" (pointer_expression "*(uint *)(puVar30 + -0x60)" * (cast_expression "(uint *)(puVar30 + -0x60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x60)" ( (binary_expression "puVar30 + -0x60" identifier + number_literal) )))) = (binary_expression "~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c)" (unary_expression "~(-1 << (uVar2 & 0x1f))" ~ (parenthesized_expression "(-1 << (uVar2 & 0x1f))" ( (binary_expression "-1 << (uVar2 & 0x1f)" number_literal << (parenthesized_expression "(uVar2 & 0x1f)" ( (binary_expression "uVar2 & 0x1f" identifier & number_literal) ))) ))) & (pointer_expression "**(uint **)(puVar30 + -0x4c)" * (pointer_expression "*(uint **)(puVar30 + -0x4c)" * (cast_expression "(uint **)(puVar30 + -0x4c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x4c)" ( (binary_expression "puVar30 + -0x4c" identifier + number_literal) ))))))) ;) }) (else_clause "else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }" else (compound_statement "{\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }" { (expression_statement "uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);" (assignment_expression "uVar9 = uVar2 - *(int *)(puVar30 + -0x5c)" identifier = (binary_expression "uVar2 - *(int *)(puVar30 + -0x5c)" identifier - (pointer_expression "*(int *)(puVar30 + -0x5c)" * (cast_expression "(int *)(puVar30 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x5c)" ( (binary_expression "puVar30 + -0x5c" identifier + number_literal) )))))) ;) (expression_statement "uVar2 = 0x20 - (uVar9 & 0x1f);" (assignment_expression "uVar2 = 0x20 - (uVar9 & 0x1f)" identifier = (binary_expression "0x20 - (uVar9 & 0x1f)" number_literal - (parenthesized_expression "(uVar9 & 0x1f)" ( (binary_expression "uVar9 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);" (assignment_expression "puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4)" identifier = (cast_expression "(uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4)" ( (binary_expression "*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4" (pointer_expression "*(int *)(puVar30 + -0x4c)" * (cast_expression "(int *)(puVar30 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x4c)" ( (binary_expression "puVar30 + -0x4c" identifier + number_literal) )))) + (binary_expression "(uVar9 >> 5) * 4" (parenthesized_expression "(uVar9 >> 5)" ( (binary_expression "uVar9 >> 5" identifier >> number_literal) )) * number_literal)) )))) ;) (expression_statement "uVar3 = *puVar8 >> (uVar9 & 0x1f);" (assignment_expression "uVar3 = *puVar8 >> (uVar9 & 0x1f)" identifier = (binary_expression "*puVar8 >> (uVar9 & 0x1f)" (pointer_expression "*puVar8" * identifier) >> (parenthesized_expression "(uVar9 & 0x1f)" ( (binary_expression "uVar9 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }" if (parenthesized_expression "((int)uVar2 < *(int *)(puVar30 + -0x58))" ( (binary_expression "(int)uVar2 < *(int *)(puVar30 + -0x58)" (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(puVar30 + -0x58)" * (cast_expression "(int *)(puVar30 + -0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x58)" ( (binary_expression "puVar30 + -0x58" identifier + number_literal) ))))) )) (compound_statement "{\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }" { (expression_statement "uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));" (assignment_expression "uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f))" identifier = (binary_expression "uVar3 + (puVar8[1] << (uVar2 & 0x1f))" identifier + (parenthesized_expression "(puVar8[1] << (uVar2 & 0x1f))" ( (binary_expression "puVar8[1] << (uVar2 & 0x1f)" (subscript_expression "puVar8[1]" identifier [ number_literal ]) << (parenthesized_expression "(uVar2 & 0x1f)" ( (binary_expression "uVar2 & 0x1f" identifier & number_literal) ))) )))) ;) })) (expression_statement "uVar2 = *(uint *)(puVar30 + -0x58);" (assignment_expression "uVar2 = *(uint *)(puVar30 + -0x58)" identifier = (pointer_expression "*(uint *)(puVar30 + -0x58)" * (cast_expression "(uint *)(puVar30 + -0x58)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x58)" ( (binary_expression "puVar30 + -0x58" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;" (assignment_expression "*(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3" (pointer_expression "*(uint *)(puVar30 + -0x60)" * (cast_expression "(uint *)(puVar30 + -0x60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x60)" ( (binary_expression "puVar30 + -0x60" identifier + number_literal) )))) = (binary_expression "*(uint *)(puVar30 + -0x44) & uVar3" (pointer_expression "*(uint *)(puVar30 + -0x44)" * (cast_expression "(uint *)(puVar30 + -0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x44)" ( (binary_expression "puVar30 + -0x44" identifier + number_literal) )))) & identifier)) ;) }))) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc)" identifier = (pointer_expression "*(code **)(iVar25 + -0x7adc)" * (cast_expression "(code **)(iVar25 + -0x7adc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7adc)" ( (binary_expression "iVar25 + -0x7adc" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }" if (parenthesized_expression "(*(int *)(puVar30 + -0x48) == 0)" ( (binary_expression "*(int *)(puVar30 + -0x48) == 0" (pointer_expression "*(int *)(puVar30 + -0x48)" * (cast_expression "(int *)(puVar30 + -0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x48)" ( (binary_expression "puVar30 + -0x48" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }" { (do_statement "do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);" do (compound_statement "{\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            }" { (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0)" identifier = (pointer_expression "*(code **)(iVar25 + -0x7bd0)" * (cast_expression "(code **)(iVar25 + -0x7bd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7bd0)" ( (binary_expression "iVar25 + -0x7bd0" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar30 + -0x70) = iVar19;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar19" (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);" (call_expression "(*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(puVar21,puVar22,iVar19,puVar22)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(int *)(puVar30 + -0x70) = iVar4;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar4" (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = uVar2 - 1;" (assignment_expression "uVar2 = uVar2 - 1" identifier = (binary_expression "uVar2 - 1" identifier - number_literal)) ;) (expression_statement "uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);" (assignment_expression "uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19)" identifier = (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))" ( (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" * (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" * (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7eb0)" ( (binary_expression "*(int *)(puVar30 + -0x68) + -0x7eb0" (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar22,puVar21,piVar23,iVar19)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "*(int *)(puVar30 + -0x70) = iVar19;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar19" (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);" (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))" ( (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" * (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" * (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7a70)" ( (binary_expression "*(int *)(puVar30 + -0x68) + -0x7a70" (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar13,puVar22,puVar22,piVar23)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar25 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar25 = *(int *)(puVar30 + -0x68)" identifier = (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) ;) (expression_statement "uVar13 = *(undefined4 *)(puVar30 + -0x60);" (assignment_expression "uVar13 = *(undefined4 *)(puVar30 + -0x60)" identifier = (pointer_expression "*(undefined4 *)(puVar30 + -0x60)" * (cast_expression "(undefined4 *)(puVar30 + -0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x60)" ( (binary_expression "puVar30 + -0x60" identifier + number_literal) ))))) ;) }) (else_clause "else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }" else (compound_statement "{\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }" { (while_statement "while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }" { (expression_statement "(*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);" (call_expression "(*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(puVar21,puVar22,iVar19)" ( identifier , identifier , identifier ))) ;) (expression_statement "*(int *)(puVar30 + -0x70) = iVar4;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar4" (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = uVar2 - 1;" (assignment_expression "uVar2 = uVar2 - 1" identifier = (binary_expression "uVar2 - 1" identifier - number_literal)) ;) (expression_statement "uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);" (assignment_expression "uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19)" identifier = (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))" ( (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" * (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" * (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7eb0)" ( (binary_expression "*(int *)(puVar30 + -0x68) + -0x7eb0" (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar22,puVar21,piVar23,iVar19)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "*(int *)(puVar30 + -0x70) = iVar19;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar19" (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);" (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))" ( (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" * (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" * (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7a70)" ( (binary_expression "*(int *)(puVar30 + -0x68) + -0x7a70" (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar13,puVar22,puVar22,piVar23)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar25 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar25 = *(int *)(puVar30 + -0x68)" identifier = (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) ))))) ;) (if_statement "if (uVar2 == 0) break;" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc)" identifier = (pointer_expression "*(code **)(iVar25 + -0x7adc)" * (cast_expression "(code **)(iVar25 + -0x7adc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7adc)" ( (binary_expression "iVar25 + -0x7adc" identifier + number_literal) ))))) ;) })) (expression_statement "uVar13 = *(undefined4 *)(puVar30 + -0x60);" (assignment_expression "uVar13 = *(undefined4 *)(puVar30 + -0x60)" identifier = (pointer_expression "*(undefined4 *)(puVar30 + -0x60)" * (cast_expression "(undefined4 *)(puVar30 + -0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x60)" ( (binary_expression "puVar30 + -0x60" identifier + number_literal) ))))) ;) }))) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac)" identifier = (pointer_expression "*(code **)(iVar25 + -0x7bac)" * (cast_expression "(code **)(iVar25 + -0x7bac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7bac)" ( (binary_expression "iVar25 + -0x7bac" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x70) = uVar13;" (assignment_expression "*(undefined4 *)(puVar30 + -0x70) = uVar13" (pointer_expression "*(undefined4 *)(puVar30 + -0x70)" * (cast_expression "(undefined4 *)(puVar30 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));" (call_expression "(*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50))" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50))" ( (binary_expression "puVar21 + iVar19 * 2" identifier + (binary_expression "iVar19 * 2" identifier * number_literal)) , (pointer_expression "*(undefined4 *)(puVar30 + -0x54)" * (cast_expression "(undefined4 *)(puVar30 + -0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) )))) , identifier , (pointer_expression "*(undefined4 *)(puVar30 + -0x50)" * (cast_expression "(undefined4 *)(puVar30 + -0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) )))) ))) ;) (expression_statement "*(int *)(puVar30 + -0x70) = iVar19;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar19" (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);" (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))" ( (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0)" * (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0)" * (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7bd0)" ( (binary_expression "*(int *)(puVar30 + -0x68) + -0x7bd0" (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar21,puVar22,iVar19,puVar21 + iVar19 * 2)" ( identifier , identifier , identifier , (binary_expression "puVar21 + iVar19 * 2" identifier + (binary_expression "iVar19 * 2" identifier * number_literal)) ))) ;) (expression_statement "*(int *)(puVar30 + -0x70) = iVar4;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar4" (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);" (assignment_expression "uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19)" identifier = (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))" ( (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" * (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" * (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7eb0)" ( (binary_expression "*(int *)(puVar30 + -0x68) + -0x7eb0" (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar22,puVar21,piVar23,iVar19)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "*(int *)(puVar30 + -0x70) = iVar19;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar19" (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);" (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))" ( (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" * (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" * (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7a70)" ( (binary_expression "*(int *)(puVar30 + -0x68) + -0x7a70" (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar13,puVar22,puVar22,piVar23)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar25 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar25 = *(int *)(puVar30 + -0x68)" identifier = (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = uVar9;" (assignment_expression "uVar2 = uVar9" identifier = identifier) ;) }) while (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) ;) })) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7eb0);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7eb0)" identifier = (pointer_expression "*(code **)(iVar25 + -0x7eb0)" * (cast_expression "(code **)(iVar25 + -0x7eb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7eb0)" ( (binary_expression "iVar25 + -0x7eb0" identifier + number_literal) ))))) ;) (if_statement "if (iVar19 != 0) {\n        iVar11 = iVar19 + -1;\n        uVar13 = *puVar22;\n        puVar20 = puVar21;\n        puVar26 = puVar22;\n        if (iVar11 != 0) {\n          do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar20 = puVar21 + iVar19 + -1;\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58);\n        *puVar20 = uVar13;\n        (*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0);\n      }" if (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar11 = iVar19 + -1;\n        uVar13 = *puVar22;\n        puVar20 = puVar21;\n        puVar26 = puVar22;\n        if (iVar11 != 0) {\n          do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar20 = puVar21 + iVar19 + -1;\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58);\n        *puVar20 = uVar13;\n        (*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0);\n      }" { (expression_statement "iVar11 = iVar19 + -1;" (assignment_expression "iVar11 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "uVar13 = *puVar22;" (assignment_expression "uVar13 = *puVar22" identifier = (pointer_expression "*puVar22" * identifier)) ;) (expression_statement "puVar20 = puVar21;" (assignment_expression "puVar20 = puVar21" identifier = identifier) ;) (expression_statement "puVar26 = puVar22;" (assignment_expression "puVar26 = puVar22" identifier = identifier) ;) (if_statement "if (iVar11 != 0) {\n          do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar20 = puVar21 + iVar19 + -1;\n        }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n          do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar20 = puVar21 + iVar19 + -1;\n        }" { (do_statement "do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);" do (compound_statement "{\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          }" { (expression_statement "*puVar20 = uVar13;" (assignment_expression "*puVar20 = uVar13" (pointer_expression "*puVar20" * identifier) = identifier) ;) (expression_statement "iVar11 = iVar11 + -1;" (assignment_expression "iVar11 = iVar11 + -1" identifier = (binary_expression "iVar11 + -1" identifier + number_literal)) ;) (expression_statement "uVar13 = puVar26[1];" (assignment_expression "uVar13 = puVar26[1]" identifier = (subscript_expression "puVar26[1]" identifier [ number_literal ])) ;) (expression_statement "puVar20 = puVar20 + 1;" (assignment_expression "puVar20 = puVar20 + 1" identifier = (binary_expression "puVar20 + 1" identifier + number_literal)) ;) (expression_statement "puVar26 = puVar26 + 1;" (assignment_expression "puVar26 = puVar26 + 1" identifier = (binary_expression "puVar26 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) ;) (expression_statement "puVar20 = puVar21 + iVar19 + -1;" (assignment_expression "puVar20 = puVar21 + iVar19 + -1" identifier = (binary_expression "puVar21 + iVar19 + -1" (binary_expression "puVar21 + iVar19" identifier + identifier) + number_literal)) ;) })) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58)" identifier = (pointer_expression "*(code **)(iVar25 + -0x7d58)" * (cast_expression "(code **)(iVar25 + -0x7d58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7d58)" ( (binary_expression "iVar25 + -0x7d58" identifier + number_literal) ))))) ;) (expression_statement "*puVar20 = uVar13;" (assignment_expression "*puVar20 = uVar13" (pointer_expression "*puVar20" * identifier) = identifier) ;) (expression_statement "(*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31);" (call_expression "(*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(puVar21 + iVar19,0,iVar31)" ( (binary_expression "puVar21 + iVar19" identifier + identifier) , number_literal , identifier ))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" identifier = (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" * (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7eb0)" ( (binary_expression "*(int *)(puVar30 + -0x68) + -0x7eb0" (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) + number_literal) ))))) ;) })) (expression_statement "*(int *)(puVar30 + -0x70) = iVar4;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar4" (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar22,puVar21,piVar23,iVar19);" (assignment_expression "uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar22,puVar21,piVar23,iVar19)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE)(puVar22,puVar21,piVar23,iVar19)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(puVar22,puVar21,piVar23,iVar19)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "*(int *)(puVar30 + -0x70) = iVar19;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar19" (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);" (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))" ( (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" * (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" * (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7a70)" ( (binary_expression "*(int *)(puVar30 + -0x68) + -0x7a70" (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar13,puVar22,puVar22,piVar23)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar25 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))(puVar21,puVar22,piVar23,iVar19);" (assignment_expression "iVar25 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))(puVar21,puVar22,piVar23,iVar19)" identifier = (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))(puVar21,puVar22,piVar23,iVar19)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))" ( (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c)" * (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c)" * (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7b2c)" ( (binary_expression "*(int *)(puVar30 + -0x68) + -0x7b2c" (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar21,puVar22,piVar23,iVar19)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7a70);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" identifier = (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" * (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7a70)" ( (binary_expression "*(int *)(puVar30 + -0x68) + -0x7a70" (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(int *)(puVar30 + 0x10) = iVar19;" (assignment_expression "*(int *)(puVar30 + 0x10) = iVar19" (pointer_expression "*(int *)(puVar30 + 0x10)" * (cast_expression "(int *)(puVar30 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + 0x10)" ( (binary_expression "puVar30 + 0x10" identifier + number_literal) )))) = identifier) ;) comment comment (expression_statement "(*UNRECOVERED_JUMPTABLE)(iVar25 == 0,puVar22,puVar22,piVar23);" (call_expression "(*UNRECOVERED_JUMPTABLE)(iVar25 == 0,puVar22,puVar22,piVar23)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(iVar25 == 0,puVar22,puVar22,piVar23)" ( (binary_expression "iVar25 == 0" identifier == number_literal) , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "puVar22 = (undefined4 *)((int)puVar7 + -1);" (assignment_expression "puVar22 = (undefined4 *)((int)puVar7 + -1)" identifier = (cast_expression "(undefined4 *)((int)puVar7 + -1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + -1)" ( (binary_expression "(int)puVar7 + -1" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) == 0) goto LAB_0007afb0;" if (parenthesized_expression "((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) == 0)" ( (binary_expression "(param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) == 0" (parenthesized_expression "(param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1)" ( (binary_expression "param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1" (binary_expression "param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f)" (subscript_expression "param_3[(uint)puVar22 >> 5]" identifier [ (binary_expression "(uint)puVar22 >> 5" (cast_expression "(uint)puVar22" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ]) >> (parenthesized_expression "((uint)puVar22 & 0x1f)" ( (binary_expression "(uint)puVar22 & 0x1f" (cast_expression "(uint)puVar22" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0007afb0;" goto statement_identifier ;)) (labeled_statement "LAB_0007b010:\n    if (puVar7 < local_44) {\n      uVar3 = ~(-1 << ((uint)puVar7 & 0x1f)) & *param_3;\n      uVar9 = 0;\n      if ((uVar3 & 0xff) == 0) goto LAB_0007b270;\nLAB_0007b040:\n      uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2;\n    }\n    else {\n      uVar9 = (int)puVar7 - (int)local_44;\n      uVar2 = 0x20 - (uVar9 & 0x1f);\n      uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f);\n      if ((int)uVar2 < (int)local_44) {\n        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));\n      }\n      uVar3 = uVar3 & local_4c;\n      puVar7 = local_44;\n      if ((uVar3 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar2 = uVar3 >> 8;\n      iVar19 = 0x1e;\n      if (uVar2 != 0) {\n        iVar19 = 6;\n      }\n      uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19;\n    }" statement_identifier : (if_statement "if (puVar7 < local_44) {\n      uVar3 = ~(-1 << ((uint)puVar7 & 0x1f)) & *param_3;\n      uVar9 = 0;\n      if ((uVar3 & 0xff) == 0) goto LAB_0007b270;\nLAB_0007b040:\n      uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2;\n    }\n    else {\n      uVar9 = (int)puVar7 - (int)local_44;\n      uVar2 = 0x20 - (uVar9 & 0x1f);\n      uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f);\n      if ((int)uVar2 < (int)local_44) {\n        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));\n      }\n      uVar3 = uVar3 & local_4c;\n      puVar7 = local_44;\n      if ((uVar3 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar2 = uVar3 >> 8;\n      iVar19 = 0x1e;\n      if (uVar2 != 0) {\n        iVar19 = 6;\n      }\n      uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19;\n    }" if (parenthesized_expression "(puVar7 < local_44)" ( (binary_expression "puVar7 < local_44" identifier < identifier) )) (compound_statement "{\n      uVar3 = ~(-1 << ((uint)puVar7 & 0x1f)) & *param_3;\n      uVar9 = 0;\n      if ((uVar3 & 0xff) == 0) goto LAB_0007b270;\nLAB_0007b040:\n      uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2;\n    }" { (expression_statement "uVar3 = ~(-1 << ((uint)puVar7 & 0x1f)) & *param_3;" (assignment_expression "uVar3 = ~(-1 << ((uint)puVar7 & 0x1f)) & *param_3" identifier = (binary_expression "~(-1 << ((uint)puVar7 & 0x1f)) & *param_3" (unary_expression "~(-1 << ((uint)puVar7 & 0x1f))" ~ (parenthesized_expression "(-1 << ((uint)puVar7 & 0x1f))" ( (binary_expression "-1 << ((uint)puVar7 & 0x1f)" number_literal << (parenthesized_expression "((uint)puVar7 & 0x1f)" ( (binary_expression "(uint)puVar7 & 0x1f" (cast_expression "(uint)puVar7" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) ))) & (pointer_expression "*param_3" * identifier))) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (if_statement "if ((uVar3 & 0xff) == 0) goto LAB_0007b270;" if (parenthesized_expression "((uVar3 & 0xff) == 0)" ( (binary_expression "(uVar3 & 0xff) == 0" (parenthesized_expression "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0007b270;" goto statement_identifier ;)) (labeled_statement "LAB_0007b040:\n      uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2;" statement_identifier : (expression_statement "uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2;" (assignment_expression "uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2" identifier = (binary_expression "(byte)puVar27[-uVar3 & uVar3] - 2" (cast_expression "(byte)puVar27[-uVar3 & uVar3]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar27[-uVar3 & uVar3]" identifier [ (binary_expression "-uVar3 & uVar3" (unary_expression "-uVar3" - identifier) & identifier) ])) - number_literal)) ;)) }) (else_clause "else {\n      uVar9 = (int)puVar7 - (int)local_44;\n      uVar2 = 0x20 - (uVar9 & 0x1f);\n      uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f);\n      if ((int)uVar2 < (int)local_44) {\n        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));\n      }\n      uVar3 = uVar3 & local_4c;\n      puVar7 = local_44;\n      if ((uVar3 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar2 = uVar3 >> 8;\n      iVar19 = 0x1e;\n      if (uVar2 != 0) {\n        iVar19 = 6;\n      }\n      uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19;\n    }" else (compound_statement "{\n      uVar9 = (int)puVar7 - (int)local_44;\n      uVar2 = 0x20 - (uVar9 & 0x1f);\n      uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f);\n      if ((int)uVar2 < (int)local_44) {\n        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));\n      }\n      uVar3 = uVar3 & local_4c;\n      puVar7 = local_44;\n      if ((uVar3 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar2 = uVar3 >> 8;\n      iVar19 = 0x1e;\n      if (uVar2 != 0) {\n        iVar19 = 6;\n      }\n      uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19;\n    }" { (expression_statement "uVar9 = (int)puVar7 - (int)local_44;" (assignment_expression "uVar9 = (int)puVar7 - (int)local_44" identifier = (binary_expression "(int)puVar7 - (int)local_44" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar2 = 0x20 - (uVar9 & 0x1f);" (assignment_expression "uVar2 = 0x20 - (uVar9 & 0x1f)" identifier = (binary_expression "0x20 - (uVar9 & 0x1f)" number_literal - (parenthesized_expression "(uVar9 & 0x1f)" ( (binary_expression "uVar9 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f);" (assignment_expression "uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f)" identifier = (binary_expression "param_3[uVar9 >> 5] >> (uVar9 & 0x1f)" (subscript_expression "param_3[uVar9 >> 5]" identifier [ (binary_expression "uVar9 >> 5" identifier >> number_literal) ]) >> (parenthesized_expression "(uVar9 & 0x1f)" ( (binary_expression "uVar9 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if ((int)uVar2 < (int)local_44) {\n        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));\n      }" if (parenthesized_expression "((int)uVar2 < (int)local_44)" ( (binary_expression "(int)uVar2 < (int)local_44" (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));\n      }" { (expression_statement "uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));" (assignment_expression "uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f))" identifier = (binary_expression "uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f))" identifier + (parenthesized_expression "((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f))" ( (binary_expression "(param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f)" (subscript_expression "(param_3 + (uVar9 >> 5))[1]" (parenthesized_expression "(param_3 + (uVar9 >> 5))" ( (binary_expression "param_3 + (uVar9 >> 5)" identifier + (parenthesized_expression "(uVar9 >> 5)" ( (binary_expression "uVar9 >> 5" identifier >> number_literal) ))) )) [ number_literal ]) << (parenthesized_expression "(uVar2 & 0x1f)" ( (binary_expression "uVar2 & 0x1f" identifier & number_literal) ))) )))) ;) })) (expression_statement "uVar3 = uVar3 & local_4c;" (assignment_expression "uVar3 = uVar3 & local_4c" identifier = (binary_expression "uVar3 & local_4c" identifier & identifier)) ;) (expression_statement "puVar7 = local_44;" (assignment_expression "puVar7 = local_44" identifier = identifier) ;) (if_statement "if ((uVar3 & 0xff) != 0) goto LAB_0007b040;" if (parenthesized_expression "((uVar3 & 0xff) != 0)" ( (binary_expression "(uVar3 & 0xff) != 0" (parenthesized_expression "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0007b040;" goto statement_identifier ;)) (labeled_statement "LAB_0007b270:\n      uVar2 = uVar3 >> 8;" statement_identifier : (expression_statement "uVar2 = uVar3 >> 8;" (assignment_expression "uVar2 = uVar3 >> 8" identifier = (binary_expression "uVar3 >> 8" identifier >> number_literal)) ;)) (expression_statement "iVar19 = 0x1e;" (assignment_expression "iVar19 = 0x1e" identifier = number_literal) ;) (if_statement "if (uVar2 != 0) {\n        iVar19 = 6;\n      }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar19 = 6;\n      }" { (expression_statement "iVar19 = 6;" (assignment_expression "iVar19 = 6" identifier = number_literal) ;) })) (expression_statement "uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19;" (assignment_expression "uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19" identifier = (binary_expression "(uint)(byte)puVar27[-uVar2 & uVar2] + iVar19" (cast_expression "(uint)(byte)puVar27[-uVar2 & uVar2]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar27[-uVar2 & uVar2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar27[-uVar2 & uVar2]" identifier [ (binary_expression "-uVar2 & uVar2" (unary_expression "-uVar2" - identifier) & identifier) ]))) + identifier)) ;) })))) (expression_statement "param_2 = (undefined4 *)((int)puVar7 - uVar2);" (assignment_expression "param_2 = (undefined4 *)((int)puVar7 - uVar2)" identifier = (cast_expression "(undefined4 *)((int)puVar7 - uVar2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 - uVar2)" ( (binary_expression "(int)puVar7 - uVar2" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "puVar7 = param_2;" (assignment_expression "puVar7 = param_2" identifier = identifier) ;) (if_statement "if (1 < (int)param_2) {\n      do {\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n        puVar20 = (undefined4 *)((int)puVar7 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5);\n        puVar7 = puVar20;\n      } while (1 < (int)puVar20);\n      param_2 = (undefined4 *)((uint)param_2 & 1);\n    }" if (parenthesized_expression "(1 < (int)param_2)" ( (binary_expression "1 < (int)param_2" number_literal < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      do {\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n        puVar20 = (undefined4 *)((int)puVar7 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5);\n        puVar7 = puVar20;\n      } while (1 < (int)puVar20);\n      param_2 = (undefined4 *)((uint)param_2 & 1);\n    }" { (do_statement "do {\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n        puVar20 = (undefined4 *)((int)puVar7 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5);\n        puVar7 = puVar20;\n      } while (1 < (int)puVar20);" do (compound_statement "{\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n        puVar20 = (undefined4 *)((int)puVar7 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5);\n        puVar7 = puVar20;\n      }" { (expression_statement "(*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);" (call_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5)" (parenthesized_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)" ( (pointer_expression "*(code *)PTR___gmpn_sqrlo_0009d354" * (cast_expression "(code *)PTR___gmpn_sqrlo_0009d354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,param_1,param_5)" ( identifier , identifier , identifier ))) ;) (expression_statement "puVar20 = (undefined4 *)((int)puVar7 + -2);" (assignment_expression "puVar20 = (undefined4 *)((int)puVar7 + -2)" identifier = (cast_expression "(undefined4 *)((int)puVar7 + -2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + -2)" ( (binary_expression "(int)puVar7 + -2" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "(*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5);" (call_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5)" (parenthesized_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)" ( (pointer_expression "*(code *)PTR___gmpn_sqrlo_0009d354" * (cast_expression "(code *)PTR___gmpn_sqrlo_0009d354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_6,param_5)" ( identifier , identifier , identifier ))) ;) (expression_statement "puVar7 = puVar20;" (assignment_expression "puVar7 = puVar20" identifier = identifier) ;) }) while (parenthesized_expression "(1 < (int)puVar20)" ( (binary_expression "1 < (int)puVar20" number_literal < (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (expression_statement "param_2 = (undefined4 *)((uint)param_2 & 1);" (assignment_expression "param_2 = (undefined4 *)((uint)param_2 & 1)" identifier = (cast_expression "(undefined4 *)((uint)param_2 & 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)param_2 & 1)" ( (binary_expression "(uint)param_2 & 1" (cast_expression "(uint)param_2" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) })) (if_statement "if (param_2 == (undefined4 *)0x0) {\n      if (param_5 != (undefined4 *)0x0) {\n        uVar13 = *param_1;\n        puVar7 = param_6;\n        if (local_3c != (undefined1 *)0x0) {\n          puVar16 = local_3c;\n          puVar22 = param_6;\n          puVar12 = param_1 + 1;\n          do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);\n        }\n        *puVar7 = uVar13;\n      }\n    }\n    else {\n      (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n    }" if (parenthesized_expression "(param_2 == (undefined4 *)0x0)" ( (binary_expression "param_2 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (param_5 != (undefined4 *)0x0) {\n        uVar13 = *param_1;\n        puVar7 = param_6;\n        if (local_3c != (undefined1 *)0x0) {\n          puVar16 = local_3c;\n          puVar22 = param_6;\n          puVar12 = param_1 + 1;\n          do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);\n        }\n        *puVar7 = uVar13;\n      }\n    }" { (if_statement "if (param_5 != (undefined4 *)0x0) {\n        uVar13 = *param_1;\n        puVar7 = param_6;\n        if (local_3c != (undefined1 *)0x0) {\n          puVar16 = local_3c;\n          puVar22 = param_6;\n          puVar12 = param_1 + 1;\n          do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);\n        }\n        *puVar7 = uVar13;\n      }" if (parenthesized_expression "(param_5 != (undefined4 *)0x0)" ( (binary_expression "param_5 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar13 = *param_1;\n        puVar7 = param_6;\n        if (local_3c != (undefined1 *)0x0) {\n          puVar16 = local_3c;\n          puVar22 = param_6;\n          puVar12 = param_1 + 1;\n          do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);\n        }\n        *puVar7 = uVar13;\n      }" { (expression_statement "uVar13 = *param_1;" (assignment_expression "uVar13 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "puVar7 = param_6;" (assignment_expression "puVar7 = param_6" identifier = identifier) ;) (if_statement "if (local_3c != (undefined1 *)0x0) {\n          puVar16 = local_3c;\n          puVar22 = param_6;\n          puVar12 = param_1 + 1;\n          do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);\n        }" if (parenthesized_expression "(local_3c != (undefined1 *)0x0)" ( (binary_expression "local_3c != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar16 = local_3c;\n          puVar22 = param_6;\n          puVar12 = param_1 + 1;\n          do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);\n        }" { (expression_statement "puVar16 = local_3c;" (assignment_expression "puVar16 = local_3c" identifier = identifier) ;) (expression_statement "puVar22 = param_6;" (assignment_expression "puVar22 = param_6" identifier = identifier) ;) (expression_statement "puVar12 = param_1 + 1;" (assignment_expression "puVar12 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (do_statement "do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);" do (compound_statement "{\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          }" { (expression_statement "*puVar22 = uVar13;" (assignment_expression "*puVar22 = uVar13" (pointer_expression "*puVar22" * identifier) = identifier) ;) (expression_statement "puVar16 = puVar16 + -1;" (assignment_expression "puVar16 = puVar16 + -1" identifier = (binary_expression "puVar16 + -1" identifier + number_literal)) ;) (expression_statement "uVar13 = *puVar12;" (assignment_expression "uVar13 = *puVar12" identifier = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar7 = param_6 + (int)((int)param_5 + -1);" (assignment_expression "puVar7 = param_6 + (int)((int)param_5 + -1)" identifier = (binary_expression "param_6 + (int)((int)param_5 + -1)" identifier + (cast_expression "(int)((int)param_5 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)param_5 + -1)" ( (binary_expression "(int)param_5 + -1" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar22 = puVar22 + 1;" (assignment_expression "puVar22 = puVar22 + 1" identifier = (binary_expression "puVar22 + 1" identifier + number_literal)) ;) (expression_statement "puVar12 = puVar12 + 1;" (assignment_expression "puVar12 = puVar12 + 1" identifier = (binary_expression "puVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar16 != (undefined1 *)0x0)" ( (binary_expression "puVar16 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "*puVar7 = uVar13;" (assignment_expression "*puVar7 = uVar13" (pointer_expression "*puVar7" * identifier) = identifier) ;) })) }) (else_clause "else {\n      (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n    }" else (compound_statement "{\n      (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n    }" { (expression_statement "(*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);" (call_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5)" (parenthesized_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)" ( (pointer_expression "*(code *)PTR___gmpn_sqrlo_0009d354" * (cast_expression "(code *)PTR___gmpn_sqrlo_0009d354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,param_1,param_5)" ( identifier , identifier , identifier ))) ;) }))) (expression_statement "puVar14 = (undefined4 *)(((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25 + (int)puVar26);" (assignment_expression "puVar14 = (undefined4 *)(((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25 + (int)puVar26)" identifier = (cast_expression "(undefined4 *)(((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25 + (int)puVar26)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25 + (int)puVar26)" ( (binary_expression "((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25 + (int)puVar26" (binary_expression "((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25" (parenthesized_expression "((uVar3 >> (uVar2 & 0x1f)) >> 1)" ( (binary_expression "(uVar3 >> (uVar2 & 0x1f)) >> 1" (parenthesized_expression "(uVar3 >> (uVar2 & 0x1f))" ( (binary_expression "uVar3 >> (uVar2 & 0x1f)" identifier >> (parenthesized_expression "(uVar2 & 0x1f)" ( (binary_expression "uVar2 & 0x1f" identifier & number_literal) ))) )) >> number_literal) )) * identifier) + (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar12 = param_6;" (assignment_expression "puVar12 = param_6" identifier = identifier) ;) (expression_statement "param_4 = param_5;" (assignment_expression "param_4 = param_5" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_mullo_n_0009d234)(param_1);" (call_expression "(*(code *)PTR___gmpn_mullo_n_0009d234)(param_1)" (parenthesized_expression "(*(code *)PTR___gmpn_mullo_n_0009d234)" ( (pointer_expression "*(code *)PTR___gmpn_mullo_n_0009d234" * (cast_expression "(code *)PTR___gmpn_mullo_n_0009d234" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "puVar7 = (undefined4 *)(uVar2 + uVar9);" (assignment_expression "puVar7 = (undefined4 *)(uVar2 + uVar9)" identifier = (cast_expression "(undefined4 *)(uVar2 + uVar9)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar2 + uVar9)" ( (binary_expression "uVar2 + uVar9" identifier + identifier) )))) ;) (expression_statement "puVar22 = local_30;" (assignment_expression "puVar22 = local_30" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "void __gmpn_powlo(mp_ptr rp,mp_srcptr bp,mp_srcptr ep,mp_size_t en,mp_size_t n,mp_ptr tp)\n\n{\n  mp_ptr pmVar1;\n  mp_ptr pmVar2;\n  undefined *puVar3;\n  uint uVar4;\n  uint uVar5;\n  mp_limb_t *pmVar6;\n  int iVar7;\n  undefined4 uVar8;\n  int iVar9;\n  size_t *psVar10;\n  mp_limb_t *pmVar11;\n  uint *puVar12;\n  uint uVar13;\n  mp_ptr pmVar14;\n  tmp_reentrant_t *ptVar15;\n  int iVar16;\n  tmp_reentrant_t *ptVar17;\n  mp_ptr pmVar18;\n  mp_limb_t mVar19;\n  mp_limb_t *pmVar20;\n  undefined4 *puVar21;\n  tmp_reentrant_t *ptVar22;\n  undefined4 uVar23;\n  undefined1 *puVar24;\n  undefined4 uVar25;\n  int iVar26;\n  undefined4 *puVar27;\n  int iVar28;\n  mp_limb_t *pmVar29;\n  size_t *psVar30;\n  mp_limb_t *pmVar31;\n  int *piVar32;\n  undefined4 *puVar33;\n  int iVar34;\n  undefined4 *puVar35;\n  undefined4 *puVar36;\n  undefined *puVar37;\n  code *UNRECOVERED_JUMPTABLE;\n  int iVar38;\n  int iVar39;\n  undefined1 *puVar40;\n  int iVar41;\n  undefined4 uVar42;\n  undefined1 auStack_70 [16];\n  uint local_4c;\n  mp_limb_t *local_44;\n  int local_3c;\n  mp_limb_t *local_38;\n  tmp_reentrant_t *__tmp_marker;\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_0009d540;\n  puVar37 = PTR___gmpn_clz_tab_0009d18c;\n  puVar40 = auStack_70;\n  puVar24 = auStack_70;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  uVar4 = ep[en + -1];\n  __tmp_marker = (tmp_reentrant_t *)0x0;\n  if (uVar4 < 0x10000) {\n    iVar28 = 9;\n    if (uVar4 < 0x100) {\n      iVar28 = 1;\n    }\n    pmVar29 = (mp_limb_t *)\n              (en * 0x20 + -0x21 + iVar28 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar4 >> iVar28]\n              );\n  }\n  else {\n    iVar28 = 0x19;\n    if (uVar4 < 0x1000000) {\n      iVar28 = 0x11;\n    }\n    pmVar29 = (mp_limb_t *)\n              (en * 0x20 + -0x21 + iVar28 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar4 >> iVar28]\n              );\n  }\n  if (pmVar29 < &DAT_00000008) {\n    local_4c = 1;\n    local_38 = (mp_limb_t *)&DAT_00000001;\n    uVar4 = n << 2;\n    iVar28 = 0;\n    local_44 = local_38;\n  }\n  else {\n    if (pmVar29 < (mp_limb_t *)0x1a) {\n      local_44 = (mp_limb_t *)0x2;\n      iVar28 = 1;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x52) {\n      local_44 = (mp_limb_t *)0x3;\n      iVar28 = 2;\n    }\n    else if (pmVar29 < (mp_limb_t *)0xf2) {\n      local_44 = (mp_limb_t *)&DAT_00000004;\n      iVar28 = 3;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x2a2) {\n      local_44 = (mp_limb_t *)&DAT_00000005;\n      iVar28 = 4;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x702) {\n      local_44 = (mp_limb_t *)&DAT_00000006;\n      iVar28 = 5;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x1202) {\n      local_44 = (mp_limb_t *)0x7;\n      iVar28 = 6;\n    }\n    else {\n      iVar28 = 9;\n      if (pmVar29 < (mp_limb_t *)0x2d02) {\n        local_44 = (mp_limb_t *)&DAT_00000008;\n        iVar28 = 7;\n      }\n      else {\n        local_44 = (mp_limb_t *)&DAT_0000000a;\n        if (pmVar29 < (mp_limb_t *)0x6e02) {\n          local_44 = (mp_limb_t *)&DAT_00000009;\n          iVar28 = 8;\n        }\n      }\n    }\n    uVar4 = (n << iVar28) << 2;\n    local_4c = ~(-1 << (int)local_44);\n    iVar28 = (1 << iVar28) + -1;\n  }\n  if (uVar4 < 0x7f01) {\n    iVar34 = -(uVar4 + 7 & 0xfffffff8);\n    puVar24 = auStack_70 + iVar34;\n    puVar40 = auStack_70 + iVar34;\n    pmVar6 = (mp_limb_t *)(&stack0xffffffa0 + iVar34);\n    ptVar15 = __tmp_marker;\n  }\n  else {\n    pmVar6 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n    ptVar15 = __tmp_marker;\n  }\n  __tmp_marker = ptVar15;\n  if (n == 0) {\n    local_3c = -1;\n    puVar40 = puVar24;\n  }\n  else {\n    local_3c = n + -1;\n    mVar19 = *bp;\n    if (local_3c == 0) {\n      *pmVar6 = mVar19;\n    }\n    else {\n      iVar34 = local_3c;\n      pmVar11 = pmVar6;\n      pmVar31 = bp + 1;\n      do {\n        *pmVar11 = mVar19;\n        iVar34 = iVar34 + -1;\n        mVar19 = *pmVar31;\n        pmVar11 = pmVar11 + 1;\n        pmVar31 = pmVar31 + 1;\n      } while (iVar34 != 0);\n      pmVar6[n + -1] = mVar19;\n    }\n  }\n  (*(code *)PTR___gmpn_sqrlo_0009d354)(tp,bp,n);\n  iVar34 = n * 4;\n  pmVar11 = pmVar6;\n  for (; iVar28 != 0; iVar28 = iVar28 + -1) {\n    bp = pmVar11 + n;\n    en = n;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(bp,pmVar11,tp);\n    pmVar11 = bp;\n  }\n  uVar4 = (int)pmVar29 - (int)local_44;\n  if (pmVar29 < local_44) {\n    uVar5 = ~(-1 << ((uint)pmVar29 & 0x1f)) & *ep;\n  }\n  else {\n    uVar13 = 0x20 - (uVar4 & 0x1f);\n    en = (mp_size_t)((int)uVar13 < (int)local_44);\n    uVar5 = ep[uVar4 >> 5] >> (uVar4 & 0x1f);\n    if (en != 0) {\n      uVar5 = uVar5 + ((ep + (uVar4 >> 5))[1] << (uVar13 & 0x1f));\n    }\n    uVar5 = uVar5 & local_4c;\n  }\n  if ((uVar5 & 0xff) == 0) {\n    uVar13 = uVar5 >> 8;\n    en = 6;\n    iVar28 = 0x1e;\n    if (uVar13 != 0) {\n      iVar28 = 6;\n    }\n    uVar13 = (uint)(byte)puVar37[-uVar13 & uVar13] + iVar28;\n  }\n  else {\n    uVar13 = (byte)puVar37[-uVar5 & uVar5] - 2;\n  }\n  pmVar11 = (mp_limb_t *)(uVar13 + uVar4);\n  if (n != 0) {\n    en = ((uVar5 >> (uVar13 & 0x1f)) >> 1) * iVar34;\n    pmVar20 = (mp_limb_t *)(en + (int)pmVar6);\n    mVar19 = *pmVar20;\n    iVar28 = local_3c;\n    pmVar31 = rp;\n    if (local_3c == 0) {\n      *rp = mVar19;\n    }\n    else {\n      do {\n        pmVar20 = pmVar20 + 1;\n        *pmVar31 = mVar19;\n        iVar28 = iVar28 + -1;\n        mVar19 = *pmVar20;\n        pmVar31 = pmVar31 + 1;\n      } while (iVar28 != 0);\n      rp[n + -1] = mVar19;\n    }\n  }\n  pmVar31 = (mp_limb_t *)((int)pmVar11 + -1);\n  if ((ep[(uint)pmVar31 >> 5] >> ((uint)pmVar31 & 0x1f) & 1) != 0) goto LAB_0007b010;\nLAB_0007afb0:\n  pmVar18 = rp;\n  pmVar20 = (mp_limb_t *)n;\n  (*(code *)PTR___gmpn_sqrlo_0009d354)(tp);\n  pmVar11 = pmVar31;\n  ptVar15 = __tmp_marker;\n  if (n != 0) {\n    pmVar18 = (mp_ptr)*tp;\n    pmVar1 = rp;\n    pmVar2 = rp;\n    pmVar14 = tp;\n    for (iVar28 = local_3c; iVar28 != 0; iVar28 = iVar28 + -1) {\n      pmVar14 = pmVar14 + 1;\n      *pmVar2 = (mp_limb_t)pmVar18;\n      pmVar18 = (mp_ptr)*pmVar14;\n      pmVar1 = rp + n + -1;\n      pmVar2 = pmVar2 + 1;\n    }\n    *pmVar1 = (mp_limb_t)pmVar18;\n  }\n  do {\n    __tmp_marker = ptVar15;\n    if (pmVar11 == (mp_limb_t *)0x0) {\n      if (ptVar15 != (tmp_reentrant_t *)0x0) {\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }\n      if (local_2c == *(int *)puVar3) {\n        return;\n      }\n      uVar42 = 0x7b45c;\n      puVar37 = PTR___stack_chk_fail_0009d4d0;\n      (*(code *)PTR___stack_chk_fail_0009d4d0)();\n      uVar4 = *(uint *)(puVar40 + 0x10);\n      *(mp_size_t *)(puVar40 + -0x24) = n;\n      *(undefined **)(puVar40 + -0x68) = puVar37 + 0x29be0;\n      *(undefined4 *)(puVar40 + -0x18) = 0;\n      *(mp_limb_t **)(puVar40 + -0x28) = pmVar29;\n      *(undefined4 *)(puVar40 + -4) = uVar42;\n      *(undefined1 **)(puVar40 + -8) = auStack_70;\n      *(int *)(puVar40 + -0xc) = iVar34;\n      *(mp_srcptr *)(puVar40 + -0x10) = ep;\n      *(mp_srcptr *)(puVar40 + -0x14) = bp;\n      *(mp_ptr *)(puVar40 + -0x1c) = rp;\n      *(mp_ptr *)(puVar40 + -0x20) = tp;\n      *(uint *)(puVar40 + -0x60) = uVar4;\n      *(mp_ptr *)(puVar40 + -0x44) = pmVar18;\n      *(mp_size_t *)(puVar40 + -0x4c) = en;\n      piVar32 = *(int **)(puVar40 + 0x14);\n      iVar28 = *(int *)(puVar40 + 0x18);\n      *(undefined4 *)(puVar40 + -0x54) = *(undefined4 *)(puVar40 + 0x1c);\n      if (uVar4 < 3) {\n        iVar34 = 0;\n        *(undefined4 *)(puVar40 + -0x5c) = 1;\n        *(undefined4 *)(puVar40 + -0x50) = 2;\n        iVar7 = 1;\n        *(undefined4 *)(puVar40 + -0x58) = 1;\n      }\n      else {\n        if (uVar4 < 0x22) {\n          *(undefined4 *)(puVar40 + -0x58) = 2;\n          iVar7 = 2;\n        }\n        else if (uVar4 < 0x61) {\n          *(undefined4 *)(puVar40 + -0x58) = 3;\n          iVar7 = 3;\n        }\n        else if (uVar4 < 0x30d) {\n          *(undefined4 *)(puVar40 + -0x58) = 4;\n          iVar7 = 4;\n        }\n        else {\n          iVar7 = 6;\n          if (uVar4 < 0xab6) {\n            iVar7 = 5;\n          }\n          *(int *)(puVar40 + -0x58) = iVar7;\n        }\n        *(int *)(puVar40 + -0x5c) = iVar7;\n        *(int *)(puVar40 + -0x50) = 1 << iVar7;\n        iVar34 = (1 << iVar7) + -2;\n      }\n      iVar16 = *piVar32;\n      iVar41 = iVar28 * 4;\n      puVar35 = *(undefined4 **)(puVar40 + -0x54);\n      puVar24 = (undefined1 *)(iVar28 + (int)pmVar20);\n      puVar33 = puVar35 + iVar28;\n      uVar4 = (uint)*(byte *)(*(int *)(puVar37 + 0x21ea4) + ((uint)(iVar16 << 0x18) >> 0x19));\n      puVar27 = puVar33 + iVar28;\n      puVar21 = puVar35 + iVar28 + 1;\n      *(undefined4 **)(puVar40 + -0x48) = puVar27 + (int)puVar24;\n      psVar30 = puVar35 + (iVar28 << iVar7);\n      *puVar33 = 1;\n      iVar7 = uVar4 * 2 - uVar4 * uVar4 * iVar16;\n      iVar7 = iVar7 * iVar7 * iVar16 + iVar7 * -2;\n      puVar36 = puVar33;\n      if (iVar28 == 0) {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar37 + 0x2211c);\n        puVar21[iVar28] = 1;\n        *(mp_limb_t **)(puVar40 + -0x38) = pmVar20;\n        *(undefined1 **)(puVar40 + -0x3c) = puVar24;\n        *(undefined4 **)(puVar40 + -0x40) = puVar27;\n        *(undefined4 **)(puVar40 + -0x70) = puVar21 + iVar28 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,1,piVar32,0);\n        iVar26 = *(int *)(puVar40 + -0x3c);\n        iVar39 = *(int *)(puVar40 + -0x68);\n        iVar16 = *(int *)(puVar40 + -0x40);\n        iVar38 = *(int *)(puVar40 + -0x38);\n        if (iVar26 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar16,0,piVar32,0);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar9 = iVar38 + -1;\n        puVar27 = (undefined4 *)(iVar16 + iVar41);\n        uVar42 = **(undefined4 **)(puVar40 + -0x44);\n        if (iVar9 != 0) {\n          puVar35 = *(undefined4 **)(puVar40 + -0x44);\n          puVar21 = puVar27;\n          goto LAB_0007b70c;\n        }\n        uVar8 = *(undefined4 *)(puVar40 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n        *puVar27 = uVar42;\n        *(undefined4 *)(puVar40 + -0x70) = uVar8;\n        (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,0);\n        iVar16 = *(int *)(puVar40 + -0x68);\n      }\n      else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar37 + 0x21e88);\n        *(mp_limb_t **)(puVar40 + -0x2c) = pmVar20;\n        *(undefined1 **)(puVar40 + -0x30) = puVar24;\n        *(undefined4 **)(puVar40 + -0x34) = puVar21 + iVar28;\n        *(undefined4 **)(puVar40 + -0x38) = puVar27;\n        *(undefined4 **)(puVar40 + -0x3c) = puVar21 + iVar28 + 1;\n        uVar42 = (*UNRECOVERED_JUMPTABLE)(puVar21,0,iVar41);\n        uVar8 = *puVar33;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7ac4);\n        *(int *)(puVar40 + -0x40) = iVar28 + -1;\n        *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x3c);\n        *(undefined4 *)(puVar40 + -0x3c) = uVar42;\n        **(undefined4 **)(puVar40 + -0x34) = uVar8;\n        (*UNRECOVERED_JUMPTABLE)(uVar42,iVar28 + 1,piVar32,iVar28);\n        iVar16 = iVar28 + -1;\n        puVar27 = *(undefined4 **)(puVar40 + -0x3c);\n        iVar38 = *(int *)(puVar40 + -0x68);\n        uVar42 = *(undefined4 *)(puVar40 + -0x38);\n        uVar25 = *(undefined4 *)(puVar40 + -0x30);\n        uVar8 = *puVar27;\n        uVar23 = *(undefined4 *)(puVar40 + -0x2c);\n        if (iVar16 == 0) {\n          puVar35 = *(undefined4 **)(puVar40 + -0x54);\n        }\n        else {\n          do {\n            puVar27 = puVar27 + 1;\n            *puVar35 = uVar8;\n            iVar16 = iVar16 + -1;\n            uVar8 = *puVar27;\n            puVar35 = puVar35 + 1;\n          } while (iVar16 != 0);\n          puVar35 = (undefined4 *)(*(int *)(puVar40 + -0x54) + iVar41 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar38 + -0x7d58);\n        *(undefined4 *)(puVar40 + -0x38) = uVar23;\n        *(undefined4 *)(puVar40 + -0x3c) = uVar25;\n        *puVar35 = uVar8;\n        iVar16 = (*UNRECOVERED_JUMPTABLE)(uVar42,0,iVar41);\n        iVar38 = *(int *)(puVar40 + -0x38);\n        iVar39 = *(int *)(puVar40 + -0x68);\n        iVar26 = *(int *)(puVar40 + -0x3c);\n        if (iVar38 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x48);\n          iVar38 = iVar26;\nLAB_0007bb8c:\n          *(int *)(puVar40 + -0x48) = iVar16;\n          (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,iVar38);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          puVar35 = *(undefined4 **)(puVar40 + -0x48);\n        }\n        else {\n          puVar35 = *(undefined4 **)(puVar40 + -0x44);\n          iVar9 = iVar38 + -1;\n          puVar27 = (undefined4 *)(iVar16 + iVar41);\n          uVar42 = *puVar35;\n          puVar21 = puVar27;\n          if (iVar9 == 0) {\n            uVar8 = *(undefined4 *)(puVar40 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n            *puVar27 = uVar42;\n            *(undefined4 *)(puVar40 + -0x70) = uVar8;\n            iVar38 = iVar28;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar35 = puVar35 + 1;\n            *puVar27 = uVar42;\n            iVar9 = iVar9 + -1;\n            uVar42 = *puVar35;\n            puVar27 = puVar27 + 1;\n          } while (iVar9 != 0);\n          uVar8 = *(undefined4 *)(puVar40 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(int *)(puVar40 + -0x48) = iVar16;\n          *(undefined4 *)(puVar40 + -0x70) = uVar8;\n          puVar21[iVar38 + -1] = uVar42;\n          (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,iVar28);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          if (iVar28 == 0) goto joined_r0x0007b75c;\n          puVar35 = *(undefined4 **)(puVar40 + -0x48);\n          *(int *)(puVar40 + -0x40) = iVar28 + -1;\n        }\n        iVar38 = *(int *)(puVar40 + -0x40);\n        uVar42 = *puVar35;\n        puVar27 = puVar33;\n        if (iVar38 == 0) {\n          *puVar33 = uVar42;\n        }\n        else {\n          do {\n            puVar35 = puVar35 + 1;\n            *puVar27 = uVar42;\n            iVar38 = iVar38 + -1;\n            uVar42 = *puVar35;\n            puVar27 = puVar27 + 1;\n          } while (iVar38 != 0);\n          puVar33[*(int *)(puVar40 + -0x40)] = uVar42;\n        }\n      }\njoined_r0x0007b75c:\n      for (; iVar34 != 0; iVar34 = iVar34 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar16 + -0x7bd0);\n        *(int *)(puVar40 + -0x70) = iVar28;\n        (*UNRECOVERED_JUMPTABLE)(psVar30,puVar36,iVar28,puVar33);\n        puVar36 = puVar36 + iVar28;\n        *(int *)(puVar40 + -0x70) = iVar7;\n        uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))(puVar36,psVar30,piVar32,iVar28);\n        *(int *)(puVar40 + -0x70) = iVar28;\n        (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,puVar36,puVar36,piVar32);\n        iVar16 = *(int *)(puVar40 + -0x68);\n      }\n      if (*(uint *)(puVar40 + -0x5c) <= *(uint *)(puVar40 + -0x60)) {\n        uVar4 = *(int *)(puVar40 + -0x60) - *(uint *)(puVar40 + -0x5c);\n        uVar13 = 0x20 - (uVar4 & 0x1f);\n        puVar12 = (uint *)(*(int *)(puVar40 + -0x4c) + (uVar4 >> 5) * 4);\n        uVar5 = *puVar12 >> (uVar4 & 0x1f);\n        if ((int)uVar13 < *(int *)(puVar40 + -0x58)) {\n          uVar5 = uVar5 + (puVar12[1] << (uVar13 & 0x1f));\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar16 + -0x7bac);\n        *(int *)(puVar40 + -0x44) = ~(-1 << (*(uint *)(puVar40 + -0x58) & 0x1f));\n        *(uint *)(puVar40 + -0x70) = ~(-1 << (*(uint *)(puVar40 + -0x58) & 0x1f)) & uVar5;\n        (*UNRECOVERED_JUMPTABLE)\n                  (ptVar15,*(undefined4 *)(puVar40 + -0x54),iVar28,*(undefined4 *)(puVar40 + -0x50))\n        ;\n        iVar34 = *(int *)(puVar40 + -0x68);\n        if (uVar4 != 0) {\n          *(uint *)(puVar40 + -0x48) = (uint)(iVar28 < 0x39);\n          do {\n            if (uVar4 < *(uint *)(puVar40 + -0x5c)) {\n              uVar13 = 0;\n              *(uint *)(puVar40 + -0x60) = ~(-1 << (uVar4 & 0x1f)) & **(uint **)(puVar40 + -0x4c);\n            }\n            else {\n              uVar13 = uVar4 - *(int *)(puVar40 + -0x5c);\n              uVar4 = 0x20 - (uVar13 & 0x1f);\n              puVar12 = (uint *)(*(int *)(puVar40 + -0x4c) + (uVar13 >> 5) * 4);\n              uVar5 = *puVar12 >> (uVar13 & 0x1f);\n              if ((int)uVar4 < *(int *)(puVar40 + -0x58)) {\n                uVar5 = uVar5 + (puVar12[1] << (uVar4 & 0x1f));\n              }\n              uVar4 = *(uint *)(puVar40 + -0x58);\n              *(uint *)(puVar40 + -0x60) = *(uint *)(puVar40 + -0x44) & uVar5;\n            }\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);\n            if (*(int *)(puVar40 + -0x48) == 0) {\n              do {\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bd0);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28,ptVar15);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n              } while (uVar4 != 0);\n              uVar42 = *(undefined4 *)(puVar40 + -0x60);\n            }\n            else {\n              while( true ) {\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n                if (uVar4 == 0) break;\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);\n              }\n              uVar42 = *(undefined4 *)(puVar40 + -0x60);\n            }\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bac);\n            *(undefined4 *)(puVar40 + -0x70) = uVar42;\n            (*UNRECOVERED_JUMPTABLE)\n                      (psVar30 + iVar28 * 2,*(undefined4 *)(puVar40 + -0x54),iVar28,\n                       *(undefined4 *)(puVar40 + -0x50));\n            *(int *)(puVar40 + -0x70) = iVar28;\n            (**(code **)(*(int *)(puVar40 + -0x68) + -0x7bd0))\n                      (psVar30,ptVar15,iVar28,psVar30 + iVar28 * 2);\n            *(int *)(puVar40 + -0x70) = iVar7;\n            uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                               (ptVar15,psVar30,piVar32,iVar28);\n            *(int *)(puVar40 + -0x70) = iVar28;\n            (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n            iVar34 = *(int *)(puVar40 + -0x68);\n            uVar4 = uVar13;\n          } while (uVar13 != 0);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7eb0);\n        if (iVar28 != 0) {\n          iVar16 = iVar28 + -1;\n          ptVar22 = ptVar15->next;\n          psVar10 = psVar30;\n          ptVar17 = ptVar15;\n          if (iVar16 != 0) {\n            do {\n              *psVar10 = (size_t)ptVar22;\n              iVar16 = iVar16 + -1;\n              ptVar22 = (tmp_reentrant_t *)ptVar17->size;\n              psVar10 = psVar10 + 1;\n              ptVar17 = (tmp_reentrant_t *)&ptVar17->size;\n            } while (iVar16 != 0);\n            psVar10 = psVar30 + iVar28 + -1;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7d58);\n          *psVar10 = (size_t)ptVar22;\n          (*UNRECOVERED_JUMPTABLE)(psVar30 + iVar28,0,iVar41);\n          UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0);\n        }\n        *(int *)(puVar40 + -0x70) = iVar7;\n        uVar42 = (*UNRECOVERED_JUMPTABLE)(ptVar15,psVar30,piVar32,iVar28);\n        *(int *)(puVar40 + -0x70) = iVar28;\n        (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n        iVar34 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7b2c))(psVar30,ptVar15,piVar32,iVar28);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7a70);\n        *(int *)(puVar40 + 0x10) = iVar28;\n                    /* WARNING: Could not recover jumptable at 0x0007bab0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*UNRECOVERED_JUMPTABLE)(iVar34 == 0,ptVar15,ptVar15,piVar32);\n        return;\n      }\n      (**(code **)(iVar16 + -0x7c20))\n                (*(int *)(iVar16 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar16 + -0x7fd4) + 0x5438);\n      return;\n    }\n    pmVar31 = (mp_limb_t *)((int)pmVar11 + -1);\n    if ((ep[(uint)pmVar31 >> 5] >> ((uint)pmVar31 & 0x1f) & 1) == 0) goto LAB_0007afb0;\nLAB_0007b010:\n    if (pmVar11 < local_44) {\n      uVar5 = ~(-1 << ((uint)pmVar11 & 0x1f)) & *ep;\n      uVar13 = 0;\n      if ((uVar5 & 0xff) == 0) goto LAB_0007b270;\nLAB_0007b040:\n      uVar4 = (byte)puVar37[-uVar5 & uVar5] - 2;\n    }\n    else {\n      uVar13 = (int)pmVar11 - (int)local_44;\n      uVar4 = 0x20 - (uVar13 & 0x1f);\n      uVar5 = ep[uVar13 >> 5] >> (uVar13 & 0x1f);\n      if ((int)uVar4 < (int)local_44) {\n        uVar5 = uVar5 + ((ep + (uVar13 >> 5))[1] << (uVar4 & 0x1f));\n      }\n      uVar5 = uVar5 & local_4c;\n      pmVar11 = local_44;\n      if ((uVar5 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar4 = uVar5 >> 8;\n      iVar28 = 0x1e;\n      if (uVar4 != 0) {\n        iVar28 = 6;\n      }\n      uVar4 = (uint)(byte)puVar37[-uVar4 & uVar4] + iVar28;\n    }\n    bp = (mp_srcptr)((int)pmVar11 - uVar4);\n    pmVar11 = bp;\n    if (1 < (int)bp) {\n      do {\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(tp,rp,n);\n        pmVar29 = (mp_limb_t *)((int)pmVar11 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(rp,tp,n);\n        pmVar11 = pmVar29;\n      } while (1 < (int)pmVar29);\n      bp = (mp_srcptr)((uint)bp & 1);\n    }\n    if (bp == (mp_limb_t *)0x0) {\n      if (n != 0) {\n        mVar19 = *rp;\n        pmVar11 = tp;\n        if (local_3c != 0) {\n          iVar28 = local_3c;\n          pmVar18 = tp;\n          pmVar31 = rp + 1;\n          do {\n            *pmVar18 = mVar19;\n            iVar28 = iVar28 + -1;\n            mVar19 = *pmVar31;\n            pmVar11 = tp + n + -1;\n            pmVar18 = pmVar18 + 1;\n            pmVar31 = pmVar31 + 1;\n          } while (iVar28 != 0);\n        }\n        *pmVar11 = mVar19;\n      }\n    }\n    else {\n      (*(code *)PTR___gmpn_sqrlo_0009d354)(tp,rp,n);\n    }\n    pmVar20 = (mp_limb_t *)(((uVar5 >> (uVar4 & 0x1f)) >> 1) * iVar34 + (int)pmVar6);\n    pmVar18 = tp;\n    en = n;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(rp);\n    pmVar11 = (mp_limb_t *)(uVar4 + uVar13);\n    ptVar15 = __tmp_marker;\n  } while( true );\n}\n\n" (function_definition "void __gmpn_powlo(mp_ptr rp,mp_srcptr bp,mp_srcptr ep,mp_size_t en,mp_size_t n,mp_ptr tp)\n\n{\n  mp_ptr pmVar1;\n  mp_ptr pmVar2;\n  undefined *puVar3;\n  uint uVar4;\n  uint uVar5;\n  mp_limb_t *pmVar6;\n  int iVar7;\n  undefined4 uVar8;\n  int iVar9;\n  size_t *psVar10;\n  mp_limb_t *pmVar11;\n  uint *puVar12;\n  uint uVar13;\n  mp_ptr pmVar14;\n  tmp_reentrant_t *ptVar15;\n  int iVar16;\n  tmp_reentrant_t *ptVar17;\n  mp_ptr pmVar18;\n  mp_limb_t mVar19;\n  mp_limb_t *pmVar20;\n  undefined4 *puVar21;\n  tmp_reentrant_t *ptVar22;\n  undefined4 uVar23;\n  undefined1 *puVar24;\n  undefined4 uVar25;\n  int iVar26;\n  undefined4 *puVar27;\n  int iVar28;\n  mp_limb_t *pmVar29;\n  size_t *psVar30;\n  mp_limb_t *pmVar31;\n  int *piVar32;\n  undefined4 *puVar33;\n  int iVar34;\n  undefined4 *puVar35;\n  undefined4 *puVar36;\n  undefined *puVar37;\n  code *UNRECOVERED_JUMPTABLE;\n  int iVar38;\n  int iVar39;\n  undefined1 *puVar40;\n  int iVar41;\n  undefined4 uVar42;\n  undefined1 auStack_70 [16];\n  uint local_4c;\n  mp_limb_t *local_44;\n  int local_3c;\n  mp_limb_t *local_38;\n  tmp_reentrant_t *__tmp_marker;\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_0009d540;\n  puVar37 = PTR___gmpn_clz_tab_0009d18c;\n  puVar40 = auStack_70;\n  puVar24 = auStack_70;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  uVar4 = ep[en + -1];\n  __tmp_marker = (tmp_reentrant_t *)0x0;\n  if (uVar4 < 0x10000) {\n    iVar28 = 9;\n    if (uVar4 < 0x100) {\n      iVar28 = 1;\n    }\n    pmVar29 = (mp_limb_t *)\n              (en * 0x20 + -0x21 + iVar28 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar4 >> iVar28]\n              );\n  }\n  else {\n    iVar28 = 0x19;\n    if (uVar4 < 0x1000000) {\n      iVar28 = 0x11;\n    }\n    pmVar29 = (mp_limb_t *)\n              (en * 0x20 + -0x21 + iVar28 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar4 >> iVar28]\n              );\n  }\n  if (pmVar29 < &DAT_00000008) {\n    local_4c = 1;\n    local_38 = (mp_limb_t *)&DAT_00000001;\n    uVar4 = n << 2;\n    iVar28 = 0;\n    local_44 = local_38;\n  }\n  else {\n    if (pmVar29 < (mp_limb_t *)0x1a) {\n      local_44 = (mp_limb_t *)0x2;\n      iVar28 = 1;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x52) {\n      local_44 = (mp_limb_t *)0x3;\n      iVar28 = 2;\n    }\n    else if (pmVar29 < (mp_limb_t *)0xf2) {\n      local_44 = (mp_limb_t *)&DAT_00000004;\n      iVar28 = 3;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x2a2) {\n      local_44 = (mp_limb_t *)&DAT_00000005;\n      iVar28 = 4;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x702) {\n      local_44 = (mp_limb_t *)&DAT_00000006;\n      iVar28 = 5;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x1202) {\n      local_44 = (mp_limb_t *)0x7;\n      iVar28 = 6;\n    }\n    else {\n      iVar28 = 9;\n      if (pmVar29 < (mp_limb_t *)0x2d02) {\n        local_44 = (mp_limb_t *)&DAT_00000008;\n        iVar28 = 7;\n      }\n      else {\n        local_44 = (mp_limb_t *)&DAT_0000000a;\n        if (pmVar29 < (mp_limb_t *)0x6e02) {\n          local_44 = (mp_limb_t *)&DAT_00000009;\n          iVar28 = 8;\n        }\n      }\n    }\n    uVar4 = (n << iVar28) << 2;\n    local_4c = ~(-1 << (int)local_44);\n    iVar28 = (1 << iVar28) + -1;\n  }\n  if (uVar4 < 0x7f01) {\n    iVar34 = -(uVar4 + 7 & 0xfffffff8);\n    puVar24 = auStack_70 + iVar34;\n    puVar40 = auStack_70 + iVar34;\n    pmVar6 = (mp_limb_t *)(&stack0xffffffa0 + iVar34);\n    ptVar15 = __tmp_marker;\n  }\n  else {\n    pmVar6 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n    ptVar15 = __tmp_marker;\n  }\n  __tmp_marker = ptVar15;\n  if (n == 0) {\n    local_3c = -1;\n    puVar40 = puVar24;\n  }\n  else {\n    local_3c = n + -1;\n    mVar19 = *bp;\n    if (local_3c == 0) {\n      *pmVar6 = mVar19;\n    }\n    else {\n      iVar34 = local_3c;\n      pmVar11 = pmVar6;\n      pmVar31 = bp + 1;\n      do {\n        *pmVar11 = mVar19;\n        iVar34 = iVar34 + -1;\n        mVar19 = *pmVar31;\n        pmVar11 = pmVar11 + 1;\n        pmVar31 = pmVar31 + 1;\n      } while (iVar34 != 0);\n      pmVar6[n + -1] = mVar19;\n    }\n  }\n  (*(code *)PTR___gmpn_sqrlo_0009d354)(tp,bp,n);\n  iVar34 = n * 4;\n  pmVar11 = pmVar6;\n  for (; iVar28 != 0; iVar28 = iVar28 + -1) {\n    bp = pmVar11 + n;\n    en = n;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(bp,pmVar11,tp);\n    pmVar11 = bp;\n  }\n  uVar4 = (int)pmVar29 - (int)local_44;\n  if (pmVar29 < local_44) {\n    uVar5 = ~(-1 << ((uint)pmVar29 & 0x1f)) & *ep;\n  }\n  else {\n    uVar13 = 0x20 - (uVar4 & 0x1f);\n    en = (mp_size_t)((int)uVar13 < (int)local_44);\n    uVar5 = ep[uVar4 >> 5] >> (uVar4 & 0x1f);\n    if (en != 0) {\n      uVar5 = uVar5 + ((ep + (uVar4 >> 5))[1] << (uVar13 & 0x1f));\n    }\n    uVar5 = uVar5 & local_4c;\n  }\n  if ((uVar5 & 0xff) == 0) {\n    uVar13 = uVar5 >> 8;\n    en = 6;\n    iVar28 = 0x1e;\n    if (uVar13 != 0) {\n      iVar28 = 6;\n    }\n    uVar13 = (uint)(byte)puVar37[-uVar13 & uVar13] + iVar28;\n  }\n  else {\n    uVar13 = (byte)puVar37[-uVar5 & uVar5] - 2;\n  }\n  pmVar11 = (mp_limb_t *)(uVar13 + uVar4);\n  if (n != 0) {\n    en = ((uVar5 >> (uVar13 & 0x1f)) >> 1) * iVar34;\n    pmVar20 = (mp_limb_t *)(en + (int)pmVar6);\n    mVar19 = *pmVar20;\n    iVar28 = local_3c;\n    pmVar31 = rp;\n    if (local_3c == 0) {\n      *rp = mVar19;\n    }\n    else {\n      do {\n        pmVar20 = pmVar20 + 1;\n        *pmVar31 = mVar19;\n        iVar28 = iVar28 + -1;\n        mVar19 = *pmVar20;\n        pmVar31 = pmVar31 + 1;\n      } while (iVar28 != 0);\n      rp[n + -1] = mVar19;\n    }\n  }\n  pmVar31 = (mp_limb_t *)((int)pmVar11 + -1);\n  if ((ep[(uint)pmVar31 >> 5] >> ((uint)pmVar31 & 0x1f) & 1) != 0) goto LAB_0007b010;\nLAB_0007afb0:\n  pmVar18 = rp;\n  pmVar20 = (mp_limb_t *)n;\n  (*(code *)PTR___gmpn_sqrlo_0009d354)(tp);\n  pmVar11 = pmVar31;\n  ptVar15 = __tmp_marker;\n  if (n != 0) {\n    pmVar18 = (mp_ptr)*tp;\n    pmVar1 = rp;\n    pmVar2 = rp;\n    pmVar14 = tp;\n    for (iVar28 = local_3c; iVar28 != 0; iVar28 = iVar28 + -1) {\n      pmVar14 = pmVar14 + 1;\n      *pmVar2 = (mp_limb_t)pmVar18;\n      pmVar18 = (mp_ptr)*pmVar14;\n      pmVar1 = rp + n + -1;\n      pmVar2 = pmVar2 + 1;\n    }\n    *pmVar1 = (mp_limb_t)pmVar18;\n  }\n  do {\n    __tmp_marker = ptVar15;\n    if (pmVar11 == (mp_limb_t *)0x0) {\n      if (ptVar15 != (tmp_reentrant_t *)0x0) {\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }\n      if (local_2c == *(int *)puVar3) {\n        return;\n      }\n      uVar42 = 0x7b45c;\n      puVar37 = PTR___stack_chk_fail_0009d4d0;\n      (*(code *)PTR___stack_chk_fail_0009d4d0)();\n      uVar4 = *(uint *)(puVar40 + 0x10);\n      *(mp_size_t *)(puVar40 + -0x24) = n;\n      *(undefined **)(puVar40 + -0x68) = puVar37 + 0x29be0;\n      *(undefined4 *)(puVar40 + -0x18) = 0;\n      *(mp_limb_t **)(puVar40 + -0x28) = pmVar29;\n      *(undefined4 *)(puVar40 + -4) = uVar42;\n      *(undefined1 **)(puVar40 + -8) = auStack_70;\n      *(int *)(puVar40 + -0xc) = iVar34;\n      *(mp_srcptr *)(puVar40 + -0x10) = ep;\n      *(mp_srcptr *)(puVar40 + -0x14) = bp;\n      *(mp_ptr *)(puVar40 + -0x1c) = rp;\n      *(mp_ptr *)(puVar40 + -0x20) = tp;\n      *(uint *)(puVar40 + -0x60) = uVar4;\n      *(mp_ptr *)(puVar40 + -0x44) = pmVar18;\n      *(mp_size_t *)(puVar40 + -0x4c) = en;\n      piVar32 = *(int **)(puVar40 + 0x14);\n      iVar28 = *(int *)(puVar40 + 0x18);\n      *(undefined4 *)(puVar40 + -0x54) = *(undefined4 *)(puVar40 + 0x1c);\n      if (uVar4 < 3) {\n        iVar34 = 0;\n        *(undefined4 *)(puVar40 + -0x5c) = 1;\n        *(undefined4 *)(puVar40 + -0x50) = 2;\n        iVar7 = 1;\n        *(undefined4 *)(puVar40 + -0x58) = 1;\n      }\n      else {\n        if (uVar4 < 0x22) {\n          *(undefined4 *)(puVar40 + -0x58) = 2;\n          iVar7 = 2;\n        }\n        else if (uVar4 < 0x61) {\n          *(undefined4 *)(puVar40 + -0x58) = 3;\n          iVar7 = 3;\n        }\n        else if (uVar4 < 0x30d) {\n          *(undefined4 *)(puVar40 + -0x58) = 4;\n          iVar7 = 4;\n        }\n        else {\n          iVar7 = 6;\n          if (uVar4 < 0xab6) {\n            iVar7 = 5;\n          }\n          *(int *)(puVar40 + -0x58) = iVar7;\n        }\n        *(int *)(puVar40 + -0x5c) = iVar7;\n        *(int *)(puVar40 + -0x50) = 1 << iVar7;\n        iVar34 = (1 << iVar7) + -2;\n      }\n      iVar16 = *piVar32;\n      iVar41 = iVar28 * 4;\n      puVar35 = *(undefined4 **)(puVar40 + -0x54);\n      puVar24 = (undefined1 *)(iVar28 + (int)pmVar20);\n      puVar33 = puVar35 + iVar28;\n      uVar4 = (uint)*(byte *)(*(int *)(puVar37 + 0x21ea4) + ((uint)(iVar16 << 0x18) >> 0x19));\n      puVar27 = puVar33 + iVar28;\n      puVar21 = puVar35 + iVar28 + 1;\n      *(undefined4 **)(puVar40 + -0x48) = puVar27 + (int)puVar24;\n      psVar30 = puVar35 + (iVar28 << iVar7);\n      *puVar33 = 1;\n      iVar7 = uVar4 * 2 - uVar4 * uVar4 * iVar16;\n      iVar7 = iVar7 * iVar7 * iVar16 + iVar7 * -2;\n      puVar36 = puVar33;\n      if (iVar28 == 0) {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar37 + 0x2211c);\n        puVar21[iVar28] = 1;\n        *(mp_limb_t **)(puVar40 + -0x38) = pmVar20;\n        *(undefined1 **)(puVar40 + -0x3c) = puVar24;\n        *(undefined4 **)(puVar40 + -0x40) = puVar27;\n        *(undefined4 **)(puVar40 + -0x70) = puVar21 + iVar28 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,1,piVar32,0);\n        iVar26 = *(int *)(puVar40 + -0x3c);\n        iVar39 = *(int *)(puVar40 + -0x68);\n        iVar16 = *(int *)(puVar40 + -0x40);\n        iVar38 = *(int *)(puVar40 + -0x38);\n        if (iVar26 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar16,0,piVar32,0);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar9 = iVar38 + -1;\n        puVar27 = (undefined4 *)(iVar16 + iVar41);\n        uVar42 = **(undefined4 **)(puVar40 + -0x44);\n        if (iVar9 != 0) {\n          puVar35 = *(undefined4 **)(puVar40 + -0x44);\n          puVar21 = puVar27;\n          goto LAB_0007b70c;\n        }\n        uVar8 = *(undefined4 *)(puVar40 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n        *puVar27 = uVar42;\n        *(undefined4 *)(puVar40 + -0x70) = uVar8;\n        (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,0);\n        iVar16 = *(int *)(puVar40 + -0x68);\n      }\n      else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar37 + 0x21e88);\n        *(mp_limb_t **)(puVar40 + -0x2c) = pmVar20;\n        *(undefined1 **)(puVar40 + -0x30) = puVar24;\n        *(undefined4 **)(puVar40 + -0x34) = puVar21 + iVar28;\n        *(undefined4 **)(puVar40 + -0x38) = puVar27;\n        *(undefined4 **)(puVar40 + -0x3c) = puVar21 + iVar28 + 1;\n        uVar42 = (*UNRECOVERED_JUMPTABLE)(puVar21,0,iVar41);\n        uVar8 = *puVar33;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7ac4);\n        *(int *)(puVar40 + -0x40) = iVar28 + -1;\n        *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x3c);\n        *(undefined4 *)(puVar40 + -0x3c) = uVar42;\n        **(undefined4 **)(puVar40 + -0x34) = uVar8;\n        (*UNRECOVERED_JUMPTABLE)(uVar42,iVar28 + 1,piVar32,iVar28);\n        iVar16 = iVar28 + -1;\n        puVar27 = *(undefined4 **)(puVar40 + -0x3c);\n        iVar38 = *(int *)(puVar40 + -0x68);\n        uVar42 = *(undefined4 *)(puVar40 + -0x38);\n        uVar25 = *(undefined4 *)(puVar40 + -0x30);\n        uVar8 = *puVar27;\n        uVar23 = *(undefined4 *)(puVar40 + -0x2c);\n        if (iVar16 == 0) {\n          puVar35 = *(undefined4 **)(puVar40 + -0x54);\n        }\n        else {\n          do {\n            puVar27 = puVar27 + 1;\n            *puVar35 = uVar8;\n            iVar16 = iVar16 + -1;\n            uVar8 = *puVar27;\n            puVar35 = puVar35 + 1;\n          } while (iVar16 != 0);\n          puVar35 = (undefined4 *)(*(int *)(puVar40 + -0x54) + iVar41 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar38 + -0x7d58);\n        *(undefined4 *)(puVar40 + -0x38) = uVar23;\n        *(undefined4 *)(puVar40 + -0x3c) = uVar25;\n        *puVar35 = uVar8;\n        iVar16 = (*UNRECOVERED_JUMPTABLE)(uVar42,0,iVar41);\n        iVar38 = *(int *)(puVar40 + -0x38);\n        iVar39 = *(int *)(puVar40 + -0x68);\n        iVar26 = *(int *)(puVar40 + -0x3c);\n        if (iVar38 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x48);\n          iVar38 = iVar26;\nLAB_0007bb8c:\n          *(int *)(puVar40 + -0x48) = iVar16;\n          (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,iVar38);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          puVar35 = *(undefined4 **)(puVar40 + -0x48);\n        }\n        else {\n          puVar35 = *(undefined4 **)(puVar40 + -0x44);\n          iVar9 = iVar38 + -1;\n          puVar27 = (undefined4 *)(iVar16 + iVar41);\n          uVar42 = *puVar35;\n          puVar21 = puVar27;\n          if (iVar9 == 0) {\n            uVar8 = *(undefined4 *)(puVar40 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n            *puVar27 = uVar42;\n            *(undefined4 *)(puVar40 + -0x70) = uVar8;\n            iVar38 = iVar28;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar35 = puVar35 + 1;\n            *puVar27 = uVar42;\n            iVar9 = iVar9 + -1;\n            uVar42 = *puVar35;\n            puVar27 = puVar27 + 1;\n          } while (iVar9 != 0);\n          uVar8 = *(undefined4 *)(puVar40 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(int *)(puVar40 + -0x48) = iVar16;\n          *(undefined4 *)(puVar40 + -0x70) = uVar8;\n          puVar21[iVar38 + -1] = uVar42;\n          (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,iVar28);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          if (iVar28 == 0) goto joined_r0x0007b75c;\n          puVar35 = *(undefined4 **)(puVar40 + -0x48);\n          *(int *)(puVar40 + -0x40) = iVar28 + -1;\n        }\n        iVar38 = *(int *)(puVar40 + -0x40);\n        uVar42 = *puVar35;\n        puVar27 = puVar33;\n        if (iVar38 == 0) {\n          *puVar33 = uVar42;\n        }\n        else {\n          do {\n            puVar35 = puVar35 + 1;\n            *puVar27 = uVar42;\n            iVar38 = iVar38 + -1;\n            uVar42 = *puVar35;\n            puVar27 = puVar27 + 1;\n          } while (iVar38 != 0);\n          puVar33[*(int *)(puVar40 + -0x40)] = uVar42;\n        }\n      }\njoined_r0x0007b75c:\n      for (; iVar34 != 0; iVar34 = iVar34 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar16 + -0x7bd0);\n        *(int *)(puVar40 + -0x70) = iVar28;\n        (*UNRECOVERED_JUMPTABLE)(psVar30,puVar36,iVar28,puVar33);\n        puVar36 = puVar36 + iVar28;\n        *(int *)(puVar40 + -0x70) = iVar7;\n        uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))(puVar36,psVar30,piVar32,iVar28);\n        *(int *)(puVar40 + -0x70) = iVar28;\n        (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,puVar36,puVar36,piVar32);\n        iVar16 = *(int *)(puVar40 + -0x68);\n      }\n      if (*(uint *)(puVar40 + -0x5c) <= *(uint *)(puVar40 + -0x60)) {\n        uVar4 = *(int *)(puVar40 + -0x60) - *(uint *)(puVar40 + -0x5c);\n        uVar13 = 0x20 - (uVar4 & 0x1f);\n        puVar12 = (uint *)(*(int *)(puVar40 + -0x4c) + (uVar4 >> 5) * 4);\n        uVar5 = *puVar12 >> (uVar4 & 0x1f);\n        if ((int)uVar13 < *(int *)(puVar40 + -0x58)) {\n          uVar5 = uVar5 + (puVar12[1] << (uVar13 & 0x1f));\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar16 + -0x7bac);\n        *(int *)(puVar40 + -0x44) = ~(-1 << (*(uint *)(puVar40 + -0x58) & 0x1f));\n        *(uint *)(puVar40 + -0x70) = ~(-1 << (*(uint *)(puVar40 + -0x58) & 0x1f)) & uVar5;\n        (*UNRECOVERED_JUMPTABLE)\n                  (ptVar15,*(undefined4 *)(puVar40 + -0x54),iVar28,*(undefined4 *)(puVar40 + -0x50))\n        ;\n        iVar34 = *(int *)(puVar40 + -0x68);\n        if (uVar4 != 0) {\n          *(uint *)(puVar40 + -0x48) = (uint)(iVar28 < 0x39);\n          do {\n            if (uVar4 < *(uint *)(puVar40 + -0x5c)) {\n              uVar13 = 0;\n              *(uint *)(puVar40 + -0x60) = ~(-1 << (uVar4 & 0x1f)) & **(uint **)(puVar40 + -0x4c);\n            }\n            else {\n              uVar13 = uVar4 - *(int *)(puVar40 + -0x5c);\n              uVar4 = 0x20 - (uVar13 & 0x1f);\n              puVar12 = (uint *)(*(int *)(puVar40 + -0x4c) + (uVar13 >> 5) * 4);\n              uVar5 = *puVar12 >> (uVar13 & 0x1f);\n              if ((int)uVar4 < *(int *)(puVar40 + -0x58)) {\n                uVar5 = uVar5 + (puVar12[1] << (uVar4 & 0x1f));\n              }\n              uVar4 = *(uint *)(puVar40 + -0x58);\n              *(uint *)(puVar40 + -0x60) = *(uint *)(puVar40 + -0x44) & uVar5;\n            }\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);\n            if (*(int *)(puVar40 + -0x48) == 0) {\n              do {\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bd0);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28,ptVar15);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n              } while (uVar4 != 0);\n              uVar42 = *(undefined4 *)(puVar40 + -0x60);\n            }\n            else {\n              while( true ) {\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n                if (uVar4 == 0) break;\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);\n              }\n              uVar42 = *(undefined4 *)(puVar40 + -0x60);\n            }\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bac);\n            *(undefined4 *)(puVar40 + -0x70) = uVar42;\n            (*UNRECOVERED_JUMPTABLE)\n                      (psVar30 + iVar28 * 2,*(undefined4 *)(puVar40 + -0x54),iVar28,\n                       *(undefined4 *)(puVar40 + -0x50));\n            *(int *)(puVar40 + -0x70) = iVar28;\n            (**(code **)(*(int *)(puVar40 + -0x68) + -0x7bd0))\n                      (psVar30,ptVar15,iVar28,psVar30 + iVar28 * 2);\n            *(int *)(puVar40 + -0x70) = iVar7;\n            uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                               (ptVar15,psVar30,piVar32,iVar28);\n            *(int *)(puVar40 + -0x70) = iVar28;\n            (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n            iVar34 = *(int *)(puVar40 + -0x68);\n            uVar4 = uVar13;\n          } while (uVar13 != 0);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7eb0);\n        if (iVar28 != 0) {\n          iVar16 = iVar28 + -1;\n          ptVar22 = ptVar15->next;\n          psVar10 = psVar30;\n          ptVar17 = ptVar15;\n          if (iVar16 != 0) {\n            do {\n              *psVar10 = (size_t)ptVar22;\n              iVar16 = iVar16 + -1;\n              ptVar22 = (tmp_reentrant_t *)ptVar17->size;\n              psVar10 = psVar10 + 1;\n              ptVar17 = (tmp_reentrant_t *)&ptVar17->size;\n            } while (iVar16 != 0);\n            psVar10 = psVar30 + iVar28 + -1;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7d58);\n          *psVar10 = (size_t)ptVar22;\n          (*UNRECOVERED_JUMPTABLE)(psVar30 + iVar28,0,iVar41);\n          UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0);\n        }\n        *(int *)(puVar40 + -0x70) = iVar7;\n        uVar42 = (*UNRECOVERED_JUMPTABLE)(ptVar15,psVar30,piVar32,iVar28);\n        *(int *)(puVar40 + -0x70) = iVar28;\n        (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n        iVar34 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7b2c))(psVar30,ptVar15,piVar32,iVar28);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7a70);\n        *(int *)(puVar40 + 0x10) = iVar28;\n                    /* WARNING: Could not recover jumptable at 0x0007bab0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*UNRECOVERED_JUMPTABLE)(iVar34 == 0,ptVar15,ptVar15,piVar32);\n        return;\n      }\n      (**(code **)(iVar16 + -0x7c20))\n                (*(int *)(iVar16 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar16 + -0x7fd4) + 0x5438);\n      return;\n    }\n    pmVar31 = (mp_limb_t *)((int)pmVar11 + -1);\n    if ((ep[(uint)pmVar31 >> 5] >> ((uint)pmVar31 & 0x1f) & 1) == 0) goto LAB_0007afb0;\nLAB_0007b010:\n    if (pmVar11 < local_44) {\n      uVar5 = ~(-1 << ((uint)pmVar11 & 0x1f)) & *ep;\n      uVar13 = 0;\n      if ((uVar5 & 0xff) == 0) goto LAB_0007b270;\nLAB_0007b040:\n      uVar4 = (byte)puVar37[-uVar5 & uVar5] - 2;\n    }\n    else {\n      uVar13 = (int)pmVar11 - (int)local_44;\n      uVar4 = 0x20 - (uVar13 & 0x1f);\n      uVar5 = ep[uVar13 >> 5] >> (uVar13 & 0x1f);\n      if ((int)uVar4 < (int)local_44) {\n        uVar5 = uVar5 + ((ep + (uVar13 >> 5))[1] << (uVar4 & 0x1f));\n      }\n      uVar5 = uVar5 & local_4c;\n      pmVar11 = local_44;\n      if ((uVar5 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar4 = uVar5 >> 8;\n      iVar28 = 0x1e;\n      if (uVar4 != 0) {\n        iVar28 = 6;\n      }\n      uVar4 = (uint)(byte)puVar37[-uVar4 & uVar4] + iVar28;\n    }\n    bp = (mp_srcptr)((int)pmVar11 - uVar4);\n    pmVar11 = bp;\n    if (1 < (int)bp) {\n      do {\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(tp,rp,n);\n        pmVar29 = (mp_limb_t *)((int)pmVar11 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(rp,tp,n);\n        pmVar11 = pmVar29;\n      } while (1 < (int)pmVar29);\n      bp = (mp_srcptr)((uint)bp & 1);\n    }\n    if (bp == (mp_limb_t *)0x0) {\n      if (n != 0) {\n        mVar19 = *rp;\n        pmVar11 = tp;\n        if (local_3c != 0) {\n          iVar28 = local_3c;\n          pmVar18 = tp;\n          pmVar31 = rp + 1;\n          do {\n            *pmVar18 = mVar19;\n            iVar28 = iVar28 + -1;\n            mVar19 = *pmVar31;\n            pmVar11 = tp + n + -1;\n            pmVar18 = pmVar18 + 1;\n            pmVar31 = pmVar31 + 1;\n          } while (iVar28 != 0);\n        }\n        *pmVar11 = mVar19;\n      }\n    }\n    else {\n      (*(code *)PTR___gmpn_sqrlo_0009d354)(tp,rp,n);\n    }\n    pmVar20 = (mp_limb_t *)(((uVar5 >> (uVar4 & 0x1f)) >> 1) * iVar34 + (int)pmVar6);\n    pmVar18 = tp;\n    en = n;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(rp);\n    pmVar11 = (mp_limb_t *)(uVar4 + uVar13);\n    ptVar15 = __tmp_marker;\n  } while( true );\n}" primitive_type (function_declarator "__gmpn_powlo(mp_ptr rp,mp_srcptr bp,mp_srcptr ep,mp_size_t en,mp_size_t n,mp_ptr tp)" identifier (parameter_list "(mp_ptr rp,mp_srcptr bp,mp_srcptr ep,mp_size_t en,mp_size_t n,mp_ptr tp)" ( (parameter_declaration "mp_ptr rp" type_identifier identifier) , (parameter_declaration "mp_srcptr bp" type_identifier identifier) , (parameter_declaration "mp_srcptr ep" type_identifier identifier) , (parameter_declaration "mp_size_t en" type_identifier identifier) , (parameter_declaration "mp_size_t n" type_identifier identifier) , (parameter_declaration "mp_ptr tp" type_identifier identifier) ))) (compound_statement "{\n  mp_ptr pmVar1;\n  mp_ptr pmVar2;\n  undefined *puVar3;\n  uint uVar4;\n  uint uVar5;\n  mp_limb_t *pmVar6;\n  int iVar7;\n  undefined4 uVar8;\n  int iVar9;\n  size_t *psVar10;\n  mp_limb_t *pmVar11;\n  uint *puVar12;\n  uint uVar13;\n  mp_ptr pmVar14;\n  tmp_reentrant_t *ptVar15;\n  int iVar16;\n  tmp_reentrant_t *ptVar17;\n  mp_ptr pmVar18;\n  mp_limb_t mVar19;\n  mp_limb_t *pmVar20;\n  undefined4 *puVar21;\n  tmp_reentrant_t *ptVar22;\n  undefined4 uVar23;\n  undefined1 *puVar24;\n  undefined4 uVar25;\n  int iVar26;\n  undefined4 *puVar27;\n  int iVar28;\n  mp_limb_t *pmVar29;\n  size_t *psVar30;\n  mp_limb_t *pmVar31;\n  int *piVar32;\n  undefined4 *puVar33;\n  int iVar34;\n  undefined4 *puVar35;\n  undefined4 *puVar36;\n  undefined *puVar37;\n  code *UNRECOVERED_JUMPTABLE;\n  int iVar38;\n  int iVar39;\n  undefined1 *puVar40;\n  int iVar41;\n  undefined4 uVar42;\n  undefined1 auStack_70 [16];\n  uint local_4c;\n  mp_limb_t *local_44;\n  int local_3c;\n  mp_limb_t *local_38;\n  tmp_reentrant_t *__tmp_marker;\n  int local_2c;\n  \n  puVar3 = PTR___stack_chk_guard_0009d540;\n  puVar37 = PTR___gmpn_clz_tab_0009d18c;\n  puVar40 = auStack_70;\n  puVar24 = auStack_70;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  uVar4 = ep[en + -1];\n  __tmp_marker = (tmp_reentrant_t *)0x0;\n  if (uVar4 < 0x10000) {\n    iVar28 = 9;\n    if (uVar4 < 0x100) {\n      iVar28 = 1;\n    }\n    pmVar29 = (mp_limb_t *)\n              (en * 0x20 + -0x21 + iVar28 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar4 >> iVar28]\n              );\n  }\n  else {\n    iVar28 = 0x19;\n    if (uVar4 < 0x1000000) {\n      iVar28 = 0x11;\n    }\n    pmVar29 = (mp_limb_t *)\n              (en * 0x20 + -0x21 + iVar28 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar4 >> iVar28]\n              );\n  }\n  if (pmVar29 < &DAT_00000008) {\n    local_4c = 1;\n    local_38 = (mp_limb_t *)&DAT_00000001;\n    uVar4 = n << 2;\n    iVar28 = 0;\n    local_44 = local_38;\n  }\n  else {\n    if (pmVar29 < (mp_limb_t *)0x1a) {\n      local_44 = (mp_limb_t *)0x2;\n      iVar28 = 1;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x52) {\n      local_44 = (mp_limb_t *)0x3;\n      iVar28 = 2;\n    }\n    else if (pmVar29 < (mp_limb_t *)0xf2) {\n      local_44 = (mp_limb_t *)&DAT_00000004;\n      iVar28 = 3;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x2a2) {\n      local_44 = (mp_limb_t *)&DAT_00000005;\n      iVar28 = 4;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x702) {\n      local_44 = (mp_limb_t *)&DAT_00000006;\n      iVar28 = 5;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x1202) {\n      local_44 = (mp_limb_t *)0x7;\n      iVar28 = 6;\n    }\n    else {\n      iVar28 = 9;\n      if (pmVar29 < (mp_limb_t *)0x2d02) {\n        local_44 = (mp_limb_t *)&DAT_00000008;\n        iVar28 = 7;\n      }\n      else {\n        local_44 = (mp_limb_t *)&DAT_0000000a;\n        if (pmVar29 < (mp_limb_t *)0x6e02) {\n          local_44 = (mp_limb_t *)&DAT_00000009;\n          iVar28 = 8;\n        }\n      }\n    }\n    uVar4 = (n << iVar28) << 2;\n    local_4c = ~(-1 << (int)local_44);\n    iVar28 = (1 << iVar28) + -1;\n  }\n  if (uVar4 < 0x7f01) {\n    iVar34 = -(uVar4 + 7 & 0xfffffff8);\n    puVar24 = auStack_70 + iVar34;\n    puVar40 = auStack_70 + iVar34;\n    pmVar6 = (mp_limb_t *)(&stack0xffffffa0 + iVar34);\n    ptVar15 = __tmp_marker;\n  }\n  else {\n    pmVar6 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n    ptVar15 = __tmp_marker;\n  }\n  __tmp_marker = ptVar15;\n  if (n == 0) {\n    local_3c = -1;\n    puVar40 = puVar24;\n  }\n  else {\n    local_3c = n + -1;\n    mVar19 = *bp;\n    if (local_3c == 0) {\n      *pmVar6 = mVar19;\n    }\n    else {\n      iVar34 = local_3c;\n      pmVar11 = pmVar6;\n      pmVar31 = bp + 1;\n      do {\n        *pmVar11 = mVar19;\n        iVar34 = iVar34 + -1;\n        mVar19 = *pmVar31;\n        pmVar11 = pmVar11 + 1;\n        pmVar31 = pmVar31 + 1;\n      } while (iVar34 != 0);\n      pmVar6[n + -1] = mVar19;\n    }\n  }\n  (*(code *)PTR___gmpn_sqrlo_0009d354)(tp,bp,n);\n  iVar34 = n * 4;\n  pmVar11 = pmVar6;\n  for (; iVar28 != 0; iVar28 = iVar28 + -1) {\n    bp = pmVar11 + n;\n    en = n;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(bp,pmVar11,tp);\n    pmVar11 = bp;\n  }\n  uVar4 = (int)pmVar29 - (int)local_44;\n  if (pmVar29 < local_44) {\n    uVar5 = ~(-1 << ((uint)pmVar29 & 0x1f)) & *ep;\n  }\n  else {\n    uVar13 = 0x20 - (uVar4 & 0x1f);\n    en = (mp_size_t)((int)uVar13 < (int)local_44);\n    uVar5 = ep[uVar4 >> 5] >> (uVar4 & 0x1f);\n    if (en != 0) {\n      uVar5 = uVar5 + ((ep + (uVar4 >> 5))[1] << (uVar13 & 0x1f));\n    }\n    uVar5 = uVar5 & local_4c;\n  }\n  if ((uVar5 & 0xff) == 0) {\n    uVar13 = uVar5 >> 8;\n    en = 6;\n    iVar28 = 0x1e;\n    if (uVar13 != 0) {\n      iVar28 = 6;\n    }\n    uVar13 = (uint)(byte)puVar37[-uVar13 & uVar13] + iVar28;\n  }\n  else {\n    uVar13 = (byte)puVar37[-uVar5 & uVar5] - 2;\n  }\n  pmVar11 = (mp_limb_t *)(uVar13 + uVar4);\n  if (n != 0) {\n    en = ((uVar5 >> (uVar13 & 0x1f)) >> 1) * iVar34;\n    pmVar20 = (mp_limb_t *)(en + (int)pmVar6);\n    mVar19 = *pmVar20;\n    iVar28 = local_3c;\n    pmVar31 = rp;\n    if (local_3c == 0) {\n      *rp = mVar19;\n    }\n    else {\n      do {\n        pmVar20 = pmVar20 + 1;\n        *pmVar31 = mVar19;\n        iVar28 = iVar28 + -1;\n        mVar19 = *pmVar20;\n        pmVar31 = pmVar31 + 1;\n      } while (iVar28 != 0);\n      rp[n + -1] = mVar19;\n    }\n  }\n  pmVar31 = (mp_limb_t *)((int)pmVar11 + -1);\n  if ((ep[(uint)pmVar31 >> 5] >> ((uint)pmVar31 & 0x1f) & 1) != 0) goto LAB_0007b010;\nLAB_0007afb0:\n  pmVar18 = rp;\n  pmVar20 = (mp_limb_t *)n;\n  (*(code *)PTR___gmpn_sqrlo_0009d354)(tp);\n  pmVar11 = pmVar31;\n  ptVar15 = __tmp_marker;\n  if (n != 0) {\n    pmVar18 = (mp_ptr)*tp;\n    pmVar1 = rp;\n    pmVar2 = rp;\n    pmVar14 = tp;\n    for (iVar28 = local_3c; iVar28 != 0; iVar28 = iVar28 + -1) {\n      pmVar14 = pmVar14 + 1;\n      *pmVar2 = (mp_limb_t)pmVar18;\n      pmVar18 = (mp_ptr)*pmVar14;\n      pmVar1 = rp + n + -1;\n      pmVar2 = pmVar2 + 1;\n    }\n    *pmVar1 = (mp_limb_t)pmVar18;\n  }\n  do {\n    __tmp_marker = ptVar15;\n    if (pmVar11 == (mp_limb_t *)0x0) {\n      if (ptVar15 != (tmp_reentrant_t *)0x0) {\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }\n      if (local_2c == *(int *)puVar3) {\n        return;\n      }\n      uVar42 = 0x7b45c;\n      puVar37 = PTR___stack_chk_fail_0009d4d0;\n      (*(code *)PTR___stack_chk_fail_0009d4d0)();\n      uVar4 = *(uint *)(puVar40 + 0x10);\n      *(mp_size_t *)(puVar40 + -0x24) = n;\n      *(undefined **)(puVar40 + -0x68) = puVar37 + 0x29be0;\n      *(undefined4 *)(puVar40 + -0x18) = 0;\n      *(mp_limb_t **)(puVar40 + -0x28) = pmVar29;\n      *(undefined4 *)(puVar40 + -4) = uVar42;\n      *(undefined1 **)(puVar40 + -8) = auStack_70;\n      *(int *)(puVar40 + -0xc) = iVar34;\n      *(mp_srcptr *)(puVar40 + -0x10) = ep;\n      *(mp_srcptr *)(puVar40 + -0x14) = bp;\n      *(mp_ptr *)(puVar40 + -0x1c) = rp;\n      *(mp_ptr *)(puVar40 + -0x20) = tp;\n      *(uint *)(puVar40 + -0x60) = uVar4;\n      *(mp_ptr *)(puVar40 + -0x44) = pmVar18;\n      *(mp_size_t *)(puVar40 + -0x4c) = en;\n      piVar32 = *(int **)(puVar40 + 0x14);\n      iVar28 = *(int *)(puVar40 + 0x18);\n      *(undefined4 *)(puVar40 + -0x54) = *(undefined4 *)(puVar40 + 0x1c);\n      if (uVar4 < 3) {\n        iVar34 = 0;\n        *(undefined4 *)(puVar40 + -0x5c) = 1;\n        *(undefined4 *)(puVar40 + -0x50) = 2;\n        iVar7 = 1;\n        *(undefined4 *)(puVar40 + -0x58) = 1;\n      }\n      else {\n        if (uVar4 < 0x22) {\n          *(undefined4 *)(puVar40 + -0x58) = 2;\n          iVar7 = 2;\n        }\n        else if (uVar4 < 0x61) {\n          *(undefined4 *)(puVar40 + -0x58) = 3;\n          iVar7 = 3;\n        }\n        else if (uVar4 < 0x30d) {\n          *(undefined4 *)(puVar40 + -0x58) = 4;\n          iVar7 = 4;\n        }\n        else {\n          iVar7 = 6;\n          if (uVar4 < 0xab6) {\n            iVar7 = 5;\n          }\n          *(int *)(puVar40 + -0x58) = iVar7;\n        }\n        *(int *)(puVar40 + -0x5c) = iVar7;\n        *(int *)(puVar40 + -0x50) = 1 << iVar7;\n        iVar34 = (1 << iVar7) + -2;\n      }\n      iVar16 = *piVar32;\n      iVar41 = iVar28 * 4;\n      puVar35 = *(undefined4 **)(puVar40 + -0x54);\n      puVar24 = (undefined1 *)(iVar28 + (int)pmVar20);\n      puVar33 = puVar35 + iVar28;\n      uVar4 = (uint)*(byte *)(*(int *)(puVar37 + 0x21ea4) + ((uint)(iVar16 << 0x18) >> 0x19));\n      puVar27 = puVar33 + iVar28;\n      puVar21 = puVar35 + iVar28 + 1;\n      *(undefined4 **)(puVar40 + -0x48) = puVar27 + (int)puVar24;\n      psVar30 = puVar35 + (iVar28 << iVar7);\n      *puVar33 = 1;\n      iVar7 = uVar4 * 2 - uVar4 * uVar4 * iVar16;\n      iVar7 = iVar7 * iVar7 * iVar16 + iVar7 * -2;\n      puVar36 = puVar33;\n      if (iVar28 == 0) {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar37 + 0x2211c);\n        puVar21[iVar28] = 1;\n        *(mp_limb_t **)(puVar40 + -0x38) = pmVar20;\n        *(undefined1 **)(puVar40 + -0x3c) = puVar24;\n        *(undefined4 **)(puVar40 + -0x40) = puVar27;\n        *(undefined4 **)(puVar40 + -0x70) = puVar21 + iVar28 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,1,piVar32,0);\n        iVar26 = *(int *)(puVar40 + -0x3c);\n        iVar39 = *(int *)(puVar40 + -0x68);\n        iVar16 = *(int *)(puVar40 + -0x40);\n        iVar38 = *(int *)(puVar40 + -0x38);\n        if (iVar26 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar16,0,piVar32,0);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar9 = iVar38 + -1;\n        puVar27 = (undefined4 *)(iVar16 + iVar41);\n        uVar42 = **(undefined4 **)(puVar40 + -0x44);\n        if (iVar9 != 0) {\n          puVar35 = *(undefined4 **)(puVar40 + -0x44);\n          puVar21 = puVar27;\n          goto LAB_0007b70c;\n        }\n        uVar8 = *(undefined4 *)(puVar40 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n        *puVar27 = uVar42;\n        *(undefined4 *)(puVar40 + -0x70) = uVar8;\n        (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,0);\n        iVar16 = *(int *)(puVar40 + -0x68);\n      }\n      else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar37 + 0x21e88);\n        *(mp_limb_t **)(puVar40 + -0x2c) = pmVar20;\n        *(undefined1 **)(puVar40 + -0x30) = puVar24;\n        *(undefined4 **)(puVar40 + -0x34) = puVar21 + iVar28;\n        *(undefined4 **)(puVar40 + -0x38) = puVar27;\n        *(undefined4 **)(puVar40 + -0x3c) = puVar21 + iVar28 + 1;\n        uVar42 = (*UNRECOVERED_JUMPTABLE)(puVar21,0,iVar41);\n        uVar8 = *puVar33;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7ac4);\n        *(int *)(puVar40 + -0x40) = iVar28 + -1;\n        *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x3c);\n        *(undefined4 *)(puVar40 + -0x3c) = uVar42;\n        **(undefined4 **)(puVar40 + -0x34) = uVar8;\n        (*UNRECOVERED_JUMPTABLE)(uVar42,iVar28 + 1,piVar32,iVar28);\n        iVar16 = iVar28 + -1;\n        puVar27 = *(undefined4 **)(puVar40 + -0x3c);\n        iVar38 = *(int *)(puVar40 + -0x68);\n        uVar42 = *(undefined4 *)(puVar40 + -0x38);\n        uVar25 = *(undefined4 *)(puVar40 + -0x30);\n        uVar8 = *puVar27;\n        uVar23 = *(undefined4 *)(puVar40 + -0x2c);\n        if (iVar16 == 0) {\n          puVar35 = *(undefined4 **)(puVar40 + -0x54);\n        }\n        else {\n          do {\n            puVar27 = puVar27 + 1;\n            *puVar35 = uVar8;\n            iVar16 = iVar16 + -1;\n            uVar8 = *puVar27;\n            puVar35 = puVar35 + 1;\n          } while (iVar16 != 0);\n          puVar35 = (undefined4 *)(*(int *)(puVar40 + -0x54) + iVar41 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar38 + -0x7d58);\n        *(undefined4 *)(puVar40 + -0x38) = uVar23;\n        *(undefined4 *)(puVar40 + -0x3c) = uVar25;\n        *puVar35 = uVar8;\n        iVar16 = (*UNRECOVERED_JUMPTABLE)(uVar42,0,iVar41);\n        iVar38 = *(int *)(puVar40 + -0x38);\n        iVar39 = *(int *)(puVar40 + -0x68);\n        iVar26 = *(int *)(puVar40 + -0x3c);\n        if (iVar38 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x48);\n          iVar38 = iVar26;\nLAB_0007bb8c:\n          *(int *)(puVar40 + -0x48) = iVar16;\n          (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,iVar38);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          puVar35 = *(undefined4 **)(puVar40 + -0x48);\n        }\n        else {\n          puVar35 = *(undefined4 **)(puVar40 + -0x44);\n          iVar9 = iVar38 + -1;\n          puVar27 = (undefined4 *)(iVar16 + iVar41);\n          uVar42 = *puVar35;\n          puVar21 = puVar27;\n          if (iVar9 == 0) {\n            uVar8 = *(undefined4 *)(puVar40 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n            *puVar27 = uVar42;\n            *(undefined4 *)(puVar40 + -0x70) = uVar8;\n            iVar38 = iVar28;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar35 = puVar35 + 1;\n            *puVar27 = uVar42;\n            iVar9 = iVar9 + -1;\n            uVar42 = *puVar35;\n            puVar27 = puVar27 + 1;\n          } while (iVar9 != 0);\n          uVar8 = *(undefined4 *)(puVar40 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(int *)(puVar40 + -0x48) = iVar16;\n          *(undefined4 *)(puVar40 + -0x70) = uVar8;\n          puVar21[iVar38 + -1] = uVar42;\n          (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,iVar28);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          if (iVar28 == 0) goto joined_r0x0007b75c;\n          puVar35 = *(undefined4 **)(puVar40 + -0x48);\n          *(int *)(puVar40 + -0x40) = iVar28 + -1;\n        }\n        iVar38 = *(int *)(puVar40 + -0x40);\n        uVar42 = *puVar35;\n        puVar27 = puVar33;\n        if (iVar38 == 0) {\n          *puVar33 = uVar42;\n        }\n        else {\n          do {\n            puVar35 = puVar35 + 1;\n            *puVar27 = uVar42;\n            iVar38 = iVar38 + -1;\n            uVar42 = *puVar35;\n            puVar27 = puVar27 + 1;\n          } while (iVar38 != 0);\n          puVar33[*(int *)(puVar40 + -0x40)] = uVar42;\n        }\n      }\njoined_r0x0007b75c:\n      for (; iVar34 != 0; iVar34 = iVar34 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar16 + -0x7bd0);\n        *(int *)(puVar40 + -0x70) = iVar28;\n        (*UNRECOVERED_JUMPTABLE)(psVar30,puVar36,iVar28,puVar33);\n        puVar36 = puVar36 + iVar28;\n        *(int *)(puVar40 + -0x70) = iVar7;\n        uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))(puVar36,psVar30,piVar32,iVar28);\n        *(int *)(puVar40 + -0x70) = iVar28;\n        (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,puVar36,puVar36,piVar32);\n        iVar16 = *(int *)(puVar40 + -0x68);\n      }\n      if (*(uint *)(puVar40 + -0x5c) <= *(uint *)(puVar40 + -0x60)) {\n        uVar4 = *(int *)(puVar40 + -0x60) - *(uint *)(puVar40 + -0x5c);\n        uVar13 = 0x20 - (uVar4 & 0x1f);\n        puVar12 = (uint *)(*(int *)(puVar40 + -0x4c) + (uVar4 >> 5) * 4);\n        uVar5 = *puVar12 >> (uVar4 & 0x1f);\n        if ((int)uVar13 < *(int *)(puVar40 + -0x58)) {\n          uVar5 = uVar5 + (puVar12[1] << (uVar13 & 0x1f));\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar16 + -0x7bac);\n        *(int *)(puVar40 + -0x44) = ~(-1 << (*(uint *)(puVar40 + -0x58) & 0x1f));\n        *(uint *)(puVar40 + -0x70) = ~(-1 << (*(uint *)(puVar40 + -0x58) & 0x1f)) & uVar5;\n        (*UNRECOVERED_JUMPTABLE)\n                  (ptVar15,*(undefined4 *)(puVar40 + -0x54),iVar28,*(undefined4 *)(puVar40 + -0x50))\n        ;\n        iVar34 = *(int *)(puVar40 + -0x68);\n        if (uVar4 != 0) {\n          *(uint *)(puVar40 + -0x48) = (uint)(iVar28 < 0x39);\n          do {\n            if (uVar4 < *(uint *)(puVar40 + -0x5c)) {\n              uVar13 = 0;\n              *(uint *)(puVar40 + -0x60) = ~(-1 << (uVar4 & 0x1f)) & **(uint **)(puVar40 + -0x4c);\n            }\n            else {\n              uVar13 = uVar4 - *(int *)(puVar40 + -0x5c);\n              uVar4 = 0x20 - (uVar13 & 0x1f);\n              puVar12 = (uint *)(*(int *)(puVar40 + -0x4c) + (uVar13 >> 5) * 4);\n              uVar5 = *puVar12 >> (uVar13 & 0x1f);\n              if ((int)uVar4 < *(int *)(puVar40 + -0x58)) {\n                uVar5 = uVar5 + (puVar12[1] << (uVar4 & 0x1f));\n              }\n              uVar4 = *(uint *)(puVar40 + -0x58);\n              *(uint *)(puVar40 + -0x60) = *(uint *)(puVar40 + -0x44) & uVar5;\n            }\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);\n            if (*(int *)(puVar40 + -0x48) == 0) {\n              do {\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bd0);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28,ptVar15);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n              } while (uVar4 != 0);\n              uVar42 = *(undefined4 *)(puVar40 + -0x60);\n            }\n            else {\n              while( true ) {\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n                if (uVar4 == 0) break;\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);\n              }\n              uVar42 = *(undefined4 *)(puVar40 + -0x60);\n            }\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bac);\n            *(undefined4 *)(puVar40 + -0x70) = uVar42;\n            (*UNRECOVERED_JUMPTABLE)\n                      (psVar30 + iVar28 * 2,*(undefined4 *)(puVar40 + -0x54),iVar28,\n                       *(undefined4 *)(puVar40 + -0x50));\n            *(int *)(puVar40 + -0x70) = iVar28;\n            (**(code **)(*(int *)(puVar40 + -0x68) + -0x7bd0))\n                      (psVar30,ptVar15,iVar28,psVar30 + iVar28 * 2);\n            *(int *)(puVar40 + -0x70) = iVar7;\n            uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                               (ptVar15,psVar30,piVar32,iVar28);\n            *(int *)(puVar40 + -0x70) = iVar28;\n            (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n            iVar34 = *(int *)(puVar40 + -0x68);\n            uVar4 = uVar13;\n          } while (uVar13 != 0);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7eb0);\n        if (iVar28 != 0) {\n          iVar16 = iVar28 + -1;\n          ptVar22 = ptVar15->next;\n          psVar10 = psVar30;\n          ptVar17 = ptVar15;\n          if (iVar16 != 0) {\n            do {\n              *psVar10 = (size_t)ptVar22;\n              iVar16 = iVar16 + -1;\n              ptVar22 = (tmp_reentrant_t *)ptVar17->size;\n              psVar10 = psVar10 + 1;\n              ptVar17 = (tmp_reentrant_t *)&ptVar17->size;\n            } while (iVar16 != 0);\n            psVar10 = psVar30 + iVar28 + -1;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7d58);\n          *psVar10 = (size_t)ptVar22;\n          (*UNRECOVERED_JUMPTABLE)(psVar30 + iVar28,0,iVar41);\n          UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0);\n        }\n        *(int *)(puVar40 + -0x70) = iVar7;\n        uVar42 = (*UNRECOVERED_JUMPTABLE)(ptVar15,psVar30,piVar32,iVar28);\n        *(int *)(puVar40 + -0x70) = iVar28;\n        (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n        iVar34 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7b2c))(psVar30,ptVar15,piVar32,iVar28);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7a70);\n        *(int *)(puVar40 + 0x10) = iVar28;\n                    /* WARNING: Could not recover jumptable at 0x0007bab0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*UNRECOVERED_JUMPTABLE)(iVar34 == 0,ptVar15,ptVar15,piVar32);\n        return;\n      }\n      (**(code **)(iVar16 + -0x7c20))\n                (*(int *)(iVar16 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar16 + -0x7fd4) + 0x5438);\n      return;\n    }\n    pmVar31 = (mp_limb_t *)((int)pmVar11 + -1);\n    if ((ep[(uint)pmVar31 >> 5] >> ((uint)pmVar31 & 0x1f) & 1) == 0) goto LAB_0007afb0;\nLAB_0007b010:\n    if (pmVar11 < local_44) {\n      uVar5 = ~(-1 << ((uint)pmVar11 & 0x1f)) & *ep;\n      uVar13 = 0;\n      if ((uVar5 & 0xff) == 0) goto LAB_0007b270;\nLAB_0007b040:\n      uVar4 = (byte)puVar37[-uVar5 & uVar5] - 2;\n    }\n    else {\n      uVar13 = (int)pmVar11 - (int)local_44;\n      uVar4 = 0x20 - (uVar13 & 0x1f);\n      uVar5 = ep[uVar13 >> 5] >> (uVar13 & 0x1f);\n      if ((int)uVar4 < (int)local_44) {\n        uVar5 = uVar5 + ((ep + (uVar13 >> 5))[1] << (uVar4 & 0x1f));\n      }\n      uVar5 = uVar5 & local_4c;\n      pmVar11 = local_44;\n      if ((uVar5 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar4 = uVar5 >> 8;\n      iVar28 = 0x1e;\n      if (uVar4 != 0) {\n        iVar28 = 6;\n      }\n      uVar4 = (uint)(byte)puVar37[-uVar4 & uVar4] + iVar28;\n    }\n    bp = (mp_srcptr)((int)pmVar11 - uVar4);\n    pmVar11 = bp;\n    if (1 < (int)bp) {\n      do {\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(tp,rp,n);\n        pmVar29 = (mp_limb_t *)((int)pmVar11 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(rp,tp,n);\n        pmVar11 = pmVar29;\n      } while (1 < (int)pmVar29);\n      bp = (mp_srcptr)((uint)bp & 1);\n    }\n    if (bp == (mp_limb_t *)0x0) {\n      if (n != 0) {\n        mVar19 = *rp;\n        pmVar11 = tp;\n        if (local_3c != 0) {\n          iVar28 = local_3c;\n          pmVar18 = tp;\n          pmVar31 = rp + 1;\n          do {\n            *pmVar18 = mVar19;\n            iVar28 = iVar28 + -1;\n            mVar19 = *pmVar31;\n            pmVar11 = tp + n + -1;\n            pmVar18 = pmVar18 + 1;\n            pmVar31 = pmVar31 + 1;\n          } while (iVar28 != 0);\n        }\n        *pmVar11 = mVar19;\n      }\n    }\n    else {\n      (*(code *)PTR___gmpn_sqrlo_0009d354)(tp,rp,n);\n    }\n    pmVar20 = (mp_limb_t *)(((uVar5 >> (uVar4 & 0x1f)) >> 1) * iVar34 + (int)pmVar6);\n    pmVar18 = tp;\n    en = n;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(rp);\n    pmVar11 = (mp_limb_t *)(uVar4 + uVar13);\n    ptVar15 = __tmp_marker;\n  } while( true );\n}" { (declaration "mp_ptr pmVar1;" type_identifier identifier ;) (declaration "mp_ptr pmVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "mp_limb_t *pmVar6;" type_identifier (pointer_declarator "*pmVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "size_t *psVar10;" primitive_type (pointer_declarator "*psVar10" * identifier) ;) (declaration "mp_limb_t *pmVar11;" type_identifier (pointer_declarator "*pmVar11" * identifier) ;) (declaration "uint *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "mp_ptr pmVar14;" type_identifier identifier ;) (declaration "tmp_reentrant_t *ptVar15;" type_identifier (pointer_declarator "*ptVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "tmp_reentrant_t *ptVar17;" type_identifier (pointer_declarator "*ptVar17" * identifier) ;) (declaration "mp_ptr pmVar18;" type_identifier identifier ;) (declaration "mp_limb_t mVar19;" type_identifier identifier ;) (declaration "mp_limb_t *pmVar20;" type_identifier (pointer_declarator "*pmVar20" * identifier) ;) (declaration "undefined4 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "tmp_reentrant_t *ptVar22;" type_identifier (pointer_declarator "*ptVar22" * identifier) ;) (declaration "undefined4 uVar23;" type_identifier identifier ;) (declaration "undefined1 *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "undefined4 uVar25;" type_identifier identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "undefined4 *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "mp_limb_t *pmVar29;" type_identifier (pointer_declarator "*pmVar29" * identifier) ;) (declaration "size_t *psVar30;" primitive_type (pointer_declarator "*psVar30" * identifier) ;) (declaration "mp_limb_t *pmVar31;" type_identifier (pointer_declarator "*pmVar31" * identifier) ;) (declaration "int *piVar32;" primitive_type (pointer_declarator "*piVar32" * identifier) ;) (declaration "undefined4 *puVar33;" type_identifier (pointer_declarator "*puVar33" * identifier) ;) (declaration "int iVar34;" primitive_type identifier ;) (declaration "undefined4 *puVar35;" type_identifier (pointer_declarator "*puVar35" * identifier) ;) (declaration "undefined4 *puVar36;" type_identifier (pointer_declarator "*puVar36" * identifier) ;) (declaration "undefined *puVar37;" type_identifier (pointer_declarator "*puVar37" * identifier) ;) (declaration "code *UNRECOVERED_JUMPTABLE;" type_identifier (pointer_declarator "*UNRECOVERED_JUMPTABLE" * identifier) ;) (declaration "int iVar38;" primitive_type identifier ;) (declaration "int iVar39;" primitive_type identifier ;) (declaration "undefined1 *puVar40;" type_identifier (pointer_declarator "*puVar40" * identifier) ;) (declaration "int iVar41;" primitive_type identifier ;) (declaration "undefined4 uVar42;" type_identifier identifier ;) (declaration "undefined1 auStack_70 [16];" type_identifier (array_declarator "auStack_70 [16]" identifier [ number_literal ]) ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "mp_limb_t *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "mp_limb_t *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "tmp_reentrant_t *__tmp_marker;" type_identifier (pointer_declarator "*__tmp_marker" * identifier) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar3 = PTR___stack_chk_guard_0009d540;" (assignment_expression "puVar3 = PTR___stack_chk_guard_0009d540" identifier = identifier) ;) (expression_statement "puVar37 = PTR___gmpn_clz_tab_0009d18c;" (assignment_expression "puVar37 = PTR___gmpn_clz_tab_0009d18c" identifier = identifier) ;) (expression_statement "puVar40 = auStack_70;" (assignment_expression "puVar40 = auStack_70" identifier = identifier) ;) (expression_statement "puVar24 = auStack_70;" (assignment_expression "puVar24 = auStack_70" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0009d540;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0009d540" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0009d540" * (cast_expression "(int *)PTR___stack_chk_guard_0009d540" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar4 = ep[en + -1];" (assignment_expression "uVar4 = ep[en + -1]" identifier = (subscript_expression "ep[en + -1]" identifier [ (binary_expression "en + -1" identifier + number_literal) ])) ;) (expression_statement "__tmp_marker = (tmp_reentrant_t *)0x0;" (assignment_expression "__tmp_marker = (tmp_reentrant_t *)0x0" identifier = (cast_expression "(tmp_reentrant_t *)0x0" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (uVar4 < 0x10000) {\n    iVar28 = 9;\n    if (uVar4 < 0x100) {\n      iVar28 = 1;\n    }\n    pmVar29 = (mp_limb_t *)\n              (en * 0x20 + -0x21 + iVar28 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar4 >> iVar28]\n              );\n  }\n  else {\n    iVar28 = 0x19;\n    if (uVar4 < 0x1000000) {\n      iVar28 = 0x11;\n    }\n    pmVar29 = (mp_limb_t *)\n              (en * 0x20 + -0x21 + iVar28 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar4 >> iVar28]\n              );\n  }" if (parenthesized_expression "(uVar4 < 0x10000)" ( (binary_expression "uVar4 < 0x10000" identifier < number_literal) )) (compound_statement "{\n    iVar28 = 9;\n    if (uVar4 < 0x100) {\n      iVar28 = 1;\n    }\n    pmVar29 = (mp_limb_t *)\n              (en * 0x20 + -0x21 + iVar28 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar4 >> iVar28]\n              );\n  }" { (expression_statement "iVar28 = 9;" (assignment_expression "iVar28 = 9" identifier = number_literal) ;) (if_statement "if (uVar4 < 0x100) {\n      iVar28 = 1;\n    }" if (parenthesized_expression "(uVar4 < 0x100)" ( (binary_expression "uVar4 < 0x100" identifier < number_literal) )) (compound_statement "{\n      iVar28 = 1;\n    }" { (expression_statement "iVar28 = 1;" (assignment_expression "iVar28 = 1" identifier = number_literal) ;) })) (expression_statement "pmVar29 = (mp_limb_t *)\n              (en * 0x20 + -0x21 + iVar28 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar4 >> iVar28]\n              );" (assignment_expression "pmVar29 = (mp_limb_t *)\n              (en * 0x20 + -0x21 + iVar28 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar4 >> iVar28]\n              )" identifier = (cast_expression "(mp_limb_t *)\n              (en * 0x20 + -0x21 + iVar28 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar4 >> iVar28]\n              )" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(en * 0x20 + -0x21 + iVar28 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar4 >> iVar28]\n              )" ( (binary_expression "en * 0x20 + -0x21 + iVar28 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar4 >> iVar28]" (binary_expression "en * 0x20 + -0x21 + iVar28" (binary_expression "en * 0x20 + -0x21" (binary_expression "en * 0x20" identifier * number_literal) + number_literal) + identifier) + (cast_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar4 >> iVar28]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[uVar4 >> iVar28]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR___gmpn_clz_tab_0009d18c[uVar4 >> iVar28]" identifier [ (binary_expression "uVar4 >> iVar28" identifier >> identifier) ])))) )))) ;) }) (else_clause "else {\n    iVar28 = 0x19;\n    if (uVar4 < 0x1000000) {\n      iVar28 = 0x11;\n    }\n    pmVar29 = (mp_limb_t *)\n              (en * 0x20 + -0x21 + iVar28 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar4 >> iVar28]\n              );\n  }" else (compound_statement "{\n    iVar28 = 0x19;\n    if (uVar4 < 0x1000000) {\n      iVar28 = 0x11;\n    }\n    pmVar29 = (mp_limb_t *)\n              (en * 0x20 + -0x21 + iVar28 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar4 >> iVar28]\n              );\n  }" { (expression_statement "iVar28 = 0x19;" (assignment_expression "iVar28 = 0x19" identifier = number_literal) ;) (if_statement "if (uVar4 < 0x1000000) {\n      iVar28 = 0x11;\n    }" if (parenthesized_expression "(uVar4 < 0x1000000)" ( (binary_expression "uVar4 < 0x1000000" identifier < number_literal) )) (compound_statement "{\n      iVar28 = 0x11;\n    }" { (expression_statement "iVar28 = 0x11;" (assignment_expression "iVar28 = 0x11" identifier = number_literal) ;) })) (expression_statement "pmVar29 = (mp_limb_t *)\n              (en * 0x20 + -0x21 + iVar28 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar4 >> iVar28]\n              );" (assignment_expression "pmVar29 = (mp_limb_t *)\n              (en * 0x20 + -0x21 + iVar28 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar4 >> iVar28]\n              )" identifier = (cast_expression "(mp_limb_t *)\n              (en * 0x20 + -0x21 + iVar28 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar4 >> iVar28]\n              )" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(en * 0x20 + -0x21 + iVar28 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar4 >> iVar28]\n              )" ( (binary_expression "en * 0x20 + -0x21 + iVar28 + (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar4 >> iVar28]" (binary_expression "en * 0x20 + -0x21 + iVar28" (binary_expression "en * 0x20 + -0x21" (binary_expression "en * 0x20" identifier * number_literal) + number_literal) + identifier) + (cast_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar4 >> iVar28]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[uVar4 >> iVar28]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR___gmpn_clz_tab_0009d18c[uVar4 >> iVar28]" identifier [ (binary_expression "uVar4 >> iVar28" identifier >> identifier) ])))) )))) ;) }))) (if_statement "if (pmVar29 < &DAT_00000008) {\n    local_4c = 1;\n    local_38 = (mp_limb_t *)&DAT_00000001;\n    uVar4 = n << 2;\n    iVar28 = 0;\n    local_44 = local_38;\n  }\n  else {\n    if (pmVar29 < (mp_limb_t *)0x1a) {\n      local_44 = (mp_limb_t *)0x2;\n      iVar28 = 1;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x52) {\n      local_44 = (mp_limb_t *)0x3;\n      iVar28 = 2;\n    }\n    else if (pmVar29 < (mp_limb_t *)0xf2) {\n      local_44 = (mp_limb_t *)&DAT_00000004;\n      iVar28 = 3;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x2a2) {\n      local_44 = (mp_limb_t *)&DAT_00000005;\n      iVar28 = 4;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x702) {\n      local_44 = (mp_limb_t *)&DAT_00000006;\n      iVar28 = 5;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x1202) {\n      local_44 = (mp_limb_t *)0x7;\n      iVar28 = 6;\n    }\n    else {\n      iVar28 = 9;\n      if (pmVar29 < (mp_limb_t *)0x2d02) {\n        local_44 = (mp_limb_t *)&DAT_00000008;\n        iVar28 = 7;\n      }\n      else {\n        local_44 = (mp_limb_t *)&DAT_0000000a;\n        if (pmVar29 < (mp_limb_t *)0x6e02) {\n          local_44 = (mp_limb_t *)&DAT_00000009;\n          iVar28 = 8;\n        }\n      }\n    }\n    uVar4 = (n << iVar28) << 2;\n    local_4c = ~(-1 << (int)local_44);\n    iVar28 = (1 << iVar28) + -1;\n  }" if (parenthesized_expression "(pmVar29 < &DAT_00000008)" ( (binary_expression "pmVar29 < &DAT_00000008" identifier < (pointer_expression "&DAT_00000008" & identifier)) )) (compound_statement "{\n    local_4c = 1;\n    local_38 = (mp_limb_t *)&DAT_00000001;\n    uVar4 = n << 2;\n    iVar28 = 0;\n    local_44 = local_38;\n  }" { (expression_statement "local_4c = 1;" (assignment_expression "local_4c = 1" identifier = number_literal) ;) (expression_statement "local_38 = (mp_limb_t *)&DAT_00000001;" (assignment_expression "local_38 = (mp_limb_t *)&DAT_00000001" identifier = (cast_expression "(mp_limb_t *)&DAT_00000001" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) ;) (expression_statement "uVar4 = n << 2;" (assignment_expression "uVar4 = n << 2" identifier = (binary_expression "n << 2" identifier << number_literal)) ;) (expression_statement "iVar28 = 0;" (assignment_expression "iVar28 = 0" identifier = number_literal) ;) (expression_statement "local_44 = local_38;" (assignment_expression "local_44 = local_38" identifier = identifier) ;) }) (else_clause "else {\n    if (pmVar29 < (mp_limb_t *)0x1a) {\n      local_44 = (mp_limb_t *)0x2;\n      iVar28 = 1;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x52) {\n      local_44 = (mp_limb_t *)0x3;\n      iVar28 = 2;\n    }\n    else if (pmVar29 < (mp_limb_t *)0xf2) {\n      local_44 = (mp_limb_t *)&DAT_00000004;\n      iVar28 = 3;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x2a2) {\n      local_44 = (mp_limb_t *)&DAT_00000005;\n      iVar28 = 4;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x702) {\n      local_44 = (mp_limb_t *)&DAT_00000006;\n      iVar28 = 5;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x1202) {\n      local_44 = (mp_limb_t *)0x7;\n      iVar28 = 6;\n    }\n    else {\n      iVar28 = 9;\n      if (pmVar29 < (mp_limb_t *)0x2d02) {\n        local_44 = (mp_limb_t *)&DAT_00000008;\n        iVar28 = 7;\n      }\n      else {\n        local_44 = (mp_limb_t *)&DAT_0000000a;\n        if (pmVar29 < (mp_limb_t *)0x6e02) {\n          local_44 = (mp_limb_t *)&DAT_00000009;\n          iVar28 = 8;\n        }\n      }\n    }\n    uVar4 = (n << iVar28) << 2;\n    local_4c = ~(-1 << (int)local_44);\n    iVar28 = (1 << iVar28) + -1;\n  }" else (compound_statement "{\n    if (pmVar29 < (mp_limb_t *)0x1a) {\n      local_44 = (mp_limb_t *)0x2;\n      iVar28 = 1;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x52) {\n      local_44 = (mp_limb_t *)0x3;\n      iVar28 = 2;\n    }\n    else if (pmVar29 < (mp_limb_t *)0xf2) {\n      local_44 = (mp_limb_t *)&DAT_00000004;\n      iVar28 = 3;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x2a2) {\n      local_44 = (mp_limb_t *)&DAT_00000005;\n      iVar28 = 4;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x702) {\n      local_44 = (mp_limb_t *)&DAT_00000006;\n      iVar28 = 5;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x1202) {\n      local_44 = (mp_limb_t *)0x7;\n      iVar28 = 6;\n    }\n    else {\n      iVar28 = 9;\n      if (pmVar29 < (mp_limb_t *)0x2d02) {\n        local_44 = (mp_limb_t *)&DAT_00000008;\n        iVar28 = 7;\n      }\n      else {\n        local_44 = (mp_limb_t *)&DAT_0000000a;\n        if (pmVar29 < (mp_limb_t *)0x6e02) {\n          local_44 = (mp_limb_t *)&DAT_00000009;\n          iVar28 = 8;\n        }\n      }\n    }\n    uVar4 = (n << iVar28) << 2;\n    local_4c = ~(-1 << (int)local_44);\n    iVar28 = (1 << iVar28) + -1;\n  }" { (if_statement "if (pmVar29 < (mp_limb_t *)0x1a) {\n      local_44 = (mp_limb_t *)0x2;\n      iVar28 = 1;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x52) {\n      local_44 = (mp_limb_t *)0x3;\n      iVar28 = 2;\n    }\n    else if (pmVar29 < (mp_limb_t *)0xf2) {\n      local_44 = (mp_limb_t *)&DAT_00000004;\n      iVar28 = 3;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x2a2) {\n      local_44 = (mp_limb_t *)&DAT_00000005;\n      iVar28 = 4;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x702) {\n      local_44 = (mp_limb_t *)&DAT_00000006;\n      iVar28 = 5;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x1202) {\n      local_44 = (mp_limb_t *)0x7;\n      iVar28 = 6;\n    }\n    else {\n      iVar28 = 9;\n      if (pmVar29 < (mp_limb_t *)0x2d02) {\n        local_44 = (mp_limb_t *)&DAT_00000008;\n        iVar28 = 7;\n      }\n      else {\n        local_44 = (mp_limb_t *)&DAT_0000000a;\n        if (pmVar29 < (mp_limb_t *)0x6e02) {\n          local_44 = (mp_limb_t *)&DAT_00000009;\n          iVar28 = 8;\n        }\n      }\n    }" if (parenthesized_expression "(pmVar29 < (mp_limb_t *)0x1a)" ( (binary_expression "pmVar29 < (mp_limb_t *)0x1a" identifier < (cast_expression "(mp_limb_t *)0x1a" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_44 = (mp_limb_t *)0x2;\n      iVar28 = 1;\n    }" { (expression_statement "local_44 = (mp_limb_t *)0x2;" (assignment_expression "local_44 = (mp_limb_t *)0x2" identifier = (cast_expression "(mp_limb_t *)0x2" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar28 = 1;" (assignment_expression "iVar28 = 1" identifier = number_literal) ;) }) (else_clause "else if (pmVar29 < (mp_limb_t *)0x52) {\n      local_44 = (mp_limb_t *)0x3;\n      iVar28 = 2;\n    }\n    else if (pmVar29 < (mp_limb_t *)0xf2) {\n      local_44 = (mp_limb_t *)&DAT_00000004;\n      iVar28 = 3;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x2a2) {\n      local_44 = (mp_limb_t *)&DAT_00000005;\n      iVar28 = 4;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x702) {\n      local_44 = (mp_limb_t *)&DAT_00000006;\n      iVar28 = 5;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x1202) {\n      local_44 = (mp_limb_t *)0x7;\n      iVar28 = 6;\n    }\n    else {\n      iVar28 = 9;\n      if (pmVar29 < (mp_limb_t *)0x2d02) {\n        local_44 = (mp_limb_t *)&DAT_00000008;\n        iVar28 = 7;\n      }\n      else {\n        local_44 = (mp_limb_t *)&DAT_0000000a;\n        if (pmVar29 < (mp_limb_t *)0x6e02) {\n          local_44 = (mp_limb_t *)&DAT_00000009;\n          iVar28 = 8;\n        }\n      }\n    }" else (if_statement "if (pmVar29 < (mp_limb_t *)0x52) {\n      local_44 = (mp_limb_t *)0x3;\n      iVar28 = 2;\n    }\n    else if (pmVar29 < (mp_limb_t *)0xf2) {\n      local_44 = (mp_limb_t *)&DAT_00000004;\n      iVar28 = 3;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x2a2) {\n      local_44 = (mp_limb_t *)&DAT_00000005;\n      iVar28 = 4;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x702) {\n      local_44 = (mp_limb_t *)&DAT_00000006;\n      iVar28 = 5;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x1202) {\n      local_44 = (mp_limb_t *)0x7;\n      iVar28 = 6;\n    }\n    else {\n      iVar28 = 9;\n      if (pmVar29 < (mp_limb_t *)0x2d02) {\n        local_44 = (mp_limb_t *)&DAT_00000008;\n        iVar28 = 7;\n      }\n      else {\n        local_44 = (mp_limb_t *)&DAT_0000000a;\n        if (pmVar29 < (mp_limb_t *)0x6e02) {\n          local_44 = (mp_limb_t *)&DAT_00000009;\n          iVar28 = 8;\n        }\n      }\n    }" if (parenthesized_expression "(pmVar29 < (mp_limb_t *)0x52)" ( (binary_expression "pmVar29 < (mp_limb_t *)0x52" identifier < (cast_expression "(mp_limb_t *)0x52" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_44 = (mp_limb_t *)0x3;\n      iVar28 = 2;\n    }" { (expression_statement "local_44 = (mp_limb_t *)0x3;" (assignment_expression "local_44 = (mp_limb_t *)0x3" identifier = (cast_expression "(mp_limb_t *)0x3" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar28 = 2;" (assignment_expression "iVar28 = 2" identifier = number_literal) ;) }) (else_clause "else if (pmVar29 < (mp_limb_t *)0xf2) {\n      local_44 = (mp_limb_t *)&DAT_00000004;\n      iVar28 = 3;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x2a2) {\n      local_44 = (mp_limb_t *)&DAT_00000005;\n      iVar28 = 4;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x702) {\n      local_44 = (mp_limb_t *)&DAT_00000006;\n      iVar28 = 5;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x1202) {\n      local_44 = (mp_limb_t *)0x7;\n      iVar28 = 6;\n    }\n    else {\n      iVar28 = 9;\n      if (pmVar29 < (mp_limb_t *)0x2d02) {\n        local_44 = (mp_limb_t *)&DAT_00000008;\n        iVar28 = 7;\n      }\n      else {\n        local_44 = (mp_limb_t *)&DAT_0000000a;\n        if (pmVar29 < (mp_limb_t *)0x6e02) {\n          local_44 = (mp_limb_t *)&DAT_00000009;\n          iVar28 = 8;\n        }\n      }\n    }" else (if_statement "if (pmVar29 < (mp_limb_t *)0xf2) {\n      local_44 = (mp_limb_t *)&DAT_00000004;\n      iVar28 = 3;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x2a2) {\n      local_44 = (mp_limb_t *)&DAT_00000005;\n      iVar28 = 4;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x702) {\n      local_44 = (mp_limb_t *)&DAT_00000006;\n      iVar28 = 5;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x1202) {\n      local_44 = (mp_limb_t *)0x7;\n      iVar28 = 6;\n    }\n    else {\n      iVar28 = 9;\n      if (pmVar29 < (mp_limb_t *)0x2d02) {\n        local_44 = (mp_limb_t *)&DAT_00000008;\n        iVar28 = 7;\n      }\n      else {\n        local_44 = (mp_limb_t *)&DAT_0000000a;\n        if (pmVar29 < (mp_limb_t *)0x6e02) {\n          local_44 = (mp_limb_t *)&DAT_00000009;\n          iVar28 = 8;\n        }\n      }\n    }" if (parenthesized_expression "(pmVar29 < (mp_limb_t *)0xf2)" ( (binary_expression "pmVar29 < (mp_limb_t *)0xf2" identifier < (cast_expression "(mp_limb_t *)0xf2" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_44 = (mp_limb_t *)&DAT_00000004;\n      iVar28 = 3;\n    }" { (expression_statement "local_44 = (mp_limb_t *)&DAT_00000004;" (assignment_expression "local_44 = (mp_limb_t *)&DAT_00000004" identifier = (cast_expression "(mp_limb_t *)&DAT_00000004" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000004" & identifier))) ;) (expression_statement "iVar28 = 3;" (assignment_expression "iVar28 = 3" identifier = number_literal) ;) }) (else_clause "else if (pmVar29 < (mp_limb_t *)0x2a2) {\n      local_44 = (mp_limb_t *)&DAT_00000005;\n      iVar28 = 4;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x702) {\n      local_44 = (mp_limb_t *)&DAT_00000006;\n      iVar28 = 5;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x1202) {\n      local_44 = (mp_limb_t *)0x7;\n      iVar28 = 6;\n    }\n    else {\n      iVar28 = 9;\n      if (pmVar29 < (mp_limb_t *)0x2d02) {\n        local_44 = (mp_limb_t *)&DAT_00000008;\n        iVar28 = 7;\n      }\n      else {\n        local_44 = (mp_limb_t *)&DAT_0000000a;\n        if (pmVar29 < (mp_limb_t *)0x6e02) {\n          local_44 = (mp_limb_t *)&DAT_00000009;\n          iVar28 = 8;\n        }\n      }\n    }" else (if_statement "if (pmVar29 < (mp_limb_t *)0x2a2) {\n      local_44 = (mp_limb_t *)&DAT_00000005;\n      iVar28 = 4;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x702) {\n      local_44 = (mp_limb_t *)&DAT_00000006;\n      iVar28 = 5;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x1202) {\n      local_44 = (mp_limb_t *)0x7;\n      iVar28 = 6;\n    }\n    else {\n      iVar28 = 9;\n      if (pmVar29 < (mp_limb_t *)0x2d02) {\n        local_44 = (mp_limb_t *)&DAT_00000008;\n        iVar28 = 7;\n      }\n      else {\n        local_44 = (mp_limb_t *)&DAT_0000000a;\n        if (pmVar29 < (mp_limb_t *)0x6e02) {\n          local_44 = (mp_limb_t *)&DAT_00000009;\n          iVar28 = 8;\n        }\n      }\n    }" if (parenthesized_expression "(pmVar29 < (mp_limb_t *)0x2a2)" ( (binary_expression "pmVar29 < (mp_limb_t *)0x2a2" identifier < (cast_expression "(mp_limb_t *)0x2a2" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_44 = (mp_limb_t *)&DAT_00000005;\n      iVar28 = 4;\n    }" { (expression_statement "local_44 = (mp_limb_t *)&DAT_00000005;" (assignment_expression "local_44 = (mp_limb_t *)&DAT_00000005" identifier = (cast_expression "(mp_limb_t *)&DAT_00000005" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000005" & identifier))) ;) (expression_statement "iVar28 = 4;" (assignment_expression "iVar28 = 4" identifier = number_literal) ;) }) (else_clause "else if (pmVar29 < (mp_limb_t *)0x702) {\n      local_44 = (mp_limb_t *)&DAT_00000006;\n      iVar28 = 5;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x1202) {\n      local_44 = (mp_limb_t *)0x7;\n      iVar28 = 6;\n    }\n    else {\n      iVar28 = 9;\n      if (pmVar29 < (mp_limb_t *)0x2d02) {\n        local_44 = (mp_limb_t *)&DAT_00000008;\n        iVar28 = 7;\n      }\n      else {\n        local_44 = (mp_limb_t *)&DAT_0000000a;\n        if (pmVar29 < (mp_limb_t *)0x6e02) {\n          local_44 = (mp_limb_t *)&DAT_00000009;\n          iVar28 = 8;\n        }\n      }\n    }" else (if_statement "if (pmVar29 < (mp_limb_t *)0x702) {\n      local_44 = (mp_limb_t *)&DAT_00000006;\n      iVar28 = 5;\n    }\n    else if (pmVar29 < (mp_limb_t *)0x1202) {\n      local_44 = (mp_limb_t *)0x7;\n      iVar28 = 6;\n    }\n    else {\n      iVar28 = 9;\n      if (pmVar29 < (mp_limb_t *)0x2d02) {\n        local_44 = (mp_limb_t *)&DAT_00000008;\n        iVar28 = 7;\n      }\n      else {\n        local_44 = (mp_limb_t *)&DAT_0000000a;\n        if (pmVar29 < (mp_limb_t *)0x6e02) {\n          local_44 = (mp_limb_t *)&DAT_00000009;\n          iVar28 = 8;\n        }\n      }\n    }" if (parenthesized_expression "(pmVar29 < (mp_limb_t *)0x702)" ( (binary_expression "pmVar29 < (mp_limb_t *)0x702" identifier < (cast_expression "(mp_limb_t *)0x702" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_44 = (mp_limb_t *)&DAT_00000006;\n      iVar28 = 5;\n    }" { (expression_statement "local_44 = (mp_limb_t *)&DAT_00000006;" (assignment_expression "local_44 = (mp_limb_t *)&DAT_00000006" identifier = (cast_expression "(mp_limb_t *)&DAT_00000006" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000006" & identifier))) ;) (expression_statement "iVar28 = 5;" (assignment_expression "iVar28 = 5" identifier = number_literal) ;) }) (else_clause "else if (pmVar29 < (mp_limb_t *)0x1202) {\n      local_44 = (mp_limb_t *)0x7;\n      iVar28 = 6;\n    }\n    else {\n      iVar28 = 9;\n      if (pmVar29 < (mp_limb_t *)0x2d02) {\n        local_44 = (mp_limb_t *)&DAT_00000008;\n        iVar28 = 7;\n      }\n      else {\n        local_44 = (mp_limb_t *)&DAT_0000000a;\n        if (pmVar29 < (mp_limb_t *)0x6e02) {\n          local_44 = (mp_limb_t *)&DAT_00000009;\n          iVar28 = 8;\n        }\n      }\n    }" else (if_statement "if (pmVar29 < (mp_limb_t *)0x1202) {\n      local_44 = (mp_limb_t *)0x7;\n      iVar28 = 6;\n    }\n    else {\n      iVar28 = 9;\n      if (pmVar29 < (mp_limb_t *)0x2d02) {\n        local_44 = (mp_limb_t *)&DAT_00000008;\n        iVar28 = 7;\n      }\n      else {\n        local_44 = (mp_limb_t *)&DAT_0000000a;\n        if (pmVar29 < (mp_limb_t *)0x6e02) {\n          local_44 = (mp_limb_t *)&DAT_00000009;\n          iVar28 = 8;\n        }\n      }\n    }" if (parenthesized_expression "(pmVar29 < (mp_limb_t *)0x1202)" ( (binary_expression "pmVar29 < (mp_limb_t *)0x1202" identifier < (cast_expression "(mp_limb_t *)0x1202" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_44 = (mp_limb_t *)0x7;\n      iVar28 = 6;\n    }" { (expression_statement "local_44 = (mp_limb_t *)0x7;" (assignment_expression "local_44 = (mp_limb_t *)0x7" identifier = (cast_expression "(mp_limb_t *)0x7" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar28 = 6;" (assignment_expression "iVar28 = 6" identifier = number_literal) ;) }) (else_clause "else {\n      iVar28 = 9;\n      if (pmVar29 < (mp_limb_t *)0x2d02) {\n        local_44 = (mp_limb_t *)&DAT_00000008;\n        iVar28 = 7;\n      }\n      else {\n        local_44 = (mp_limb_t *)&DAT_0000000a;\n        if (pmVar29 < (mp_limb_t *)0x6e02) {\n          local_44 = (mp_limb_t *)&DAT_00000009;\n          iVar28 = 8;\n        }\n      }\n    }" else (compound_statement "{\n      iVar28 = 9;\n      if (pmVar29 < (mp_limb_t *)0x2d02) {\n        local_44 = (mp_limb_t *)&DAT_00000008;\n        iVar28 = 7;\n      }\n      else {\n        local_44 = (mp_limb_t *)&DAT_0000000a;\n        if (pmVar29 < (mp_limb_t *)0x6e02) {\n          local_44 = (mp_limb_t *)&DAT_00000009;\n          iVar28 = 8;\n        }\n      }\n    }" { (expression_statement "iVar28 = 9;" (assignment_expression "iVar28 = 9" identifier = number_literal) ;) (if_statement "if (pmVar29 < (mp_limb_t *)0x2d02) {\n        local_44 = (mp_limb_t *)&DAT_00000008;\n        iVar28 = 7;\n      }\n      else {\n        local_44 = (mp_limb_t *)&DAT_0000000a;\n        if (pmVar29 < (mp_limb_t *)0x6e02) {\n          local_44 = (mp_limb_t *)&DAT_00000009;\n          iVar28 = 8;\n        }\n      }" if (parenthesized_expression "(pmVar29 < (mp_limb_t *)0x2d02)" ( (binary_expression "pmVar29 < (mp_limb_t *)0x2d02" identifier < (cast_expression "(mp_limb_t *)0x2d02" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_44 = (mp_limb_t *)&DAT_00000008;\n        iVar28 = 7;\n      }" { (expression_statement "local_44 = (mp_limb_t *)&DAT_00000008;" (assignment_expression "local_44 = (mp_limb_t *)&DAT_00000008" identifier = (cast_expression "(mp_limb_t *)&DAT_00000008" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000008" & identifier))) ;) (expression_statement "iVar28 = 7;" (assignment_expression "iVar28 = 7" identifier = number_literal) ;) }) (else_clause "else {\n        local_44 = (mp_limb_t *)&DAT_0000000a;\n        if (pmVar29 < (mp_limb_t *)0x6e02) {\n          local_44 = (mp_limb_t *)&DAT_00000009;\n          iVar28 = 8;\n        }\n      }" else (compound_statement "{\n        local_44 = (mp_limb_t *)&DAT_0000000a;\n        if (pmVar29 < (mp_limb_t *)0x6e02) {\n          local_44 = (mp_limb_t *)&DAT_00000009;\n          iVar28 = 8;\n        }\n      }" { (expression_statement "local_44 = (mp_limb_t *)&DAT_0000000a;" (assignment_expression "local_44 = (mp_limb_t *)&DAT_0000000a" identifier = (cast_expression "(mp_limb_t *)&DAT_0000000a" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000000a" & identifier))) ;) (if_statement "if (pmVar29 < (mp_limb_t *)0x6e02) {\n          local_44 = (mp_limb_t *)&DAT_00000009;\n          iVar28 = 8;\n        }" if (parenthesized_expression "(pmVar29 < (mp_limb_t *)0x6e02)" ( (binary_expression "pmVar29 < (mp_limb_t *)0x6e02" identifier < (cast_expression "(mp_limb_t *)0x6e02" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_44 = (mp_limb_t *)&DAT_00000009;\n          iVar28 = 8;\n        }" { (expression_statement "local_44 = (mp_limb_t *)&DAT_00000009;" (assignment_expression "local_44 = (mp_limb_t *)&DAT_00000009" identifier = (cast_expression "(mp_limb_t *)&DAT_00000009" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000009" & identifier))) ;) (expression_statement "iVar28 = 8;" (assignment_expression "iVar28 = 8" identifier = number_literal) ;) })) }))) }))))))))))))) (expression_statement "uVar4 = (n << iVar28) << 2;" (assignment_expression "uVar4 = (n << iVar28) << 2" identifier = (binary_expression "(n << iVar28) << 2" (parenthesized_expression "(n << iVar28)" ( (binary_expression "n << iVar28" identifier << identifier) )) << number_literal)) ;) (expression_statement "local_4c = ~(-1 << (int)local_44);" (assignment_expression "local_4c = ~(-1 << (int)local_44)" identifier = (unary_expression "~(-1 << (int)local_44)" ~ (parenthesized_expression "(-1 << (int)local_44)" ( (binary_expression "-1 << (int)local_44" number_literal << (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar28 = (1 << iVar28) + -1;" (assignment_expression "iVar28 = (1 << iVar28) + -1" identifier = (binary_expression "(1 << iVar28) + -1" (parenthesized_expression "(1 << iVar28)" ( (binary_expression "1 << iVar28" number_literal << identifier) )) + number_literal)) ;) }))) (if_statement "if (uVar4 < 0x7f01) {\n    iVar34 = -(uVar4 + 7 & 0xfffffff8);\n    puVar24 = auStack_70 + iVar34;\n    puVar40 = auStack_70 + iVar34;\n    pmVar6 = (mp_limb_t *)(&stack0xffffffa0 + iVar34);\n    ptVar15 = __tmp_marker;\n  }\n  else {\n    pmVar6 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n    ptVar15 = __tmp_marker;\n  }" if (parenthesized_expression "(uVar4 < 0x7f01)" ( (binary_expression "uVar4 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n    iVar34 = -(uVar4 + 7 & 0xfffffff8);\n    puVar24 = auStack_70 + iVar34;\n    puVar40 = auStack_70 + iVar34;\n    pmVar6 = (mp_limb_t *)(&stack0xffffffa0 + iVar34);\n    ptVar15 = __tmp_marker;\n  }" { (expression_statement "iVar34 = -(uVar4 + 7 & 0xfffffff8);" (assignment_expression "iVar34 = -(uVar4 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar4 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar4 + 7 & 0xfffffff8)" ( (binary_expression "uVar4 + 7 & 0xfffffff8" (binary_expression "uVar4 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar24 = auStack_70 + iVar34;" (assignment_expression "puVar24 = auStack_70 + iVar34" identifier = (binary_expression "auStack_70 + iVar34" identifier + identifier)) ;) (expression_statement "puVar40 = auStack_70 + iVar34;" (assignment_expression "puVar40 = auStack_70 + iVar34" identifier = (binary_expression "auStack_70 + iVar34" identifier + identifier)) ;) (expression_statement "pmVar6 = (mp_limb_t *)(&stack0xffffffa0 + iVar34);" (assignment_expression "pmVar6 = (mp_limb_t *)(&stack0xffffffa0 + iVar34)" identifier = (cast_expression "(mp_limb_t *)(&stack0xffffffa0 + iVar34)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&stack0xffffffa0 + iVar34)" ( (binary_expression "&stack0xffffffa0 + iVar34" (pointer_expression "&stack0xffffffa0" & identifier) + identifier) )))) ;) (expression_statement "ptVar15 = __tmp_marker;" (assignment_expression "ptVar15 = __tmp_marker" identifier = identifier) ;) }) (else_clause "else {\n    pmVar6 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n    ptVar15 = __tmp_marker;\n  }" else (compound_statement "{\n    pmVar6 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);\n    ptVar15 = __tmp_marker;\n  }" { (expression_statement "pmVar6 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker);" (assignment_expression "pmVar6 = (mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker)" identifier = (cast_expression "(mp_limb_t *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&__tmp_marker)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&__tmp_marker)" ( (pointer_expression "&__tmp_marker" & identifier) ))))) ;) (expression_statement "ptVar15 = __tmp_marker;" (assignment_expression "ptVar15 = __tmp_marker" identifier = identifier) ;) }))) (expression_statement "__tmp_marker = ptVar15;" (assignment_expression "__tmp_marker = ptVar15" identifier = identifier) ;) (if_statement "if (n == 0) {\n    local_3c = -1;\n    puVar40 = puVar24;\n  }\n  else {\n    local_3c = n + -1;\n    mVar19 = *bp;\n    if (local_3c == 0) {\n      *pmVar6 = mVar19;\n    }\n    else {\n      iVar34 = local_3c;\n      pmVar11 = pmVar6;\n      pmVar31 = bp + 1;\n      do {\n        *pmVar11 = mVar19;\n        iVar34 = iVar34 + -1;\n        mVar19 = *pmVar31;\n        pmVar11 = pmVar11 + 1;\n        pmVar31 = pmVar31 + 1;\n      } while (iVar34 != 0);\n      pmVar6[n + -1] = mVar19;\n    }\n  }" if (parenthesized_expression "(n == 0)" ( (binary_expression "n == 0" identifier == number_literal) )) (compound_statement "{\n    local_3c = -1;\n    puVar40 = puVar24;\n  }" { (expression_statement "local_3c = -1;" (assignment_expression "local_3c = -1" identifier = number_literal) ;) (expression_statement "puVar40 = puVar24;" (assignment_expression "puVar40 = puVar24" identifier = identifier) ;) }) (else_clause "else {\n    local_3c = n + -1;\n    mVar19 = *bp;\n    if (local_3c == 0) {\n      *pmVar6 = mVar19;\n    }\n    else {\n      iVar34 = local_3c;\n      pmVar11 = pmVar6;\n      pmVar31 = bp + 1;\n      do {\n        *pmVar11 = mVar19;\n        iVar34 = iVar34 + -1;\n        mVar19 = *pmVar31;\n        pmVar11 = pmVar11 + 1;\n        pmVar31 = pmVar31 + 1;\n      } while (iVar34 != 0);\n      pmVar6[n + -1] = mVar19;\n    }\n  }" else (compound_statement "{\n    local_3c = n + -1;\n    mVar19 = *bp;\n    if (local_3c == 0) {\n      *pmVar6 = mVar19;\n    }\n    else {\n      iVar34 = local_3c;\n      pmVar11 = pmVar6;\n      pmVar31 = bp + 1;\n      do {\n        *pmVar11 = mVar19;\n        iVar34 = iVar34 + -1;\n        mVar19 = *pmVar31;\n        pmVar11 = pmVar11 + 1;\n        pmVar31 = pmVar31 + 1;\n      } while (iVar34 != 0);\n      pmVar6[n + -1] = mVar19;\n    }\n  }" { (expression_statement "local_3c = n + -1;" (assignment_expression "local_3c = n + -1" identifier = (binary_expression "n + -1" identifier + number_literal)) ;) (expression_statement "mVar19 = *bp;" (assignment_expression "mVar19 = *bp" identifier = (pointer_expression "*bp" * identifier)) ;) (if_statement "if (local_3c == 0) {\n      *pmVar6 = mVar19;\n    }\n    else {\n      iVar34 = local_3c;\n      pmVar11 = pmVar6;\n      pmVar31 = bp + 1;\n      do {\n        *pmVar11 = mVar19;\n        iVar34 = iVar34 + -1;\n        mVar19 = *pmVar31;\n        pmVar11 = pmVar11 + 1;\n        pmVar31 = pmVar31 + 1;\n      } while (iVar34 != 0);\n      pmVar6[n + -1] = mVar19;\n    }" if (parenthesized_expression "(local_3c == 0)" ( (binary_expression "local_3c == 0" identifier == number_literal) )) (compound_statement "{\n      *pmVar6 = mVar19;\n    }" { (expression_statement "*pmVar6 = mVar19;" (assignment_expression "*pmVar6 = mVar19" (pointer_expression "*pmVar6" * identifier) = identifier) ;) }) (else_clause "else {\n      iVar34 = local_3c;\n      pmVar11 = pmVar6;\n      pmVar31 = bp + 1;\n      do {\n        *pmVar11 = mVar19;\n        iVar34 = iVar34 + -1;\n        mVar19 = *pmVar31;\n        pmVar11 = pmVar11 + 1;\n        pmVar31 = pmVar31 + 1;\n      } while (iVar34 != 0);\n      pmVar6[n + -1] = mVar19;\n    }" else (compound_statement "{\n      iVar34 = local_3c;\n      pmVar11 = pmVar6;\n      pmVar31 = bp + 1;\n      do {\n        *pmVar11 = mVar19;\n        iVar34 = iVar34 + -1;\n        mVar19 = *pmVar31;\n        pmVar11 = pmVar11 + 1;\n        pmVar31 = pmVar31 + 1;\n      } while (iVar34 != 0);\n      pmVar6[n + -1] = mVar19;\n    }" { (expression_statement "iVar34 = local_3c;" (assignment_expression "iVar34 = local_3c" identifier = identifier) ;) (expression_statement "pmVar11 = pmVar6;" (assignment_expression "pmVar11 = pmVar6" identifier = identifier) ;) (expression_statement "pmVar31 = bp + 1;" (assignment_expression "pmVar31 = bp + 1" identifier = (binary_expression "bp + 1" identifier + number_literal)) ;) (do_statement "do {\n        *pmVar11 = mVar19;\n        iVar34 = iVar34 + -1;\n        mVar19 = *pmVar31;\n        pmVar11 = pmVar11 + 1;\n        pmVar31 = pmVar31 + 1;\n      } while (iVar34 != 0);" do (compound_statement "{\n        *pmVar11 = mVar19;\n        iVar34 = iVar34 + -1;\n        mVar19 = *pmVar31;\n        pmVar11 = pmVar11 + 1;\n        pmVar31 = pmVar31 + 1;\n      }" { (expression_statement "*pmVar11 = mVar19;" (assignment_expression "*pmVar11 = mVar19" (pointer_expression "*pmVar11" * identifier) = identifier) ;) (expression_statement "iVar34 = iVar34 + -1;" (assignment_expression "iVar34 = iVar34 + -1" identifier = (binary_expression "iVar34 + -1" identifier + number_literal)) ;) (expression_statement "mVar19 = *pmVar31;" (assignment_expression "mVar19 = *pmVar31" identifier = (pointer_expression "*pmVar31" * identifier)) ;) (expression_statement "pmVar11 = pmVar11 + 1;" (assignment_expression "pmVar11 = pmVar11 + 1" identifier = (binary_expression "pmVar11 + 1" identifier + number_literal)) ;) (expression_statement "pmVar31 = pmVar31 + 1;" (assignment_expression "pmVar31 = pmVar31 + 1" identifier = (binary_expression "pmVar31 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar34 != 0)" ( (binary_expression "iVar34 != 0" identifier != number_literal) )) ;) (expression_statement "pmVar6[n + -1] = mVar19;" (assignment_expression "pmVar6[n + -1] = mVar19" (subscript_expression "pmVar6[n + -1]" identifier [ (binary_expression "n + -1" identifier + number_literal) ]) = identifier) ;) }))) }))) (expression_statement "(*(code *)PTR___gmpn_sqrlo_0009d354)(tp,bp,n);" (call_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)(tp,bp,n)" (parenthesized_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)" ( (pointer_expression "*(code *)PTR___gmpn_sqrlo_0009d354" * (cast_expression "(code *)PTR___gmpn_sqrlo_0009d354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(tp,bp,n)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar34 = n * 4;" (assignment_expression "iVar34 = n * 4" identifier = (binary_expression "n * 4" identifier * number_literal)) ;) (expression_statement "pmVar11 = pmVar6;" (assignment_expression "pmVar11 = pmVar6" identifier = identifier) ;) (for_statement "for (; iVar28 != 0; iVar28 = iVar28 + -1) {\n    bp = pmVar11 + n;\n    en = n;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(bp,pmVar11,tp);\n    pmVar11 = bp;\n  }" for ( ; (binary_expression "iVar28 != 0" identifier != number_literal) ; (assignment_expression "iVar28 = iVar28 + -1" identifier = (binary_expression "iVar28 + -1" identifier + number_literal)) ) (compound_statement "{\n    bp = pmVar11 + n;\n    en = n;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(bp,pmVar11,tp);\n    pmVar11 = bp;\n  }" { (expression_statement "bp = pmVar11 + n;" (assignment_expression "bp = pmVar11 + n" identifier = (binary_expression "pmVar11 + n" identifier + identifier)) ;) (expression_statement "en = n;" (assignment_expression "en = n" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_mullo_n_0009d234)(bp,pmVar11,tp);" (call_expression "(*(code *)PTR___gmpn_mullo_n_0009d234)(bp,pmVar11,tp)" (parenthesized_expression "(*(code *)PTR___gmpn_mullo_n_0009d234)" ( (pointer_expression "*(code *)PTR___gmpn_mullo_n_0009d234" * (cast_expression "(code *)PTR___gmpn_mullo_n_0009d234" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(bp,pmVar11,tp)" ( identifier , identifier , identifier ))) ;) (expression_statement "pmVar11 = bp;" (assignment_expression "pmVar11 = bp" identifier = identifier) ;) })) (expression_statement "uVar4 = (int)pmVar29 - (int)local_44;" (assignment_expression "uVar4 = (int)pmVar29 - (int)local_44" identifier = (binary_expression "(int)pmVar29 - (int)local_44" (cast_expression "(int)pmVar29" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (pmVar29 < local_44) {\n    uVar5 = ~(-1 << ((uint)pmVar29 & 0x1f)) & *ep;\n  }\n  else {\n    uVar13 = 0x20 - (uVar4 & 0x1f);\n    en = (mp_size_t)((int)uVar13 < (int)local_44);\n    uVar5 = ep[uVar4 >> 5] >> (uVar4 & 0x1f);\n    if (en != 0) {\n      uVar5 = uVar5 + ((ep + (uVar4 >> 5))[1] << (uVar13 & 0x1f));\n    }\n    uVar5 = uVar5 & local_4c;\n  }" if (parenthesized_expression "(pmVar29 < local_44)" ( (binary_expression "pmVar29 < local_44" identifier < identifier) )) (compound_statement "{\n    uVar5 = ~(-1 << ((uint)pmVar29 & 0x1f)) & *ep;\n  }" { (expression_statement "uVar5 = ~(-1 << ((uint)pmVar29 & 0x1f)) & *ep;" (assignment_expression "uVar5 = ~(-1 << ((uint)pmVar29 & 0x1f)) & *ep" identifier = (binary_expression "~(-1 << ((uint)pmVar29 & 0x1f)) & *ep" (unary_expression "~(-1 << ((uint)pmVar29 & 0x1f))" ~ (parenthesized_expression "(-1 << ((uint)pmVar29 & 0x1f))" ( (binary_expression "-1 << ((uint)pmVar29 & 0x1f)" number_literal << (parenthesized_expression "((uint)pmVar29 & 0x1f)" ( (binary_expression "(uint)pmVar29 & 0x1f" (cast_expression "(uint)pmVar29" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) ))) & (pointer_expression "*ep" * identifier))) ;) }) (else_clause "else {\n    uVar13 = 0x20 - (uVar4 & 0x1f);\n    en = (mp_size_t)((int)uVar13 < (int)local_44);\n    uVar5 = ep[uVar4 >> 5] >> (uVar4 & 0x1f);\n    if (en != 0) {\n      uVar5 = uVar5 + ((ep + (uVar4 >> 5))[1] << (uVar13 & 0x1f));\n    }\n    uVar5 = uVar5 & local_4c;\n  }" else (compound_statement "{\n    uVar13 = 0x20 - (uVar4 & 0x1f);\n    en = (mp_size_t)((int)uVar13 < (int)local_44);\n    uVar5 = ep[uVar4 >> 5] >> (uVar4 & 0x1f);\n    if (en != 0) {\n      uVar5 = uVar5 + ((ep + (uVar4 >> 5))[1] << (uVar13 & 0x1f));\n    }\n    uVar5 = uVar5 & local_4c;\n  }" { (expression_statement "uVar13 = 0x20 - (uVar4 & 0x1f);" (assignment_expression "uVar13 = 0x20 - (uVar4 & 0x1f)" identifier = (binary_expression "0x20 - (uVar4 & 0x1f)" number_literal - (parenthesized_expression "(uVar4 & 0x1f)" ( (binary_expression "uVar4 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "en = (mp_size_t)((int)uVar13 < (int)local_44);" (assignment_expression "en = (mp_size_t)((int)uVar13 < (int)local_44)" identifier = (call_expression "(mp_size_t)((int)uVar13 < (int)local_44)" (parenthesized_expression "(mp_size_t)" ( identifier )) (argument_list "((int)uVar13 < (int)local_44)" ( (binary_expression "(int)uVar13 < (int)local_44" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "uVar5 = ep[uVar4 >> 5] >> (uVar4 & 0x1f);" (assignment_expression "uVar5 = ep[uVar4 >> 5] >> (uVar4 & 0x1f)" identifier = (binary_expression "ep[uVar4 >> 5] >> (uVar4 & 0x1f)" (subscript_expression "ep[uVar4 >> 5]" identifier [ (binary_expression "uVar4 >> 5" identifier >> number_literal) ]) >> (parenthesized_expression "(uVar4 & 0x1f)" ( (binary_expression "uVar4 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if (en != 0) {\n      uVar5 = uVar5 + ((ep + (uVar4 >> 5))[1] << (uVar13 & 0x1f));\n    }" if (parenthesized_expression "(en != 0)" ( (binary_expression "en != 0" identifier != number_literal) )) (compound_statement "{\n      uVar5 = uVar5 + ((ep + (uVar4 >> 5))[1] << (uVar13 & 0x1f));\n    }" { (expression_statement "uVar5 = uVar5 + ((ep + (uVar4 >> 5))[1] << (uVar13 & 0x1f));" (assignment_expression "uVar5 = uVar5 + ((ep + (uVar4 >> 5))[1] << (uVar13 & 0x1f))" identifier = (binary_expression "uVar5 + ((ep + (uVar4 >> 5))[1] << (uVar13 & 0x1f))" identifier + (parenthesized_expression "((ep + (uVar4 >> 5))[1] << (uVar13 & 0x1f))" ( (binary_expression "(ep + (uVar4 >> 5))[1] << (uVar13 & 0x1f)" (subscript_expression "(ep + (uVar4 >> 5))[1]" (parenthesized_expression "(ep + (uVar4 >> 5))" ( (binary_expression "ep + (uVar4 >> 5)" identifier + (parenthesized_expression "(uVar4 >> 5)" ( (binary_expression "uVar4 >> 5" identifier >> number_literal) ))) )) [ number_literal ]) << (parenthesized_expression "(uVar13 & 0x1f)" ( (binary_expression "uVar13 & 0x1f" identifier & number_literal) ))) )))) ;) })) (expression_statement "uVar5 = uVar5 & local_4c;" (assignment_expression "uVar5 = uVar5 & local_4c" identifier = (binary_expression "uVar5 & local_4c" identifier & identifier)) ;) }))) (if_statement "if ((uVar5 & 0xff) == 0) {\n    uVar13 = uVar5 >> 8;\n    en = 6;\n    iVar28 = 0x1e;\n    if (uVar13 != 0) {\n      iVar28 = 6;\n    }\n    uVar13 = (uint)(byte)puVar37[-uVar13 & uVar13] + iVar28;\n  }\n  else {\n    uVar13 = (byte)puVar37[-uVar5 & uVar5] - 2;\n  }" if (parenthesized_expression "((uVar5 & 0xff) == 0)" ( (binary_expression "(uVar5 & 0xff) == 0" (parenthesized_expression "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar13 = uVar5 >> 8;\n    en = 6;\n    iVar28 = 0x1e;\n    if (uVar13 != 0) {\n      iVar28 = 6;\n    }\n    uVar13 = (uint)(byte)puVar37[-uVar13 & uVar13] + iVar28;\n  }" { (expression_statement "uVar13 = uVar5 >> 8;" (assignment_expression "uVar13 = uVar5 >> 8" identifier = (binary_expression "uVar5 >> 8" identifier >> number_literal)) ;) (expression_statement "en = 6;" (assignment_expression "en = 6" identifier = number_literal) ;) (expression_statement "iVar28 = 0x1e;" (assignment_expression "iVar28 = 0x1e" identifier = number_literal) ;) (if_statement "if (uVar13 != 0) {\n      iVar28 = 6;\n    }" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar28 = 6;\n    }" { (expression_statement "iVar28 = 6;" (assignment_expression "iVar28 = 6" identifier = number_literal) ;) })) (expression_statement "uVar13 = (uint)(byte)puVar37[-uVar13 & uVar13] + iVar28;" (assignment_expression "uVar13 = (uint)(byte)puVar37[-uVar13 & uVar13] + iVar28" identifier = (binary_expression "(uint)(byte)puVar37[-uVar13 & uVar13] + iVar28" (cast_expression "(uint)(byte)puVar37[-uVar13 & uVar13]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar37[-uVar13 & uVar13]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar37[-uVar13 & uVar13]" identifier [ (binary_expression "-uVar13 & uVar13" (unary_expression "-uVar13" - identifier) & identifier) ]))) + identifier)) ;) }) (else_clause "else {\n    uVar13 = (byte)puVar37[-uVar5 & uVar5] - 2;\n  }" else (compound_statement "{\n    uVar13 = (byte)puVar37[-uVar5 & uVar5] - 2;\n  }" { (expression_statement "uVar13 = (byte)puVar37[-uVar5 & uVar5] - 2;" (assignment_expression "uVar13 = (byte)puVar37[-uVar5 & uVar5] - 2" identifier = (binary_expression "(byte)puVar37[-uVar5 & uVar5] - 2" (cast_expression "(byte)puVar37[-uVar5 & uVar5]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar37[-uVar5 & uVar5]" identifier [ (binary_expression "-uVar5 & uVar5" (unary_expression "-uVar5" - identifier) & identifier) ])) - number_literal)) ;) }))) (expression_statement "pmVar11 = (mp_limb_t *)(uVar13 + uVar4);" (assignment_expression "pmVar11 = (mp_limb_t *)(uVar13 + uVar4)" identifier = (cast_expression "(mp_limb_t *)(uVar13 + uVar4)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar13 + uVar4)" ( (binary_expression "uVar13 + uVar4" identifier + identifier) )))) ;) (if_statement "if (n != 0) {\n    en = ((uVar5 >> (uVar13 & 0x1f)) >> 1) * iVar34;\n    pmVar20 = (mp_limb_t *)(en + (int)pmVar6);\n    mVar19 = *pmVar20;\n    iVar28 = local_3c;\n    pmVar31 = rp;\n    if (local_3c == 0) {\n      *rp = mVar19;\n    }\n    else {\n      do {\n        pmVar20 = pmVar20 + 1;\n        *pmVar31 = mVar19;\n        iVar28 = iVar28 + -1;\n        mVar19 = *pmVar20;\n        pmVar31 = pmVar31 + 1;\n      } while (iVar28 != 0);\n      rp[n + -1] = mVar19;\n    }\n  }" if (parenthesized_expression "(n != 0)" ( (binary_expression "n != 0" identifier != number_literal) )) (compound_statement "{\n    en = ((uVar5 >> (uVar13 & 0x1f)) >> 1) * iVar34;\n    pmVar20 = (mp_limb_t *)(en + (int)pmVar6);\n    mVar19 = *pmVar20;\n    iVar28 = local_3c;\n    pmVar31 = rp;\n    if (local_3c == 0) {\n      *rp = mVar19;\n    }\n    else {\n      do {\n        pmVar20 = pmVar20 + 1;\n        *pmVar31 = mVar19;\n        iVar28 = iVar28 + -1;\n        mVar19 = *pmVar20;\n        pmVar31 = pmVar31 + 1;\n      } while (iVar28 != 0);\n      rp[n + -1] = mVar19;\n    }\n  }" { (expression_statement "en = ((uVar5 >> (uVar13 & 0x1f)) >> 1) * iVar34;" (assignment_expression "en = ((uVar5 >> (uVar13 & 0x1f)) >> 1) * iVar34" identifier = (binary_expression "((uVar5 >> (uVar13 & 0x1f)) >> 1) * iVar34" (parenthesized_expression "((uVar5 >> (uVar13 & 0x1f)) >> 1)" ( (binary_expression "(uVar5 >> (uVar13 & 0x1f)) >> 1" (parenthesized_expression "(uVar5 >> (uVar13 & 0x1f))" ( (binary_expression "uVar5 >> (uVar13 & 0x1f)" identifier >> (parenthesized_expression "(uVar13 & 0x1f)" ( (binary_expression "uVar13 & 0x1f" identifier & number_literal) ))) )) >> number_literal) )) * identifier)) ;) (expression_statement "pmVar20 = (mp_limb_t *)(en + (int)pmVar6);" (assignment_expression "pmVar20 = (mp_limb_t *)(en + (int)pmVar6)" identifier = (cast_expression "(mp_limb_t *)(en + (int)pmVar6)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(en + (int)pmVar6)" ( (binary_expression "en + (int)pmVar6" identifier + (cast_expression "(int)pmVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "mVar19 = *pmVar20;" (assignment_expression "mVar19 = *pmVar20" identifier = (pointer_expression "*pmVar20" * identifier)) ;) (expression_statement "iVar28 = local_3c;" (assignment_expression "iVar28 = local_3c" identifier = identifier) ;) (expression_statement "pmVar31 = rp;" (assignment_expression "pmVar31 = rp" identifier = identifier) ;) (if_statement "if (local_3c == 0) {\n      *rp = mVar19;\n    }\n    else {\n      do {\n        pmVar20 = pmVar20 + 1;\n        *pmVar31 = mVar19;\n        iVar28 = iVar28 + -1;\n        mVar19 = *pmVar20;\n        pmVar31 = pmVar31 + 1;\n      } while (iVar28 != 0);\n      rp[n + -1] = mVar19;\n    }" if (parenthesized_expression "(local_3c == 0)" ( (binary_expression "local_3c == 0" identifier == number_literal) )) (compound_statement "{\n      *rp = mVar19;\n    }" { (expression_statement "*rp = mVar19;" (assignment_expression "*rp = mVar19" (pointer_expression "*rp" * identifier) = identifier) ;) }) (else_clause "else {\n      do {\n        pmVar20 = pmVar20 + 1;\n        *pmVar31 = mVar19;\n        iVar28 = iVar28 + -1;\n        mVar19 = *pmVar20;\n        pmVar31 = pmVar31 + 1;\n      } while (iVar28 != 0);\n      rp[n + -1] = mVar19;\n    }" else (compound_statement "{\n      do {\n        pmVar20 = pmVar20 + 1;\n        *pmVar31 = mVar19;\n        iVar28 = iVar28 + -1;\n        mVar19 = *pmVar20;\n        pmVar31 = pmVar31 + 1;\n      } while (iVar28 != 0);\n      rp[n + -1] = mVar19;\n    }" { (do_statement "do {\n        pmVar20 = pmVar20 + 1;\n        *pmVar31 = mVar19;\n        iVar28 = iVar28 + -1;\n        mVar19 = *pmVar20;\n        pmVar31 = pmVar31 + 1;\n      } while (iVar28 != 0);" do (compound_statement "{\n        pmVar20 = pmVar20 + 1;\n        *pmVar31 = mVar19;\n        iVar28 = iVar28 + -1;\n        mVar19 = *pmVar20;\n        pmVar31 = pmVar31 + 1;\n      }" { (expression_statement "pmVar20 = pmVar20 + 1;" (assignment_expression "pmVar20 = pmVar20 + 1" identifier = (binary_expression "pmVar20 + 1" identifier + number_literal)) ;) (expression_statement "*pmVar31 = mVar19;" (assignment_expression "*pmVar31 = mVar19" (pointer_expression "*pmVar31" * identifier) = identifier) ;) (expression_statement "iVar28 = iVar28 + -1;" (assignment_expression "iVar28 = iVar28 + -1" identifier = (binary_expression "iVar28 + -1" identifier + number_literal)) ;) (expression_statement "mVar19 = *pmVar20;" (assignment_expression "mVar19 = *pmVar20" identifier = (pointer_expression "*pmVar20" * identifier)) ;) (expression_statement "pmVar31 = pmVar31 + 1;" (assignment_expression "pmVar31 = pmVar31 + 1" identifier = (binary_expression "pmVar31 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar28 != 0)" ( (binary_expression "iVar28 != 0" identifier != number_literal) )) ;) (expression_statement "rp[n + -1] = mVar19;" (assignment_expression "rp[n + -1] = mVar19" (subscript_expression "rp[n + -1]" identifier [ (binary_expression "n + -1" identifier + number_literal) ]) = identifier) ;) }))) })) (expression_statement "pmVar31 = (mp_limb_t *)((int)pmVar11 + -1);" (assignment_expression "pmVar31 = (mp_limb_t *)((int)pmVar11 + -1)" identifier = (cast_expression "(mp_limb_t *)((int)pmVar11 + -1)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar11 + -1)" ( (binary_expression "(int)pmVar11 + -1" (cast_expression "(int)pmVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((ep[(uint)pmVar31 >> 5] >> ((uint)pmVar31 & 0x1f) & 1) != 0) goto LAB_0007b010;" if (parenthesized_expression "((ep[(uint)pmVar31 >> 5] >> ((uint)pmVar31 & 0x1f) & 1) != 0)" ( (binary_expression "(ep[(uint)pmVar31 >> 5] >> ((uint)pmVar31 & 0x1f) & 1) != 0" (parenthesized_expression "(ep[(uint)pmVar31 >> 5] >> ((uint)pmVar31 & 0x1f) & 1)" ( (binary_expression "ep[(uint)pmVar31 >> 5] >> ((uint)pmVar31 & 0x1f) & 1" (binary_expression "ep[(uint)pmVar31 >> 5] >> ((uint)pmVar31 & 0x1f)" (subscript_expression "ep[(uint)pmVar31 >> 5]" identifier [ (binary_expression "(uint)pmVar31 >> 5" (cast_expression "(uint)pmVar31" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ]) >> (parenthesized_expression "((uint)pmVar31 & 0x1f)" ( (binary_expression "(uint)pmVar31 & 0x1f" (cast_expression "(uint)pmVar31" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0007b010;" goto statement_identifier ;)) (labeled_statement "LAB_0007afb0:\n  pmVar18 = rp;" statement_identifier : (expression_statement "pmVar18 = rp;" (assignment_expression "pmVar18 = rp" identifier = identifier) ;)) (expression_statement "pmVar20 = (mp_limb_t *)n;" (assignment_expression "pmVar20 = (mp_limb_t *)n" identifier = (cast_expression "(mp_limb_t *)n" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(*(code *)PTR___gmpn_sqrlo_0009d354)(tp);" (call_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)(tp)" (parenthesized_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)" ( (pointer_expression "*(code *)PTR___gmpn_sqrlo_0009d354" * (cast_expression "(code *)PTR___gmpn_sqrlo_0009d354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(tp)" ( identifier ))) ;) (expression_statement "pmVar11 = pmVar31;" (assignment_expression "pmVar11 = pmVar31" identifier = identifier) ;) (expression_statement "ptVar15 = __tmp_marker;" (assignment_expression "ptVar15 = __tmp_marker" identifier = identifier) ;) (if_statement "if (n != 0) {\n    pmVar18 = (mp_ptr)*tp;\n    pmVar1 = rp;\n    pmVar2 = rp;\n    pmVar14 = tp;\n    for (iVar28 = local_3c; iVar28 != 0; iVar28 = iVar28 + -1) {\n      pmVar14 = pmVar14 + 1;\n      *pmVar2 = (mp_limb_t)pmVar18;\n      pmVar18 = (mp_ptr)*pmVar14;\n      pmVar1 = rp + n + -1;\n      pmVar2 = pmVar2 + 1;\n    }\n    *pmVar1 = (mp_limb_t)pmVar18;\n  }" if (parenthesized_expression "(n != 0)" ( (binary_expression "n != 0" identifier != number_literal) )) (compound_statement "{\n    pmVar18 = (mp_ptr)*tp;\n    pmVar1 = rp;\n    pmVar2 = rp;\n    pmVar14 = tp;\n    for (iVar28 = local_3c; iVar28 != 0; iVar28 = iVar28 + -1) {\n      pmVar14 = pmVar14 + 1;\n      *pmVar2 = (mp_limb_t)pmVar18;\n      pmVar18 = (mp_ptr)*pmVar14;\n      pmVar1 = rp + n + -1;\n      pmVar2 = pmVar2 + 1;\n    }\n    *pmVar1 = (mp_limb_t)pmVar18;\n  }" { (expression_statement "pmVar18 = (mp_ptr)*tp;" (assignment_expression "pmVar18 = (mp_ptr)*tp" identifier = (binary_expression "(mp_ptr)*tp" (parenthesized_expression "(mp_ptr)" ( identifier )) * identifier)) ;) (expression_statement "pmVar1 = rp;" (assignment_expression "pmVar1 = rp" identifier = identifier) ;) (expression_statement "pmVar2 = rp;" (assignment_expression "pmVar2 = rp" identifier = identifier) ;) (expression_statement "pmVar14 = tp;" (assignment_expression "pmVar14 = tp" identifier = identifier) ;) (for_statement "for (iVar28 = local_3c; iVar28 != 0; iVar28 = iVar28 + -1) {\n      pmVar14 = pmVar14 + 1;\n      *pmVar2 = (mp_limb_t)pmVar18;\n      pmVar18 = (mp_ptr)*pmVar14;\n      pmVar1 = rp + n + -1;\n      pmVar2 = pmVar2 + 1;\n    }" for ( (assignment_expression "iVar28 = local_3c" identifier = identifier) ; (binary_expression "iVar28 != 0" identifier != number_literal) ; (assignment_expression "iVar28 = iVar28 + -1" identifier = (binary_expression "iVar28 + -1" identifier + number_literal)) ) (compound_statement "{\n      pmVar14 = pmVar14 + 1;\n      *pmVar2 = (mp_limb_t)pmVar18;\n      pmVar18 = (mp_ptr)*pmVar14;\n      pmVar1 = rp + n + -1;\n      pmVar2 = pmVar2 + 1;\n    }" { (expression_statement "pmVar14 = pmVar14 + 1;" (assignment_expression "pmVar14 = pmVar14 + 1" identifier = (binary_expression "pmVar14 + 1" identifier + number_literal)) ;) (expression_statement "*pmVar2 = (mp_limb_t)pmVar18;" (assignment_expression "*pmVar2 = (mp_limb_t)pmVar18" (pointer_expression "*pmVar2" * identifier) = (cast_expression "(mp_limb_t)pmVar18" ( (type_descriptor "mp_limb_t" type_identifier) ) identifier)) ;) (expression_statement "pmVar18 = (mp_ptr)*pmVar14;" (assignment_expression "pmVar18 = (mp_ptr)*pmVar14" identifier = (binary_expression "(mp_ptr)*pmVar14" (parenthesized_expression "(mp_ptr)" ( identifier )) * identifier)) ;) (expression_statement "pmVar1 = rp + n + -1;" (assignment_expression "pmVar1 = rp + n + -1" identifier = (binary_expression "rp + n + -1" (binary_expression "rp + n" identifier + identifier) + number_literal)) ;) (expression_statement "pmVar2 = pmVar2 + 1;" (assignment_expression "pmVar2 = pmVar2 + 1" identifier = (binary_expression "pmVar2 + 1" identifier + number_literal)) ;) })) (expression_statement "*pmVar1 = (mp_limb_t)pmVar18;" (assignment_expression "*pmVar1 = (mp_limb_t)pmVar18" (pointer_expression "*pmVar1" * identifier) = (cast_expression "(mp_limb_t)pmVar18" ( (type_descriptor "mp_limb_t" type_identifier) ) identifier)) ;) })) (do_statement "do {\n    __tmp_marker = ptVar15;\n    if (pmVar11 == (mp_limb_t *)0x0) {\n      if (ptVar15 != (tmp_reentrant_t *)0x0) {\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }\n      if (local_2c == *(int *)puVar3) {\n        return;\n      }\n      uVar42 = 0x7b45c;\n      puVar37 = PTR___stack_chk_fail_0009d4d0;\n      (*(code *)PTR___stack_chk_fail_0009d4d0)();\n      uVar4 = *(uint *)(puVar40 + 0x10);\n      *(mp_size_t *)(puVar40 + -0x24) = n;\n      *(undefined **)(puVar40 + -0x68) = puVar37 + 0x29be0;\n      *(undefined4 *)(puVar40 + -0x18) = 0;\n      *(mp_limb_t **)(puVar40 + -0x28) = pmVar29;\n      *(undefined4 *)(puVar40 + -4) = uVar42;\n      *(undefined1 **)(puVar40 + -8) = auStack_70;\n      *(int *)(puVar40 + -0xc) = iVar34;\n      *(mp_srcptr *)(puVar40 + -0x10) = ep;\n      *(mp_srcptr *)(puVar40 + -0x14) = bp;\n      *(mp_ptr *)(puVar40 + -0x1c) = rp;\n      *(mp_ptr *)(puVar40 + -0x20) = tp;\n      *(uint *)(puVar40 + -0x60) = uVar4;\n      *(mp_ptr *)(puVar40 + -0x44) = pmVar18;\n      *(mp_size_t *)(puVar40 + -0x4c) = en;\n      piVar32 = *(int **)(puVar40 + 0x14);\n      iVar28 = *(int *)(puVar40 + 0x18);\n      *(undefined4 *)(puVar40 + -0x54) = *(undefined4 *)(puVar40 + 0x1c);\n      if (uVar4 < 3) {\n        iVar34 = 0;\n        *(undefined4 *)(puVar40 + -0x5c) = 1;\n        *(undefined4 *)(puVar40 + -0x50) = 2;\n        iVar7 = 1;\n        *(undefined4 *)(puVar40 + -0x58) = 1;\n      }\n      else {\n        if (uVar4 < 0x22) {\n          *(undefined4 *)(puVar40 + -0x58) = 2;\n          iVar7 = 2;\n        }\n        else if (uVar4 < 0x61) {\n          *(undefined4 *)(puVar40 + -0x58) = 3;\n          iVar7 = 3;\n        }\n        else if (uVar4 < 0x30d) {\n          *(undefined4 *)(puVar40 + -0x58) = 4;\n          iVar7 = 4;\n        }\n        else {\n          iVar7 = 6;\n          if (uVar4 < 0xab6) {\n            iVar7 = 5;\n          }\n          *(int *)(puVar40 + -0x58) = iVar7;\n        }\n        *(int *)(puVar40 + -0x5c) = iVar7;\n        *(int *)(puVar40 + -0x50) = 1 << iVar7;\n        iVar34 = (1 << iVar7) + -2;\n      }\n      iVar16 = *piVar32;\n      iVar41 = iVar28 * 4;\n      puVar35 = *(undefined4 **)(puVar40 + -0x54);\n      puVar24 = (undefined1 *)(iVar28 + (int)pmVar20);\n      puVar33 = puVar35 + iVar28;\n      uVar4 = (uint)*(byte *)(*(int *)(puVar37 + 0x21ea4) + ((uint)(iVar16 << 0x18) >> 0x19));\n      puVar27 = puVar33 + iVar28;\n      puVar21 = puVar35 + iVar28 + 1;\n      *(undefined4 **)(puVar40 + -0x48) = puVar27 + (int)puVar24;\n      psVar30 = puVar35 + (iVar28 << iVar7);\n      *puVar33 = 1;\n      iVar7 = uVar4 * 2 - uVar4 * uVar4 * iVar16;\n      iVar7 = iVar7 * iVar7 * iVar16 + iVar7 * -2;\n      puVar36 = puVar33;\n      if (iVar28 == 0) {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar37 + 0x2211c);\n        puVar21[iVar28] = 1;\n        *(mp_limb_t **)(puVar40 + -0x38) = pmVar20;\n        *(undefined1 **)(puVar40 + -0x3c) = puVar24;\n        *(undefined4 **)(puVar40 + -0x40) = puVar27;\n        *(undefined4 **)(puVar40 + -0x70) = puVar21 + iVar28 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,1,piVar32,0);\n        iVar26 = *(int *)(puVar40 + -0x3c);\n        iVar39 = *(int *)(puVar40 + -0x68);\n        iVar16 = *(int *)(puVar40 + -0x40);\n        iVar38 = *(int *)(puVar40 + -0x38);\n        if (iVar26 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar16,0,piVar32,0);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar9 = iVar38 + -1;\n        puVar27 = (undefined4 *)(iVar16 + iVar41);\n        uVar42 = **(undefined4 **)(puVar40 + -0x44);\n        if (iVar9 != 0) {\n          puVar35 = *(undefined4 **)(puVar40 + -0x44);\n          puVar21 = puVar27;\n          goto LAB_0007b70c;\n        }\n        uVar8 = *(undefined4 *)(puVar40 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n        *puVar27 = uVar42;\n        *(undefined4 *)(puVar40 + -0x70) = uVar8;\n        (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,0);\n        iVar16 = *(int *)(puVar40 + -0x68);\n      }\n      else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar37 + 0x21e88);\n        *(mp_limb_t **)(puVar40 + -0x2c) = pmVar20;\n        *(undefined1 **)(puVar40 + -0x30) = puVar24;\n        *(undefined4 **)(puVar40 + -0x34) = puVar21 + iVar28;\n        *(undefined4 **)(puVar40 + -0x38) = puVar27;\n        *(undefined4 **)(puVar40 + -0x3c) = puVar21 + iVar28 + 1;\n        uVar42 = (*UNRECOVERED_JUMPTABLE)(puVar21,0,iVar41);\n        uVar8 = *puVar33;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7ac4);\n        *(int *)(puVar40 + -0x40) = iVar28 + -1;\n        *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x3c);\n        *(undefined4 *)(puVar40 + -0x3c) = uVar42;\n        **(undefined4 **)(puVar40 + -0x34) = uVar8;\n        (*UNRECOVERED_JUMPTABLE)(uVar42,iVar28 + 1,piVar32,iVar28);\n        iVar16 = iVar28 + -1;\n        puVar27 = *(undefined4 **)(puVar40 + -0x3c);\n        iVar38 = *(int *)(puVar40 + -0x68);\n        uVar42 = *(undefined4 *)(puVar40 + -0x38);\n        uVar25 = *(undefined4 *)(puVar40 + -0x30);\n        uVar8 = *puVar27;\n        uVar23 = *(undefined4 *)(puVar40 + -0x2c);\n        if (iVar16 == 0) {\n          puVar35 = *(undefined4 **)(puVar40 + -0x54);\n        }\n        else {\n          do {\n            puVar27 = puVar27 + 1;\n            *puVar35 = uVar8;\n            iVar16 = iVar16 + -1;\n            uVar8 = *puVar27;\n            puVar35 = puVar35 + 1;\n          } while (iVar16 != 0);\n          puVar35 = (undefined4 *)(*(int *)(puVar40 + -0x54) + iVar41 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar38 + -0x7d58);\n        *(undefined4 *)(puVar40 + -0x38) = uVar23;\n        *(undefined4 *)(puVar40 + -0x3c) = uVar25;\n        *puVar35 = uVar8;\n        iVar16 = (*UNRECOVERED_JUMPTABLE)(uVar42,0,iVar41);\n        iVar38 = *(int *)(puVar40 + -0x38);\n        iVar39 = *(int *)(puVar40 + -0x68);\n        iVar26 = *(int *)(puVar40 + -0x3c);\n        if (iVar38 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x48);\n          iVar38 = iVar26;\nLAB_0007bb8c:\n          *(int *)(puVar40 + -0x48) = iVar16;\n          (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,iVar38);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          puVar35 = *(undefined4 **)(puVar40 + -0x48);\n        }\n        else {\n          puVar35 = *(undefined4 **)(puVar40 + -0x44);\n          iVar9 = iVar38 + -1;\n          puVar27 = (undefined4 *)(iVar16 + iVar41);\n          uVar42 = *puVar35;\n          puVar21 = puVar27;\n          if (iVar9 == 0) {\n            uVar8 = *(undefined4 *)(puVar40 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n            *puVar27 = uVar42;\n            *(undefined4 *)(puVar40 + -0x70) = uVar8;\n            iVar38 = iVar28;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar35 = puVar35 + 1;\n            *puVar27 = uVar42;\n            iVar9 = iVar9 + -1;\n            uVar42 = *puVar35;\n            puVar27 = puVar27 + 1;\n          } while (iVar9 != 0);\n          uVar8 = *(undefined4 *)(puVar40 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(int *)(puVar40 + -0x48) = iVar16;\n          *(undefined4 *)(puVar40 + -0x70) = uVar8;\n          puVar21[iVar38 + -1] = uVar42;\n          (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,iVar28);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          if (iVar28 == 0) goto joined_r0x0007b75c;\n          puVar35 = *(undefined4 **)(puVar40 + -0x48);\n          *(int *)(puVar40 + -0x40) = iVar28 + -1;\n        }\n        iVar38 = *(int *)(puVar40 + -0x40);\n        uVar42 = *puVar35;\n        puVar27 = puVar33;\n        if (iVar38 == 0) {\n          *puVar33 = uVar42;\n        }\n        else {\n          do {\n            puVar35 = puVar35 + 1;\n            *puVar27 = uVar42;\n            iVar38 = iVar38 + -1;\n            uVar42 = *puVar35;\n            puVar27 = puVar27 + 1;\n          } while (iVar38 != 0);\n          puVar33[*(int *)(puVar40 + -0x40)] = uVar42;\n        }\n      }\njoined_r0x0007b75c:\n      for (; iVar34 != 0; iVar34 = iVar34 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar16 + -0x7bd0);\n        *(int *)(puVar40 + -0x70) = iVar28;\n        (*UNRECOVERED_JUMPTABLE)(psVar30,puVar36,iVar28,puVar33);\n        puVar36 = puVar36 + iVar28;\n        *(int *)(puVar40 + -0x70) = iVar7;\n        uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))(puVar36,psVar30,piVar32,iVar28);\n        *(int *)(puVar40 + -0x70) = iVar28;\n        (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,puVar36,puVar36,piVar32);\n        iVar16 = *(int *)(puVar40 + -0x68);\n      }\n      if (*(uint *)(puVar40 + -0x5c) <= *(uint *)(puVar40 + -0x60)) {\n        uVar4 = *(int *)(puVar40 + -0x60) - *(uint *)(puVar40 + -0x5c);\n        uVar13 = 0x20 - (uVar4 & 0x1f);\n        puVar12 = (uint *)(*(int *)(puVar40 + -0x4c) + (uVar4 >> 5) * 4);\n        uVar5 = *puVar12 >> (uVar4 & 0x1f);\n        if ((int)uVar13 < *(int *)(puVar40 + -0x58)) {\n          uVar5 = uVar5 + (puVar12[1] << (uVar13 & 0x1f));\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar16 + -0x7bac);\n        *(int *)(puVar40 + -0x44) = ~(-1 << (*(uint *)(puVar40 + -0x58) & 0x1f));\n        *(uint *)(puVar40 + -0x70) = ~(-1 << (*(uint *)(puVar40 + -0x58) & 0x1f)) & uVar5;\n        (*UNRECOVERED_JUMPTABLE)\n                  (ptVar15,*(undefined4 *)(puVar40 + -0x54),iVar28,*(undefined4 *)(puVar40 + -0x50))\n        ;\n        iVar34 = *(int *)(puVar40 + -0x68);\n        if (uVar4 != 0) {\n          *(uint *)(puVar40 + -0x48) = (uint)(iVar28 < 0x39);\n          do {\n            if (uVar4 < *(uint *)(puVar40 + -0x5c)) {\n              uVar13 = 0;\n              *(uint *)(puVar40 + -0x60) = ~(-1 << (uVar4 & 0x1f)) & **(uint **)(puVar40 + -0x4c);\n            }\n            else {\n              uVar13 = uVar4 - *(int *)(puVar40 + -0x5c);\n              uVar4 = 0x20 - (uVar13 & 0x1f);\n              puVar12 = (uint *)(*(int *)(puVar40 + -0x4c) + (uVar13 >> 5) * 4);\n              uVar5 = *puVar12 >> (uVar13 & 0x1f);\n              if ((int)uVar4 < *(int *)(puVar40 + -0x58)) {\n                uVar5 = uVar5 + (puVar12[1] << (uVar4 & 0x1f));\n              }\n              uVar4 = *(uint *)(puVar40 + -0x58);\n              *(uint *)(puVar40 + -0x60) = *(uint *)(puVar40 + -0x44) & uVar5;\n            }\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);\n            if (*(int *)(puVar40 + -0x48) == 0) {\n              do {\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bd0);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28,ptVar15);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n              } while (uVar4 != 0);\n              uVar42 = *(undefined4 *)(puVar40 + -0x60);\n            }\n            else {\n              while( true ) {\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n                if (uVar4 == 0) break;\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);\n              }\n              uVar42 = *(undefined4 *)(puVar40 + -0x60);\n            }\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bac);\n            *(undefined4 *)(puVar40 + -0x70) = uVar42;\n            (*UNRECOVERED_JUMPTABLE)\n                      (psVar30 + iVar28 * 2,*(undefined4 *)(puVar40 + -0x54),iVar28,\n                       *(undefined4 *)(puVar40 + -0x50));\n            *(int *)(puVar40 + -0x70) = iVar28;\n            (**(code **)(*(int *)(puVar40 + -0x68) + -0x7bd0))\n                      (psVar30,ptVar15,iVar28,psVar30 + iVar28 * 2);\n            *(int *)(puVar40 + -0x70) = iVar7;\n            uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                               (ptVar15,psVar30,piVar32,iVar28);\n            *(int *)(puVar40 + -0x70) = iVar28;\n            (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n            iVar34 = *(int *)(puVar40 + -0x68);\n            uVar4 = uVar13;\n          } while (uVar13 != 0);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7eb0);\n        if (iVar28 != 0) {\n          iVar16 = iVar28 + -1;\n          ptVar22 = ptVar15->next;\n          psVar10 = psVar30;\n          ptVar17 = ptVar15;\n          if (iVar16 != 0) {\n            do {\n              *psVar10 = (size_t)ptVar22;\n              iVar16 = iVar16 + -1;\n              ptVar22 = (tmp_reentrant_t *)ptVar17->size;\n              psVar10 = psVar10 + 1;\n              ptVar17 = (tmp_reentrant_t *)&ptVar17->size;\n            } while (iVar16 != 0);\n            psVar10 = psVar30 + iVar28 + -1;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7d58);\n          *psVar10 = (size_t)ptVar22;\n          (*UNRECOVERED_JUMPTABLE)(psVar30 + iVar28,0,iVar41);\n          UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0);\n        }\n        *(int *)(puVar40 + -0x70) = iVar7;\n        uVar42 = (*UNRECOVERED_JUMPTABLE)(ptVar15,psVar30,piVar32,iVar28);\n        *(int *)(puVar40 + -0x70) = iVar28;\n        (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n        iVar34 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7b2c))(psVar30,ptVar15,piVar32,iVar28);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7a70);\n        *(int *)(puVar40 + 0x10) = iVar28;\n                    /* WARNING: Could not recover jumptable at 0x0007bab0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*UNRECOVERED_JUMPTABLE)(iVar34 == 0,ptVar15,ptVar15,piVar32);\n        return;\n      }\n      (**(code **)(iVar16 + -0x7c20))\n                (*(int *)(iVar16 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar16 + -0x7fd4) + 0x5438);\n      return;\n    }\n    pmVar31 = (mp_limb_t *)((int)pmVar11 + -1);\n    if ((ep[(uint)pmVar31 >> 5] >> ((uint)pmVar31 & 0x1f) & 1) == 0) goto LAB_0007afb0;\nLAB_0007b010:\n    if (pmVar11 < local_44) {\n      uVar5 = ~(-1 << ((uint)pmVar11 & 0x1f)) & *ep;\n      uVar13 = 0;\n      if ((uVar5 & 0xff) == 0) goto LAB_0007b270;\nLAB_0007b040:\n      uVar4 = (byte)puVar37[-uVar5 & uVar5] - 2;\n    }\n    else {\n      uVar13 = (int)pmVar11 - (int)local_44;\n      uVar4 = 0x20 - (uVar13 & 0x1f);\n      uVar5 = ep[uVar13 >> 5] >> (uVar13 & 0x1f);\n      if ((int)uVar4 < (int)local_44) {\n        uVar5 = uVar5 + ((ep + (uVar13 >> 5))[1] << (uVar4 & 0x1f));\n      }\n      uVar5 = uVar5 & local_4c;\n      pmVar11 = local_44;\n      if ((uVar5 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar4 = uVar5 >> 8;\n      iVar28 = 0x1e;\n      if (uVar4 != 0) {\n        iVar28 = 6;\n      }\n      uVar4 = (uint)(byte)puVar37[-uVar4 & uVar4] + iVar28;\n    }\n    bp = (mp_srcptr)((int)pmVar11 - uVar4);\n    pmVar11 = bp;\n    if (1 < (int)bp) {\n      do {\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(tp,rp,n);\n        pmVar29 = (mp_limb_t *)((int)pmVar11 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(rp,tp,n);\n        pmVar11 = pmVar29;\n      } while (1 < (int)pmVar29);\n      bp = (mp_srcptr)((uint)bp & 1);\n    }\n    if (bp == (mp_limb_t *)0x0) {\n      if (n != 0) {\n        mVar19 = *rp;\n        pmVar11 = tp;\n        if (local_3c != 0) {\n          iVar28 = local_3c;\n          pmVar18 = tp;\n          pmVar31 = rp + 1;\n          do {\n            *pmVar18 = mVar19;\n            iVar28 = iVar28 + -1;\n            mVar19 = *pmVar31;\n            pmVar11 = tp + n + -1;\n            pmVar18 = pmVar18 + 1;\n            pmVar31 = pmVar31 + 1;\n          } while (iVar28 != 0);\n        }\n        *pmVar11 = mVar19;\n      }\n    }\n    else {\n      (*(code *)PTR___gmpn_sqrlo_0009d354)(tp,rp,n);\n    }\n    pmVar20 = (mp_limb_t *)(((uVar5 >> (uVar4 & 0x1f)) >> 1) * iVar34 + (int)pmVar6);\n    pmVar18 = tp;\n    en = n;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(rp);\n    pmVar11 = (mp_limb_t *)(uVar4 + uVar13);\n    ptVar15 = __tmp_marker;\n  } while( true );" do (compound_statement "{\n    __tmp_marker = ptVar15;\n    if (pmVar11 == (mp_limb_t *)0x0) {\n      if (ptVar15 != (tmp_reentrant_t *)0x0) {\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }\n      if (local_2c == *(int *)puVar3) {\n        return;\n      }\n      uVar42 = 0x7b45c;\n      puVar37 = PTR___stack_chk_fail_0009d4d0;\n      (*(code *)PTR___stack_chk_fail_0009d4d0)();\n      uVar4 = *(uint *)(puVar40 + 0x10);\n      *(mp_size_t *)(puVar40 + -0x24) = n;\n      *(undefined **)(puVar40 + -0x68) = puVar37 + 0x29be0;\n      *(undefined4 *)(puVar40 + -0x18) = 0;\n      *(mp_limb_t **)(puVar40 + -0x28) = pmVar29;\n      *(undefined4 *)(puVar40 + -4) = uVar42;\n      *(undefined1 **)(puVar40 + -8) = auStack_70;\n      *(int *)(puVar40 + -0xc) = iVar34;\n      *(mp_srcptr *)(puVar40 + -0x10) = ep;\n      *(mp_srcptr *)(puVar40 + -0x14) = bp;\n      *(mp_ptr *)(puVar40 + -0x1c) = rp;\n      *(mp_ptr *)(puVar40 + -0x20) = tp;\n      *(uint *)(puVar40 + -0x60) = uVar4;\n      *(mp_ptr *)(puVar40 + -0x44) = pmVar18;\n      *(mp_size_t *)(puVar40 + -0x4c) = en;\n      piVar32 = *(int **)(puVar40 + 0x14);\n      iVar28 = *(int *)(puVar40 + 0x18);\n      *(undefined4 *)(puVar40 + -0x54) = *(undefined4 *)(puVar40 + 0x1c);\n      if (uVar4 < 3) {\n        iVar34 = 0;\n        *(undefined4 *)(puVar40 + -0x5c) = 1;\n        *(undefined4 *)(puVar40 + -0x50) = 2;\n        iVar7 = 1;\n        *(undefined4 *)(puVar40 + -0x58) = 1;\n      }\n      else {\n        if (uVar4 < 0x22) {\n          *(undefined4 *)(puVar40 + -0x58) = 2;\n          iVar7 = 2;\n        }\n        else if (uVar4 < 0x61) {\n          *(undefined4 *)(puVar40 + -0x58) = 3;\n          iVar7 = 3;\n        }\n        else if (uVar4 < 0x30d) {\n          *(undefined4 *)(puVar40 + -0x58) = 4;\n          iVar7 = 4;\n        }\n        else {\n          iVar7 = 6;\n          if (uVar4 < 0xab6) {\n            iVar7 = 5;\n          }\n          *(int *)(puVar40 + -0x58) = iVar7;\n        }\n        *(int *)(puVar40 + -0x5c) = iVar7;\n        *(int *)(puVar40 + -0x50) = 1 << iVar7;\n        iVar34 = (1 << iVar7) + -2;\n      }\n      iVar16 = *piVar32;\n      iVar41 = iVar28 * 4;\n      puVar35 = *(undefined4 **)(puVar40 + -0x54);\n      puVar24 = (undefined1 *)(iVar28 + (int)pmVar20);\n      puVar33 = puVar35 + iVar28;\n      uVar4 = (uint)*(byte *)(*(int *)(puVar37 + 0x21ea4) + ((uint)(iVar16 << 0x18) >> 0x19));\n      puVar27 = puVar33 + iVar28;\n      puVar21 = puVar35 + iVar28 + 1;\n      *(undefined4 **)(puVar40 + -0x48) = puVar27 + (int)puVar24;\n      psVar30 = puVar35 + (iVar28 << iVar7);\n      *puVar33 = 1;\n      iVar7 = uVar4 * 2 - uVar4 * uVar4 * iVar16;\n      iVar7 = iVar7 * iVar7 * iVar16 + iVar7 * -2;\n      puVar36 = puVar33;\n      if (iVar28 == 0) {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar37 + 0x2211c);\n        puVar21[iVar28] = 1;\n        *(mp_limb_t **)(puVar40 + -0x38) = pmVar20;\n        *(undefined1 **)(puVar40 + -0x3c) = puVar24;\n        *(undefined4 **)(puVar40 + -0x40) = puVar27;\n        *(undefined4 **)(puVar40 + -0x70) = puVar21 + iVar28 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,1,piVar32,0);\n        iVar26 = *(int *)(puVar40 + -0x3c);\n        iVar39 = *(int *)(puVar40 + -0x68);\n        iVar16 = *(int *)(puVar40 + -0x40);\n        iVar38 = *(int *)(puVar40 + -0x38);\n        if (iVar26 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar16,0,piVar32,0);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar9 = iVar38 + -1;\n        puVar27 = (undefined4 *)(iVar16 + iVar41);\n        uVar42 = **(undefined4 **)(puVar40 + -0x44);\n        if (iVar9 != 0) {\n          puVar35 = *(undefined4 **)(puVar40 + -0x44);\n          puVar21 = puVar27;\n          goto LAB_0007b70c;\n        }\n        uVar8 = *(undefined4 *)(puVar40 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n        *puVar27 = uVar42;\n        *(undefined4 *)(puVar40 + -0x70) = uVar8;\n        (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,0);\n        iVar16 = *(int *)(puVar40 + -0x68);\n      }\n      else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar37 + 0x21e88);\n        *(mp_limb_t **)(puVar40 + -0x2c) = pmVar20;\n        *(undefined1 **)(puVar40 + -0x30) = puVar24;\n        *(undefined4 **)(puVar40 + -0x34) = puVar21 + iVar28;\n        *(undefined4 **)(puVar40 + -0x38) = puVar27;\n        *(undefined4 **)(puVar40 + -0x3c) = puVar21 + iVar28 + 1;\n        uVar42 = (*UNRECOVERED_JUMPTABLE)(puVar21,0,iVar41);\n        uVar8 = *puVar33;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7ac4);\n        *(int *)(puVar40 + -0x40) = iVar28 + -1;\n        *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x3c);\n        *(undefined4 *)(puVar40 + -0x3c) = uVar42;\n        **(undefined4 **)(puVar40 + -0x34) = uVar8;\n        (*UNRECOVERED_JUMPTABLE)(uVar42,iVar28 + 1,piVar32,iVar28);\n        iVar16 = iVar28 + -1;\n        puVar27 = *(undefined4 **)(puVar40 + -0x3c);\n        iVar38 = *(int *)(puVar40 + -0x68);\n        uVar42 = *(undefined4 *)(puVar40 + -0x38);\n        uVar25 = *(undefined4 *)(puVar40 + -0x30);\n        uVar8 = *puVar27;\n        uVar23 = *(undefined4 *)(puVar40 + -0x2c);\n        if (iVar16 == 0) {\n          puVar35 = *(undefined4 **)(puVar40 + -0x54);\n        }\n        else {\n          do {\n            puVar27 = puVar27 + 1;\n            *puVar35 = uVar8;\n            iVar16 = iVar16 + -1;\n            uVar8 = *puVar27;\n            puVar35 = puVar35 + 1;\n          } while (iVar16 != 0);\n          puVar35 = (undefined4 *)(*(int *)(puVar40 + -0x54) + iVar41 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar38 + -0x7d58);\n        *(undefined4 *)(puVar40 + -0x38) = uVar23;\n        *(undefined4 *)(puVar40 + -0x3c) = uVar25;\n        *puVar35 = uVar8;\n        iVar16 = (*UNRECOVERED_JUMPTABLE)(uVar42,0,iVar41);\n        iVar38 = *(int *)(puVar40 + -0x38);\n        iVar39 = *(int *)(puVar40 + -0x68);\n        iVar26 = *(int *)(puVar40 + -0x3c);\n        if (iVar38 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x48);\n          iVar38 = iVar26;\nLAB_0007bb8c:\n          *(int *)(puVar40 + -0x48) = iVar16;\n          (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,iVar38);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          puVar35 = *(undefined4 **)(puVar40 + -0x48);\n        }\n        else {\n          puVar35 = *(undefined4 **)(puVar40 + -0x44);\n          iVar9 = iVar38 + -1;\n          puVar27 = (undefined4 *)(iVar16 + iVar41);\n          uVar42 = *puVar35;\n          puVar21 = puVar27;\n          if (iVar9 == 0) {\n            uVar8 = *(undefined4 *)(puVar40 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n            *puVar27 = uVar42;\n            *(undefined4 *)(puVar40 + -0x70) = uVar8;\n            iVar38 = iVar28;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar35 = puVar35 + 1;\n            *puVar27 = uVar42;\n            iVar9 = iVar9 + -1;\n            uVar42 = *puVar35;\n            puVar27 = puVar27 + 1;\n          } while (iVar9 != 0);\n          uVar8 = *(undefined4 *)(puVar40 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(int *)(puVar40 + -0x48) = iVar16;\n          *(undefined4 *)(puVar40 + -0x70) = uVar8;\n          puVar21[iVar38 + -1] = uVar42;\n          (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,iVar28);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          if (iVar28 == 0) goto joined_r0x0007b75c;\n          puVar35 = *(undefined4 **)(puVar40 + -0x48);\n          *(int *)(puVar40 + -0x40) = iVar28 + -1;\n        }\n        iVar38 = *(int *)(puVar40 + -0x40);\n        uVar42 = *puVar35;\n        puVar27 = puVar33;\n        if (iVar38 == 0) {\n          *puVar33 = uVar42;\n        }\n        else {\n          do {\n            puVar35 = puVar35 + 1;\n            *puVar27 = uVar42;\n            iVar38 = iVar38 + -1;\n            uVar42 = *puVar35;\n            puVar27 = puVar27 + 1;\n          } while (iVar38 != 0);\n          puVar33[*(int *)(puVar40 + -0x40)] = uVar42;\n        }\n      }\njoined_r0x0007b75c:\n      for (; iVar34 != 0; iVar34 = iVar34 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar16 + -0x7bd0);\n        *(int *)(puVar40 + -0x70) = iVar28;\n        (*UNRECOVERED_JUMPTABLE)(psVar30,puVar36,iVar28,puVar33);\n        puVar36 = puVar36 + iVar28;\n        *(int *)(puVar40 + -0x70) = iVar7;\n        uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))(puVar36,psVar30,piVar32,iVar28);\n        *(int *)(puVar40 + -0x70) = iVar28;\n        (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,puVar36,puVar36,piVar32);\n        iVar16 = *(int *)(puVar40 + -0x68);\n      }\n      if (*(uint *)(puVar40 + -0x5c) <= *(uint *)(puVar40 + -0x60)) {\n        uVar4 = *(int *)(puVar40 + -0x60) - *(uint *)(puVar40 + -0x5c);\n        uVar13 = 0x20 - (uVar4 & 0x1f);\n        puVar12 = (uint *)(*(int *)(puVar40 + -0x4c) + (uVar4 >> 5) * 4);\n        uVar5 = *puVar12 >> (uVar4 & 0x1f);\n        if ((int)uVar13 < *(int *)(puVar40 + -0x58)) {\n          uVar5 = uVar5 + (puVar12[1] << (uVar13 & 0x1f));\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar16 + -0x7bac);\n        *(int *)(puVar40 + -0x44) = ~(-1 << (*(uint *)(puVar40 + -0x58) & 0x1f));\n        *(uint *)(puVar40 + -0x70) = ~(-1 << (*(uint *)(puVar40 + -0x58) & 0x1f)) & uVar5;\n        (*UNRECOVERED_JUMPTABLE)\n                  (ptVar15,*(undefined4 *)(puVar40 + -0x54),iVar28,*(undefined4 *)(puVar40 + -0x50))\n        ;\n        iVar34 = *(int *)(puVar40 + -0x68);\n        if (uVar4 != 0) {\n          *(uint *)(puVar40 + -0x48) = (uint)(iVar28 < 0x39);\n          do {\n            if (uVar4 < *(uint *)(puVar40 + -0x5c)) {\n              uVar13 = 0;\n              *(uint *)(puVar40 + -0x60) = ~(-1 << (uVar4 & 0x1f)) & **(uint **)(puVar40 + -0x4c);\n            }\n            else {\n              uVar13 = uVar4 - *(int *)(puVar40 + -0x5c);\n              uVar4 = 0x20 - (uVar13 & 0x1f);\n              puVar12 = (uint *)(*(int *)(puVar40 + -0x4c) + (uVar13 >> 5) * 4);\n              uVar5 = *puVar12 >> (uVar13 & 0x1f);\n              if ((int)uVar4 < *(int *)(puVar40 + -0x58)) {\n                uVar5 = uVar5 + (puVar12[1] << (uVar4 & 0x1f));\n              }\n              uVar4 = *(uint *)(puVar40 + -0x58);\n              *(uint *)(puVar40 + -0x60) = *(uint *)(puVar40 + -0x44) & uVar5;\n            }\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);\n            if (*(int *)(puVar40 + -0x48) == 0) {\n              do {\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bd0);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28,ptVar15);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n              } while (uVar4 != 0);\n              uVar42 = *(undefined4 *)(puVar40 + -0x60);\n            }\n            else {\n              while( true ) {\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n                if (uVar4 == 0) break;\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);\n              }\n              uVar42 = *(undefined4 *)(puVar40 + -0x60);\n            }\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bac);\n            *(undefined4 *)(puVar40 + -0x70) = uVar42;\n            (*UNRECOVERED_JUMPTABLE)\n                      (psVar30 + iVar28 * 2,*(undefined4 *)(puVar40 + -0x54),iVar28,\n                       *(undefined4 *)(puVar40 + -0x50));\n            *(int *)(puVar40 + -0x70) = iVar28;\n            (**(code **)(*(int *)(puVar40 + -0x68) + -0x7bd0))\n                      (psVar30,ptVar15,iVar28,psVar30 + iVar28 * 2);\n            *(int *)(puVar40 + -0x70) = iVar7;\n            uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                               (ptVar15,psVar30,piVar32,iVar28);\n            *(int *)(puVar40 + -0x70) = iVar28;\n            (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n            iVar34 = *(int *)(puVar40 + -0x68);\n            uVar4 = uVar13;\n          } while (uVar13 != 0);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7eb0);\n        if (iVar28 != 0) {\n          iVar16 = iVar28 + -1;\n          ptVar22 = ptVar15->next;\n          psVar10 = psVar30;\n          ptVar17 = ptVar15;\n          if (iVar16 != 0) {\n            do {\n              *psVar10 = (size_t)ptVar22;\n              iVar16 = iVar16 + -1;\n              ptVar22 = (tmp_reentrant_t *)ptVar17->size;\n              psVar10 = psVar10 + 1;\n              ptVar17 = (tmp_reentrant_t *)&ptVar17->size;\n            } while (iVar16 != 0);\n            psVar10 = psVar30 + iVar28 + -1;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7d58);\n          *psVar10 = (size_t)ptVar22;\n          (*UNRECOVERED_JUMPTABLE)(psVar30 + iVar28,0,iVar41);\n          UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0);\n        }\n        *(int *)(puVar40 + -0x70) = iVar7;\n        uVar42 = (*UNRECOVERED_JUMPTABLE)(ptVar15,psVar30,piVar32,iVar28);\n        *(int *)(puVar40 + -0x70) = iVar28;\n        (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n        iVar34 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7b2c))(psVar30,ptVar15,piVar32,iVar28);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7a70);\n        *(int *)(puVar40 + 0x10) = iVar28;\n                    /* WARNING: Could not recover jumptable at 0x0007bab0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*UNRECOVERED_JUMPTABLE)(iVar34 == 0,ptVar15,ptVar15,piVar32);\n        return;\n      }\n      (**(code **)(iVar16 + -0x7c20))\n                (*(int *)(iVar16 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar16 + -0x7fd4) + 0x5438);\n      return;\n    }\n    pmVar31 = (mp_limb_t *)((int)pmVar11 + -1);\n    if ((ep[(uint)pmVar31 >> 5] >> ((uint)pmVar31 & 0x1f) & 1) == 0) goto LAB_0007afb0;\nLAB_0007b010:\n    if (pmVar11 < local_44) {\n      uVar5 = ~(-1 << ((uint)pmVar11 & 0x1f)) & *ep;\n      uVar13 = 0;\n      if ((uVar5 & 0xff) == 0) goto LAB_0007b270;\nLAB_0007b040:\n      uVar4 = (byte)puVar37[-uVar5 & uVar5] - 2;\n    }\n    else {\n      uVar13 = (int)pmVar11 - (int)local_44;\n      uVar4 = 0x20 - (uVar13 & 0x1f);\n      uVar5 = ep[uVar13 >> 5] >> (uVar13 & 0x1f);\n      if ((int)uVar4 < (int)local_44) {\n        uVar5 = uVar5 + ((ep + (uVar13 >> 5))[1] << (uVar4 & 0x1f));\n      }\n      uVar5 = uVar5 & local_4c;\n      pmVar11 = local_44;\n      if ((uVar5 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar4 = uVar5 >> 8;\n      iVar28 = 0x1e;\n      if (uVar4 != 0) {\n        iVar28 = 6;\n      }\n      uVar4 = (uint)(byte)puVar37[-uVar4 & uVar4] + iVar28;\n    }\n    bp = (mp_srcptr)((int)pmVar11 - uVar4);\n    pmVar11 = bp;\n    if (1 < (int)bp) {\n      do {\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(tp,rp,n);\n        pmVar29 = (mp_limb_t *)((int)pmVar11 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(rp,tp,n);\n        pmVar11 = pmVar29;\n      } while (1 < (int)pmVar29);\n      bp = (mp_srcptr)((uint)bp & 1);\n    }\n    if (bp == (mp_limb_t *)0x0) {\n      if (n != 0) {\n        mVar19 = *rp;\n        pmVar11 = tp;\n        if (local_3c != 0) {\n          iVar28 = local_3c;\n          pmVar18 = tp;\n          pmVar31 = rp + 1;\n          do {\n            *pmVar18 = mVar19;\n            iVar28 = iVar28 + -1;\n            mVar19 = *pmVar31;\n            pmVar11 = tp + n + -1;\n            pmVar18 = pmVar18 + 1;\n            pmVar31 = pmVar31 + 1;\n          } while (iVar28 != 0);\n        }\n        *pmVar11 = mVar19;\n      }\n    }\n    else {\n      (*(code *)PTR___gmpn_sqrlo_0009d354)(tp,rp,n);\n    }\n    pmVar20 = (mp_limb_t *)(((uVar5 >> (uVar4 & 0x1f)) >> 1) * iVar34 + (int)pmVar6);\n    pmVar18 = tp;\n    en = n;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(rp);\n    pmVar11 = (mp_limb_t *)(uVar4 + uVar13);\n    ptVar15 = __tmp_marker;\n  }" { (expression_statement "__tmp_marker = ptVar15;" (assignment_expression "__tmp_marker = ptVar15" identifier = identifier) ;) (if_statement "if (pmVar11 == (mp_limb_t *)0x0) {\n      if (ptVar15 != (tmp_reentrant_t *)0x0) {\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }\n      if (local_2c == *(int *)puVar3) {\n        return;\n      }\n      uVar42 = 0x7b45c;\n      puVar37 = PTR___stack_chk_fail_0009d4d0;\n      (*(code *)PTR___stack_chk_fail_0009d4d0)();\n      uVar4 = *(uint *)(puVar40 + 0x10);\n      *(mp_size_t *)(puVar40 + -0x24) = n;\n      *(undefined **)(puVar40 + -0x68) = puVar37 + 0x29be0;\n      *(undefined4 *)(puVar40 + -0x18) = 0;\n      *(mp_limb_t **)(puVar40 + -0x28) = pmVar29;\n      *(undefined4 *)(puVar40 + -4) = uVar42;\n      *(undefined1 **)(puVar40 + -8) = auStack_70;\n      *(int *)(puVar40 + -0xc) = iVar34;\n      *(mp_srcptr *)(puVar40 + -0x10) = ep;\n      *(mp_srcptr *)(puVar40 + -0x14) = bp;\n      *(mp_ptr *)(puVar40 + -0x1c) = rp;\n      *(mp_ptr *)(puVar40 + -0x20) = tp;\n      *(uint *)(puVar40 + -0x60) = uVar4;\n      *(mp_ptr *)(puVar40 + -0x44) = pmVar18;\n      *(mp_size_t *)(puVar40 + -0x4c) = en;\n      piVar32 = *(int **)(puVar40 + 0x14);\n      iVar28 = *(int *)(puVar40 + 0x18);\n      *(undefined4 *)(puVar40 + -0x54) = *(undefined4 *)(puVar40 + 0x1c);\n      if (uVar4 < 3) {\n        iVar34 = 0;\n        *(undefined4 *)(puVar40 + -0x5c) = 1;\n        *(undefined4 *)(puVar40 + -0x50) = 2;\n        iVar7 = 1;\n        *(undefined4 *)(puVar40 + -0x58) = 1;\n      }\n      else {\n        if (uVar4 < 0x22) {\n          *(undefined4 *)(puVar40 + -0x58) = 2;\n          iVar7 = 2;\n        }\n        else if (uVar4 < 0x61) {\n          *(undefined4 *)(puVar40 + -0x58) = 3;\n          iVar7 = 3;\n        }\n        else if (uVar4 < 0x30d) {\n          *(undefined4 *)(puVar40 + -0x58) = 4;\n          iVar7 = 4;\n        }\n        else {\n          iVar7 = 6;\n          if (uVar4 < 0xab6) {\n            iVar7 = 5;\n          }\n          *(int *)(puVar40 + -0x58) = iVar7;\n        }\n        *(int *)(puVar40 + -0x5c) = iVar7;\n        *(int *)(puVar40 + -0x50) = 1 << iVar7;\n        iVar34 = (1 << iVar7) + -2;\n      }\n      iVar16 = *piVar32;\n      iVar41 = iVar28 * 4;\n      puVar35 = *(undefined4 **)(puVar40 + -0x54);\n      puVar24 = (undefined1 *)(iVar28 + (int)pmVar20);\n      puVar33 = puVar35 + iVar28;\n      uVar4 = (uint)*(byte *)(*(int *)(puVar37 + 0x21ea4) + ((uint)(iVar16 << 0x18) >> 0x19));\n      puVar27 = puVar33 + iVar28;\n      puVar21 = puVar35 + iVar28 + 1;\n      *(undefined4 **)(puVar40 + -0x48) = puVar27 + (int)puVar24;\n      psVar30 = puVar35 + (iVar28 << iVar7);\n      *puVar33 = 1;\n      iVar7 = uVar4 * 2 - uVar4 * uVar4 * iVar16;\n      iVar7 = iVar7 * iVar7 * iVar16 + iVar7 * -2;\n      puVar36 = puVar33;\n      if (iVar28 == 0) {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar37 + 0x2211c);\n        puVar21[iVar28] = 1;\n        *(mp_limb_t **)(puVar40 + -0x38) = pmVar20;\n        *(undefined1 **)(puVar40 + -0x3c) = puVar24;\n        *(undefined4 **)(puVar40 + -0x40) = puVar27;\n        *(undefined4 **)(puVar40 + -0x70) = puVar21 + iVar28 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,1,piVar32,0);\n        iVar26 = *(int *)(puVar40 + -0x3c);\n        iVar39 = *(int *)(puVar40 + -0x68);\n        iVar16 = *(int *)(puVar40 + -0x40);\n        iVar38 = *(int *)(puVar40 + -0x38);\n        if (iVar26 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar16,0,piVar32,0);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar9 = iVar38 + -1;\n        puVar27 = (undefined4 *)(iVar16 + iVar41);\n        uVar42 = **(undefined4 **)(puVar40 + -0x44);\n        if (iVar9 != 0) {\n          puVar35 = *(undefined4 **)(puVar40 + -0x44);\n          puVar21 = puVar27;\n          goto LAB_0007b70c;\n        }\n        uVar8 = *(undefined4 *)(puVar40 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n        *puVar27 = uVar42;\n        *(undefined4 *)(puVar40 + -0x70) = uVar8;\n        (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,0);\n        iVar16 = *(int *)(puVar40 + -0x68);\n      }\n      else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar37 + 0x21e88);\n        *(mp_limb_t **)(puVar40 + -0x2c) = pmVar20;\n        *(undefined1 **)(puVar40 + -0x30) = puVar24;\n        *(undefined4 **)(puVar40 + -0x34) = puVar21 + iVar28;\n        *(undefined4 **)(puVar40 + -0x38) = puVar27;\n        *(undefined4 **)(puVar40 + -0x3c) = puVar21 + iVar28 + 1;\n        uVar42 = (*UNRECOVERED_JUMPTABLE)(puVar21,0,iVar41);\n        uVar8 = *puVar33;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7ac4);\n        *(int *)(puVar40 + -0x40) = iVar28 + -1;\n        *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x3c);\n        *(undefined4 *)(puVar40 + -0x3c) = uVar42;\n        **(undefined4 **)(puVar40 + -0x34) = uVar8;\n        (*UNRECOVERED_JUMPTABLE)(uVar42,iVar28 + 1,piVar32,iVar28);\n        iVar16 = iVar28 + -1;\n        puVar27 = *(undefined4 **)(puVar40 + -0x3c);\n        iVar38 = *(int *)(puVar40 + -0x68);\n        uVar42 = *(undefined4 *)(puVar40 + -0x38);\n        uVar25 = *(undefined4 *)(puVar40 + -0x30);\n        uVar8 = *puVar27;\n        uVar23 = *(undefined4 *)(puVar40 + -0x2c);\n        if (iVar16 == 0) {\n          puVar35 = *(undefined4 **)(puVar40 + -0x54);\n        }\n        else {\n          do {\n            puVar27 = puVar27 + 1;\n            *puVar35 = uVar8;\n            iVar16 = iVar16 + -1;\n            uVar8 = *puVar27;\n            puVar35 = puVar35 + 1;\n          } while (iVar16 != 0);\n          puVar35 = (undefined4 *)(*(int *)(puVar40 + -0x54) + iVar41 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar38 + -0x7d58);\n        *(undefined4 *)(puVar40 + -0x38) = uVar23;\n        *(undefined4 *)(puVar40 + -0x3c) = uVar25;\n        *puVar35 = uVar8;\n        iVar16 = (*UNRECOVERED_JUMPTABLE)(uVar42,0,iVar41);\n        iVar38 = *(int *)(puVar40 + -0x38);\n        iVar39 = *(int *)(puVar40 + -0x68);\n        iVar26 = *(int *)(puVar40 + -0x3c);\n        if (iVar38 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x48);\n          iVar38 = iVar26;\nLAB_0007bb8c:\n          *(int *)(puVar40 + -0x48) = iVar16;\n          (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,iVar38);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          puVar35 = *(undefined4 **)(puVar40 + -0x48);\n        }\n        else {\n          puVar35 = *(undefined4 **)(puVar40 + -0x44);\n          iVar9 = iVar38 + -1;\n          puVar27 = (undefined4 *)(iVar16 + iVar41);\n          uVar42 = *puVar35;\n          puVar21 = puVar27;\n          if (iVar9 == 0) {\n            uVar8 = *(undefined4 *)(puVar40 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n            *puVar27 = uVar42;\n            *(undefined4 *)(puVar40 + -0x70) = uVar8;\n            iVar38 = iVar28;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar35 = puVar35 + 1;\n            *puVar27 = uVar42;\n            iVar9 = iVar9 + -1;\n            uVar42 = *puVar35;\n            puVar27 = puVar27 + 1;\n          } while (iVar9 != 0);\n          uVar8 = *(undefined4 *)(puVar40 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(int *)(puVar40 + -0x48) = iVar16;\n          *(undefined4 *)(puVar40 + -0x70) = uVar8;\n          puVar21[iVar38 + -1] = uVar42;\n          (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,iVar28);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          if (iVar28 == 0) goto joined_r0x0007b75c;\n          puVar35 = *(undefined4 **)(puVar40 + -0x48);\n          *(int *)(puVar40 + -0x40) = iVar28 + -1;\n        }\n        iVar38 = *(int *)(puVar40 + -0x40);\n        uVar42 = *puVar35;\n        puVar27 = puVar33;\n        if (iVar38 == 0) {\n          *puVar33 = uVar42;\n        }\n        else {\n          do {\n            puVar35 = puVar35 + 1;\n            *puVar27 = uVar42;\n            iVar38 = iVar38 + -1;\n            uVar42 = *puVar35;\n            puVar27 = puVar27 + 1;\n          } while (iVar38 != 0);\n          puVar33[*(int *)(puVar40 + -0x40)] = uVar42;\n        }\n      }\njoined_r0x0007b75c:\n      for (; iVar34 != 0; iVar34 = iVar34 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar16 + -0x7bd0);\n        *(int *)(puVar40 + -0x70) = iVar28;\n        (*UNRECOVERED_JUMPTABLE)(psVar30,puVar36,iVar28,puVar33);\n        puVar36 = puVar36 + iVar28;\n        *(int *)(puVar40 + -0x70) = iVar7;\n        uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))(puVar36,psVar30,piVar32,iVar28);\n        *(int *)(puVar40 + -0x70) = iVar28;\n        (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,puVar36,puVar36,piVar32);\n        iVar16 = *(int *)(puVar40 + -0x68);\n      }\n      if (*(uint *)(puVar40 + -0x5c) <= *(uint *)(puVar40 + -0x60)) {\n        uVar4 = *(int *)(puVar40 + -0x60) - *(uint *)(puVar40 + -0x5c);\n        uVar13 = 0x20 - (uVar4 & 0x1f);\n        puVar12 = (uint *)(*(int *)(puVar40 + -0x4c) + (uVar4 >> 5) * 4);\n        uVar5 = *puVar12 >> (uVar4 & 0x1f);\n        if ((int)uVar13 < *(int *)(puVar40 + -0x58)) {\n          uVar5 = uVar5 + (puVar12[1] << (uVar13 & 0x1f));\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar16 + -0x7bac);\n        *(int *)(puVar40 + -0x44) = ~(-1 << (*(uint *)(puVar40 + -0x58) & 0x1f));\n        *(uint *)(puVar40 + -0x70) = ~(-1 << (*(uint *)(puVar40 + -0x58) & 0x1f)) & uVar5;\n        (*UNRECOVERED_JUMPTABLE)\n                  (ptVar15,*(undefined4 *)(puVar40 + -0x54),iVar28,*(undefined4 *)(puVar40 + -0x50))\n        ;\n        iVar34 = *(int *)(puVar40 + -0x68);\n        if (uVar4 != 0) {\n          *(uint *)(puVar40 + -0x48) = (uint)(iVar28 < 0x39);\n          do {\n            if (uVar4 < *(uint *)(puVar40 + -0x5c)) {\n              uVar13 = 0;\n              *(uint *)(puVar40 + -0x60) = ~(-1 << (uVar4 & 0x1f)) & **(uint **)(puVar40 + -0x4c);\n            }\n            else {\n              uVar13 = uVar4 - *(int *)(puVar40 + -0x5c);\n              uVar4 = 0x20 - (uVar13 & 0x1f);\n              puVar12 = (uint *)(*(int *)(puVar40 + -0x4c) + (uVar13 >> 5) * 4);\n              uVar5 = *puVar12 >> (uVar13 & 0x1f);\n              if ((int)uVar4 < *(int *)(puVar40 + -0x58)) {\n                uVar5 = uVar5 + (puVar12[1] << (uVar4 & 0x1f));\n              }\n              uVar4 = *(uint *)(puVar40 + -0x58);\n              *(uint *)(puVar40 + -0x60) = *(uint *)(puVar40 + -0x44) & uVar5;\n            }\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);\n            if (*(int *)(puVar40 + -0x48) == 0) {\n              do {\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bd0);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28,ptVar15);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n              } while (uVar4 != 0);\n              uVar42 = *(undefined4 *)(puVar40 + -0x60);\n            }\n            else {\n              while( true ) {\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n                if (uVar4 == 0) break;\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);\n              }\n              uVar42 = *(undefined4 *)(puVar40 + -0x60);\n            }\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bac);\n            *(undefined4 *)(puVar40 + -0x70) = uVar42;\n            (*UNRECOVERED_JUMPTABLE)\n                      (psVar30 + iVar28 * 2,*(undefined4 *)(puVar40 + -0x54),iVar28,\n                       *(undefined4 *)(puVar40 + -0x50));\n            *(int *)(puVar40 + -0x70) = iVar28;\n            (**(code **)(*(int *)(puVar40 + -0x68) + -0x7bd0))\n                      (psVar30,ptVar15,iVar28,psVar30 + iVar28 * 2);\n            *(int *)(puVar40 + -0x70) = iVar7;\n            uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                               (ptVar15,psVar30,piVar32,iVar28);\n            *(int *)(puVar40 + -0x70) = iVar28;\n            (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n            iVar34 = *(int *)(puVar40 + -0x68);\n            uVar4 = uVar13;\n          } while (uVar13 != 0);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7eb0);\n        if (iVar28 != 0) {\n          iVar16 = iVar28 + -1;\n          ptVar22 = ptVar15->next;\n          psVar10 = psVar30;\n          ptVar17 = ptVar15;\n          if (iVar16 != 0) {\n            do {\n              *psVar10 = (size_t)ptVar22;\n              iVar16 = iVar16 + -1;\n              ptVar22 = (tmp_reentrant_t *)ptVar17->size;\n              psVar10 = psVar10 + 1;\n              ptVar17 = (tmp_reentrant_t *)&ptVar17->size;\n            } while (iVar16 != 0);\n            psVar10 = psVar30 + iVar28 + -1;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7d58);\n          *psVar10 = (size_t)ptVar22;\n          (*UNRECOVERED_JUMPTABLE)(psVar30 + iVar28,0,iVar41);\n          UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0);\n        }\n        *(int *)(puVar40 + -0x70) = iVar7;\n        uVar42 = (*UNRECOVERED_JUMPTABLE)(ptVar15,psVar30,piVar32,iVar28);\n        *(int *)(puVar40 + -0x70) = iVar28;\n        (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n        iVar34 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7b2c))(psVar30,ptVar15,piVar32,iVar28);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7a70);\n        *(int *)(puVar40 + 0x10) = iVar28;\n                    /* WARNING: Could not recover jumptable at 0x0007bab0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*UNRECOVERED_JUMPTABLE)(iVar34 == 0,ptVar15,ptVar15,piVar32);\n        return;\n      }\n      (**(code **)(iVar16 + -0x7c20))\n                (*(int *)(iVar16 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar16 + -0x7fd4) + 0x5438);\n      return;\n    }" if (parenthesized_expression "(pmVar11 == (mp_limb_t *)0x0)" ( (binary_expression "pmVar11 == (mp_limb_t *)0x0" identifier == (cast_expression "(mp_limb_t *)0x0" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (ptVar15 != (tmp_reentrant_t *)0x0) {\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }\n      if (local_2c == *(int *)puVar3) {\n        return;\n      }\n      uVar42 = 0x7b45c;\n      puVar37 = PTR___stack_chk_fail_0009d4d0;\n      (*(code *)PTR___stack_chk_fail_0009d4d0)();\n      uVar4 = *(uint *)(puVar40 + 0x10);\n      *(mp_size_t *)(puVar40 + -0x24) = n;\n      *(undefined **)(puVar40 + -0x68) = puVar37 + 0x29be0;\n      *(undefined4 *)(puVar40 + -0x18) = 0;\n      *(mp_limb_t **)(puVar40 + -0x28) = pmVar29;\n      *(undefined4 *)(puVar40 + -4) = uVar42;\n      *(undefined1 **)(puVar40 + -8) = auStack_70;\n      *(int *)(puVar40 + -0xc) = iVar34;\n      *(mp_srcptr *)(puVar40 + -0x10) = ep;\n      *(mp_srcptr *)(puVar40 + -0x14) = bp;\n      *(mp_ptr *)(puVar40 + -0x1c) = rp;\n      *(mp_ptr *)(puVar40 + -0x20) = tp;\n      *(uint *)(puVar40 + -0x60) = uVar4;\n      *(mp_ptr *)(puVar40 + -0x44) = pmVar18;\n      *(mp_size_t *)(puVar40 + -0x4c) = en;\n      piVar32 = *(int **)(puVar40 + 0x14);\n      iVar28 = *(int *)(puVar40 + 0x18);\n      *(undefined4 *)(puVar40 + -0x54) = *(undefined4 *)(puVar40 + 0x1c);\n      if (uVar4 < 3) {\n        iVar34 = 0;\n        *(undefined4 *)(puVar40 + -0x5c) = 1;\n        *(undefined4 *)(puVar40 + -0x50) = 2;\n        iVar7 = 1;\n        *(undefined4 *)(puVar40 + -0x58) = 1;\n      }\n      else {\n        if (uVar4 < 0x22) {\n          *(undefined4 *)(puVar40 + -0x58) = 2;\n          iVar7 = 2;\n        }\n        else if (uVar4 < 0x61) {\n          *(undefined4 *)(puVar40 + -0x58) = 3;\n          iVar7 = 3;\n        }\n        else if (uVar4 < 0x30d) {\n          *(undefined4 *)(puVar40 + -0x58) = 4;\n          iVar7 = 4;\n        }\n        else {\n          iVar7 = 6;\n          if (uVar4 < 0xab6) {\n            iVar7 = 5;\n          }\n          *(int *)(puVar40 + -0x58) = iVar7;\n        }\n        *(int *)(puVar40 + -0x5c) = iVar7;\n        *(int *)(puVar40 + -0x50) = 1 << iVar7;\n        iVar34 = (1 << iVar7) + -2;\n      }\n      iVar16 = *piVar32;\n      iVar41 = iVar28 * 4;\n      puVar35 = *(undefined4 **)(puVar40 + -0x54);\n      puVar24 = (undefined1 *)(iVar28 + (int)pmVar20);\n      puVar33 = puVar35 + iVar28;\n      uVar4 = (uint)*(byte *)(*(int *)(puVar37 + 0x21ea4) + ((uint)(iVar16 << 0x18) >> 0x19));\n      puVar27 = puVar33 + iVar28;\n      puVar21 = puVar35 + iVar28 + 1;\n      *(undefined4 **)(puVar40 + -0x48) = puVar27 + (int)puVar24;\n      psVar30 = puVar35 + (iVar28 << iVar7);\n      *puVar33 = 1;\n      iVar7 = uVar4 * 2 - uVar4 * uVar4 * iVar16;\n      iVar7 = iVar7 * iVar7 * iVar16 + iVar7 * -2;\n      puVar36 = puVar33;\n      if (iVar28 == 0) {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar37 + 0x2211c);\n        puVar21[iVar28] = 1;\n        *(mp_limb_t **)(puVar40 + -0x38) = pmVar20;\n        *(undefined1 **)(puVar40 + -0x3c) = puVar24;\n        *(undefined4 **)(puVar40 + -0x40) = puVar27;\n        *(undefined4 **)(puVar40 + -0x70) = puVar21 + iVar28 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,1,piVar32,0);\n        iVar26 = *(int *)(puVar40 + -0x3c);\n        iVar39 = *(int *)(puVar40 + -0x68);\n        iVar16 = *(int *)(puVar40 + -0x40);\n        iVar38 = *(int *)(puVar40 + -0x38);\n        if (iVar26 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar16,0,piVar32,0);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar9 = iVar38 + -1;\n        puVar27 = (undefined4 *)(iVar16 + iVar41);\n        uVar42 = **(undefined4 **)(puVar40 + -0x44);\n        if (iVar9 != 0) {\n          puVar35 = *(undefined4 **)(puVar40 + -0x44);\n          puVar21 = puVar27;\n          goto LAB_0007b70c;\n        }\n        uVar8 = *(undefined4 *)(puVar40 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n        *puVar27 = uVar42;\n        *(undefined4 *)(puVar40 + -0x70) = uVar8;\n        (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,0);\n        iVar16 = *(int *)(puVar40 + -0x68);\n      }\n      else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar37 + 0x21e88);\n        *(mp_limb_t **)(puVar40 + -0x2c) = pmVar20;\n        *(undefined1 **)(puVar40 + -0x30) = puVar24;\n        *(undefined4 **)(puVar40 + -0x34) = puVar21 + iVar28;\n        *(undefined4 **)(puVar40 + -0x38) = puVar27;\n        *(undefined4 **)(puVar40 + -0x3c) = puVar21 + iVar28 + 1;\n        uVar42 = (*UNRECOVERED_JUMPTABLE)(puVar21,0,iVar41);\n        uVar8 = *puVar33;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7ac4);\n        *(int *)(puVar40 + -0x40) = iVar28 + -1;\n        *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x3c);\n        *(undefined4 *)(puVar40 + -0x3c) = uVar42;\n        **(undefined4 **)(puVar40 + -0x34) = uVar8;\n        (*UNRECOVERED_JUMPTABLE)(uVar42,iVar28 + 1,piVar32,iVar28);\n        iVar16 = iVar28 + -1;\n        puVar27 = *(undefined4 **)(puVar40 + -0x3c);\n        iVar38 = *(int *)(puVar40 + -0x68);\n        uVar42 = *(undefined4 *)(puVar40 + -0x38);\n        uVar25 = *(undefined4 *)(puVar40 + -0x30);\n        uVar8 = *puVar27;\n        uVar23 = *(undefined4 *)(puVar40 + -0x2c);\n        if (iVar16 == 0) {\n          puVar35 = *(undefined4 **)(puVar40 + -0x54);\n        }\n        else {\n          do {\n            puVar27 = puVar27 + 1;\n            *puVar35 = uVar8;\n            iVar16 = iVar16 + -1;\n            uVar8 = *puVar27;\n            puVar35 = puVar35 + 1;\n          } while (iVar16 != 0);\n          puVar35 = (undefined4 *)(*(int *)(puVar40 + -0x54) + iVar41 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar38 + -0x7d58);\n        *(undefined4 *)(puVar40 + -0x38) = uVar23;\n        *(undefined4 *)(puVar40 + -0x3c) = uVar25;\n        *puVar35 = uVar8;\n        iVar16 = (*UNRECOVERED_JUMPTABLE)(uVar42,0,iVar41);\n        iVar38 = *(int *)(puVar40 + -0x38);\n        iVar39 = *(int *)(puVar40 + -0x68);\n        iVar26 = *(int *)(puVar40 + -0x3c);\n        if (iVar38 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x48);\n          iVar38 = iVar26;\nLAB_0007bb8c:\n          *(int *)(puVar40 + -0x48) = iVar16;\n          (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,iVar38);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          puVar35 = *(undefined4 **)(puVar40 + -0x48);\n        }\n        else {\n          puVar35 = *(undefined4 **)(puVar40 + -0x44);\n          iVar9 = iVar38 + -1;\n          puVar27 = (undefined4 *)(iVar16 + iVar41);\n          uVar42 = *puVar35;\n          puVar21 = puVar27;\n          if (iVar9 == 0) {\n            uVar8 = *(undefined4 *)(puVar40 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n            *puVar27 = uVar42;\n            *(undefined4 *)(puVar40 + -0x70) = uVar8;\n            iVar38 = iVar28;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar35 = puVar35 + 1;\n            *puVar27 = uVar42;\n            iVar9 = iVar9 + -1;\n            uVar42 = *puVar35;\n            puVar27 = puVar27 + 1;\n          } while (iVar9 != 0);\n          uVar8 = *(undefined4 *)(puVar40 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(int *)(puVar40 + -0x48) = iVar16;\n          *(undefined4 *)(puVar40 + -0x70) = uVar8;\n          puVar21[iVar38 + -1] = uVar42;\n          (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,iVar28);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          if (iVar28 == 0) goto joined_r0x0007b75c;\n          puVar35 = *(undefined4 **)(puVar40 + -0x48);\n          *(int *)(puVar40 + -0x40) = iVar28 + -1;\n        }\n        iVar38 = *(int *)(puVar40 + -0x40);\n        uVar42 = *puVar35;\n        puVar27 = puVar33;\n        if (iVar38 == 0) {\n          *puVar33 = uVar42;\n        }\n        else {\n          do {\n            puVar35 = puVar35 + 1;\n            *puVar27 = uVar42;\n            iVar38 = iVar38 + -1;\n            uVar42 = *puVar35;\n            puVar27 = puVar27 + 1;\n          } while (iVar38 != 0);\n          puVar33[*(int *)(puVar40 + -0x40)] = uVar42;\n        }\n      }\njoined_r0x0007b75c:\n      for (; iVar34 != 0; iVar34 = iVar34 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar16 + -0x7bd0);\n        *(int *)(puVar40 + -0x70) = iVar28;\n        (*UNRECOVERED_JUMPTABLE)(psVar30,puVar36,iVar28,puVar33);\n        puVar36 = puVar36 + iVar28;\n        *(int *)(puVar40 + -0x70) = iVar7;\n        uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))(puVar36,psVar30,piVar32,iVar28);\n        *(int *)(puVar40 + -0x70) = iVar28;\n        (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,puVar36,puVar36,piVar32);\n        iVar16 = *(int *)(puVar40 + -0x68);\n      }\n      if (*(uint *)(puVar40 + -0x5c) <= *(uint *)(puVar40 + -0x60)) {\n        uVar4 = *(int *)(puVar40 + -0x60) - *(uint *)(puVar40 + -0x5c);\n        uVar13 = 0x20 - (uVar4 & 0x1f);\n        puVar12 = (uint *)(*(int *)(puVar40 + -0x4c) + (uVar4 >> 5) * 4);\n        uVar5 = *puVar12 >> (uVar4 & 0x1f);\n        if ((int)uVar13 < *(int *)(puVar40 + -0x58)) {\n          uVar5 = uVar5 + (puVar12[1] << (uVar13 & 0x1f));\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar16 + -0x7bac);\n        *(int *)(puVar40 + -0x44) = ~(-1 << (*(uint *)(puVar40 + -0x58) & 0x1f));\n        *(uint *)(puVar40 + -0x70) = ~(-1 << (*(uint *)(puVar40 + -0x58) & 0x1f)) & uVar5;\n        (*UNRECOVERED_JUMPTABLE)\n                  (ptVar15,*(undefined4 *)(puVar40 + -0x54),iVar28,*(undefined4 *)(puVar40 + -0x50))\n        ;\n        iVar34 = *(int *)(puVar40 + -0x68);\n        if (uVar4 != 0) {\n          *(uint *)(puVar40 + -0x48) = (uint)(iVar28 < 0x39);\n          do {\n            if (uVar4 < *(uint *)(puVar40 + -0x5c)) {\n              uVar13 = 0;\n              *(uint *)(puVar40 + -0x60) = ~(-1 << (uVar4 & 0x1f)) & **(uint **)(puVar40 + -0x4c);\n            }\n            else {\n              uVar13 = uVar4 - *(int *)(puVar40 + -0x5c);\n              uVar4 = 0x20 - (uVar13 & 0x1f);\n              puVar12 = (uint *)(*(int *)(puVar40 + -0x4c) + (uVar13 >> 5) * 4);\n              uVar5 = *puVar12 >> (uVar13 & 0x1f);\n              if ((int)uVar4 < *(int *)(puVar40 + -0x58)) {\n                uVar5 = uVar5 + (puVar12[1] << (uVar4 & 0x1f));\n              }\n              uVar4 = *(uint *)(puVar40 + -0x58);\n              *(uint *)(puVar40 + -0x60) = *(uint *)(puVar40 + -0x44) & uVar5;\n            }\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);\n            if (*(int *)(puVar40 + -0x48) == 0) {\n              do {\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bd0);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28,ptVar15);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n              } while (uVar4 != 0);\n              uVar42 = *(undefined4 *)(puVar40 + -0x60);\n            }\n            else {\n              while( true ) {\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n                if (uVar4 == 0) break;\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);\n              }\n              uVar42 = *(undefined4 *)(puVar40 + -0x60);\n            }\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bac);\n            *(undefined4 *)(puVar40 + -0x70) = uVar42;\n            (*UNRECOVERED_JUMPTABLE)\n                      (psVar30 + iVar28 * 2,*(undefined4 *)(puVar40 + -0x54),iVar28,\n                       *(undefined4 *)(puVar40 + -0x50));\n            *(int *)(puVar40 + -0x70) = iVar28;\n            (**(code **)(*(int *)(puVar40 + -0x68) + -0x7bd0))\n                      (psVar30,ptVar15,iVar28,psVar30 + iVar28 * 2);\n            *(int *)(puVar40 + -0x70) = iVar7;\n            uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                               (ptVar15,psVar30,piVar32,iVar28);\n            *(int *)(puVar40 + -0x70) = iVar28;\n            (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n            iVar34 = *(int *)(puVar40 + -0x68);\n            uVar4 = uVar13;\n          } while (uVar13 != 0);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7eb0);\n        if (iVar28 != 0) {\n          iVar16 = iVar28 + -1;\n          ptVar22 = ptVar15->next;\n          psVar10 = psVar30;\n          ptVar17 = ptVar15;\n          if (iVar16 != 0) {\n            do {\n              *psVar10 = (size_t)ptVar22;\n              iVar16 = iVar16 + -1;\n              ptVar22 = (tmp_reentrant_t *)ptVar17->size;\n              psVar10 = psVar10 + 1;\n              ptVar17 = (tmp_reentrant_t *)&ptVar17->size;\n            } while (iVar16 != 0);\n            psVar10 = psVar30 + iVar28 + -1;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7d58);\n          *psVar10 = (size_t)ptVar22;\n          (*UNRECOVERED_JUMPTABLE)(psVar30 + iVar28,0,iVar41);\n          UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0);\n        }\n        *(int *)(puVar40 + -0x70) = iVar7;\n        uVar42 = (*UNRECOVERED_JUMPTABLE)(ptVar15,psVar30,piVar32,iVar28);\n        *(int *)(puVar40 + -0x70) = iVar28;\n        (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n        iVar34 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7b2c))(psVar30,ptVar15,piVar32,iVar28);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7a70);\n        *(int *)(puVar40 + 0x10) = iVar28;\n                    /* WARNING: Could not recover jumptable at 0x0007bab0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*UNRECOVERED_JUMPTABLE)(iVar34 == 0,ptVar15,ptVar15,piVar32);\n        return;\n      }\n      (**(code **)(iVar16 + -0x7c20))\n                (*(int *)(iVar16 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar16 + -0x7fd4) + 0x5438);\n      return;\n    }" { (if_statement "if (ptVar15 != (tmp_reentrant_t *)0x0) {\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }" if (parenthesized_expression "(ptVar15 != (tmp_reentrant_t *)0x0)" ( (binary_expression "ptVar15 != (tmp_reentrant_t *)0x0" identifier != (cast_expression "(tmp_reentrant_t *)0x0" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }" { (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_0009d618" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_0009d618" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (if_statement "if (local_2c == *(int *)puVar3) {\n        return;\n      }" if (parenthesized_expression "(local_2c == *(int *)puVar3)" ( (binary_expression "local_2c == *(int *)puVar3" identifier == (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "uVar42 = 0x7b45c;" (assignment_expression "uVar42 = 0x7b45c" identifier = number_literal) ;) (expression_statement "puVar37 = PTR___stack_chk_fail_0009d4d0;" (assignment_expression "puVar37 = PTR___stack_chk_fail_0009d4d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0009d4d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0009d4d0" * (cast_expression "(code *)PTR___stack_chk_fail_0009d4d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar4 = *(uint *)(puVar40 + 0x10);" (assignment_expression "uVar4 = *(uint *)(puVar40 + 0x10)" identifier = (pointer_expression "*(uint *)(puVar40 + 0x10)" * (cast_expression "(uint *)(puVar40 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + 0x10)" ( (binary_expression "puVar40 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(mp_size_t *)(puVar40 + -0x24) = n;" (assignment_expression "*(mp_size_t *)(puVar40 + -0x24) = n" (pointer_expression "*(mp_size_t *)(puVar40 + -0x24)" * (cast_expression "(mp_size_t *)(puVar40 + -0x24)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x24)" ( (binary_expression "puVar40 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar40 + -0x68) = puVar37 + 0x29be0;" (assignment_expression "*(undefined **)(puVar40 + -0x68) = puVar37 + 0x29be0" (pointer_expression "*(undefined **)(puVar40 + -0x68)" * (cast_expression "(undefined **)(puVar40 + -0x68)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x68)" ( (binary_expression "puVar40 + -0x68" identifier + number_literal) )))) = (binary_expression "puVar37 + 0x29be0" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar40 + -0x18) = 0;" (assignment_expression "*(undefined4 *)(puVar40 + -0x18) = 0" (pointer_expression "*(undefined4 *)(puVar40 + -0x18)" * (cast_expression "(undefined4 *)(puVar40 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x18)" ( (binary_expression "puVar40 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(mp_limb_t **)(puVar40 + -0x28) = pmVar29;" (assignment_expression "*(mp_limb_t **)(puVar40 + -0x28) = pmVar29" (pointer_expression "*(mp_limb_t **)(puVar40 + -0x28)" * (cast_expression "(mp_limb_t **)(puVar40 + -0x28)" ( (type_descriptor "mp_limb_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x28)" ( (binary_expression "puVar40 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar40 + -4) = uVar42;" (assignment_expression "*(undefined4 *)(puVar40 + -4) = uVar42" (pointer_expression "*(undefined4 *)(puVar40 + -4)" * (cast_expression "(undefined4 *)(puVar40 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -4)" ( (binary_expression "puVar40 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar40 + -8) = auStack_70;" (assignment_expression "*(undefined1 **)(puVar40 + -8) = auStack_70" (pointer_expression "*(undefined1 **)(puVar40 + -8)" * (cast_expression "(undefined1 **)(puVar40 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -8)" ( (binary_expression "puVar40 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar40 + -0xc) = iVar34;" (assignment_expression "*(int *)(puVar40 + -0xc) = iVar34" (pointer_expression "*(int *)(puVar40 + -0xc)" * (cast_expression "(int *)(puVar40 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0xc)" ( (binary_expression "puVar40 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mp_srcptr *)(puVar40 + -0x10) = ep;" (assignment_expression "*(mp_srcptr *)(puVar40 + -0x10) = ep" (pointer_expression "*(mp_srcptr *)(puVar40 + -0x10)" * (cast_expression "(mp_srcptr *)(puVar40 + -0x10)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x10)" ( (binary_expression "puVar40 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mp_srcptr *)(puVar40 + -0x14) = bp;" (assignment_expression "*(mp_srcptr *)(puVar40 + -0x14) = bp" (pointer_expression "*(mp_srcptr *)(puVar40 + -0x14)" * (cast_expression "(mp_srcptr *)(puVar40 + -0x14)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x14)" ( (binary_expression "puVar40 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mp_ptr *)(puVar40 + -0x1c) = rp;" (assignment_expression "*(mp_ptr *)(puVar40 + -0x1c) = rp" (pointer_expression "*(mp_ptr *)(puVar40 + -0x1c)" * (cast_expression "(mp_ptr *)(puVar40 + -0x1c)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x1c)" ( (binary_expression "puVar40 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mp_ptr *)(puVar40 + -0x20) = tp;" (assignment_expression "*(mp_ptr *)(puVar40 + -0x20) = tp" (pointer_expression "*(mp_ptr *)(puVar40 + -0x20)" * (cast_expression "(mp_ptr *)(puVar40 + -0x20)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x20)" ( (binary_expression "puVar40 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar40 + -0x60) = uVar4;" (assignment_expression "*(uint *)(puVar40 + -0x60) = uVar4" (pointer_expression "*(uint *)(puVar40 + -0x60)" * (cast_expression "(uint *)(puVar40 + -0x60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x60)" ( (binary_expression "puVar40 + -0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mp_ptr *)(puVar40 + -0x44) = pmVar18;" (assignment_expression "*(mp_ptr *)(puVar40 + -0x44) = pmVar18" (pointer_expression "*(mp_ptr *)(puVar40 + -0x44)" * (cast_expression "(mp_ptr *)(puVar40 + -0x44)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x44)" ( (binary_expression "puVar40 + -0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(mp_size_t *)(puVar40 + -0x4c) = en;" (assignment_expression "*(mp_size_t *)(puVar40 + -0x4c) = en" (pointer_expression "*(mp_size_t *)(puVar40 + -0x4c)" * (cast_expression "(mp_size_t *)(puVar40 + -0x4c)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x4c)" ( (binary_expression "puVar40 + -0x4c" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar32 = *(int **)(puVar40 + 0x14);" (assignment_expression "piVar32 = *(int **)(puVar40 + 0x14)" identifier = (pointer_expression "*(int **)(puVar40 + 0x14)" * (cast_expression "(int **)(puVar40 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + 0x14)" ( (binary_expression "puVar40 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar28 = *(int *)(puVar40 + 0x18);" (assignment_expression "iVar28 = *(int *)(puVar40 + 0x18)" identifier = (pointer_expression "*(int *)(puVar40 + 0x18)" * (cast_expression "(int *)(puVar40 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + 0x18)" ( (binary_expression "puVar40 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar40 + -0x54) = *(undefined4 *)(puVar40 + 0x1c);" (assignment_expression "*(undefined4 *)(puVar40 + -0x54) = *(undefined4 *)(puVar40 + 0x1c)" (pointer_expression "*(undefined4 *)(puVar40 + -0x54)" * (cast_expression "(undefined4 *)(puVar40 + -0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x54)" ( (binary_expression "puVar40 + -0x54" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar40 + 0x1c)" * (cast_expression "(undefined4 *)(puVar40 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + 0x1c)" ( (binary_expression "puVar40 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (uVar4 < 3) {\n        iVar34 = 0;\n        *(undefined4 *)(puVar40 + -0x5c) = 1;\n        *(undefined4 *)(puVar40 + -0x50) = 2;\n        iVar7 = 1;\n        *(undefined4 *)(puVar40 + -0x58) = 1;\n      }\n      else {\n        if (uVar4 < 0x22) {\n          *(undefined4 *)(puVar40 + -0x58) = 2;\n          iVar7 = 2;\n        }\n        else if (uVar4 < 0x61) {\n          *(undefined4 *)(puVar40 + -0x58) = 3;\n          iVar7 = 3;\n        }\n        else if (uVar4 < 0x30d) {\n          *(undefined4 *)(puVar40 + -0x58) = 4;\n          iVar7 = 4;\n        }\n        else {\n          iVar7 = 6;\n          if (uVar4 < 0xab6) {\n            iVar7 = 5;\n          }\n          *(int *)(puVar40 + -0x58) = iVar7;\n        }\n        *(int *)(puVar40 + -0x5c) = iVar7;\n        *(int *)(puVar40 + -0x50) = 1 << iVar7;\n        iVar34 = (1 << iVar7) + -2;\n      }" if (parenthesized_expression "(uVar4 < 3)" ( (binary_expression "uVar4 < 3" identifier < number_literal) )) (compound_statement "{\n        iVar34 = 0;\n        *(undefined4 *)(puVar40 + -0x5c) = 1;\n        *(undefined4 *)(puVar40 + -0x50) = 2;\n        iVar7 = 1;\n        *(undefined4 *)(puVar40 + -0x58) = 1;\n      }" { (expression_statement "iVar34 = 0;" (assignment_expression "iVar34 = 0" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(puVar40 + -0x5c) = 1;" (assignment_expression "*(undefined4 *)(puVar40 + -0x5c) = 1" (pointer_expression "*(undefined4 *)(puVar40 + -0x5c)" * (cast_expression "(undefined4 *)(puVar40 + -0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x5c)" ( (binary_expression "puVar40 + -0x5c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar40 + -0x50) = 2;" (assignment_expression "*(undefined4 *)(puVar40 + -0x50) = 2" (pointer_expression "*(undefined4 *)(puVar40 + -0x50)" * (cast_expression "(undefined4 *)(puVar40 + -0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x50)" ( (binary_expression "puVar40 + -0x50" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(puVar40 + -0x58) = 1;" (assignment_expression "*(undefined4 *)(puVar40 + -0x58) = 1" (pointer_expression "*(undefined4 *)(puVar40 + -0x58)" * (cast_expression "(undefined4 *)(puVar40 + -0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x58)" ( (binary_expression "puVar40 + -0x58" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        if (uVar4 < 0x22) {\n          *(undefined4 *)(puVar40 + -0x58) = 2;\n          iVar7 = 2;\n        }\n        else if (uVar4 < 0x61) {\n          *(undefined4 *)(puVar40 + -0x58) = 3;\n          iVar7 = 3;\n        }\n        else if (uVar4 < 0x30d) {\n          *(undefined4 *)(puVar40 + -0x58) = 4;\n          iVar7 = 4;\n        }\n        else {\n          iVar7 = 6;\n          if (uVar4 < 0xab6) {\n            iVar7 = 5;\n          }\n          *(int *)(puVar40 + -0x58) = iVar7;\n        }\n        *(int *)(puVar40 + -0x5c) = iVar7;\n        *(int *)(puVar40 + -0x50) = 1 << iVar7;\n        iVar34 = (1 << iVar7) + -2;\n      }" else (compound_statement "{\n        if (uVar4 < 0x22) {\n          *(undefined4 *)(puVar40 + -0x58) = 2;\n          iVar7 = 2;\n        }\n        else if (uVar4 < 0x61) {\n          *(undefined4 *)(puVar40 + -0x58) = 3;\n          iVar7 = 3;\n        }\n        else if (uVar4 < 0x30d) {\n          *(undefined4 *)(puVar40 + -0x58) = 4;\n          iVar7 = 4;\n        }\n        else {\n          iVar7 = 6;\n          if (uVar4 < 0xab6) {\n            iVar7 = 5;\n          }\n          *(int *)(puVar40 + -0x58) = iVar7;\n        }\n        *(int *)(puVar40 + -0x5c) = iVar7;\n        *(int *)(puVar40 + -0x50) = 1 << iVar7;\n        iVar34 = (1 << iVar7) + -2;\n      }" { (if_statement "if (uVar4 < 0x22) {\n          *(undefined4 *)(puVar40 + -0x58) = 2;\n          iVar7 = 2;\n        }\n        else if (uVar4 < 0x61) {\n          *(undefined4 *)(puVar40 + -0x58) = 3;\n          iVar7 = 3;\n        }\n        else if (uVar4 < 0x30d) {\n          *(undefined4 *)(puVar40 + -0x58) = 4;\n          iVar7 = 4;\n        }\n        else {\n          iVar7 = 6;\n          if (uVar4 < 0xab6) {\n            iVar7 = 5;\n          }\n          *(int *)(puVar40 + -0x58) = iVar7;\n        }" if (parenthesized_expression "(uVar4 < 0x22)" ( (binary_expression "uVar4 < 0x22" identifier < number_literal) )) (compound_statement "{\n          *(undefined4 *)(puVar40 + -0x58) = 2;\n          iVar7 = 2;\n        }" { (expression_statement "*(undefined4 *)(puVar40 + -0x58) = 2;" (assignment_expression "*(undefined4 *)(puVar40 + -0x58) = 2" (pointer_expression "*(undefined4 *)(puVar40 + -0x58)" * (cast_expression "(undefined4 *)(puVar40 + -0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x58)" ( (binary_expression "puVar40 + -0x58" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = 2;" (assignment_expression "iVar7 = 2" identifier = number_literal) ;) }) (else_clause "else if (uVar4 < 0x61) {\n          *(undefined4 *)(puVar40 + -0x58) = 3;\n          iVar7 = 3;\n        }\n        else if (uVar4 < 0x30d) {\n          *(undefined4 *)(puVar40 + -0x58) = 4;\n          iVar7 = 4;\n        }\n        else {\n          iVar7 = 6;\n          if (uVar4 < 0xab6) {\n            iVar7 = 5;\n          }\n          *(int *)(puVar40 + -0x58) = iVar7;\n        }" else (if_statement "if (uVar4 < 0x61) {\n          *(undefined4 *)(puVar40 + -0x58) = 3;\n          iVar7 = 3;\n        }\n        else if (uVar4 < 0x30d) {\n          *(undefined4 *)(puVar40 + -0x58) = 4;\n          iVar7 = 4;\n        }\n        else {\n          iVar7 = 6;\n          if (uVar4 < 0xab6) {\n            iVar7 = 5;\n          }\n          *(int *)(puVar40 + -0x58) = iVar7;\n        }" if (parenthesized_expression "(uVar4 < 0x61)" ( (binary_expression "uVar4 < 0x61" identifier < number_literal) )) (compound_statement "{\n          *(undefined4 *)(puVar40 + -0x58) = 3;\n          iVar7 = 3;\n        }" { (expression_statement "*(undefined4 *)(puVar40 + -0x58) = 3;" (assignment_expression "*(undefined4 *)(puVar40 + -0x58) = 3" (pointer_expression "*(undefined4 *)(puVar40 + -0x58)" * (cast_expression "(undefined4 *)(puVar40 + -0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x58)" ( (binary_expression "puVar40 + -0x58" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = 3;" (assignment_expression "iVar7 = 3" identifier = number_literal) ;) }) (else_clause "else if (uVar4 < 0x30d) {\n          *(undefined4 *)(puVar40 + -0x58) = 4;\n          iVar7 = 4;\n        }\n        else {\n          iVar7 = 6;\n          if (uVar4 < 0xab6) {\n            iVar7 = 5;\n          }\n          *(int *)(puVar40 + -0x58) = iVar7;\n        }" else (if_statement "if (uVar4 < 0x30d) {\n          *(undefined4 *)(puVar40 + -0x58) = 4;\n          iVar7 = 4;\n        }\n        else {\n          iVar7 = 6;\n          if (uVar4 < 0xab6) {\n            iVar7 = 5;\n          }\n          *(int *)(puVar40 + -0x58) = iVar7;\n        }" if (parenthesized_expression "(uVar4 < 0x30d)" ( (binary_expression "uVar4 < 0x30d" identifier < number_literal) )) (compound_statement "{\n          *(undefined4 *)(puVar40 + -0x58) = 4;\n          iVar7 = 4;\n        }" { (expression_statement "*(undefined4 *)(puVar40 + -0x58) = 4;" (assignment_expression "*(undefined4 *)(puVar40 + -0x58) = 4" (pointer_expression "*(undefined4 *)(puVar40 + -0x58)" * (cast_expression "(undefined4 *)(puVar40 + -0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x58)" ( (binary_expression "puVar40 + -0x58" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = 4;" (assignment_expression "iVar7 = 4" identifier = number_literal) ;) }) (else_clause "else {\n          iVar7 = 6;\n          if (uVar4 < 0xab6) {\n            iVar7 = 5;\n          }\n          *(int *)(puVar40 + -0x58) = iVar7;\n        }" else (compound_statement "{\n          iVar7 = 6;\n          if (uVar4 < 0xab6) {\n            iVar7 = 5;\n          }\n          *(int *)(puVar40 + -0x58) = iVar7;\n        }" { (expression_statement "iVar7 = 6;" (assignment_expression "iVar7 = 6" identifier = number_literal) ;) (if_statement "if (uVar4 < 0xab6) {\n            iVar7 = 5;\n          }" if (parenthesized_expression "(uVar4 < 0xab6)" ( (binary_expression "uVar4 < 0xab6" identifier < number_literal) )) (compound_statement "{\n            iVar7 = 5;\n          }" { (expression_statement "iVar7 = 5;" (assignment_expression "iVar7 = 5" identifier = number_literal) ;) })) (expression_statement "*(int *)(puVar40 + -0x58) = iVar7;" (assignment_expression "*(int *)(puVar40 + -0x58) = iVar7" (pointer_expression "*(int *)(puVar40 + -0x58)" * (cast_expression "(int *)(puVar40 + -0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x58)" ( (binary_expression "puVar40 + -0x58" identifier + number_literal) )))) = identifier) ;) }))))))) (expression_statement "*(int *)(puVar40 + -0x5c) = iVar7;" (assignment_expression "*(int *)(puVar40 + -0x5c) = iVar7" (pointer_expression "*(int *)(puVar40 + -0x5c)" * (cast_expression "(int *)(puVar40 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x5c)" ( (binary_expression "puVar40 + -0x5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar40 + -0x50) = 1 << iVar7;" (assignment_expression "*(int *)(puVar40 + -0x50) = 1 << iVar7" (pointer_expression "*(int *)(puVar40 + -0x50)" * (cast_expression "(int *)(puVar40 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x50)" ( (binary_expression "puVar40 + -0x50" identifier + number_literal) )))) = (binary_expression "1 << iVar7" number_literal << identifier)) ;) (expression_statement "iVar34 = (1 << iVar7) + -2;" (assignment_expression "iVar34 = (1 << iVar7) + -2" identifier = (binary_expression "(1 << iVar7) + -2" (parenthesized_expression "(1 << iVar7)" ( (binary_expression "1 << iVar7" number_literal << identifier) )) + number_literal)) ;) }))) (expression_statement "iVar16 = *piVar32;" (assignment_expression "iVar16 = *piVar32" identifier = (pointer_expression "*piVar32" * identifier)) ;) (expression_statement "iVar41 = iVar28 * 4;" (assignment_expression "iVar41 = iVar28 * 4" identifier = (binary_expression "iVar28 * 4" identifier * number_literal)) ;) (expression_statement "puVar35 = *(undefined4 **)(puVar40 + -0x54);" (assignment_expression "puVar35 = *(undefined4 **)(puVar40 + -0x54)" identifier = (pointer_expression "*(undefined4 **)(puVar40 + -0x54)" * (cast_expression "(undefined4 **)(puVar40 + -0x54)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x54)" ( (binary_expression "puVar40 + -0x54" identifier + number_literal) ))))) ;) (expression_statement "puVar24 = (undefined1 *)(iVar28 + (int)pmVar20);" (assignment_expression "puVar24 = (undefined1 *)(iVar28 + (int)pmVar20)" identifier = (cast_expression "(undefined1 *)(iVar28 + (int)pmVar20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + (int)pmVar20)" ( (binary_expression "iVar28 + (int)pmVar20" identifier + (cast_expression "(int)pmVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar33 = puVar35 + iVar28;" (assignment_expression "puVar33 = puVar35 + iVar28" identifier = (binary_expression "puVar35 + iVar28" identifier + identifier)) ;) (expression_statement "uVar4 = (uint)*(byte *)(*(int *)(puVar37 + 0x21ea4) + ((uint)(iVar16 << 0x18) >> 0x19));" (assignment_expression "uVar4 = (uint)*(byte *)(*(int *)(puVar37 + 0x21ea4) + ((uint)(iVar16 << 0x18) >> 0x19))" identifier = (binary_expression "(uint)*(byte *)(*(int *)(puVar37 + 0x21ea4) + ((uint)(iVar16 << 0x18) >> 0x19))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*(int *)(puVar37 + 0x21ea4) + ((uint)(iVar16 << 0x18) >> 0x19))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar37 + 0x21ea4) + ((uint)(iVar16 << 0x18) >> 0x19))" ( (binary_expression "*(int *)(puVar37 + 0x21ea4) + ((uint)(iVar16 << 0x18) >> 0x19)" (pointer_expression "*(int *)(puVar37 + 0x21ea4)" * (cast_expression "(int *)(puVar37 + 0x21ea4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x21ea4)" ( (binary_expression "puVar37 + 0x21ea4" identifier + number_literal) )))) + (parenthesized_expression "((uint)(iVar16 << 0x18) >> 0x19)" ( (binary_expression "(uint)(iVar16 << 0x18) >> 0x19" (call_expression "(uint)(iVar16 << 0x18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar16 << 0x18)" ( (binary_expression "iVar16 << 0x18" identifier << number_literal) ))) >> number_literal) ))) ))))) ;) (expression_statement "puVar27 = puVar33 + iVar28;" (assignment_expression "puVar27 = puVar33 + iVar28" identifier = (binary_expression "puVar33 + iVar28" identifier + identifier)) ;) (expression_statement "puVar21 = puVar35 + iVar28 + 1;" (assignment_expression "puVar21 = puVar35 + iVar28 + 1" identifier = (binary_expression "puVar35 + iVar28 + 1" (binary_expression "puVar35 + iVar28" identifier + identifier) + number_literal)) ;) (expression_statement "*(undefined4 **)(puVar40 + -0x48) = puVar27 + (int)puVar24;" (assignment_expression "*(undefined4 **)(puVar40 + -0x48) = puVar27 + (int)puVar24" (pointer_expression "*(undefined4 **)(puVar40 + -0x48)" * (cast_expression "(undefined4 **)(puVar40 + -0x48)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x48)" ( (binary_expression "puVar40 + -0x48" identifier + number_literal) )))) = (binary_expression "puVar27 + (int)puVar24" identifier + (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "psVar30 = puVar35 + (iVar28 << iVar7);" (assignment_expression "psVar30 = puVar35 + (iVar28 << iVar7)" identifier = (binary_expression "puVar35 + (iVar28 << iVar7)" identifier + (parenthesized_expression "(iVar28 << iVar7)" ( (binary_expression "iVar28 << iVar7" identifier << identifier) )))) ;) (expression_statement "*puVar33 = 1;" (assignment_expression "*puVar33 = 1" (pointer_expression "*puVar33" * identifier) = number_literal) ;) (expression_statement "iVar7 = uVar4 * 2 - uVar4 * uVar4 * iVar16;" (assignment_expression "iVar7 = uVar4 * 2 - uVar4 * uVar4 * iVar16" identifier = (binary_expression "uVar4 * 2 - uVar4 * uVar4 * iVar16" (binary_expression "uVar4 * 2" identifier * number_literal) - (binary_expression "uVar4 * uVar4 * iVar16" (binary_expression "uVar4 * uVar4" identifier * identifier) * identifier))) ;) (expression_statement "iVar7 = iVar7 * iVar7 * iVar16 + iVar7 * -2;" (assignment_expression "iVar7 = iVar7 * iVar7 * iVar16 + iVar7 * -2" identifier = (binary_expression "iVar7 * iVar7 * iVar16 + iVar7 * -2" (binary_expression "iVar7 * iVar7 * iVar16" (binary_expression "iVar7 * iVar7" identifier * identifier) * identifier) + (binary_expression "iVar7 * -2" identifier * number_literal))) ;) (expression_statement "puVar36 = puVar33;" (assignment_expression "puVar36 = puVar33" identifier = identifier) ;) (if_statement "if (iVar28 == 0) {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar37 + 0x2211c);\n        puVar21[iVar28] = 1;\n        *(mp_limb_t **)(puVar40 + -0x38) = pmVar20;\n        *(undefined1 **)(puVar40 + -0x3c) = puVar24;\n        *(undefined4 **)(puVar40 + -0x40) = puVar27;\n        *(undefined4 **)(puVar40 + -0x70) = puVar21 + iVar28 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,1,piVar32,0);\n        iVar26 = *(int *)(puVar40 + -0x3c);\n        iVar39 = *(int *)(puVar40 + -0x68);\n        iVar16 = *(int *)(puVar40 + -0x40);\n        iVar38 = *(int *)(puVar40 + -0x38);\n        if (iVar26 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar16,0,piVar32,0);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar9 = iVar38 + -1;\n        puVar27 = (undefined4 *)(iVar16 + iVar41);\n        uVar42 = **(undefined4 **)(puVar40 + -0x44);\n        if (iVar9 != 0) {\n          puVar35 = *(undefined4 **)(puVar40 + -0x44);\n          puVar21 = puVar27;\n          goto LAB_0007b70c;\n        }\n        uVar8 = *(undefined4 *)(puVar40 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n        *puVar27 = uVar42;\n        *(undefined4 *)(puVar40 + -0x70) = uVar8;\n        (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,0);\n        iVar16 = *(int *)(puVar40 + -0x68);\n      }\n      else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar37 + 0x21e88);\n        *(mp_limb_t **)(puVar40 + -0x2c) = pmVar20;\n        *(undefined1 **)(puVar40 + -0x30) = puVar24;\n        *(undefined4 **)(puVar40 + -0x34) = puVar21 + iVar28;\n        *(undefined4 **)(puVar40 + -0x38) = puVar27;\n        *(undefined4 **)(puVar40 + -0x3c) = puVar21 + iVar28 + 1;\n        uVar42 = (*UNRECOVERED_JUMPTABLE)(puVar21,0,iVar41);\n        uVar8 = *puVar33;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7ac4);\n        *(int *)(puVar40 + -0x40) = iVar28 + -1;\n        *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x3c);\n        *(undefined4 *)(puVar40 + -0x3c) = uVar42;\n        **(undefined4 **)(puVar40 + -0x34) = uVar8;\n        (*UNRECOVERED_JUMPTABLE)(uVar42,iVar28 + 1,piVar32,iVar28);\n        iVar16 = iVar28 + -1;\n        puVar27 = *(undefined4 **)(puVar40 + -0x3c);\n        iVar38 = *(int *)(puVar40 + -0x68);\n        uVar42 = *(undefined4 *)(puVar40 + -0x38);\n        uVar25 = *(undefined4 *)(puVar40 + -0x30);\n        uVar8 = *puVar27;\n        uVar23 = *(undefined4 *)(puVar40 + -0x2c);\n        if (iVar16 == 0) {\n          puVar35 = *(undefined4 **)(puVar40 + -0x54);\n        }\n        else {\n          do {\n            puVar27 = puVar27 + 1;\n            *puVar35 = uVar8;\n            iVar16 = iVar16 + -1;\n            uVar8 = *puVar27;\n            puVar35 = puVar35 + 1;\n          } while (iVar16 != 0);\n          puVar35 = (undefined4 *)(*(int *)(puVar40 + -0x54) + iVar41 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar38 + -0x7d58);\n        *(undefined4 *)(puVar40 + -0x38) = uVar23;\n        *(undefined4 *)(puVar40 + -0x3c) = uVar25;\n        *puVar35 = uVar8;\n        iVar16 = (*UNRECOVERED_JUMPTABLE)(uVar42,0,iVar41);\n        iVar38 = *(int *)(puVar40 + -0x38);\n        iVar39 = *(int *)(puVar40 + -0x68);\n        iVar26 = *(int *)(puVar40 + -0x3c);\n        if (iVar38 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x48);\n          iVar38 = iVar26;\nLAB_0007bb8c:\n          *(int *)(puVar40 + -0x48) = iVar16;\n          (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,iVar38);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          puVar35 = *(undefined4 **)(puVar40 + -0x48);\n        }\n        else {\n          puVar35 = *(undefined4 **)(puVar40 + -0x44);\n          iVar9 = iVar38 + -1;\n          puVar27 = (undefined4 *)(iVar16 + iVar41);\n          uVar42 = *puVar35;\n          puVar21 = puVar27;\n          if (iVar9 == 0) {\n            uVar8 = *(undefined4 *)(puVar40 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n            *puVar27 = uVar42;\n            *(undefined4 *)(puVar40 + -0x70) = uVar8;\n            iVar38 = iVar28;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar35 = puVar35 + 1;\n            *puVar27 = uVar42;\n            iVar9 = iVar9 + -1;\n            uVar42 = *puVar35;\n            puVar27 = puVar27 + 1;\n          } while (iVar9 != 0);\n          uVar8 = *(undefined4 *)(puVar40 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(int *)(puVar40 + -0x48) = iVar16;\n          *(undefined4 *)(puVar40 + -0x70) = uVar8;\n          puVar21[iVar38 + -1] = uVar42;\n          (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,iVar28);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          if (iVar28 == 0) goto joined_r0x0007b75c;\n          puVar35 = *(undefined4 **)(puVar40 + -0x48);\n          *(int *)(puVar40 + -0x40) = iVar28 + -1;\n        }\n        iVar38 = *(int *)(puVar40 + -0x40);\n        uVar42 = *puVar35;\n        puVar27 = puVar33;\n        if (iVar38 == 0) {\n          *puVar33 = uVar42;\n        }\n        else {\n          do {\n            puVar35 = puVar35 + 1;\n            *puVar27 = uVar42;\n            iVar38 = iVar38 + -1;\n            uVar42 = *puVar35;\n            puVar27 = puVar27 + 1;\n          } while (iVar38 != 0);\n          puVar33[*(int *)(puVar40 + -0x40)] = uVar42;\n        }\n      }" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (compound_statement "{\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar37 + 0x2211c);\n        puVar21[iVar28] = 1;\n        *(mp_limb_t **)(puVar40 + -0x38) = pmVar20;\n        *(undefined1 **)(puVar40 + -0x3c) = puVar24;\n        *(undefined4 **)(puVar40 + -0x40) = puVar27;\n        *(undefined4 **)(puVar40 + -0x70) = puVar21 + iVar28 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,1,piVar32,0);\n        iVar26 = *(int *)(puVar40 + -0x3c);\n        iVar39 = *(int *)(puVar40 + -0x68);\n        iVar16 = *(int *)(puVar40 + -0x40);\n        iVar38 = *(int *)(puVar40 + -0x38);\n        if (iVar26 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar16,0,piVar32,0);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar9 = iVar38 + -1;\n        puVar27 = (undefined4 *)(iVar16 + iVar41);\n        uVar42 = **(undefined4 **)(puVar40 + -0x44);\n        if (iVar9 != 0) {\n          puVar35 = *(undefined4 **)(puVar40 + -0x44);\n          puVar21 = puVar27;\n          goto LAB_0007b70c;\n        }\n        uVar8 = *(undefined4 *)(puVar40 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n        *puVar27 = uVar42;\n        *(undefined4 *)(puVar40 + -0x70) = uVar8;\n        (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,0);\n        iVar16 = *(int *)(puVar40 + -0x68);\n      }" { (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(puVar37 + 0x2211c);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(puVar37 + 0x2211c)" identifier = (pointer_expression "*(code **)(puVar37 + 0x2211c)" * (cast_expression "(code **)(puVar37 + 0x2211c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x2211c)" ( (binary_expression "puVar37 + 0x2211c" identifier + number_literal) ))))) ;) (expression_statement "puVar21[iVar28] = 1;" (assignment_expression "puVar21[iVar28] = 1" (subscript_expression "puVar21[iVar28]" identifier [ identifier ]) = number_literal) ;) (expression_statement "*(mp_limb_t **)(puVar40 + -0x38) = pmVar20;" (assignment_expression "*(mp_limb_t **)(puVar40 + -0x38) = pmVar20" (pointer_expression "*(mp_limb_t **)(puVar40 + -0x38)" * (cast_expression "(mp_limb_t **)(puVar40 + -0x38)" ( (type_descriptor "mp_limb_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x38)" ( (binary_expression "puVar40 + -0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar40 + -0x3c) = puVar24;" (assignment_expression "*(undefined1 **)(puVar40 + -0x3c) = puVar24" (pointer_expression "*(undefined1 **)(puVar40 + -0x3c)" * (cast_expression "(undefined1 **)(puVar40 + -0x3c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x3c)" ( (binary_expression "puVar40 + -0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar40 + -0x40) = puVar27;" (assignment_expression "*(undefined4 **)(puVar40 + -0x40) = puVar27" (pointer_expression "*(undefined4 **)(puVar40 + -0x40)" * (cast_expression "(undefined4 **)(puVar40 + -0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x40)" ( (binary_expression "puVar40 + -0x40" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar40 + -0x70) = puVar21 + iVar28 + 1;" (assignment_expression "*(undefined4 **)(puVar40 + -0x70) = puVar21 + iVar28 + 1" (pointer_expression "*(undefined4 **)(puVar40 + -0x70)" * (cast_expression "(undefined4 **)(puVar40 + -0x70)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x70)" ( (binary_expression "puVar40 + -0x70" identifier + number_literal) )))) = (binary_expression "puVar21 + iVar28 + 1" (binary_expression "puVar21 + iVar28" identifier + identifier) + number_literal)) ;) (expression_statement "(*UNRECOVERED_JUMPTABLE)(puVar21,1,piVar32,0);" (call_expression "(*UNRECOVERED_JUMPTABLE)(puVar21,1,piVar32,0)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(puVar21,1,piVar32,0)" ( identifier , number_literal , identifier , number_literal ))) ;) (expression_statement "iVar26 = *(int *)(puVar40 + -0x3c);" (assignment_expression "iVar26 = *(int *)(puVar40 + -0x3c)" identifier = (pointer_expression "*(int *)(puVar40 + -0x3c)" * (cast_expression "(int *)(puVar40 + -0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x3c)" ( (binary_expression "puVar40 + -0x3c" identifier + number_literal) ))))) ;) (expression_statement "iVar39 = *(int *)(puVar40 + -0x68);" (assignment_expression "iVar39 = *(int *)(puVar40 + -0x68)" identifier = (pointer_expression "*(int *)(puVar40 + -0x68)" * (cast_expression "(int *)(puVar40 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x68)" ( (binary_expression "puVar40 + -0x68" identifier + number_literal) ))))) ;) (expression_statement "iVar16 = *(int *)(puVar40 + -0x40);" (assignment_expression "iVar16 = *(int *)(puVar40 + -0x40)" identifier = (pointer_expression "*(int *)(puVar40 + -0x40)" * (cast_expression "(int *)(puVar40 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x40)" ( (binary_expression "puVar40 + -0x40" identifier + number_literal) ))))) ;) (expression_statement "iVar38 = *(int *)(puVar40 + -0x38);" (assignment_expression "iVar38 = *(int *)(puVar40 + -0x38)" identifier = (pointer_expression "*(int *)(puVar40 + -0x38)" * (cast_expression "(int *)(puVar40 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x38)" ( (binary_expression "puVar40 + -0x38" identifier + number_literal) ))))) ;) (if_statement "if (iVar26 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar16,0,piVar32,0);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          goto joined_r0x0007b75c;\n        }" if (parenthesized_expression "(iVar26 == 0)" ( (binary_expression "iVar26 == 0" identifier == number_literal) )) (compound_statement "{\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar16,0,piVar32,0);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          goto joined_r0x0007b75c;\n        }" { (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4)" identifier = (pointer_expression "*(code **)(iVar39 + -0x7ac4)" * (cast_expression "(code **)(iVar39 + -0x7ac4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar39 + -0x7ac4)" ( (binary_expression "iVar39 + -0x7ac4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x48);" (assignment_expression "*(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x48)" (pointer_expression "*(undefined4 *)(puVar40 + -0x70)" * (cast_expression "(undefined4 *)(puVar40 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x70)" ( (binary_expression "puVar40 + -0x70" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar40 + -0x48)" * (cast_expression "(undefined4 *)(puVar40 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x48)" ( (binary_expression "puVar40 + -0x48" identifier + number_literal) ))))) ;) (expression_statement "(*UNRECOVERED_JUMPTABLE)(iVar16,0,piVar32,0);" (call_expression "(*UNRECOVERED_JUMPTABLE)(iVar16,0,piVar32,0)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(iVar16,0,piVar32,0)" ( identifier , number_literal , identifier , number_literal ))) ;) (expression_statement "iVar16 = *(int *)(puVar40 + -0x68);" (assignment_expression "iVar16 = *(int *)(puVar40 + -0x68)" identifier = (pointer_expression "*(int *)(puVar40 + -0x68)" * (cast_expression "(int *)(puVar40 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x68)" ( (binary_expression "puVar40 + -0x68" identifier + number_literal) ))))) ;) (goto_statement "goto joined_r0x0007b75c;" goto statement_identifier ;) })) (expression_statement "iVar9 = iVar38 + -1;" (assignment_expression "iVar9 = iVar38 + -1" identifier = (binary_expression "iVar38 + -1" identifier + number_literal)) ;) (expression_statement "puVar27 = (undefined4 *)(iVar16 + iVar41);" (assignment_expression "puVar27 = (undefined4 *)(iVar16 + iVar41)" identifier = (cast_expression "(undefined4 *)(iVar16 + iVar41)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + iVar41)" ( (binary_expression "iVar16 + iVar41" identifier + identifier) )))) ;) (expression_statement "uVar42 = **(undefined4 **)(puVar40 + -0x44);" (assignment_expression "uVar42 = **(undefined4 **)(puVar40 + -0x44)" identifier = (pointer_expression "**(undefined4 **)(puVar40 + -0x44)" * (pointer_expression "*(undefined4 **)(puVar40 + -0x44)" * (cast_expression "(undefined4 **)(puVar40 + -0x44)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x44)" ( (binary_expression "puVar40 + -0x44" identifier + number_literal) )))))) ;) (if_statement "if (iVar9 != 0) {\n          puVar35 = *(undefined4 **)(puVar40 + -0x44);\n          puVar21 = puVar27;\n          goto LAB_0007b70c;\n        }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n          puVar35 = *(undefined4 **)(puVar40 + -0x44);\n          puVar21 = puVar27;\n          goto LAB_0007b70c;\n        }" { (expression_statement "puVar35 = *(undefined4 **)(puVar40 + -0x44);" (assignment_expression "puVar35 = *(undefined4 **)(puVar40 + -0x44)" identifier = (pointer_expression "*(undefined4 **)(puVar40 + -0x44)" * (cast_expression "(undefined4 **)(puVar40 + -0x44)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x44)" ( (binary_expression "puVar40 + -0x44" identifier + number_literal) ))))) ;) (expression_statement "puVar21 = puVar27;" (assignment_expression "puVar21 = puVar27" identifier = identifier) ;) (goto_statement "goto LAB_0007b70c;" goto statement_identifier ;) })) (expression_statement "uVar8 = *(undefined4 *)(puVar40 + -0x48);" (assignment_expression "uVar8 = *(undefined4 *)(puVar40 + -0x48)" identifier = (pointer_expression "*(undefined4 *)(puVar40 + -0x48)" * (cast_expression "(undefined4 *)(puVar40 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x48)" ( (binary_expression "puVar40 + -0x48" identifier + number_literal) ))))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4)" identifier = (pointer_expression "*(code **)(iVar39 + -0x7ac4)" * (cast_expression "(code **)(iVar39 + -0x7ac4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar39 + -0x7ac4)" ( (binary_expression "iVar39 + -0x7ac4" identifier + number_literal) ))))) ;) (expression_statement "*puVar27 = uVar42;" (assignment_expression "*puVar27 = uVar42" (pointer_expression "*puVar27" * identifier) = identifier) ;) (expression_statement "*(undefined4 *)(puVar40 + -0x70) = uVar8;" (assignment_expression "*(undefined4 *)(puVar40 + -0x70) = uVar8" (pointer_expression "*(undefined4 *)(puVar40 + -0x70)" * (cast_expression "(undefined4 *)(puVar40 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x70)" ( (binary_expression "puVar40 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,0);" (call_expression "(*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,0)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(iVar16,iVar26,piVar32,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "iVar16 = *(int *)(puVar40 + -0x68);" (assignment_expression "iVar16 = *(int *)(puVar40 + -0x68)" identifier = (pointer_expression "*(int *)(puVar40 + -0x68)" * (cast_expression "(int *)(puVar40 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x68)" ( (binary_expression "puVar40 + -0x68" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar37 + 0x21e88);\n        *(mp_limb_t **)(puVar40 + -0x2c) = pmVar20;\n        *(undefined1 **)(puVar40 + -0x30) = puVar24;\n        *(undefined4 **)(puVar40 + -0x34) = puVar21 + iVar28;\n        *(undefined4 **)(puVar40 + -0x38) = puVar27;\n        *(undefined4 **)(puVar40 + -0x3c) = puVar21 + iVar28 + 1;\n        uVar42 = (*UNRECOVERED_JUMPTABLE)(puVar21,0,iVar41);\n        uVar8 = *puVar33;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7ac4);\n        *(int *)(puVar40 + -0x40) = iVar28 + -1;\n        *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x3c);\n        *(undefined4 *)(puVar40 + -0x3c) = uVar42;\n        **(undefined4 **)(puVar40 + -0x34) = uVar8;\n        (*UNRECOVERED_JUMPTABLE)(uVar42,iVar28 + 1,piVar32,iVar28);\n        iVar16 = iVar28 + -1;\n        puVar27 = *(undefined4 **)(puVar40 + -0x3c);\n        iVar38 = *(int *)(puVar40 + -0x68);\n        uVar42 = *(undefined4 *)(puVar40 + -0x38);\n        uVar25 = *(undefined4 *)(puVar40 + -0x30);\n        uVar8 = *puVar27;\n        uVar23 = *(undefined4 *)(puVar40 + -0x2c);\n        if (iVar16 == 0) {\n          puVar35 = *(undefined4 **)(puVar40 + -0x54);\n        }\n        else {\n          do {\n            puVar27 = puVar27 + 1;\n            *puVar35 = uVar8;\n            iVar16 = iVar16 + -1;\n            uVar8 = *puVar27;\n            puVar35 = puVar35 + 1;\n          } while (iVar16 != 0);\n          puVar35 = (undefined4 *)(*(int *)(puVar40 + -0x54) + iVar41 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar38 + -0x7d58);\n        *(undefined4 *)(puVar40 + -0x38) = uVar23;\n        *(undefined4 *)(puVar40 + -0x3c) = uVar25;\n        *puVar35 = uVar8;\n        iVar16 = (*UNRECOVERED_JUMPTABLE)(uVar42,0,iVar41);\n        iVar38 = *(int *)(puVar40 + -0x38);\n        iVar39 = *(int *)(puVar40 + -0x68);\n        iVar26 = *(int *)(puVar40 + -0x3c);\n        if (iVar38 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x48);\n          iVar38 = iVar26;\nLAB_0007bb8c:\n          *(int *)(puVar40 + -0x48) = iVar16;\n          (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,iVar38);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          puVar35 = *(undefined4 **)(puVar40 + -0x48);\n        }\n        else {\n          puVar35 = *(undefined4 **)(puVar40 + -0x44);\n          iVar9 = iVar38 + -1;\n          puVar27 = (undefined4 *)(iVar16 + iVar41);\n          uVar42 = *puVar35;\n          puVar21 = puVar27;\n          if (iVar9 == 0) {\n            uVar8 = *(undefined4 *)(puVar40 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n            *puVar27 = uVar42;\n            *(undefined4 *)(puVar40 + -0x70) = uVar8;\n            iVar38 = iVar28;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar35 = puVar35 + 1;\n            *puVar27 = uVar42;\n            iVar9 = iVar9 + -1;\n            uVar42 = *puVar35;\n            puVar27 = puVar27 + 1;\n          } while (iVar9 != 0);\n          uVar8 = *(undefined4 *)(puVar40 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(int *)(puVar40 + -0x48) = iVar16;\n          *(undefined4 *)(puVar40 + -0x70) = uVar8;\n          puVar21[iVar38 + -1] = uVar42;\n          (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,iVar28);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          if (iVar28 == 0) goto joined_r0x0007b75c;\n          puVar35 = *(undefined4 **)(puVar40 + -0x48);\n          *(int *)(puVar40 + -0x40) = iVar28 + -1;\n        }\n        iVar38 = *(int *)(puVar40 + -0x40);\n        uVar42 = *puVar35;\n        puVar27 = puVar33;\n        if (iVar38 == 0) {\n          *puVar33 = uVar42;\n        }\n        else {\n          do {\n            puVar35 = puVar35 + 1;\n            *puVar27 = uVar42;\n            iVar38 = iVar38 + -1;\n            uVar42 = *puVar35;\n            puVar27 = puVar27 + 1;\n          } while (iVar38 != 0);\n          puVar33[*(int *)(puVar40 + -0x40)] = uVar42;\n        }\n      }" else (compound_statement "{\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar37 + 0x21e88);\n        *(mp_limb_t **)(puVar40 + -0x2c) = pmVar20;\n        *(undefined1 **)(puVar40 + -0x30) = puVar24;\n        *(undefined4 **)(puVar40 + -0x34) = puVar21 + iVar28;\n        *(undefined4 **)(puVar40 + -0x38) = puVar27;\n        *(undefined4 **)(puVar40 + -0x3c) = puVar21 + iVar28 + 1;\n        uVar42 = (*UNRECOVERED_JUMPTABLE)(puVar21,0,iVar41);\n        uVar8 = *puVar33;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7ac4);\n        *(int *)(puVar40 + -0x40) = iVar28 + -1;\n        *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x3c);\n        *(undefined4 *)(puVar40 + -0x3c) = uVar42;\n        **(undefined4 **)(puVar40 + -0x34) = uVar8;\n        (*UNRECOVERED_JUMPTABLE)(uVar42,iVar28 + 1,piVar32,iVar28);\n        iVar16 = iVar28 + -1;\n        puVar27 = *(undefined4 **)(puVar40 + -0x3c);\n        iVar38 = *(int *)(puVar40 + -0x68);\n        uVar42 = *(undefined4 *)(puVar40 + -0x38);\n        uVar25 = *(undefined4 *)(puVar40 + -0x30);\n        uVar8 = *puVar27;\n        uVar23 = *(undefined4 *)(puVar40 + -0x2c);\n        if (iVar16 == 0) {\n          puVar35 = *(undefined4 **)(puVar40 + -0x54);\n        }\n        else {\n          do {\n            puVar27 = puVar27 + 1;\n            *puVar35 = uVar8;\n            iVar16 = iVar16 + -1;\n            uVar8 = *puVar27;\n            puVar35 = puVar35 + 1;\n          } while (iVar16 != 0);\n          puVar35 = (undefined4 *)(*(int *)(puVar40 + -0x54) + iVar41 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar38 + -0x7d58);\n        *(undefined4 *)(puVar40 + -0x38) = uVar23;\n        *(undefined4 *)(puVar40 + -0x3c) = uVar25;\n        *puVar35 = uVar8;\n        iVar16 = (*UNRECOVERED_JUMPTABLE)(uVar42,0,iVar41);\n        iVar38 = *(int *)(puVar40 + -0x38);\n        iVar39 = *(int *)(puVar40 + -0x68);\n        iVar26 = *(int *)(puVar40 + -0x3c);\n        if (iVar38 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x48);\n          iVar38 = iVar26;\nLAB_0007bb8c:\n          *(int *)(puVar40 + -0x48) = iVar16;\n          (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,iVar38);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          puVar35 = *(undefined4 **)(puVar40 + -0x48);\n        }\n        else {\n          puVar35 = *(undefined4 **)(puVar40 + -0x44);\n          iVar9 = iVar38 + -1;\n          puVar27 = (undefined4 *)(iVar16 + iVar41);\n          uVar42 = *puVar35;\n          puVar21 = puVar27;\n          if (iVar9 == 0) {\n            uVar8 = *(undefined4 *)(puVar40 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n            *puVar27 = uVar42;\n            *(undefined4 *)(puVar40 + -0x70) = uVar8;\n            iVar38 = iVar28;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar35 = puVar35 + 1;\n            *puVar27 = uVar42;\n            iVar9 = iVar9 + -1;\n            uVar42 = *puVar35;\n            puVar27 = puVar27 + 1;\n          } while (iVar9 != 0);\n          uVar8 = *(undefined4 *)(puVar40 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(int *)(puVar40 + -0x48) = iVar16;\n          *(undefined4 *)(puVar40 + -0x70) = uVar8;\n          puVar21[iVar38 + -1] = uVar42;\n          (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,iVar28);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          if (iVar28 == 0) goto joined_r0x0007b75c;\n          puVar35 = *(undefined4 **)(puVar40 + -0x48);\n          *(int *)(puVar40 + -0x40) = iVar28 + -1;\n        }\n        iVar38 = *(int *)(puVar40 + -0x40);\n        uVar42 = *puVar35;\n        puVar27 = puVar33;\n        if (iVar38 == 0) {\n          *puVar33 = uVar42;\n        }\n        else {\n          do {\n            puVar35 = puVar35 + 1;\n            *puVar27 = uVar42;\n            iVar38 = iVar38 + -1;\n            uVar42 = *puVar35;\n            puVar27 = puVar27 + 1;\n          } while (iVar38 != 0);\n          puVar33[*(int *)(puVar40 + -0x40)] = uVar42;\n        }\n      }" { (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(puVar37 + 0x21e88);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(puVar37 + 0x21e88)" identifier = (pointer_expression "*(code **)(puVar37 + 0x21e88)" * (cast_expression "(code **)(puVar37 + 0x21e88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x21e88)" ( (binary_expression "puVar37 + 0x21e88" identifier + number_literal) ))))) ;) (expression_statement "*(mp_limb_t **)(puVar40 + -0x2c) = pmVar20;" (assignment_expression "*(mp_limb_t **)(puVar40 + -0x2c) = pmVar20" (pointer_expression "*(mp_limb_t **)(puVar40 + -0x2c)" * (cast_expression "(mp_limb_t **)(puVar40 + -0x2c)" ( (type_descriptor "mp_limb_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x2c)" ( (binary_expression "puVar40 + -0x2c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar40 + -0x30) = puVar24;" (assignment_expression "*(undefined1 **)(puVar40 + -0x30) = puVar24" (pointer_expression "*(undefined1 **)(puVar40 + -0x30)" * (cast_expression "(undefined1 **)(puVar40 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x30)" ( (binary_expression "puVar40 + -0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar40 + -0x34) = puVar21 + iVar28;" (assignment_expression "*(undefined4 **)(puVar40 + -0x34) = puVar21 + iVar28" (pointer_expression "*(undefined4 **)(puVar40 + -0x34)" * (cast_expression "(undefined4 **)(puVar40 + -0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x34)" ( (binary_expression "puVar40 + -0x34" identifier + number_literal) )))) = (binary_expression "puVar21 + iVar28" identifier + identifier)) ;) (expression_statement "*(undefined4 **)(puVar40 + -0x38) = puVar27;" (assignment_expression "*(undefined4 **)(puVar40 + -0x38) = puVar27" (pointer_expression "*(undefined4 **)(puVar40 + -0x38)" * (cast_expression "(undefined4 **)(puVar40 + -0x38)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x38)" ( (binary_expression "puVar40 + -0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar40 + -0x3c) = puVar21 + iVar28 + 1;" (assignment_expression "*(undefined4 **)(puVar40 + -0x3c) = puVar21 + iVar28 + 1" (pointer_expression "*(undefined4 **)(puVar40 + -0x3c)" * (cast_expression "(undefined4 **)(puVar40 + -0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x3c)" ( (binary_expression "puVar40 + -0x3c" identifier + number_literal) )))) = (binary_expression "puVar21 + iVar28 + 1" (binary_expression "puVar21 + iVar28" identifier + identifier) + number_literal)) ;) (expression_statement "uVar42 = (*UNRECOVERED_JUMPTABLE)(puVar21,0,iVar41);" (assignment_expression "uVar42 = (*UNRECOVERED_JUMPTABLE)(puVar21,0,iVar41)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE)(puVar21,0,iVar41)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(puVar21,0,iVar41)" ( identifier , number_literal , identifier )))) ;) (expression_statement "uVar8 = *puVar33;" (assignment_expression "uVar8 = *puVar33" identifier = (pointer_expression "*puVar33" * identifier)) ;) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7ac4);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7ac4)" identifier = (pointer_expression "*(code **)(*(int *)(puVar40 + -0x68) + -0x7ac4)" * (cast_expression "(code **)(*(int *)(puVar40 + -0x68) + -0x7ac4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar40 + -0x68) + -0x7ac4)" ( (binary_expression "*(int *)(puVar40 + -0x68) + -0x7ac4" (pointer_expression "*(int *)(puVar40 + -0x68)" * (cast_expression "(int *)(puVar40 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x68)" ( (binary_expression "puVar40 + -0x68" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(int *)(puVar40 + -0x40) = iVar28 + -1;" (assignment_expression "*(int *)(puVar40 + -0x40) = iVar28 + -1" (pointer_expression "*(int *)(puVar40 + -0x40)" * (cast_expression "(int *)(puVar40 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x40)" ( (binary_expression "puVar40 + -0x40" identifier + number_literal) )))) = (binary_expression "iVar28 + -1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x3c);" (assignment_expression "*(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x3c)" (pointer_expression "*(undefined4 *)(puVar40 + -0x70)" * (cast_expression "(undefined4 *)(puVar40 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x70)" ( (binary_expression "puVar40 + -0x70" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar40 + -0x3c)" * (cast_expression "(undefined4 *)(puVar40 + -0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x3c)" ( (binary_expression "puVar40 + -0x3c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar40 + -0x3c) = uVar42;" (assignment_expression "*(undefined4 *)(puVar40 + -0x3c) = uVar42" (pointer_expression "*(undefined4 *)(puVar40 + -0x3c)" * (cast_expression "(undefined4 *)(puVar40 + -0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x3c)" ( (binary_expression "puVar40 + -0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "**(undefined4 **)(puVar40 + -0x34) = uVar8;" (assignment_expression "**(undefined4 **)(puVar40 + -0x34) = uVar8" (pointer_expression "**(undefined4 **)(puVar40 + -0x34)" * (pointer_expression "*(undefined4 **)(puVar40 + -0x34)" * (cast_expression "(undefined4 **)(puVar40 + -0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x34)" ( (binary_expression "puVar40 + -0x34" identifier + number_literal) ))))) = identifier) ;) (expression_statement "(*UNRECOVERED_JUMPTABLE)(uVar42,iVar28 + 1,piVar32,iVar28);" (call_expression "(*UNRECOVERED_JUMPTABLE)(uVar42,iVar28 + 1,piVar32,iVar28)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(uVar42,iVar28 + 1,piVar32,iVar28)" ( identifier , (binary_expression "iVar28 + 1" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "iVar16 = iVar28 + -1;" (assignment_expression "iVar16 = iVar28 + -1" identifier = (binary_expression "iVar28 + -1" identifier + number_literal)) ;) (expression_statement "puVar27 = *(undefined4 **)(puVar40 + -0x3c);" (assignment_expression "puVar27 = *(undefined4 **)(puVar40 + -0x3c)" identifier = (pointer_expression "*(undefined4 **)(puVar40 + -0x3c)" * (cast_expression "(undefined4 **)(puVar40 + -0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x3c)" ( (binary_expression "puVar40 + -0x3c" identifier + number_literal) ))))) ;) (expression_statement "iVar38 = *(int *)(puVar40 + -0x68);" (assignment_expression "iVar38 = *(int *)(puVar40 + -0x68)" identifier = (pointer_expression "*(int *)(puVar40 + -0x68)" * (cast_expression "(int *)(puVar40 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x68)" ( (binary_expression "puVar40 + -0x68" identifier + number_literal) ))))) ;) (expression_statement "uVar42 = *(undefined4 *)(puVar40 + -0x38);" (assignment_expression "uVar42 = *(undefined4 *)(puVar40 + -0x38)" identifier = (pointer_expression "*(undefined4 *)(puVar40 + -0x38)" * (cast_expression "(undefined4 *)(puVar40 + -0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x38)" ( (binary_expression "puVar40 + -0x38" identifier + number_literal) ))))) ;) (expression_statement "uVar25 = *(undefined4 *)(puVar40 + -0x30);" (assignment_expression "uVar25 = *(undefined4 *)(puVar40 + -0x30)" identifier = (pointer_expression "*(undefined4 *)(puVar40 + -0x30)" * (cast_expression "(undefined4 *)(puVar40 + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x30)" ( (binary_expression "puVar40 + -0x30" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *puVar27;" (assignment_expression "uVar8 = *puVar27" identifier = (pointer_expression "*puVar27" * identifier)) ;) (expression_statement "uVar23 = *(undefined4 *)(puVar40 + -0x2c);" (assignment_expression "uVar23 = *(undefined4 *)(puVar40 + -0x2c)" identifier = (pointer_expression "*(undefined4 *)(puVar40 + -0x2c)" * (cast_expression "(undefined4 *)(puVar40 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x2c)" ( (binary_expression "puVar40 + -0x2c" identifier + number_literal) ))))) ;) (if_statement "if (iVar16 == 0) {\n          puVar35 = *(undefined4 **)(puVar40 + -0x54);\n        }\n        else {\n          do {\n            puVar27 = puVar27 + 1;\n            *puVar35 = uVar8;\n            iVar16 = iVar16 + -1;\n            uVar8 = *puVar27;\n            puVar35 = puVar35 + 1;\n          } while (iVar16 != 0);\n          puVar35 = (undefined4 *)(*(int *)(puVar40 + -0x54) + iVar41 + -4);\n        }" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (compound_statement "{\n          puVar35 = *(undefined4 **)(puVar40 + -0x54);\n        }" { (expression_statement "puVar35 = *(undefined4 **)(puVar40 + -0x54);" (assignment_expression "puVar35 = *(undefined4 **)(puVar40 + -0x54)" identifier = (pointer_expression "*(undefined4 **)(puVar40 + -0x54)" * (cast_expression "(undefined4 **)(puVar40 + -0x54)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x54)" ( (binary_expression "puVar40 + -0x54" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          do {\n            puVar27 = puVar27 + 1;\n            *puVar35 = uVar8;\n            iVar16 = iVar16 + -1;\n            uVar8 = *puVar27;\n            puVar35 = puVar35 + 1;\n          } while (iVar16 != 0);\n          puVar35 = (undefined4 *)(*(int *)(puVar40 + -0x54) + iVar41 + -4);\n        }" else (compound_statement "{\n          do {\n            puVar27 = puVar27 + 1;\n            *puVar35 = uVar8;\n            iVar16 = iVar16 + -1;\n            uVar8 = *puVar27;\n            puVar35 = puVar35 + 1;\n          } while (iVar16 != 0);\n          puVar35 = (undefined4 *)(*(int *)(puVar40 + -0x54) + iVar41 + -4);\n        }" { (do_statement "do {\n            puVar27 = puVar27 + 1;\n            *puVar35 = uVar8;\n            iVar16 = iVar16 + -1;\n            uVar8 = *puVar27;\n            puVar35 = puVar35 + 1;\n          } while (iVar16 != 0);" do (compound_statement "{\n            puVar27 = puVar27 + 1;\n            *puVar35 = uVar8;\n            iVar16 = iVar16 + -1;\n            uVar8 = *puVar27;\n            puVar35 = puVar35 + 1;\n          }" { (expression_statement "puVar27 = puVar27 + 1;" (assignment_expression "puVar27 = puVar27 + 1" identifier = (binary_expression "puVar27 + 1" identifier + number_literal)) ;) (expression_statement "*puVar35 = uVar8;" (assignment_expression "*puVar35 = uVar8" (pointer_expression "*puVar35" * identifier) = identifier) ;) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "uVar8 = *puVar27;" (assignment_expression "uVar8 = *puVar27" identifier = (pointer_expression "*puVar27" * identifier)) ;) (expression_statement "puVar35 = puVar35 + 1;" (assignment_expression "puVar35 = puVar35 + 1" identifier = (binary_expression "puVar35 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) ;) (expression_statement "puVar35 = (undefined4 *)(*(int *)(puVar40 + -0x54) + iVar41 + -4);" (assignment_expression "puVar35 = (undefined4 *)(*(int *)(puVar40 + -0x54) + iVar41 + -4)" identifier = (cast_expression "(undefined4 *)(*(int *)(puVar40 + -0x54) + iVar41 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar40 + -0x54) + iVar41 + -4)" ( (binary_expression "*(int *)(puVar40 + -0x54) + iVar41 + -4" (binary_expression "*(int *)(puVar40 + -0x54) + iVar41" (pointer_expression "*(int *)(puVar40 + -0x54)" * (cast_expression "(int *)(puVar40 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x54)" ( (binary_expression "puVar40 + -0x54" identifier + number_literal) )))) + identifier) + number_literal) )))) ;) }))) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar38 + -0x7d58);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar38 + -0x7d58)" identifier = (pointer_expression "*(code **)(iVar38 + -0x7d58)" * (cast_expression "(code **)(iVar38 + -0x7d58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar38 + -0x7d58)" ( (binary_expression "iVar38 + -0x7d58" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar40 + -0x38) = uVar23;" (assignment_expression "*(undefined4 *)(puVar40 + -0x38) = uVar23" (pointer_expression "*(undefined4 *)(puVar40 + -0x38)" * (cast_expression "(undefined4 *)(puVar40 + -0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x38)" ( (binary_expression "puVar40 + -0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar40 + -0x3c) = uVar25;" (assignment_expression "*(undefined4 *)(puVar40 + -0x3c) = uVar25" (pointer_expression "*(undefined4 *)(puVar40 + -0x3c)" * (cast_expression "(undefined4 *)(puVar40 + -0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x3c)" ( (binary_expression "puVar40 + -0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*puVar35 = uVar8;" (assignment_expression "*puVar35 = uVar8" (pointer_expression "*puVar35" * identifier) = identifier) ;) (expression_statement "iVar16 = (*UNRECOVERED_JUMPTABLE)(uVar42,0,iVar41);" (assignment_expression "iVar16 = (*UNRECOVERED_JUMPTABLE)(uVar42,0,iVar41)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE)(uVar42,0,iVar41)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(uVar42,0,iVar41)" ( identifier , number_literal , identifier )))) ;) (expression_statement "iVar38 = *(int *)(puVar40 + -0x38);" (assignment_expression "iVar38 = *(int *)(puVar40 + -0x38)" identifier = (pointer_expression "*(int *)(puVar40 + -0x38)" * (cast_expression "(int *)(puVar40 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x38)" ( (binary_expression "puVar40 + -0x38" identifier + number_literal) ))))) ;) (expression_statement "iVar39 = *(int *)(puVar40 + -0x68);" (assignment_expression "iVar39 = *(int *)(puVar40 + -0x68)" identifier = (pointer_expression "*(int *)(puVar40 + -0x68)" * (cast_expression "(int *)(puVar40 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x68)" ( (binary_expression "puVar40 + -0x68" identifier + number_literal) ))))) ;) (expression_statement "iVar26 = *(int *)(puVar40 + -0x3c);" (assignment_expression "iVar26 = *(int *)(puVar40 + -0x3c)" identifier = (pointer_expression "*(int *)(puVar40 + -0x3c)" * (cast_expression "(int *)(puVar40 + -0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x3c)" ( (binary_expression "puVar40 + -0x3c" identifier + number_literal) ))))) ;) (if_statement "if (iVar38 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x48);\n          iVar38 = iVar26;\nLAB_0007bb8c:\n          *(int *)(puVar40 + -0x48) = iVar16;\n          (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,iVar38);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          puVar35 = *(undefined4 **)(puVar40 + -0x48);\n        }\n        else {\n          puVar35 = *(undefined4 **)(puVar40 + -0x44);\n          iVar9 = iVar38 + -1;\n          puVar27 = (undefined4 *)(iVar16 + iVar41);\n          uVar42 = *puVar35;\n          puVar21 = puVar27;\n          if (iVar9 == 0) {\n            uVar8 = *(undefined4 *)(puVar40 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n            *puVar27 = uVar42;\n            *(undefined4 *)(puVar40 + -0x70) = uVar8;\n            iVar38 = iVar28;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar35 = puVar35 + 1;\n            *puVar27 = uVar42;\n            iVar9 = iVar9 + -1;\n            uVar42 = *puVar35;\n            puVar27 = puVar27 + 1;\n          } while (iVar9 != 0);\n          uVar8 = *(undefined4 *)(puVar40 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(int *)(puVar40 + -0x48) = iVar16;\n          *(undefined4 *)(puVar40 + -0x70) = uVar8;\n          puVar21[iVar38 + -1] = uVar42;\n          (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,iVar28);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          if (iVar28 == 0) goto joined_r0x0007b75c;\n          puVar35 = *(undefined4 **)(puVar40 + -0x48);\n          *(int *)(puVar40 + -0x40) = iVar28 + -1;\n        }" if (parenthesized_expression "(iVar38 == 0)" ( (binary_expression "iVar38 == 0" identifier == number_literal) )) (compound_statement "{\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x48);\n          iVar38 = iVar26;\nLAB_0007bb8c:\n          *(int *)(puVar40 + -0x48) = iVar16;\n          (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,iVar38);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          puVar35 = *(undefined4 **)(puVar40 + -0x48);\n        }" { (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4)" identifier = (pointer_expression "*(code **)(iVar39 + -0x7ac4)" * (cast_expression "(code **)(iVar39 + -0x7ac4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar39 + -0x7ac4)" ( (binary_expression "iVar39 + -0x7ac4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x48);" (assignment_expression "*(undefined4 *)(puVar40 + -0x70) = *(undefined4 *)(puVar40 + -0x48)" (pointer_expression "*(undefined4 *)(puVar40 + -0x70)" * (cast_expression "(undefined4 *)(puVar40 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x70)" ( (binary_expression "puVar40 + -0x70" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar40 + -0x48)" * (cast_expression "(undefined4 *)(puVar40 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x48)" ( (binary_expression "puVar40 + -0x48" identifier + number_literal) ))))) ;) (expression_statement "iVar38 = iVar26;" (assignment_expression "iVar38 = iVar26" identifier = identifier) ;) (labeled_statement "LAB_0007bb8c:\n          *(int *)(puVar40 + -0x48) = iVar16;" statement_identifier : (expression_statement "*(int *)(puVar40 + -0x48) = iVar16;" (assignment_expression "*(int *)(puVar40 + -0x48) = iVar16" (pointer_expression "*(int *)(puVar40 + -0x48)" * (cast_expression "(int *)(puVar40 + -0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x48)" ( (binary_expression "puVar40 + -0x48" identifier + number_literal) )))) = identifier) ;)) (expression_statement "(*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,iVar38);" (call_expression "(*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,iVar38)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(iVar16,iVar26,piVar32,iVar38)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar16 = *(int *)(puVar40 + -0x68);" (assignment_expression "iVar16 = *(int *)(puVar40 + -0x68)" identifier = (pointer_expression "*(int *)(puVar40 + -0x68)" * (cast_expression "(int *)(puVar40 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x68)" ( (binary_expression "puVar40 + -0x68" identifier + number_literal) ))))) ;) (expression_statement "puVar35 = *(undefined4 **)(puVar40 + -0x48);" (assignment_expression "puVar35 = *(undefined4 **)(puVar40 + -0x48)" identifier = (pointer_expression "*(undefined4 **)(puVar40 + -0x48)" * (cast_expression "(undefined4 **)(puVar40 + -0x48)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x48)" ( (binary_expression "puVar40 + -0x48" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          puVar35 = *(undefined4 **)(puVar40 + -0x44);\n          iVar9 = iVar38 + -1;\n          puVar27 = (undefined4 *)(iVar16 + iVar41);\n          uVar42 = *puVar35;\n          puVar21 = puVar27;\n          if (iVar9 == 0) {\n            uVar8 = *(undefined4 *)(puVar40 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n            *puVar27 = uVar42;\n            *(undefined4 *)(puVar40 + -0x70) = uVar8;\n            iVar38 = iVar28;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar35 = puVar35 + 1;\n            *puVar27 = uVar42;\n            iVar9 = iVar9 + -1;\n            uVar42 = *puVar35;\n            puVar27 = puVar27 + 1;\n          } while (iVar9 != 0);\n          uVar8 = *(undefined4 *)(puVar40 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(int *)(puVar40 + -0x48) = iVar16;\n          *(undefined4 *)(puVar40 + -0x70) = uVar8;\n          puVar21[iVar38 + -1] = uVar42;\n          (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,iVar28);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          if (iVar28 == 0) goto joined_r0x0007b75c;\n          puVar35 = *(undefined4 **)(puVar40 + -0x48);\n          *(int *)(puVar40 + -0x40) = iVar28 + -1;\n        }" else (compound_statement "{\n          puVar35 = *(undefined4 **)(puVar40 + -0x44);\n          iVar9 = iVar38 + -1;\n          puVar27 = (undefined4 *)(iVar16 + iVar41);\n          uVar42 = *puVar35;\n          puVar21 = puVar27;\n          if (iVar9 == 0) {\n            uVar8 = *(undefined4 *)(puVar40 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n            *puVar27 = uVar42;\n            *(undefined4 *)(puVar40 + -0x70) = uVar8;\n            iVar38 = iVar28;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar35 = puVar35 + 1;\n            *puVar27 = uVar42;\n            iVar9 = iVar9 + -1;\n            uVar42 = *puVar35;\n            puVar27 = puVar27 + 1;\n          } while (iVar9 != 0);\n          uVar8 = *(undefined4 *)(puVar40 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n          *(int *)(puVar40 + -0x48) = iVar16;\n          *(undefined4 *)(puVar40 + -0x70) = uVar8;\n          puVar21[iVar38 + -1] = uVar42;\n          (*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,iVar28);\n          iVar16 = *(int *)(puVar40 + -0x68);\n          if (iVar28 == 0) goto joined_r0x0007b75c;\n          puVar35 = *(undefined4 **)(puVar40 + -0x48);\n          *(int *)(puVar40 + -0x40) = iVar28 + -1;\n        }" { (expression_statement "puVar35 = *(undefined4 **)(puVar40 + -0x44);" (assignment_expression "puVar35 = *(undefined4 **)(puVar40 + -0x44)" identifier = (pointer_expression "*(undefined4 **)(puVar40 + -0x44)" * (cast_expression "(undefined4 **)(puVar40 + -0x44)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x44)" ( (binary_expression "puVar40 + -0x44" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = iVar38 + -1;" (assignment_expression "iVar9 = iVar38 + -1" identifier = (binary_expression "iVar38 + -1" identifier + number_literal)) ;) (expression_statement "puVar27 = (undefined4 *)(iVar16 + iVar41);" (assignment_expression "puVar27 = (undefined4 *)(iVar16 + iVar41)" identifier = (cast_expression "(undefined4 *)(iVar16 + iVar41)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + iVar41)" ( (binary_expression "iVar16 + iVar41" identifier + identifier) )))) ;) (expression_statement "uVar42 = *puVar35;" (assignment_expression "uVar42 = *puVar35" identifier = (pointer_expression "*puVar35" * identifier)) ;) (expression_statement "puVar21 = puVar27;" (assignment_expression "puVar21 = puVar27" identifier = identifier) ;) (if_statement "if (iVar9 == 0) {\n            uVar8 = *(undefined4 *)(puVar40 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n            *puVar27 = uVar42;\n            *(undefined4 *)(puVar40 + -0x70) = uVar8;\n            iVar38 = iVar28;\n            goto LAB_0007bb8c;\n          }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar8 = *(undefined4 *)(puVar40 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);\n            *puVar27 = uVar42;\n            *(undefined4 *)(puVar40 + -0x70) = uVar8;\n            iVar38 = iVar28;\n            goto LAB_0007bb8c;\n          }" { (expression_statement "uVar8 = *(undefined4 *)(puVar40 + -0x48);" (assignment_expression "uVar8 = *(undefined4 *)(puVar40 + -0x48)" identifier = (pointer_expression "*(undefined4 *)(puVar40 + -0x48)" * (cast_expression "(undefined4 *)(puVar40 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x48)" ( (binary_expression "puVar40 + -0x48" identifier + number_literal) ))))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4)" identifier = (pointer_expression "*(code **)(iVar39 + -0x7ac4)" * (cast_expression "(code **)(iVar39 + -0x7ac4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar39 + -0x7ac4)" ( (binary_expression "iVar39 + -0x7ac4" identifier + number_literal) ))))) ;) (expression_statement "*puVar27 = uVar42;" (assignment_expression "*puVar27 = uVar42" (pointer_expression "*puVar27" * identifier) = identifier) ;) (expression_statement "*(undefined4 *)(puVar40 + -0x70) = uVar8;" (assignment_expression "*(undefined4 *)(puVar40 + -0x70) = uVar8" (pointer_expression "*(undefined4 *)(puVar40 + -0x70)" * (cast_expression "(undefined4 *)(puVar40 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x70)" ( (binary_expression "puVar40 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar38 = iVar28;" (assignment_expression "iVar38 = iVar28" identifier = identifier) ;) (goto_statement "goto LAB_0007bb8c;" goto statement_identifier ;) })) (labeled_statement "LAB_0007b70c:\n          do {\n            puVar35 = puVar35 + 1;\n            *puVar27 = uVar42;\n            iVar9 = iVar9 + -1;\n            uVar42 = *puVar35;\n            puVar27 = puVar27 + 1;\n          } while (iVar9 != 0);" statement_identifier : (do_statement "do {\n            puVar35 = puVar35 + 1;\n            *puVar27 = uVar42;\n            iVar9 = iVar9 + -1;\n            uVar42 = *puVar35;\n            puVar27 = puVar27 + 1;\n          } while (iVar9 != 0);" do (compound_statement "{\n            puVar35 = puVar35 + 1;\n            *puVar27 = uVar42;\n            iVar9 = iVar9 + -1;\n            uVar42 = *puVar35;\n            puVar27 = puVar27 + 1;\n          }" { (expression_statement "puVar35 = puVar35 + 1;" (assignment_expression "puVar35 = puVar35 + 1" identifier = (binary_expression "puVar35 + 1" identifier + number_literal)) ;) (expression_statement "*puVar27 = uVar42;" (assignment_expression "*puVar27 = uVar42" (pointer_expression "*puVar27" * identifier) = identifier) ;) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "uVar42 = *puVar35;" (assignment_expression "uVar42 = *puVar35" identifier = (pointer_expression "*puVar35" * identifier)) ;) (expression_statement "puVar27 = puVar27 + 1;" (assignment_expression "puVar27 = puVar27 + 1" identifier = (binary_expression "puVar27 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) ;)) (expression_statement "uVar8 = *(undefined4 *)(puVar40 + -0x48);" (assignment_expression "uVar8 = *(undefined4 *)(puVar40 + -0x48)" identifier = (pointer_expression "*(undefined4 *)(puVar40 + -0x48)" * (cast_expression "(undefined4 *)(puVar40 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x48)" ( (binary_expression "puVar40 + -0x48" identifier + number_literal) ))))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar39 + -0x7ac4)" identifier = (pointer_expression "*(code **)(iVar39 + -0x7ac4)" * (cast_expression "(code **)(iVar39 + -0x7ac4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar39 + -0x7ac4)" ( (binary_expression "iVar39 + -0x7ac4" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar40 + -0x48) = iVar16;" (assignment_expression "*(int *)(puVar40 + -0x48) = iVar16" (pointer_expression "*(int *)(puVar40 + -0x48)" * (cast_expression "(int *)(puVar40 + -0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x48)" ( (binary_expression "puVar40 + -0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar40 + -0x70) = uVar8;" (assignment_expression "*(undefined4 *)(puVar40 + -0x70) = uVar8" (pointer_expression "*(undefined4 *)(puVar40 + -0x70)" * (cast_expression "(undefined4 *)(puVar40 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x70)" ( (binary_expression "puVar40 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar21[iVar38 + -1] = uVar42;" (assignment_expression "puVar21[iVar38 + -1] = uVar42" (subscript_expression "puVar21[iVar38 + -1]" identifier [ (binary_expression "iVar38 + -1" identifier + number_literal) ]) = identifier) ;) (expression_statement "(*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,iVar28);" (call_expression "(*UNRECOVERED_JUMPTABLE)(iVar16,iVar26,piVar32,iVar28)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(iVar16,iVar26,piVar32,iVar28)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar16 = *(int *)(puVar40 + -0x68);" (assignment_expression "iVar16 = *(int *)(puVar40 + -0x68)" identifier = (pointer_expression "*(int *)(puVar40 + -0x68)" * (cast_expression "(int *)(puVar40 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x68)" ( (binary_expression "puVar40 + -0x68" identifier + number_literal) ))))) ;) (if_statement "if (iVar28 == 0) goto joined_r0x0007b75c;" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (goto_statement "goto joined_r0x0007b75c;" goto statement_identifier ;)) (expression_statement "puVar35 = *(undefined4 **)(puVar40 + -0x48);" (assignment_expression "puVar35 = *(undefined4 **)(puVar40 + -0x48)" identifier = (pointer_expression "*(undefined4 **)(puVar40 + -0x48)" * (cast_expression "(undefined4 **)(puVar40 + -0x48)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x48)" ( (binary_expression "puVar40 + -0x48" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar40 + -0x40) = iVar28 + -1;" (assignment_expression "*(int *)(puVar40 + -0x40) = iVar28 + -1" (pointer_expression "*(int *)(puVar40 + -0x40)" * (cast_expression "(int *)(puVar40 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x40)" ( (binary_expression "puVar40 + -0x40" identifier + number_literal) )))) = (binary_expression "iVar28 + -1" identifier + number_literal)) ;) }))) (expression_statement "iVar38 = *(int *)(puVar40 + -0x40);" (assignment_expression "iVar38 = *(int *)(puVar40 + -0x40)" identifier = (pointer_expression "*(int *)(puVar40 + -0x40)" * (cast_expression "(int *)(puVar40 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x40)" ( (binary_expression "puVar40 + -0x40" identifier + number_literal) ))))) ;) (expression_statement "uVar42 = *puVar35;" (assignment_expression "uVar42 = *puVar35" identifier = (pointer_expression "*puVar35" * identifier)) ;) (expression_statement "puVar27 = puVar33;" (assignment_expression "puVar27 = puVar33" identifier = identifier) ;) (if_statement "if (iVar38 == 0) {\n          *puVar33 = uVar42;\n        }\n        else {\n          do {\n            puVar35 = puVar35 + 1;\n            *puVar27 = uVar42;\n            iVar38 = iVar38 + -1;\n            uVar42 = *puVar35;\n            puVar27 = puVar27 + 1;\n          } while (iVar38 != 0);\n          puVar33[*(int *)(puVar40 + -0x40)] = uVar42;\n        }" if (parenthesized_expression "(iVar38 == 0)" ( (binary_expression "iVar38 == 0" identifier == number_literal) )) (compound_statement "{\n          *puVar33 = uVar42;\n        }" { (expression_statement "*puVar33 = uVar42;" (assignment_expression "*puVar33 = uVar42" (pointer_expression "*puVar33" * identifier) = identifier) ;) }) (else_clause "else {\n          do {\n            puVar35 = puVar35 + 1;\n            *puVar27 = uVar42;\n            iVar38 = iVar38 + -1;\n            uVar42 = *puVar35;\n            puVar27 = puVar27 + 1;\n          } while (iVar38 != 0);\n          puVar33[*(int *)(puVar40 + -0x40)] = uVar42;\n        }" else (compound_statement "{\n          do {\n            puVar35 = puVar35 + 1;\n            *puVar27 = uVar42;\n            iVar38 = iVar38 + -1;\n            uVar42 = *puVar35;\n            puVar27 = puVar27 + 1;\n          } while (iVar38 != 0);\n          puVar33[*(int *)(puVar40 + -0x40)] = uVar42;\n        }" { (do_statement "do {\n            puVar35 = puVar35 + 1;\n            *puVar27 = uVar42;\n            iVar38 = iVar38 + -1;\n            uVar42 = *puVar35;\n            puVar27 = puVar27 + 1;\n          } while (iVar38 != 0);" do (compound_statement "{\n            puVar35 = puVar35 + 1;\n            *puVar27 = uVar42;\n            iVar38 = iVar38 + -1;\n            uVar42 = *puVar35;\n            puVar27 = puVar27 + 1;\n          }" { (expression_statement "puVar35 = puVar35 + 1;" (assignment_expression "puVar35 = puVar35 + 1" identifier = (binary_expression "puVar35 + 1" identifier + number_literal)) ;) (expression_statement "*puVar27 = uVar42;" (assignment_expression "*puVar27 = uVar42" (pointer_expression "*puVar27" * identifier) = identifier) ;) (expression_statement "iVar38 = iVar38 + -1;" (assignment_expression "iVar38 = iVar38 + -1" identifier = (binary_expression "iVar38 + -1" identifier + number_literal)) ;) (expression_statement "uVar42 = *puVar35;" (assignment_expression "uVar42 = *puVar35" identifier = (pointer_expression "*puVar35" * identifier)) ;) (expression_statement "puVar27 = puVar27 + 1;" (assignment_expression "puVar27 = puVar27 + 1" identifier = (binary_expression "puVar27 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar38 != 0)" ( (binary_expression "iVar38 != 0" identifier != number_literal) )) ;) (expression_statement "puVar33[*(int *)(puVar40 + -0x40)] = uVar42;" (assignment_expression "puVar33[*(int *)(puVar40 + -0x40)] = uVar42" (subscript_expression "puVar33[*(int *)(puVar40 + -0x40)]" identifier [ (pointer_expression "*(int *)(puVar40 + -0x40)" * (cast_expression "(int *)(puVar40 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x40)" ( (binary_expression "puVar40 + -0x40" identifier + number_literal) )))) ]) = identifier) ;) }))) }))) (labeled_statement "joined_r0x0007b75c:\n      for (; iVar34 != 0; iVar34 = iVar34 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar16 + -0x7bd0);\n        *(int *)(puVar40 + -0x70) = iVar28;\n        (*UNRECOVERED_JUMPTABLE)(psVar30,puVar36,iVar28,puVar33);\n        puVar36 = puVar36 + iVar28;\n        *(int *)(puVar40 + -0x70) = iVar7;\n        uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))(puVar36,psVar30,piVar32,iVar28);\n        *(int *)(puVar40 + -0x70) = iVar28;\n        (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,puVar36,puVar36,piVar32);\n        iVar16 = *(int *)(puVar40 + -0x68);\n      }" statement_identifier : (for_statement "for (; iVar34 != 0; iVar34 = iVar34 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar16 + -0x7bd0);\n        *(int *)(puVar40 + -0x70) = iVar28;\n        (*UNRECOVERED_JUMPTABLE)(psVar30,puVar36,iVar28,puVar33);\n        puVar36 = puVar36 + iVar28;\n        *(int *)(puVar40 + -0x70) = iVar7;\n        uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))(puVar36,psVar30,piVar32,iVar28);\n        *(int *)(puVar40 + -0x70) = iVar28;\n        (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,puVar36,puVar36,piVar32);\n        iVar16 = *(int *)(puVar40 + -0x68);\n      }" for ( ; (binary_expression "iVar34 != 0" identifier != number_literal) ; (assignment_expression "iVar34 = iVar34 + -1" identifier = (binary_expression "iVar34 + -1" identifier + number_literal)) ) (compound_statement "{\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar16 + -0x7bd0);\n        *(int *)(puVar40 + -0x70) = iVar28;\n        (*UNRECOVERED_JUMPTABLE)(psVar30,puVar36,iVar28,puVar33);\n        puVar36 = puVar36 + iVar28;\n        *(int *)(puVar40 + -0x70) = iVar7;\n        uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))(puVar36,psVar30,piVar32,iVar28);\n        *(int *)(puVar40 + -0x70) = iVar28;\n        (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,puVar36,puVar36,piVar32);\n        iVar16 = *(int *)(puVar40 + -0x68);\n      }" { (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar16 + -0x7bd0);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar16 + -0x7bd0)" identifier = (pointer_expression "*(code **)(iVar16 + -0x7bd0)" * (cast_expression "(code **)(iVar16 + -0x7bd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + -0x7bd0)" ( (binary_expression "iVar16 + -0x7bd0" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar40 + -0x70) = iVar28;" (assignment_expression "*(int *)(puVar40 + -0x70) = iVar28" (pointer_expression "*(int *)(puVar40 + -0x70)" * (cast_expression "(int *)(puVar40 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x70)" ( (binary_expression "puVar40 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*UNRECOVERED_JUMPTABLE)(psVar30,puVar36,iVar28,puVar33);" (call_expression "(*UNRECOVERED_JUMPTABLE)(psVar30,puVar36,iVar28,puVar33)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(psVar30,puVar36,iVar28,puVar33)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar36 = puVar36 + iVar28;" (assignment_expression "puVar36 = puVar36 + iVar28" identifier = (binary_expression "puVar36 + iVar28" identifier + identifier)) ;) (expression_statement "*(int *)(puVar40 + -0x70) = iVar7;" (assignment_expression "*(int *)(puVar40 + -0x70) = iVar7" (pointer_expression "*(int *)(puVar40 + -0x70)" * (cast_expression "(int *)(puVar40 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x70)" ( (binary_expression "puVar40 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))(puVar36,psVar30,piVar32,iVar28);" (assignment_expression "uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))(puVar36,psVar30,piVar32,iVar28)" identifier = (call_expression "(**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))(puVar36,psVar30,piVar32,iVar28)" (parenthesized_expression "(**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))" ( (pointer_expression "**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0)" * (pointer_expression "*(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0)" * (cast_expression "(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar40 + -0x68) + -0x7eb0)" ( (binary_expression "*(int *)(puVar40 + -0x68) + -0x7eb0" (pointer_expression "*(int *)(puVar40 + -0x68)" * (cast_expression "(int *)(puVar40 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x68)" ( (binary_expression "puVar40 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar36,psVar30,piVar32,iVar28)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "*(int *)(puVar40 + -0x70) = iVar28;" (assignment_expression "*(int *)(puVar40 + -0x70) = iVar28" (pointer_expression "*(int *)(puVar40 + -0x70)" * (cast_expression "(int *)(puVar40 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x70)" ( (binary_expression "puVar40 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "(**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,puVar36,puVar36,piVar32);" (call_expression "(**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,puVar36,puVar36,piVar32)" (parenthesized_expression "(**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))" ( (pointer_expression "**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70)" * (pointer_expression "*(code **)(*(int *)(puVar40 + -0x68) + -0x7a70)" * (cast_expression "(code **)(*(int *)(puVar40 + -0x68) + -0x7a70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar40 + -0x68) + -0x7a70)" ( (binary_expression "*(int *)(puVar40 + -0x68) + -0x7a70" (pointer_expression "*(int *)(puVar40 + -0x68)" * (cast_expression "(int *)(puVar40 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x68)" ( (binary_expression "puVar40 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar42,puVar36,puVar36,piVar32)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar16 = *(int *)(puVar40 + -0x68);" (assignment_expression "iVar16 = *(int *)(puVar40 + -0x68)" identifier = (pointer_expression "*(int *)(puVar40 + -0x68)" * (cast_expression "(int *)(puVar40 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x68)" ( (binary_expression "puVar40 + -0x68" identifier + number_literal) ))))) ;) }))) (if_statement "if (*(uint *)(puVar40 + -0x5c) <= *(uint *)(puVar40 + -0x60)) {\n        uVar4 = *(int *)(puVar40 + -0x60) - *(uint *)(puVar40 + -0x5c);\n        uVar13 = 0x20 - (uVar4 & 0x1f);\n        puVar12 = (uint *)(*(int *)(puVar40 + -0x4c) + (uVar4 >> 5) * 4);\n        uVar5 = *puVar12 >> (uVar4 & 0x1f);\n        if ((int)uVar13 < *(int *)(puVar40 + -0x58)) {\n          uVar5 = uVar5 + (puVar12[1] << (uVar13 & 0x1f));\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar16 + -0x7bac);\n        *(int *)(puVar40 + -0x44) = ~(-1 << (*(uint *)(puVar40 + -0x58) & 0x1f));\n        *(uint *)(puVar40 + -0x70) = ~(-1 << (*(uint *)(puVar40 + -0x58) & 0x1f)) & uVar5;\n        (*UNRECOVERED_JUMPTABLE)\n                  (ptVar15,*(undefined4 *)(puVar40 + -0x54),iVar28,*(undefined4 *)(puVar40 + -0x50))\n        ;\n        iVar34 = *(int *)(puVar40 + -0x68);\n        if (uVar4 != 0) {\n          *(uint *)(puVar40 + -0x48) = (uint)(iVar28 < 0x39);\n          do {\n            if (uVar4 < *(uint *)(puVar40 + -0x5c)) {\n              uVar13 = 0;\n              *(uint *)(puVar40 + -0x60) = ~(-1 << (uVar4 & 0x1f)) & **(uint **)(puVar40 + -0x4c);\n            }\n            else {\n              uVar13 = uVar4 - *(int *)(puVar40 + -0x5c);\n              uVar4 = 0x20 - (uVar13 & 0x1f);\n              puVar12 = (uint *)(*(int *)(puVar40 + -0x4c) + (uVar13 >> 5) * 4);\n              uVar5 = *puVar12 >> (uVar13 & 0x1f);\n              if ((int)uVar4 < *(int *)(puVar40 + -0x58)) {\n                uVar5 = uVar5 + (puVar12[1] << (uVar4 & 0x1f));\n              }\n              uVar4 = *(uint *)(puVar40 + -0x58);\n              *(uint *)(puVar40 + -0x60) = *(uint *)(puVar40 + -0x44) & uVar5;\n            }\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);\n            if (*(int *)(puVar40 + -0x48) == 0) {\n              do {\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bd0);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28,ptVar15);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n              } while (uVar4 != 0);\n              uVar42 = *(undefined4 *)(puVar40 + -0x60);\n            }\n            else {\n              while( true ) {\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n                if (uVar4 == 0) break;\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);\n              }\n              uVar42 = *(undefined4 *)(puVar40 + -0x60);\n            }\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bac);\n            *(undefined4 *)(puVar40 + -0x70) = uVar42;\n            (*UNRECOVERED_JUMPTABLE)\n                      (psVar30 + iVar28 * 2,*(undefined4 *)(puVar40 + -0x54),iVar28,\n                       *(undefined4 *)(puVar40 + -0x50));\n            *(int *)(puVar40 + -0x70) = iVar28;\n            (**(code **)(*(int *)(puVar40 + -0x68) + -0x7bd0))\n                      (psVar30,ptVar15,iVar28,psVar30 + iVar28 * 2);\n            *(int *)(puVar40 + -0x70) = iVar7;\n            uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                               (ptVar15,psVar30,piVar32,iVar28);\n            *(int *)(puVar40 + -0x70) = iVar28;\n            (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n            iVar34 = *(int *)(puVar40 + -0x68);\n            uVar4 = uVar13;\n          } while (uVar13 != 0);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7eb0);\n        if (iVar28 != 0) {\n          iVar16 = iVar28 + -1;\n          ptVar22 = ptVar15->next;\n          psVar10 = psVar30;\n          ptVar17 = ptVar15;\n          if (iVar16 != 0) {\n            do {\n              *psVar10 = (size_t)ptVar22;\n              iVar16 = iVar16 + -1;\n              ptVar22 = (tmp_reentrant_t *)ptVar17->size;\n              psVar10 = psVar10 + 1;\n              ptVar17 = (tmp_reentrant_t *)&ptVar17->size;\n            } while (iVar16 != 0);\n            psVar10 = psVar30 + iVar28 + -1;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7d58);\n          *psVar10 = (size_t)ptVar22;\n          (*UNRECOVERED_JUMPTABLE)(psVar30 + iVar28,0,iVar41);\n          UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0);\n        }\n        *(int *)(puVar40 + -0x70) = iVar7;\n        uVar42 = (*UNRECOVERED_JUMPTABLE)(ptVar15,psVar30,piVar32,iVar28);\n        *(int *)(puVar40 + -0x70) = iVar28;\n        (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n        iVar34 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7b2c))(psVar30,ptVar15,piVar32,iVar28);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7a70);\n        *(int *)(puVar40 + 0x10) = iVar28;\n                    /* WARNING: Could not recover jumptable at 0x0007bab0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*UNRECOVERED_JUMPTABLE)(iVar34 == 0,ptVar15,ptVar15,piVar32);\n        return;\n      }" if (parenthesized_expression "(*(uint *)(puVar40 + -0x5c) <= *(uint *)(puVar40 + -0x60))" ( (binary_expression "*(uint *)(puVar40 + -0x5c) <= *(uint *)(puVar40 + -0x60)" (pointer_expression "*(uint *)(puVar40 + -0x5c)" * (cast_expression "(uint *)(puVar40 + -0x5c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x5c)" ( (binary_expression "puVar40 + -0x5c" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(puVar40 + -0x60)" * (cast_expression "(uint *)(puVar40 + -0x60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x60)" ( (binary_expression "puVar40 + -0x60" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar4 = *(int *)(puVar40 + -0x60) - *(uint *)(puVar40 + -0x5c);\n        uVar13 = 0x20 - (uVar4 & 0x1f);\n        puVar12 = (uint *)(*(int *)(puVar40 + -0x4c) + (uVar4 >> 5) * 4);\n        uVar5 = *puVar12 >> (uVar4 & 0x1f);\n        if ((int)uVar13 < *(int *)(puVar40 + -0x58)) {\n          uVar5 = uVar5 + (puVar12[1] << (uVar13 & 0x1f));\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar16 + -0x7bac);\n        *(int *)(puVar40 + -0x44) = ~(-1 << (*(uint *)(puVar40 + -0x58) & 0x1f));\n        *(uint *)(puVar40 + -0x70) = ~(-1 << (*(uint *)(puVar40 + -0x58) & 0x1f)) & uVar5;\n        (*UNRECOVERED_JUMPTABLE)\n                  (ptVar15,*(undefined4 *)(puVar40 + -0x54),iVar28,*(undefined4 *)(puVar40 + -0x50))\n        ;\n        iVar34 = *(int *)(puVar40 + -0x68);\n        if (uVar4 != 0) {\n          *(uint *)(puVar40 + -0x48) = (uint)(iVar28 < 0x39);\n          do {\n            if (uVar4 < *(uint *)(puVar40 + -0x5c)) {\n              uVar13 = 0;\n              *(uint *)(puVar40 + -0x60) = ~(-1 << (uVar4 & 0x1f)) & **(uint **)(puVar40 + -0x4c);\n            }\n            else {\n              uVar13 = uVar4 - *(int *)(puVar40 + -0x5c);\n              uVar4 = 0x20 - (uVar13 & 0x1f);\n              puVar12 = (uint *)(*(int *)(puVar40 + -0x4c) + (uVar13 >> 5) * 4);\n              uVar5 = *puVar12 >> (uVar13 & 0x1f);\n              if ((int)uVar4 < *(int *)(puVar40 + -0x58)) {\n                uVar5 = uVar5 + (puVar12[1] << (uVar4 & 0x1f));\n              }\n              uVar4 = *(uint *)(puVar40 + -0x58);\n              *(uint *)(puVar40 + -0x60) = *(uint *)(puVar40 + -0x44) & uVar5;\n            }\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);\n            if (*(int *)(puVar40 + -0x48) == 0) {\n              do {\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bd0);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28,ptVar15);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n              } while (uVar4 != 0);\n              uVar42 = *(undefined4 *)(puVar40 + -0x60);\n            }\n            else {\n              while( true ) {\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n                if (uVar4 == 0) break;\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);\n              }\n              uVar42 = *(undefined4 *)(puVar40 + -0x60);\n            }\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bac);\n            *(undefined4 *)(puVar40 + -0x70) = uVar42;\n            (*UNRECOVERED_JUMPTABLE)\n                      (psVar30 + iVar28 * 2,*(undefined4 *)(puVar40 + -0x54),iVar28,\n                       *(undefined4 *)(puVar40 + -0x50));\n            *(int *)(puVar40 + -0x70) = iVar28;\n            (**(code **)(*(int *)(puVar40 + -0x68) + -0x7bd0))\n                      (psVar30,ptVar15,iVar28,psVar30 + iVar28 * 2);\n            *(int *)(puVar40 + -0x70) = iVar7;\n            uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                               (ptVar15,psVar30,piVar32,iVar28);\n            *(int *)(puVar40 + -0x70) = iVar28;\n            (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n            iVar34 = *(int *)(puVar40 + -0x68);\n            uVar4 = uVar13;\n          } while (uVar13 != 0);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7eb0);\n        if (iVar28 != 0) {\n          iVar16 = iVar28 + -1;\n          ptVar22 = ptVar15->next;\n          psVar10 = psVar30;\n          ptVar17 = ptVar15;\n          if (iVar16 != 0) {\n            do {\n              *psVar10 = (size_t)ptVar22;\n              iVar16 = iVar16 + -1;\n              ptVar22 = (tmp_reentrant_t *)ptVar17->size;\n              psVar10 = psVar10 + 1;\n              ptVar17 = (tmp_reentrant_t *)&ptVar17->size;\n            } while (iVar16 != 0);\n            psVar10 = psVar30 + iVar28 + -1;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7d58);\n          *psVar10 = (size_t)ptVar22;\n          (*UNRECOVERED_JUMPTABLE)(psVar30 + iVar28,0,iVar41);\n          UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0);\n        }\n        *(int *)(puVar40 + -0x70) = iVar7;\n        uVar42 = (*UNRECOVERED_JUMPTABLE)(ptVar15,psVar30,piVar32,iVar28);\n        *(int *)(puVar40 + -0x70) = iVar28;\n        (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n        iVar34 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7b2c))(psVar30,ptVar15,piVar32,iVar28);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7a70);\n        *(int *)(puVar40 + 0x10) = iVar28;\n                    /* WARNING: Could not recover jumptable at 0x0007bab0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*UNRECOVERED_JUMPTABLE)(iVar34 == 0,ptVar15,ptVar15,piVar32);\n        return;\n      }" { (expression_statement "uVar4 = *(int *)(puVar40 + -0x60) - *(uint *)(puVar40 + -0x5c);" (assignment_expression "uVar4 = *(int *)(puVar40 + -0x60) - *(uint *)(puVar40 + -0x5c)" identifier = (binary_expression "*(int *)(puVar40 + -0x60) - *(uint *)(puVar40 + -0x5c)" (pointer_expression "*(int *)(puVar40 + -0x60)" * (cast_expression "(int *)(puVar40 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x60)" ( (binary_expression "puVar40 + -0x60" identifier + number_literal) )))) - (pointer_expression "*(uint *)(puVar40 + -0x5c)" * (cast_expression "(uint *)(puVar40 + -0x5c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x5c)" ( (binary_expression "puVar40 + -0x5c" identifier + number_literal) )))))) ;) (expression_statement "uVar13 = 0x20 - (uVar4 & 0x1f);" (assignment_expression "uVar13 = 0x20 - (uVar4 & 0x1f)" identifier = (binary_expression "0x20 - (uVar4 & 0x1f)" number_literal - (parenthesized_expression "(uVar4 & 0x1f)" ( (binary_expression "uVar4 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "puVar12 = (uint *)(*(int *)(puVar40 + -0x4c) + (uVar4 >> 5) * 4);" (assignment_expression "puVar12 = (uint *)(*(int *)(puVar40 + -0x4c) + (uVar4 >> 5) * 4)" identifier = (cast_expression "(uint *)(*(int *)(puVar40 + -0x4c) + (uVar4 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar40 + -0x4c) + (uVar4 >> 5) * 4)" ( (binary_expression "*(int *)(puVar40 + -0x4c) + (uVar4 >> 5) * 4" (pointer_expression "*(int *)(puVar40 + -0x4c)" * (cast_expression "(int *)(puVar40 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x4c)" ( (binary_expression "puVar40 + -0x4c" identifier + number_literal) )))) + (binary_expression "(uVar4 >> 5) * 4" (parenthesized_expression "(uVar4 >> 5)" ( (binary_expression "uVar4 >> 5" identifier >> number_literal) )) * number_literal)) )))) ;) (expression_statement "uVar5 = *puVar12 >> (uVar4 & 0x1f);" (assignment_expression "uVar5 = *puVar12 >> (uVar4 & 0x1f)" identifier = (binary_expression "*puVar12 >> (uVar4 & 0x1f)" (pointer_expression "*puVar12" * identifier) >> (parenthesized_expression "(uVar4 & 0x1f)" ( (binary_expression "uVar4 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if ((int)uVar13 < *(int *)(puVar40 + -0x58)) {\n          uVar5 = uVar5 + (puVar12[1] << (uVar13 & 0x1f));\n        }" if (parenthesized_expression "((int)uVar13 < *(int *)(puVar40 + -0x58))" ( (binary_expression "(int)uVar13 < *(int *)(puVar40 + -0x58)" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(puVar40 + -0x58)" * (cast_expression "(int *)(puVar40 + -0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x58)" ( (binary_expression "puVar40 + -0x58" identifier + number_literal) ))))) )) (compound_statement "{\n          uVar5 = uVar5 + (puVar12[1] << (uVar13 & 0x1f));\n        }" { (expression_statement "uVar5 = uVar5 + (puVar12[1] << (uVar13 & 0x1f));" (assignment_expression "uVar5 = uVar5 + (puVar12[1] << (uVar13 & 0x1f))" identifier = (binary_expression "uVar5 + (puVar12[1] << (uVar13 & 0x1f))" identifier + (parenthesized_expression "(puVar12[1] << (uVar13 & 0x1f))" ( (binary_expression "puVar12[1] << (uVar13 & 0x1f)" (subscript_expression "puVar12[1]" identifier [ number_literal ]) << (parenthesized_expression "(uVar13 & 0x1f)" ( (binary_expression "uVar13 & 0x1f" identifier & number_literal) ))) )))) ;) })) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar16 + -0x7bac);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar16 + -0x7bac)" identifier = (pointer_expression "*(code **)(iVar16 + -0x7bac)" * (cast_expression "(code **)(iVar16 + -0x7bac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + -0x7bac)" ( (binary_expression "iVar16 + -0x7bac" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar40 + -0x44) = ~(-1 << (*(uint *)(puVar40 + -0x58) & 0x1f));" (assignment_expression "*(int *)(puVar40 + -0x44) = ~(-1 << (*(uint *)(puVar40 + -0x58) & 0x1f))" (pointer_expression "*(int *)(puVar40 + -0x44)" * (cast_expression "(int *)(puVar40 + -0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x44)" ( (binary_expression "puVar40 + -0x44" identifier + number_literal) )))) = (unary_expression "~(-1 << (*(uint *)(puVar40 + -0x58) & 0x1f))" ~ (parenthesized_expression "(-1 << (*(uint *)(puVar40 + -0x58) & 0x1f))" ( (binary_expression "-1 << (*(uint *)(puVar40 + -0x58) & 0x1f)" number_literal << (parenthesized_expression "(*(uint *)(puVar40 + -0x58) & 0x1f)" ( (binary_expression "*(uint *)(puVar40 + -0x58) & 0x1f" (pointer_expression "*(uint *)(puVar40 + -0x58)" * (cast_expression "(uint *)(puVar40 + -0x58)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x58)" ( (binary_expression "puVar40 + -0x58" identifier + number_literal) )))) & number_literal) ))) )))) ;) (expression_statement "*(uint *)(puVar40 + -0x70) = ~(-1 << (*(uint *)(puVar40 + -0x58) & 0x1f)) & uVar5;" (assignment_expression "*(uint *)(puVar40 + -0x70) = ~(-1 << (*(uint *)(puVar40 + -0x58) & 0x1f)) & uVar5" (pointer_expression "*(uint *)(puVar40 + -0x70)" * (cast_expression "(uint *)(puVar40 + -0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x70)" ( (binary_expression "puVar40 + -0x70" identifier + number_literal) )))) = (binary_expression "~(-1 << (*(uint *)(puVar40 + -0x58) & 0x1f)) & uVar5" (unary_expression "~(-1 << (*(uint *)(puVar40 + -0x58) & 0x1f))" ~ (parenthesized_expression "(-1 << (*(uint *)(puVar40 + -0x58) & 0x1f))" ( (binary_expression "-1 << (*(uint *)(puVar40 + -0x58) & 0x1f)" number_literal << (parenthesized_expression "(*(uint *)(puVar40 + -0x58) & 0x1f)" ( (binary_expression "*(uint *)(puVar40 + -0x58) & 0x1f" (pointer_expression "*(uint *)(puVar40 + -0x58)" * (cast_expression "(uint *)(puVar40 + -0x58)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x58)" ( (binary_expression "puVar40 + -0x58" identifier + number_literal) )))) & number_literal) ))) ))) & identifier)) ;) (expression_statement "(*UNRECOVERED_JUMPTABLE)\n                  (ptVar15,*(undefined4 *)(puVar40 + -0x54),iVar28,*(undefined4 *)(puVar40 + -0x50))\n        ;" (call_expression "(*UNRECOVERED_JUMPTABLE)\n                  (ptVar15,*(undefined4 *)(puVar40 + -0x54),iVar28,*(undefined4 *)(puVar40 + -0x50))" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(ptVar15,*(undefined4 *)(puVar40 + -0x54),iVar28,*(undefined4 *)(puVar40 + -0x50))" ( identifier , (pointer_expression "*(undefined4 *)(puVar40 + -0x54)" * (cast_expression "(undefined4 *)(puVar40 + -0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x54)" ( (binary_expression "puVar40 + -0x54" identifier + number_literal) )))) , identifier , (pointer_expression "*(undefined4 *)(puVar40 + -0x50)" * (cast_expression "(undefined4 *)(puVar40 + -0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x50)" ( (binary_expression "puVar40 + -0x50" identifier + number_literal) )))) ))) ;) (expression_statement "iVar34 = *(int *)(puVar40 + -0x68);" (assignment_expression "iVar34 = *(int *)(puVar40 + -0x68)" identifier = (pointer_expression "*(int *)(puVar40 + -0x68)" * (cast_expression "(int *)(puVar40 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x68)" ( (binary_expression "puVar40 + -0x68" identifier + number_literal) ))))) ;) (if_statement "if (uVar4 != 0) {\n          *(uint *)(puVar40 + -0x48) = (uint)(iVar28 < 0x39);\n          do {\n            if (uVar4 < *(uint *)(puVar40 + -0x5c)) {\n              uVar13 = 0;\n              *(uint *)(puVar40 + -0x60) = ~(-1 << (uVar4 & 0x1f)) & **(uint **)(puVar40 + -0x4c);\n            }\n            else {\n              uVar13 = uVar4 - *(int *)(puVar40 + -0x5c);\n              uVar4 = 0x20 - (uVar13 & 0x1f);\n              puVar12 = (uint *)(*(int *)(puVar40 + -0x4c) + (uVar13 >> 5) * 4);\n              uVar5 = *puVar12 >> (uVar13 & 0x1f);\n              if ((int)uVar4 < *(int *)(puVar40 + -0x58)) {\n                uVar5 = uVar5 + (puVar12[1] << (uVar4 & 0x1f));\n              }\n              uVar4 = *(uint *)(puVar40 + -0x58);\n              *(uint *)(puVar40 + -0x60) = *(uint *)(puVar40 + -0x44) & uVar5;\n            }\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);\n            if (*(int *)(puVar40 + -0x48) == 0) {\n              do {\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bd0);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28,ptVar15);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n              } while (uVar4 != 0);\n              uVar42 = *(undefined4 *)(puVar40 + -0x60);\n            }\n            else {\n              while( true ) {\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n                if (uVar4 == 0) break;\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);\n              }\n              uVar42 = *(undefined4 *)(puVar40 + -0x60);\n            }\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bac);\n            *(undefined4 *)(puVar40 + -0x70) = uVar42;\n            (*UNRECOVERED_JUMPTABLE)\n                      (psVar30 + iVar28 * 2,*(undefined4 *)(puVar40 + -0x54),iVar28,\n                       *(undefined4 *)(puVar40 + -0x50));\n            *(int *)(puVar40 + -0x70) = iVar28;\n            (**(code **)(*(int *)(puVar40 + -0x68) + -0x7bd0))\n                      (psVar30,ptVar15,iVar28,psVar30 + iVar28 * 2);\n            *(int *)(puVar40 + -0x70) = iVar7;\n            uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                               (ptVar15,psVar30,piVar32,iVar28);\n            *(int *)(puVar40 + -0x70) = iVar28;\n            (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n            iVar34 = *(int *)(puVar40 + -0x68);\n            uVar4 = uVar13;\n          } while (uVar13 != 0);\n        }" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (compound_statement "{\n          *(uint *)(puVar40 + -0x48) = (uint)(iVar28 < 0x39);\n          do {\n            if (uVar4 < *(uint *)(puVar40 + -0x5c)) {\n              uVar13 = 0;\n              *(uint *)(puVar40 + -0x60) = ~(-1 << (uVar4 & 0x1f)) & **(uint **)(puVar40 + -0x4c);\n            }\n            else {\n              uVar13 = uVar4 - *(int *)(puVar40 + -0x5c);\n              uVar4 = 0x20 - (uVar13 & 0x1f);\n              puVar12 = (uint *)(*(int *)(puVar40 + -0x4c) + (uVar13 >> 5) * 4);\n              uVar5 = *puVar12 >> (uVar13 & 0x1f);\n              if ((int)uVar4 < *(int *)(puVar40 + -0x58)) {\n                uVar5 = uVar5 + (puVar12[1] << (uVar4 & 0x1f));\n              }\n              uVar4 = *(uint *)(puVar40 + -0x58);\n              *(uint *)(puVar40 + -0x60) = *(uint *)(puVar40 + -0x44) & uVar5;\n            }\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);\n            if (*(int *)(puVar40 + -0x48) == 0) {\n              do {\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bd0);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28,ptVar15);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n              } while (uVar4 != 0);\n              uVar42 = *(undefined4 *)(puVar40 + -0x60);\n            }\n            else {\n              while( true ) {\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n                if (uVar4 == 0) break;\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);\n              }\n              uVar42 = *(undefined4 *)(puVar40 + -0x60);\n            }\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bac);\n            *(undefined4 *)(puVar40 + -0x70) = uVar42;\n            (*UNRECOVERED_JUMPTABLE)\n                      (psVar30 + iVar28 * 2,*(undefined4 *)(puVar40 + -0x54),iVar28,\n                       *(undefined4 *)(puVar40 + -0x50));\n            *(int *)(puVar40 + -0x70) = iVar28;\n            (**(code **)(*(int *)(puVar40 + -0x68) + -0x7bd0))\n                      (psVar30,ptVar15,iVar28,psVar30 + iVar28 * 2);\n            *(int *)(puVar40 + -0x70) = iVar7;\n            uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                               (ptVar15,psVar30,piVar32,iVar28);\n            *(int *)(puVar40 + -0x70) = iVar28;\n            (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n            iVar34 = *(int *)(puVar40 + -0x68);\n            uVar4 = uVar13;\n          } while (uVar13 != 0);\n        }" { (expression_statement "*(uint *)(puVar40 + -0x48) = (uint)(iVar28 < 0x39);" (assignment_expression "*(uint *)(puVar40 + -0x48) = (uint)(iVar28 < 0x39)" (pointer_expression "*(uint *)(puVar40 + -0x48)" * (cast_expression "(uint *)(puVar40 + -0x48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x48)" ( (binary_expression "puVar40 + -0x48" identifier + number_literal) )))) = (call_expression "(uint)(iVar28 < 0x39)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar28 < 0x39)" ( (binary_expression "iVar28 < 0x39" identifier < number_literal) )))) ;) (do_statement "do {\n            if (uVar4 < *(uint *)(puVar40 + -0x5c)) {\n              uVar13 = 0;\n              *(uint *)(puVar40 + -0x60) = ~(-1 << (uVar4 & 0x1f)) & **(uint **)(puVar40 + -0x4c);\n            }\n            else {\n              uVar13 = uVar4 - *(int *)(puVar40 + -0x5c);\n              uVar4 = 0x20 - (uVar13 & 0x1f);\n              puVar12 = (uint *)(*(int *)(puVar40 + -0x4c) + (uVar13 >> 5) * 4);\n              uVar5 = *puVar12 >> (uVar13 & 0x1f);\n              if ((int)uVar4 < *(int *)(puVar40 + -0x58)) {\n                uVar5 = uVar5 + (puVar12[1] << (uVar4 & 0x1f));\n              }\n              uVar4 = *(uint *)(puVar40 + -0x58);\n              *(uint *)(puVar40 + -0x60) = *(uint *)(puVar40 + -0x44) & uVar5;\n            }\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);\n            if (*(int *)(puVar40 + -0x48) == 0) {\n              do {\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bd0);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28,ptVar15);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n              } while (uVar4 != 0);\n              uVar42 = *(undefined4 *)(puVar40 + -0x60);\n            }\n            else {\n              while( true ) {\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n                if (uVar4 == 0) break;\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);\n              }\n              uVar42 = *(undefined4 *)(puVar40 + -0x60);\n            }\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bac);\n            *(undefined4 *)(puVar40 + -0x70) = uVar42;\n            (*UNRECOVERED_JUMPTABLE)\n                      (psVar30 + iVar28 * 2,*(undefined4 *)(puVar40 + -0x54),iVar28,\n                       *(undefined4 *)(puVar40 + -0x50));\n            *(int *)(puVar40 + -0x70) = iVar28;\n            (**(code **)(*(int *)(puVar40 + -0x68) + -0x7bd0))\n                      (psVar30,ptVar15,iVar28,psVar30 + iVar28 * 2);\n            *(int *)(puVar40 + -0x70) = iVar7;\n            uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                               (ptVar15,psVar30,piVar32,iVar28);\n            *(int *)(puVar40 + -0x70) = iVar28;\n            (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n            iVar34 = *(int *)(puVar40 + -0x68);\n            uVar4 = uVar13;\n          } while (uVar13 != 0);" do (compound_statement "{\n            if (uVar4 < *(uint *)(puVar40 + -0x5c)) {\n              uVar13 = 0;\n              *(uint *)(puVar40 + -0x60) = ~(-1 << (uVar4 & 0x1f)) & **(uint **)(puVar40 + -0x4c);\n            }\n            else {\n              uVar13 = uVar4 - *(int *)(puVar40 + -0x5c);\n              uVar4 = 0x20 - (uVar13 & 0x1f);\n              puVar12 = (uint *)(*(int *)(puVar40 + -0x4c) + (uVar13 >> 5) * 4);\n              uVar5 = *puVar12 >> (uVar13 & 0x1f);\n              if ((int)uVar4 < *(int *)(puVar40 + -0x58)) {\n                uVar5 = uVar5 + (puVar12[1] << (uVar4 & 0x1f));\n              }\n              uVar4 = *(uint *)(puVar40 + -0x58);\n              *(uint *)(puVar40 + -0x60) = *(uint *)(puVar40 + -0x44) & uVar5;\n            }\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);\n            if (*(int *)(puVar40 + -0x48) == 0) {\n              do {\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bd0);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28,ptVar15);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n              } while (uVar4 != 0);\n              uVar42 = *(undefined4 *)(puVar40 + -0x60);\n            }\n            else {\n              while( true ) {\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n                if (uVar4 == 0) break;\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);\n              }\n              uVar42 = *(undefined4 *)(puVar40 + -0x60);\n            }\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bac);\n            *(undefined4 *)(puVar40 + -0x70) = uVar42;\n            (*UNRECOVERED_JUMPTABLE)\n                      (psVar30 + iVar28 * 2,*(undefined4 *)(puVar40 + -0x54),iVar28,\n                       *(undefined4 *)(puVar40 + -0x50));\n            *(int *)(puVar40 + -0x70) = iVar28;\n            (**(code **)(*(int *)(puVar40 + -0x68) + -0x7bd0))\n                      (psVar30,ptVar15,iVar28,psVar30 + iVar28 * 2);\n            *(int *)(puVar40 + -0x70) = iVar7;\n            uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                               (ptVar15,psVar30,piVar32,iVar28);\n            *(int *)(puVar40 + -0x70) = iVar28;\n            (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n            iVar34 = *(int *)(puVar40 + -0x68);\n            uVar4 = uVar13;\n          }" { (if_statement "if (uVar4 < *(uint *)(puVar40 + -0x5c)) {\n              uVar13 = 0;\n              *(uint *)(puVar40 + -0x60) = ~(-1 << (uVar4 & 0x1f)) & **(uint **)(puVar40 + -0x4c);\n            }\n            else {\n              uVar13 = uVar4 - *(int *)(puVar40 + -0x5c);\n              uVar4 = 0x20 - (uVar13 & 0x1f);\n              puVar12 = (uint *)(*(int *)(puVar40 + -0x4c) + (uVar13 >> 5) * 4);\n              uVar5 = *puVar12 >> (uVar13 & 0x1f);\n              if ((int)uVar4 < *(int *)(puVar40 + -0x58)) {\n                uVar5 = uVar5 + (puVar12[1] << (uVar4 & 0x1f));\n              }\n              uVar4 = *(uint *)(puVar40 + -0x58);\n              *(uint *)(puVar40 + -0x60) = *(uint *)(puVar40 + -0x44) & uVar5;\n            }" if (parenthesized_expression "(uVar4 < *(uint *)(puVar40 + -0x5c))" ( (binary_expression "uVar4 < *(uint *)(puVar40 + -0x5c)" identifier < (pointer_expression "*(uint *)(puVar40 + -0x5c)" * (cast_expression "(uint *)(puVar40 + -0x5c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x5c)" ( (binary_expression "puVar40 + -0x5c" identifier + number_literal) ))))) )) (compound_statement "{\n              uVar13 = 0;\n              *(uint *)(puVar40 + -0x60) = ~(-1 << (uVar4 & 0x1f)) & **(uint **)(puVar40 + -0x4c);\n            }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (expression_statement "*(uint *)(puVar40 + -0x60) = ~(-1 << (uVar4 & 0x1f)) & **(uint **)(puVar40 + -0x4c);" (assignment_expression "*(uint *)(puVar40 + -0x60) = ~(-1 << (uVar4 & 0x1f)) & **(uint **)(puVar40 + -0x4c)" (pointer_expression "*(uint *)(puVar40 + -0x60)" * (cast_expression "(uint *)(puVar40 + -0x60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x60)" ( (binary_expression "puVar40 + -0x60" identifier + number_literal) )))) = (binary_expression "~(-1 << (uVar4 & 0x1f)) & **(uint **)(puVar40 + -0x4c)" (unary_expression "~(-1 << (uVar4 & 0x1f))" ~ (parenthesized_expression "(-1 << (uVar4 & 0x1f))" ( (binary_expression "-1 << (uVar4 & 0x1f)" number_literal << (parenthesized_expression "(uVar4 & 0x1f)" ( (binary_expression "uVar4 & 0x1f" identifier & number_literal) ))) ))) & (pointer_expression "**(uint **)(puVar40 + -0x4c)" * (pointer_expression "*(uint **)(puVar40 + -0x4c)" * (cast_expression "(uint **)(puVar40 + -0x4c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x4c)" ( (binary_expression "puVar40 + -0x4c" identifier + number_literal) ))))))) ;) }) (else_clause "else {\n              uVar13 = uVar4 - *(int *)(puVar40 + -0x5c);\n              uVar4 = 0x20 - (uVar13 & 0x1f);\n              puVar12 = (uint *)(*(int *)(puVar40 + -0x4c) + (uVar13 >> 5) * 4);\n              uVar5 = *puVar12 >> (uVar13 & 0x1f);\n              if ((int)uVar4 < *(int *)(puVar40 + -0x58)) {\n                uVar5 = uVar5 + (puVar12[1] << (uVar4 & 0x1f));\n              }\n              uVar4 = *(uint *)(puVar40 + -0x58);\n              *(uint *)(puVar40 + -0x60) = *(uint *)(puVar40 + -0x44) & uVar5;\n            }" else (compound_statement "{\n              uVar13 = uVar4 - *(int *)(puVar40 + -0x5c);\n              uVar4 = 0x20 - (uVar13 & 0x1f);\n              puVar12 = (uint *)(*(int *)(puVar40 + -0x4c) + (uVar13 >> 5) * 4);\n              uVar5 = *puVar12 >> (uVar13 & 0x1f);\n              if ((int)uVar4 < *(int *)(puVar40 + -0x58)) {\n                uVar5 = uVar5 + (puVar12[1] << (uVar4 & 0x1f));\n              }\n              uVar4 = *(uint *)(puVar40 + -0x58);\n              *(uint *)(puVar40 + -0x60) = *(uint *)(puVar40 + -0x44) & uVar5;\n            }" { (expression_statement "uVar13 = uVar4 - *(int *)(puVar40 + -0x5c);" (assignment_expression "uVar13 = uVar4 - *(int *)(puVar40 + -0x5c)" identifier = (binary_expression "uVar4 - *(int *)(puVar40 + -0x5c)" identifier - (pointer_expression "*(int *)(puVar40 + -0x5c)" * (cast_expression "(int *)(puVar40 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x5c)" ( (binary_expression "puVar40 + -0x5c" identifier + number_literal) )))))) ;) (expression_statement "uVar4 = 0x20 - (uVar13 & 0x1f);" (assignment_expression "uVar4 = 0x20 - (uVar13 & 0x1f)" identifier = (binary_expression "0x20 - (uVar13 & 0x1f)" number_literal - (parenthesized_expression "(uVar13 & 0x1f)" ( (binary_expression "uVar13 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "puVar12 = (uint *)(*(int *)(puVar40 + -0x4c) + (uVar13 >> 5) * 4);" (assignment_expression "puVar12 = (uint *)(*(int *)(puVar40 + -0x4c) + (uVar13 >> 5) * 4)" identifier = (cast_expression "(uint *)(*(int *)(puVar40 + -0x4c) + (uVar13 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar40 + -0x4c) + (uVar13 >> 5) * 4)" ( (binary_expression "*(int *)(puVar40 + -0x4c) + (uVar13 >> 5) * 4" (pointer_expression "*(int *)(puVar40 + -0x4c)" * (cast_expression "(int *)(puVar40 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x4c)" ( (binary_expression "puVar40 + -0x4c" identifier + number_literal) )))) + (binary_expression "(uVar13 >> 5) * 4" (parenthesized_expression "(uVar13 >> 5)" ( (binary_expression "uVar13 >> 5" identifier >> number_literal) )) * number_literal)) )))) ;) (expression_statement "uVar5 = *puVar12 >> (uVar13 & 0x1f);" (assignment_expression "uVar5 = *puVar12 >> (uVar13 & 0x1f)" identifier = (binary_expression "*puVar12 >> (uVar13 & 0x1f)" (pointer_expression "*puVar12" * identifier) >> (parenthesized_expression "(uVar13 & 0x1f)" ( (binary_expression "uVar13 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if ((int)uVar4 < *(int *)(puVar40 + -0x58)) {\n                uVar5 = uVar5 + (puVar12[1] << (uVar4 & 0x1f));\n              }" if (parenthesized_expression "((int)uVar4 < *(int *)(puVar40 + -0x58))" ( (binary_expression "(int)uVar4 < *(int *)(puVar40 + -0x58)" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(puVar40 + -0x58)" * (cast_expression "(int *)(puVar40 + -0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x58)" ( (binary_expression "puVar40 + -0x58" identifier + number_literal) ))))) )) (compound_statement "{\n                uVar5 = uVar5 + (puVar12[1] << (uVar4 & 0x1f));\n              }" { (expression_statement "uVar5 = uVar5 + (puVar12[1] << (uVar4 & 0x1f));" (assignment_expression "uVar5 = uVar5 + (puVar12[1] << (uVar4 & 0x1f))" identifier = (binary_expression "uVar5 + (puVar12[1] << (uVar4 & 0x1f))" identifier + (parenthesized_expression "(puVar12[1] << (uVar4 & 0x1f))" ( (binary_expression "puVar12[1] << (uVar4 & 0x1f)" (subscript_expression "puVar12[1]" identifier [ number_literal ]) << (parenthesized_expression "(uVar4 & 0x1f)" ( (binary_expression "uVar4 & 0x1f" identifier & number_literal) ))) )))) ;) })) (expression_statement "uVar4 = *(uint *)(puVar40 + -0x58);" (assignment_expression "uVar4 = *(uint *)(puVar40 + -0x58)" identifier = (pointer_expression "*(uint *)(puVar40 + -0x58)" * (cast_expression "(uint *)(puVar40 + -0x58)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x58)" ( (binary_expression "puVar40 + -0x58" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar40 + -0x60) = *(uint *)(puVar40 + -0x44) & uVar5;" (assignment_expression "*(uint *)(puVar40 + -0x60) = *(uint *)(puVar40 + -0x44) & uVar5" (pointer_expression "*(uint *)(puVar40 + -0x60)" * (cast_expression "(uint *)(puVar40 + -0x60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x60)" ( (binary_expression "puVar40 + -0x60" identifier + number_literal) )))) = (binary_expression "*(uint *)(puVar40 + -0x44) & uVar5" (pointer_expression "*(uint *)(puVar40 + -0x44)" * (cast_expression "(uint *)(puVar40 + -0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x44)" ( (binary_expression "puVar40 + -0x44" identifier + number_literal) )))) & identifier)) ;) }))) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc)" identifier = (pointer_expression "*(code **)(iVar34 + -0x7adc)" * (cast_expression "(code **)(iVar34 + -0x7adc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar34 + -0x7adc)" ( (binary_expression "iVar34 + -0x7adc" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar40 + -0x48) == 0) {\n              do {\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bd0);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28,ptVar15);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n              } while (uVar4 != 0);\n              uVar42 = *(undefined4 *)(puVar40 + -0x60);\n            }\n            else {\n              while( true ) {\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n                if (uVar4 == 0) break;\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);\n              }\n              uVar42 = *(undefined4 *)(puVar40 + -0x60);\n            }" if (parenthesized_expression "(*(int *)(puVar40 + -0x48) == 0)" ( (binary_expression "*(int *)(puVar40 + -0x48) == 0" (pointer_expression "*(int *)(puVar40 + -0x48)" * (cast_expression "(int *)(puVar40 + -0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x48)" ( (binary_expression "puVar40 + -0x48" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n              do {\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bd0);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28,ptVar15);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n              } while (uVar4 != 0);\n              uVar42 = *(undefined4 *)(puVar40 + -0x60);\n            }" { (do_statement "do {\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bd0);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28,ptVar15);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n              } while (uVar4 != 0);" do (compound_statement "{\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bd0);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28,ptVar15);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n              }" { (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bd0);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bd0)" identifier = (pointer_expression "*(code **)(iVar34 + -0x7bd0)" * (cast_expression "(code **)(iVar34 + -0x7bd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar34 + -0x7bd0)" ( (binary_expression "iVar34 + -0x7bd0" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar40 + -0x70) = iVar28;" (assignment_expression "*(int *)(puVar40 + -0x70) = iVar28" (pointer_expression "*(int *)(puVar40 + -0x70)" * (cast_expression "(int *)(puVar40 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x70)" ( (binary_expression "puVar40 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28,ptVar15);" (call_expression "(*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28,ptVar15)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(psVar30,ptVar15,iVar28,ptVar15)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(int *)(puVar40 + -0x70) = iVar7;" (assignment_expression "*(int *)(puVar40 + -0x70) = iVar7" (pointer_expression "*(int *)(puVar40 + -0x70)" * (cast_expression "(int *)(puVar40 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x70)" ( (binary_expression "puVar40 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = uVar4 - 1;" (assignment_expression "uVar4 = uVar4 - 1" identifier = (binary_expression "uVar4 - 1" identifier - number_literal)) ;) (expression_statement "uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);" (assignment_expression "uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28)" identifier = (call_expression "(**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28)" (parenthesized_expression "(**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))" ( (pointer_expression "**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0)" * (pointer_expression "*(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0)" * (cast_expression "(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar40 + -0x68) + -0x7eb0)" ( (binary_expression "*(int *)(puVar40 + -0x68) + -0x7eb0" (pointer_expression "*(int *)(puVar40 + -0x68)" * (cast_expression "(int *)(puVar40 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x68)" ( (binary_expression "puVar40 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(ptVar15,psVar30,piVar32,iVar28)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "*(int *)(puVar40 + -0x70) = iVar28;" (assignment_expression "*(int *)(puVar40 + -0x70) = iVar28" (pointer_expression "*(int *)(puVar40 + -0x70)" * (cast_expression "(int *)(puVar40 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x70)" ( (binary_expression "puVar40 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "(**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);" (call_expression "(**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32)" (parenthesized_expression "(**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))" ( (pointer_expression "**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70)" * (pointer_expression "*(code **)(*(int *)(puVar40 + -0x68) + -0x7a70)" * (cast_expression "(code **)(*(int *)(puVar40 + -0x68) + -0x7a70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar40 + -0x68) + -0x7a70)" ( (binary_expression "*(int *)(puVar40 + -0x68) + -0x7a70" (pointer_expression "*(int *)(puVar40 + -0x68)" * (cast_expression "(int *)(puVar40 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x68)" ( (binary_expression "puVar40 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar42,ptVar15,ptVar15,piVar32)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar34 = *(int *)(puVar40 + -0x68);" (assignment_expression "iVar34 = *(int *)(puVar40 + -0x68)" identifier = (pointer_expression "*(int *)(puVar40 + -0x68)" * (cast_expression "(int *)(puVar40 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x68)" ( (binary_expression "puVar40 + -0x68" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) ;) (expression_statement "uVar42 = *(undefined4 *)(puVar40 + -0x60);" (assignment_expression "uVar42 = *(undefined4 *)(puVar40 + -0x60)" identifier = (pointer_expression "*(undefined4 *)(puVar40 + -0x60)" * (cast_expression "(undefined4 *)(puVar40 + -0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x60)" ( (binary_expression "puVar40 + -0x60" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              while( true ) {\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n                if (uVar4 == 0) break;\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);\n              }\n              uVar42 = *(undefined4 *)(puVar40 + -0x60);\n            }" else (compound_statement "{\n              while( true ) {\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n                if (uVar4 == 0) break;\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);\n              }\n              uVar42 = *(undefined4 *)(puVar40 + -0x60);\n            }" { (while_statement "while( true ) {\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n                if (uVar4 == 0) break;\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                (*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar7;\n                uVar4 = uVar4 - 1;\n                uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);\n                *(int *)(puVar40 + -0x70) = iVar28;\n                (**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);\n                iVar34 = *(int *)(puVar40 + -0x68);\n                if (uVar4 == 0) break;\n                UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);\n              }" { (expression_statement "(*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28);" (call_expression "(*UNRECOVERED_JUMPTABLE)(psVar30,ptVar15,iVar28)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(psVar30,ptVar15,iVar28)" ( identifier , identifier , identifier ))) ;) (expression_statement "*(int *)(puVar40 + -0x70) = iVar7;" (assignment_expression "*(int *)(puVar40 + -0x70) = iVar7" (pointer_expression "*(int *)(puVar40 + -0x70)" * (cast_expression "(int *)(puVar40 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x70)" ( (binary_expression "puVar40 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = uVar4 - 1;" (assignment_expression "uVar4 = uVar4 - 1" identifier = (binary_expression "uVar4 - 1" identifier - number_literal)) ;) (expression_statement "uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28);" (assignment_expression "uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28)" identifier = (call_expression "(**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                                   (ptVar15,psVar30,piVar32,iVar28)" (parenthesized_expression "(**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))" ( (pointer_expression "**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0)" * (pointer_expression "*(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0)" * (cast_expression "(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar40 + -0x68) + -0x7eb0)" ( (binary_expression "*(int *)(puVar40 + -0x68) + -0x7eb0" (pointer_expression "*(int *)(puVar40 + -0x68)" * (cast_expression "(int *)(puVar40 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x68)" ( (binary_expression "puVar40 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(ptVar15,psVar30,piVar32,iVar28)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "*(int *)(puVar40 + -0x70) = iVar28;" (assignment_expression "*(int *)(puVar40 + -0x70) = iVar28" (pointer_expression "*(int *)(puVar40 + -0x70)" * (cast_expression "(int *)(puVar40 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x70)" ( (binary_expression "puVar40 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "(**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);" (call_expression "(**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32)" (parenthesized_expression "(**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))" ( (pointer_expression "**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70)" * (pointer_expression "*(code **)(*(int *)(puVar40 + -0x68) + -0x7a70)" * (cast_expression "(code **)(*(int *)(puVar40 + -0x68) + -0x7a70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar40 + -0x68) + -0x7a70)" ( (binary_expression "*(int *)(puVar40 + -0x68) + -0x7a70" (pointer_expression "*(int *)(puVar40 + -0x68)" * (cast_expression "(int *)(puVar40 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x68)" ( (binary_expression "puVar40 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar42,ptVar15,ptVar15,piVar32)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar34 = *(int *)(puVar40 + -0x68);" (assignment_expression "iVar34 = *(int *)(puVar40 + -0x68)" identifier = (pointer_expression "*(int *)(puVar40 + -0x68)" * (cast_expression "(int *)(puVar40 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x68)" ( (binary_expression "puVar40 + -0x68" identifier + number_literal) ))))) ;) (if_statement "if (uVar4 == 0) break;" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7adc)" identifier = (pointer_expression "*(code **)(iVar34 + -0x7adc)" * (cast_expression "(code **)(iVar34 + -0x7adc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar34 + -0x7adc)" ( (binary_expression "iVar34 + -0x7adc" identifier + number_literal) ))))) ;) })) (expression_statement "uVar42 = *(undefined4 *)(puVar40 + -0x60);" (assignment_expression "uVar42 = *(undefined4 *)(puVar40 + -0x60)" identifier = (pointer_expression "*(undefined4 *)(puVar40 + -0x60)" * (cast_expression "(undefined4 *)(puVar40 + -0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x60)" ( (binary_expression "puVar40 + -0x60" identifier + number_literal) ))))) ;) }))) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bac);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7bac)" identifier = (pointer_expression "*(code **)(iVar34 + -0x7bac)" * (cast_expression "(code **)(iVar34 + -0x7bac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar34 + -0x7bac)" ( (binary_expression "iVar34 + -0x7bac" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar40 + -0x70) = uVar42;" (assignment_expression "*(undefined4 *)(puVar40 + -0x70) = uVar42" (pointer_expression "*(undefined4 *)(puVar40 + -0x70)" * (cast_expression "(undefined4 *)(puVar40 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x70)" ( (binary_expression "puVar40 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*UNRECOVERED_JUMPTABLE)\n                      (psVar30 + iVar28 * 2,*(undefined4 *)(puVar40 + -0x54),iVar28,\n                       *(undefined4 *)(puVar40 + -0x50));" (call_expression "(*UNRECOVERED_JUMPTABLE)\n                      (psVar30 + iVar28 * 2,*(undefined4 *)(puVar40 + -0x54),iVar28,\n                       *(undefined4 *)(puVar40 + -0x50))" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(psVar30 + iVar28 * 2,*(undefined4 *)(puVar40 + -0x54),iVar28,\n                       *(undefined4 *)(puVar40 + -0x50))" ( (binary_expression "psVar30 + iVar28 * 2" identifier + (binary_expression "iVar28 * 2" identifier * number_literal)) , (pointer_expression "*(undefined4 *)(puVar40 + -0x54)" * (cast_expression "(undefined4 *)(puVar40 + -0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x54)" ( (binary_expression "puVar40 + -0x54" identifier + number_literal) )))) , identifier , (pointer_expression "*(undefined4 *)(puVar40 + -0x50)" * (cast_expression "(undefined4 *)(puVar40 + -0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x50)" ( (binary_expression "puVar40 + -0x50" identifier + number_literal) )))) ))) ;) (expression_statement "*(int *)(puVar40 + -0x70) = iVar28;" (assignment_expression "*(int *)(puVar40 + -0x70) = iVar28" (pointer_expression "*(int *)(puVar40 + -0x70)" * (cast_expression "(int *)(puVar40 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x70)" ( (binary_expression "puVar40 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "(**(code **)(*(int *)(puVar40 + -0x68) + -0x7bd0))\n                      (psVar30,ptVar15,iVar28,psVar30 + iVar28 * 2);" (call_expression "(**(code **)(*(int *)(puVar40 + -0x68) + -0x7bd0))\n                      (psVar30,ptVar15,iVar28,psVar30 + iVar28 * 2)" (parenthesized_expression "(**(code **)(*(int *)(puVar40 + -0x68) + -0x7bd0))" ( (pointer_expression "**(code **)(*(int *)(puVar40 + -0x68) + -0x7bd0)" * (pointer_expression "*(code **)(*(int *)(puVar40 + -0x68) + -0x7bd0)" * (cast_expression "(code **)(*(int *)(puVar40 + -0x68) + -0x7bd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar40 + -0x68) + -0x7bd0)" ( (binary_expression "*(int *)(puVar40 + -0x68) + -0x7bd0" (pointer_expression "*(int *)(puVar40 + -0x68)" * (cast_expression "(int *)(puVar40 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x68)" ( (binary_expression "puVar40 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(psVar30,ptVar15,iVar28,psVar30 + iVar28 * 2)" ( identifier , identifier , identifier , (binary_expression "psVar30 + iVar28 * 2" identifier + (binary_expression "iVar28 * 2" identifier * number_literal)) ))) ;) (expression_statement "*(int *)(puVar40 + -0x70) = iVar7;" (assignment_expression "*(int *)(puVar40 + -0x70) = iVar7" (pointer_expression "*(int *)(puVar40 + -0x70)" * (cast_expression "(int *)(puVar40 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x70)" ( (binary_expression "puVar40 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                               (ptVar15,psVar30,piVar32,iVar28);" (assignment_expression "uVar42 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                               (ptVar15,psVar30,piVar32,iVar28)" identifier = (call_expression "(**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))\n                               (ptVar15,psVar30,piVar32,iVar28)" (parenthesized_expression "(**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0))" ( (pointer_expression "**(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0)" * (pointer_expression "*(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0)" * (cast_expression "(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar40 + -0x68) + -0x7eb0)" ( (binary_expression "*(int *)(puVar40 + -0x68) + -0x7eb0" (pointer_expression "*(int *)(puVar40 + -0x68)" * (cast_expression "(int *)(puVar40 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x68)" ( (binary_expression "puVar40 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(ptVar15,psVar30,piVar32,iVar28)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "*(int *)(puVar40 + -0x70) = iVar28;" (assignment_expression "*(int *)(puVar40 + -0x70) = iVar28" (pointer_expression "*(int *)(puVar40 + -0x70)" * (cast_expression "(int *)(puVar40 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x70)" ( (binary_expression "puVar40 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "(**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);" (call_expression "(**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32)" (parenthesized_expression "(**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))" ( (pointer_expression "**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70)" * (pointer_expression "*(code **)(*(int *)(puVar40 + -0x68) + -0x7a70)" * (cast_expression "(code **)(*(int *)(puVar40 + -0x68) + -0x7a70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar40 + -0x68) + -0x7a70)" ( (binary_expression "*(int *)(puVar40 + -0x68) + -0x7a70" (pointer_expression "*(int *)(puVar40 + -0x68)" * (cast_expression "(int *)(puVar40 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x68)" ( (binary_expression "puVar40 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar42,ptVar15,ptVar15,piVar32)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar34 = *(int *)(puVar40 + -0x68);" (assignment_expression "iVar34 = *(int *)(puVar40 + -0x68)" identifier = (pointer_expression "*(int *)(puVar40 + -0x68)" * (cast_expression "(int *)(puVar40 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x68)" ( (binary_expression "puVar40 + -0x68" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = uVar13;" (assignment_expression "uVar4 = uVar13" identifier = identifier) ;) }) while (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) ;) })) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7eb0);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7eb0)" identifier = (pointer_expression "*(code **)(iVar34 + -0x7eb0)" * (cast_expression "(code **)(iVar34 + -0x7eb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar34 + -0x7eb0)" ( (binary_expression "iVar34 + -0x7eb0" identifier + number_literal) ))))) ;) (if_statement "if (iVar28 != 0) {\n          iVar16 = iVar28 + -1;\n          ptVar22 = ptVar15->next;\n          psVar10 = psVar30;\n          ptVar17 = ptVar15;\n          if (iVar16 != 0) {\n            do {\n              *psVar10 = (size_t)ptVar22;\n              iVar16 = iVar16 + -1;\n              ptVar22 = (tmp_reentrant_t *)ptVar17->size;\n              psVar10 = psVar10 + 1;\n              ptVar17 = (tmp_reentrant_t *)&ptVar17->size;\n            } while (iVar16 != 0);\n            psVar10 = psVar30 + iVar28 + -1;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7d58);\n          *psVar10 = (size_t)ptVar22;\n          (*UNRECOVERED_JUMPTABLE)(psVar30 + iVar28,0,iVar41);\n          UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0);\n        }" if (parenthesized_expression "(iVar28 != 0)" ( (binary_expression "iVar28 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar16 = iVar28 + -1;\n          ptVar22 = ptVar15->next;\n          psVar10 = psVar30;\n          ptVar17 = ptVar15;\n          if (iVar16 != 0) {\n            do {\n              *psVar10 = (size_t)ptVar22;\n              iVar16 = iVar16 + -1;\n              ptVar22 = (tmp_reentrant_t *)ptVar17->size;\n              psVar10 = psVar10 + 1;\n              ptVar17 = (tmp_reentrant_t *)&ptVar17->size;\n            } while (iVar16 != 0);\n            psVar10 = psVar30 + iVar28 + -1;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7d58);\n          *psVar10 = (size_t)ptVar22;\n          (*UNRECOVERED_JUMPTABLE)(psVar30 + iVar28,0,iVar41);\n          UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0);\n        }" { (expression_statement "iVar16 = iVar28 + -1;" (assignment_expression "iVar16 = iVar28 + -1" identifier = (binary_expression "iVar28 + -1" identifier + number_literal)) ;) (expression_statement "ptVar22 = ptVar15->next;" (assignment_expression "ptVar22 = ptVar15->next" identifier = (field_expression "ptVar15->next" identifier -> field_identifier)) ;) (expression_statement "psVar10 = psVar30;" (assignment_expression "psVar10 = psVar30" identifier = identifier) ;) (expression_statement "ptVar17 = ptVar15;" (assignment_expression "ptVar17 = ptVar15" identifier = identifier) ;) (if_statement "if (iVar16 != 0) {\n            do {\n              *psVar10 = (size_t)ptVar22;\n              iVar16 = iVar16 + -1;\n              ptVar22 = (tmp_reentrant_t *)ptVar17->size;\n              psVar10 = psVar10 + 1;\n              ptVar17 = (tmp_reentrant_t *)&ptVar17->size;\n            } while (iVar16 != 0);\n            psVar10 = psVar30 + iVar28 + -1;\n          }" if (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) (compound_statement "{\n            do {\n              *psVar10 = (size_t)ptVar22;\n              iVar16 = iVar16 + -1;\n              ptVar22 = (tmp_reentrant_t *)ptVar17->size;\n              psVar10 = psVar10 + 1;\n              ptVar17 = (tmp_reentrant_t *)&ptVar17->size;\n            } while (iVar16 != 0);\n            psVar10 = psVar30 + iVar28 + -1;\n          }" { (do_statement "do {\n              *psVar10 = (size_t)ptVar22;\n              iVar16 = iVar16 + -1;\n              ptVar22 = (tmp_reentrant_t *)ptVar17->size;\n              psVar10 = psVar10 + 1;\n              ptVar17 = (tmp_reentrant_t *)&ptVar17->size;\n            } while (iVar16 != 0);" do (compound_statement "{\n              *psVar10 = (size_t)ptVar22;\n              iVar16 = iVar16 + -1;\n              ptVar22 = (tmp_reentrant_t *)ptVar17->size;\n              psVar10 = psVar10 + 1;\n              ptVar17 = (tmp_reentrant_t *)&ptVar17->size;\n            }" { (expression_statement "*psVar10 = (size_t)ptVar22;" (assignment_expression "*psVar10 = (size_t)ptVar22" (pointer_expression "*psVar10" * identifier) = (cast_expression "(size_t)ptVar22" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "ptVar22 = (tmp_reentrant_t *)ptVar17->size;" (assignment_expression "ptVar22 = (tmp_reentrant_t *)ptVar17->size" identifier = (cast_expression "(tmp_reentrant_t *)ptVar17->size" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "ptVar17->size" identifier -> field_identifier))) ;) (expression_statement "psVar10 = psVar10 + 1;" (assignment_expression "psVar10 = psVar10 + 1" identifier = (binary_expression "psVar10 + 1" identifier + number_literal)) ;) (expression_statement "ptVar17 = (tmp_reentrant_t *)&ptVar17->size;" (assignment_expression "ptVar17 = (tmp_reentrant_t *)&ptVar17->size" identifier = (cast_expression "(tmp_reentrant_t *)&ptVar17->size" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ptVar17->size" & (field_expression "ptVar17->size" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) ;) (expression_statement "psVar10 = psVar30 + iVar28 + -1;" (assignment_expression "psVar10 = psVar30 + iVar28 + -1" identifier = (binary_expression "psVar30 + iVar28 + -1" (binary_expression "psVar30 + iVar28" identifier + identifier) + number_literal)) ;) })) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7d58);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar34 + -0x7d58)" identifier = (pointer_expression "*(code **)(iVar34 + -0x7d58)" * (cast_expression "(code **)(iVar34 + -0x7d58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar34 + -0x7d58)" ( (binary_expression "iVar34 + -0x7d58" identifier + number_literal) ))))) ;) (expression_statement "*psVar10 = (size_t)ptVar22;" (assignment_expression "*psVar10 = (size_t)ptVar22" (pointer_expression "*psVar10" * identifier) = (cast_expression "(size_t)ptVar22" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (expression_statement "(*UNRECOVERED_JUMPTABLE)(psVar30 + iVar28,0,iVar41);" (call_expression "(*UNRECOVERED_JUMPTABLE)(psVar30 + iVar28,0,iVar41)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(psVar30 + iVar28,0,iVar41)" ( (binary_expression "psVar30 + iVar28" identifier + identifier) , number_literal , identifier ))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0)" identifier = (pointer_expression "*(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0)" * (cast_expression "(code **)(*(int *)(puVar40 + -0x68) + -0x7eb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar40 + -0x68) + -0x7eb0)" ( (binary_expression "*(int *)(puVar40 + -0x68) + -0x7eb0" (pointer_expression "*(int *)(puVar40 + -0x68)" * (cast_expression "(int *)(puVar40 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x68)" ( (binary_expression "puVar40 + -0x68" identifier + number_literal) )))) + number_literal) ))))) ;) })) (expression_statement "*(int *)(puVar40 + -0x70) = iVar7;" (assignment_expression "*(int *)(puVar40 + -0x70) = iVar7" (pointer_expression "*(int *)(puVar40 + -0x70)" * (cast_expression "(int *)(puVar40 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x70)" ( (binary_expression "puVar40 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar42 = (*UNRECOVERED_JUMPTABLE)(ptVar15,psVar30,piVar32,iVar28);" (assignment_expression "uVar42 = (*UNRECOVERED_JUMPTABLE)(ptVar15,psVar30,piVar32,iVar28)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE)(ptVar15,psVar30,piVar32,iVar28)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(ptVar15,psVar30,piVar32,iVar28)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "*(int *)(puVar40 + -0x70) = iVar28;" (assignment_expression "*(int *)(puVar40 + -0x70) = iVar28" (pointer_expression "*(int *)(puVar40 + -0x70)" * (cast_expression "(int *)(puVar40 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x70)" ( (binary_expression "puVar40 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "(**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32);" (call_expression "(**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))(uVar42,ptVar15,ptVar15,piVar32)" (parenthesized_expression "(**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70))" ( (pointer_expression "**(code **)(*(int *)(puVar40 + -0x68) + -0x7a70)" * (pointer_expression "*(code **)(*(int *)(puVar40 + -0x68) + -0x7a70)" * (cast_expression "(code **)(*(int *)(puVar40 + -0x68) + -0x7a70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar40 + -0x68) + -0x7a70)" ( (binary_expression "*(int *)(puVar40 + -0x68) + -0x7a70" (pointer_expression "*(int *)(puVar40 + -0x68)" * (cast_expression "(int *)(puVar40 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x68)" ( (binary_expression "puVar40 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar42,ptVar15,ptVar15,piVar32)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar34 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7b2c))(psVar30,ptVar15,piVar32,iVar28);" (assignment_expression "iVar34 = (**(code **)(*(int *)(puVar40 + -0x68) + -0x7b2c))(psVar30,ptVar15,piVar32,iVar28)" identifier = (call_expression "(**(code **)(*(int *)(puVar40 + -0x68) + -0x7b2c))(psVar30,ptVar15,piVar32,iVar28)" (parenthesized_expression "(**(code **)(*(int *)(puVar40 + -0x68) + -0x7b2c))" ( (pointer_expression "**(code **)(*(int *)(puVar40 + -0x68) + -0x7b2c)" * (pointer_expression "*(code **)(*(int *)(puVar40 + -0x68) + -0x7b2c)" * (cast_expression "(code **)(*(int *)(puVar40 + -0x68) + -0x7b2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar40 + -0x68) + -0x7b2c)" ( (binary_expression "*(int *)(puVar40 + -0x68) + -0x7b2c" (pointer_expression "*(int *)(puVar40 + -0x68)" * (cast_expression "(int *)(puVar40 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x68)" ( (binary_expression "puVar40 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(psVar30,ptVar15,piVar32,iVar28)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7a70);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar40 + -0x68) + -0x7a70)" identifier = (pointer_expression "*(code **)(*(int *)(puVar40 + -0x68) + -0x7a70)" * (cast_expression "(code **)(*(int *)(puVar40 + -0x68) + -0x7a70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar40 + -0x68) + -0x7a70)" ( (binary_expression "*(int *)(puVar40 + -0x68) + -0x7a70" (pointer_expression "*(int *)(puVar40 + -0x68)" * (cast_expression "(int *)(puVar40 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x68)" ( (binary_expression "puVar40 + -0x68" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(int *)(puVar40 + 0x10) = iVar28;" (assignment_expression "*(int *)(puVar40 + 0x10) = iVar28" (pointer_expression "*(int *)(puVar40 + 0x10)" * (cast_expression "(int *)(puVar40 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + 0x10)" ( (binary_expression "puVar40 + 0x10" identifier + number_literal) )))) = identifier) ;) comment comment (expression_statement "(*UNRECOVERED_JUMPTABLE)(iVar34 == 0,ptVar15,ptVar15,piVar32);" (call_expression "(*UNRECOVERED_JUMPTABLE)(iVar34 == 0,ptVar15,ptVar15,piVar32)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(iVar34 == 0,ptVar15,ptVar15,piVar32)" ( (binary_expression "iVar34 == 0" identifier == number_literal) , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "(**(code **)(iVar16 + -0x7c20))\n                (*(int *)(iVar16 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar16 + -0x7fd4) + 0x5438);" (call_expression "(**(code **)(iVar16 + -0x7c20))\n                (*(int *)(iVar16 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar16 + -0x7fd4) + 0x5438)" (parenthesized_expression "(**(code **)(iVar16 + -0x7c20))" ( (pointer_expression "**(code **)(iVar16 + -0x7c20)" * (pointer_expression "*(code **)(iVar16 + -0x7c20)" * (cast_expression "(code **)(iVar16 + -0x7c20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + -0x7c20)" ( (binary_expression "iVar16 + -0x7c20" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar16 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar16 + -0x7fd4) + 0x5438)" ( (binary_expression "*(int *)(iVar16 + -0x7fd4) + 0x544c" (pointer_expression "*(int *)(iVar16 + -0x7fd4)" * (cast_expression "(int *)(iVar16 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + -0x7fd4)" ( (binary_expression "iVar16 + -0x7fd4" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(iVar16 + -0x7fd4) + 0x5438" (pointer_expression "*(int *)(iVar16 + -0x7fd4)" * (cast_expression "(int *)(iVar16 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + -0x7fd4)" ( (binary_expression "iVar16 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "pmVar31 = (mp_limb_t *)((int)pmVar11 + -1);" (assignment_expression "pmVar31 = (mp_limb_t *)((int)pmVar11 + -1)" identifier = (cast_expression "(mp_limb_t *)((int)pmVar11 + -1)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar11 + -1)" ( (binary_expression "(int)pmVar11 + -1" (cast_expression "(int)pmVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((ep[(uint)pmVar31 >> 5] >> ((uint)pmVar31 & 0x1f) & 1) == 0) goto LAB_0007afb0;" if (parenthesized_expression "((ep[(uint)pmVar31 >> 5] >> ((uint)pmVar31 & 0x1f) & 1) == 0)" ( (binary_expression "(ep[(uint)pmVar31 >> 5] >> ((uint)pmVar31 & 0x1f) & 1) == 0" (parenthesized_expression "(ep[(uint)pmVar31 >> 5] >> ((uint)pmVar31 & 0x1f) & 1)" ( (binary_expression "ep[(uint)pmVar31 >> 5] >> ((uint)pmVar31 & 0x1f) & 1" (binary_expression "ep[(uint)pmVar31 >> 5] >> ((uint)pmVar31 & 0x1f)" (subscript_expression "ep[(uint)pmVar31 >> 5]" identifier [ (binary_expression "(uint)pmVar31 >> 5" (cast_expression "(uint)pmVar31" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ]) >> (parenthesized_expression "((uint)pmVar31 & 0x1f)" ( (binary_expression "(uint)pmVar31 & 0x1f" (cast_expression "(uint)pmVar31" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0007afb0;" goto statement_identifier ;)) (labeled_statement "LAB_0007b010:\n    if (pmVar11 < local_44) {\n      uVar5 = ~(-1 << ((uint)pmVar11 & 0x1f)) & *ep;\n      uVar13 = 0;\n      if ((uVar5 & 0xff) == 0) goto LAB_0007b270;\nLAB_0007b040:\n      uVar4 = (byte)puVar37[-uVar5 & uVar5] - 2;\n    }\n    else {\n      uVar13 = (int)pmVar11 - (int)local_44;\n      uVar4 = 0x20 - (uVar13 & 0x1f);\n      uVar5 = ep[uVar13 >> 5] >> (uVar13 & 0x1f);\n      if ((int)uVar4 < (int)local_44) {\n        uVar5 = uVar5 + ((ep + (uVar13 >> 5))[1] << (uVar4 & 0x1f));\n      }\n      uVar5 = uVar5 & local_4c;\n      pmVar11 = local_44;\n      if ((uVar5 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar4 = uVar5 >> 8;\n      iVar28 = 0x1e;\n      if (uVar4 != 0) {\n        iVar28 = 6;\n      }\n      uVar4 = (uint)(byte)puVar37[-uVar4 & uVar4] + iVar28;\n    }" statement_identifier : (if_statement "if (pmVar11 < local_44) {\n      uVar5 = ~(-1 << ((uint)pmVar11 & 0x1f)) & *ep;\n      uVar13 = 0;\n      if ((uVar5 & 0xff) == 0) goto LAB_0007b270;\nLAB_0007b040:\n      uVar4 = (byte)puVar37[-uVar5 & uVar5] - 2;\n    }\n    else {\n      uVar13 = (int)pmVar11 - (int)local_44;\n      uVar4 = 0x20 - (uVar13 & 0x1f);\n      uVar5 = ep[uVar13 >> 5] >> (uVar13 & 0x1f);\n      if ((int)uVar4 < (int)local_44) {\n        uVar5 = uVar5 + ((ep + (uVar13 >> 5))[1] << (uVar4 & 0x1f));\n      }\n      uVar5 = uVar5 & local_4c;\n      pmVar11 = local_44;\n      if ((uVar5 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar4 = uVar5 >> 8;\n      iVar28 = 0x1e;\n      if (uVar4 != 0) {\n        iVar28 = 6;\n      }\n      uVar4 = (uint)(byte)puVar37[-uVar4 & uVar4] + iVar28;\n    }" if (parenthesized_expression "(pmVar11 < local_44)" ( (binary_expression "pmVar11 < local_44" identifier < identifier) )) (compound_statement "{\n      uVar5 = ~(-1 << ((uint)pmVar11 & 0x1f)) & *ep;\n      uVar13 = 0;\n      if ((uVar5 & 0xff) == 0) goto LAB_0007b270;\nLAB_0007b040:\n      uVar4 = (byte)puVar37[-uVar5 & uVar5] - 2;\n    }" { (expression_statement "uVar5 = ~(-1 << ((uint)pmVar11 & 0x1f)) & *ep;" (assignment_expression "uVar5 = ~(-1 << ((uint)pmVar11 & 0x1f)) & *ep" identifier = (binary_expression "~(-1 << ((uint)pmVar11 & 0x1f)) & *ep" (unary_expression "~(-1 << ((uint)pmVar11 & 0x1f))" ~ (parenthesized_expression "(-1 << ((uint)pmVar11 & 0x1f))" ( (binary_expression "-1 << ((uint)pmVar11 & 0x1f)" number_literal << (parenthesized_expression "((uint)pmVar11 & 0x1f)" ( (binary_expression "(uint)pmVar11 & 0x1f" (cast_expression "(uint)pmVar11" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) ))) & (pointer_expression "*ep" * identifier))) ;) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (if_statement "if ((uVar5 & 0xff) == 0) goto LAB_0007b270;" if (parenthesized_expression "((uVar5 & 0xff) == 0)" ( (binary_expression "(uVar5 & 0xff) == 0" (parenthesized_expression "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0007b270;" goto statement_identifier ;)) (labeled_statement "LAB_0007b040:\n      uVar4 = (byte)puVar37[-uVar5 & uVar5] - 2;" statement_identifier : (expression_statement "uVar4 = (byte)puVar37[-uVar5 & uVar5] - 2;" (assignment_expression "uVar4 = (byte)puVar37[-uVar5 & uVar5] - 2" identifier = (binary_expression "(byte)puVar37[-uVar5 & uVar5] - 2" (cast_expression "(byte)puVar37[-uVar5 & uVar5]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar37[-uVar5 & uVar5]" identifier [ (binary_expression "-uVar5 & uVar5" (unary_expression "-uVar5" - identifier) & identifier) ])) - number_literal)) ;)) }) (else_clause "else {\n      uVar13 = (int)pmVar11 - (int)local_44;\n      uVar4 = 0x20 - (uVar13 & 0x1f);\n      uVar5 = ep[uVar13 >> 5] >> (uVar13 & 0x1f);\n      if ((int)uVar4 < (int)local_44) {\n        uVar5 = uVar5 + ((ep + (uVar13 >> 5))[1] << (uVar4 & 0x1f));\n      }\n      uVar5 = uVar5 & local_4c;\n      pmVar11 = local_44;\n      if ((uVar5 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar4 = uVar5 >> 8;\n      iVar28 = 0x1e;\n      if (uVar4 != 0) {\n        iVar28 = 6;\n      }\n      uVar4 = (uint)(byte)puVar37[-uVar4 & uVar4] + iVar28;\n    }" else (compound_statement "{\n      uVar13 = (int)pmVar11 - (int)local_44;\n      uVar4 = 0x20 - (uVar13 & 0x1f);\n      uVar5 = ep[uVar13 >> 5] >> (uVar13 & 0x1f);\n      if ((int)uVar4 < (int)local_44) {\n        uVar5 = uVar5 + ((ep + (uVar13 >> 5))[1] << (uVar4 & 0x1f));\n      }\n      uVar5 = uVar5 & local_4c;\n      pmVar11 = local_44;\n      if ((uVar5 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar4 = uVar5 >> 8;\n      iVar28 = 0x1e;\n      if (uVar4 != 0) {\n        iVar28 = 6;\n      }\n      uVar4 = (uint)(byte)puVar37[-uVar4 & uVar4] + iVar28;\n    }" { (expression_statement "uVar13 = (int)pmVar11 - (int)local_44;" (assignment_expression "uVar13 = (int)pmVar11 - (int)local_44" identifier = (binary_expression "(int)pmVar11 - (int)local_44" (cast_expression "(int)pmVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar4 = 0x20 - (uVar13 & 0x1f);" (assignment_expression "uVar4 = 0x20 - (uVar13 & 0x1f)" identifier = (binary_expression "0x20 - (uVar13 & 0x1f)" number_literal - (parenthesized_expression "(uVar13 & 0x1f)" ( (binary_expression "uVar13 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar5 = ep[uVar13 >> 5] >> (uVar13 & 0x1f);" (assignment_expression "uVar5 = ep[uVar13 >> 5] >> (uVar13 & 0x1f)" identifier = (binary_expression "ep[uVar13 >> 5] >> (uVar13 & 0x1f)" (subscript_expression "ep[uVar13 >> 5]" identifier [ (binary_expression "uVar13 >> 5" identifier >> number_literal) ]) >> (parenthesized_expression "(uVar13 & 0x1f)" ( (binary_expression "uVar13 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if ((int)uVar4 < (int)local_44) {\n        uVar5 = uVar5 + ((ep + (uVar13 >> 5))[1] << (uVar4 & 0x1f));\n      }" if (parenthesized_expression "((int)uVar4 < (int)local_44)" ( (binary_expression "(int)uVar4 < (int)local_44" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar5 = uVar5 + ((ep + (uVar13 >> 5))[1] << (uVar4 & 0x1f));\n      }" { (expression_statement "uVar5 = uVar5 + ((ep + (uVar13 >> 5))[1] << (uVar4 & 0x1f));" (assignment_expression "uVar5 = uVar5 + ((ep + (uVar13 >> 5))[1] << (uVar4 & 0x1f))" identifier = (binary_expression "uVar5 + ((ep + (uVar13 >> 5))[1] << (uVar4 & 0x1f))" identifier + (parenthesized_expression "((ep + (uVar13 >> 5))[1] << (uVar4 & 0x1f))" ( (binary_expression "(ep + (uVar13 >> 5))[1] << (uVar4 & 0x1f)" (subscript_expression "(ep + (uVar13 >> 5))[1]" (parenthesized_expression "(ep + (uVar13 >> 5))" ( (binary_expression "ep + (uVar13 >> 5)" identifier + (parenthesized_expression "(uVar13 >> 5)" ( (binary_expression "uVar13 >> 5" identifier >> number_literal) ))) )) [ number_literal ]) << (parenthesized_expression "(uVar4 & 0x1f)" ( (binary_expression "uVar4 & 0x1f" identifier & number_literal) ))) )))) ;) })) (expression_statement "uVar5 = uVar5 & local_4c;" (assignment_expression "uVar5 = uVar5 & local_4c" identifier = (binary_expression "uVar5 & local_4c" identifier & identifier)) ;) (expression_statement "pmVar11 = local_44;" (assignment_expression "pmVar11 = local_44" identifier = identifier) ;) (if_statement "if ((uVar5 & 0xff) != 0) goto LAB_0007b040;" if (parenthesized_expression "((uVar5 & 0xff) != 0)" ( (binary_expression "(uVar5 & 0xff) != 0" (parenthesized_expression "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0007b040;" goto statement_identifier ;)) (labeled_statement "LAB_0007b270:\n      uVar4 = uVar5 >> 8;" statement_identifier : (expression_statement "uVar4 = uVar5 >> 8;" (assignment_expression "uVar4 = uVar5 >> 8" identifier = (binary_expression "uVar5 >> 8" identifier >> number_literal)) ;)) (expression_statement "iVar28 = 0x1e;" (assignment_expression "iVar28 = 0x1e" identifier = number_literal) ;) (if_statement "if (uVar4 != 0) {\n        iVar28 = 6;\n      }" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar28 = 6;\n      }" { (expression_statement "iVar28 = 6;" (assignment_expression "iVar28 = 6" identifier = number_literal) ;) })) (expression_statement "uVar4 = (uint)(byte)puVar37[-uVar4 & uVar4] + iVar28;" (assignment_expression "uVar4 = (uint)(byte)puVar37[-uVar4 & uVar4] + iVar28" identifier = (binary_expression "(uint)(byte)puVar37[-uVar4 & uVar4] + iVar28" (cast_expression "(uint)(byte)puVar37[-uVar4 & uVar4]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar37[-uVar4 & uVar4]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar37[-uVar4 & uVar4]" identifier [ (binary_expression "-uVar4 & uVar4" (unary_expression "-uVar4" - identifier) & identifier) ]))) + identifier)) ;) })))) (expression_statement "bp = (mp_srcptr)((int)pmVar11 - uVar4);" (assignment_expression "bp = (mp_srcptr)((int)pmVar11 - uVar4)" identifier = (call_expression "(mp_srcptr)((int)pmVar11 - uVar4)" (parenthesized_expression "(mp_srcptr)" ( identifier )) (argument_list "((int)pmVar11 - uVar4)" ( (binary_expression "(int)pmVar11 - uVar4" (cast_expression "(int)pmVar11" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "pmVar11 = bp;" (assignment_expression "pmVar11 = bp" identifier = identifier) ;) (if_statement "if (1 < (int)bp) {\n      do {\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(tp,rp,n);\n        pmVar29 = (mp_limb_t *)((int)pmVar11 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(rp,tp,n);\n        pmVar11 = pmVar29;\n      } while (1 < (int)pmVar29);\n      bp = (mp_srcptr)((uint)bp & 1);\n    }" if (parenthesized_expression "(1 < (int)bp)" ( (binary_expression "1 < (int)bp" number_literal < (cast_expression "(int)bp" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      do {\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(tp,rp,n);\n        pmVar29 = (mp_limb_t *)((int)pmVar11 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(rp,tp,n);\n        pmVar11 = pmVar29;\n      } while (1 < (int)pmVar29);\n      bp = (mp_srcptr)((uint)bp & 1);\n    }" { (do_statement "do {\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(tp,rp,n);\n        pmVar29 = (mp_limb_t *)((int)pmVar11 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(rp,tp,n);\n        pmVar11 = pmVar29;\n      } while (1 < (int)pmVar29);" do (compound_statement "{\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(tp,rp,n);\n        pmVar29 = (mp_limb_t *)((int)pmVar11 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(rp,tp,n);\n        pmVar11 = pmVar29;\n      }" { (expression_statement "(*(code *)PTR___gmpn_sqrlo_0009d354)(tp,rp,n);" (call_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)(tp,rp,n)" (parenthesized_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)" ( (pointer_expression "*(code *)PTR___gmpn_sqrlo_0009d354" * (cast_expression "(code *)PTR___gmpn_sqrlo_0009d354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(tp,rp,n)" ( identifier , identifier , identifier ))) ;) (expression_statement "pmVar29 = (mp_limb_t *)((int)pmVar11 + -2);" (assignment_expression "pmVar29 = (mp_limb_t *)((int)pmVar11 + -2)" identifier = (cast_expression "(mp_limb_t *)((int)pmVar11 + -2)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar11 + -2)" ( (binary_expression "(int)pmVar11 + -2" (cast_expression "(int)pmVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "(*(code *)PTR___gmpn_sqrlo_0009d354)(rp,tp,n);" (call_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)(rp,tp,n)" (parenthesized_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)" ( (pointer_expression "*(code *)PTR___gmpn_sqrlo_0009d354" * (cast_expression "(code *)PTR___gmpn_sqrlo_0009d354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(rp,tp,n)" ( identifier , identifier , identifier ))) ;) (expression_statement "pmVar11 = pmVar29;" (assignment_expression "pmVar11 = pmVar29" identifier = identifier) ;) }) while (parenthesized_expression "(1 < (int)pmVar29)" ( (binary_expression "1 < (int)pmVar29" number_literal < (cast_expression "(int)pmVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (expression_statement "bp = (mp_srcptr)((uint)bp & 1);" (assignment_expression "bp = (mp_srcptr)((uint)bp & 1)" identifier = (call_expression "(mp_srcptr)((uint)bp & 1)" (parenthesized_expression "(mp_srcptr)" ( identifier )) (argument_list "((uint)bp & 1)" ( (binary_expression "(uint)bp & 1" (cast_expression "(uint)bp" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) })) (if_statement "if (bp == (mp_limb_t *)0x0) {\n      if (n != 0) {\n        mVar19 = *rp;\n        pmVar11 = tp;\n        if (local_3c != 0) {\n          iVar28 = local_3c;\n          pmVar18 = tp;\n          pmVar31 = rp + 1;\n          do {\n            *pmVar18 = mVar19;\n            iVar28 = iVar28 + -1;\n            mVar19 = *pmVar31;\n            pmVar11 = tp + n + -1;\n            pmVar18 = pmVar18 + 1;\n            pmVar31 = pmVar31 + 1;\n          } while (iVar28 != 0);\n        }\n        *pmVar11 = mVar19;\n      }\n    }\n    else {\n      (*(code *)PTR___gmpn_sqrlo_0009d354)(tp,rp,n);\n    }" if (parenthesized_expression "(bp == (mp_limb_t *)0x0)" ( (binary_expression "bp == (mp_limb_t *)0x0" identifier == (cast_expression "(mp_limb_t *)0x0" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (n != 0) {\n        mVar19 = *rp;\n        pmVar11 = tp;\n        if (local_3c != 0) {\n          iVar28 = local_3c;\n          pmVar18 = tp;\n          pmVar31 = rp + 1;\n          do {\n            *pmVar18 = mVar19;\n            iVar28 = iVar28 + -1;\n            mVar19 = *pmVar31;\n            pmVar11 = tp + n + -1;\n            pmVar18 = pmVar18 + 1;\n            pmVar31 = pmVar31 + 1;\n          } while (iVar28 != 0);\n        }\n        *pmVar11 = mVar19;\n      }\n    }" { (if_statement "if (n != 0) {\n        mVar19 = *rp;\n        pmVar11 = tp;\n        if (local_3c != 0) {\n          iVar28 = local_3c;\n          pmVar18 = tp;\n          pmVar31 = rp + 1;\n          do {\n            *pmVar18 = mVar19;\n            iVar28 = iVar28 + -1;\n            mVar19 = *pmVar31;\n            pmVar11 = tp + n + -1;\n            pmVar18 = pmVar18 + 1;\n            pmVar31 = pmVar31 + 1;\n          } while (iVar28 != 0);\n        }\n        *pmVar11 = mVar19;\n      }" if (parenthesized_expression "(n != 0)" ( (binary_expression "n != 0" identifier != number_literal) )) (compound_statement "{\n        mVar19 = *rp;\n        pmVar11 = tp;\n        if (local_3c != 0) {\n          iVar28 = local_3c;\n          pmVar18 = tp;\n          pmVar31 = rp + 1;\n          do {\n            *pmVar18 = mVar19;\n            iVar28 = iVar28 + -1;\n            mVar19 = *pmVar31;\n            pmVar11 = tp + n + -1;\n            pmVar18 = pmVar18 + 1;\n            pmVar31 = pmVar31 + 1;\n          } while (iVar28 != 0);\n        }\n        *pmVar11 = mVar19;\n      }" { (expression_statement "mVar19 = *rp;" (assignment_expression "mVar19 = *rp" identifier = (pointer_expression "*rp" * identifier)) ;) (expression_statement "pmVar11 = tp;" (assignment_expression "pmVar11 = tp" identifier = identifier) ;) (if_statement "if (local_3c != 0) {\n          iVar28 = local_3c;\n          pmVar18 = tp;\n          pmVar31 = rp + 1;\n          do {\n            *pmVar18 = mVar19;\n            iVar28 = iVar28 + -1;\n            mVar19 = *pmVar31;\n            pmVar11 = tp + n + -1;\n            pmVar18 = pmVar18 + 1;\n            pmVar31 = pmVar31 + 1;\n          } while (iVar28 != 0);\n        }" if (parenthesized_expression "(local_3c != 0)" ( (binary_expression "local_3c != 0" identifier != number_literal) )) (compound_statement "{\n          iVar28 = local_3c;\n          pmVar18 = tp;\n          pmVar31 = rp + 1;\n          do {\n            *pmVar18 = mVar19;\n            iVar28 = iVar28 + -1;\n            mVar19 = *pmVar31;\n            pmVar11 = tp + n + -1;\n            pmVar18 = pmVar18 + 1;\n            pmVar31 = pmVar31 + 1;\n          } while (iVar28 != 0);\n        }" { (expression_statement "iVar28 = local_3c;" (assignment_expression "iVar28 = local_3c" identifier = identifier) ;) (expression_statement "pmVar18 = tp;" (assignment_expression "pmVar18 = tp" identifier = identifier) ;) (expression_statement "pmVar31 = rp + 1;" (assignment_expression "pmVar31 = rp + 1" identifier = (binary_expression "rp + 1" identifier + number_literal)) ;) (do_statement "do {\n            *pmVar18 = mVar19;\n            iVar28 = iVar28 + -1;\n            mVar19 = *pmVar31;\n            pmVar11 = tp + n + -1;\n            pmVar18 = pmVar18 + 1;\n            pmVar31 = pmVar31 + 1;\n          } while (iVar28 != 0);" do (compound_statement "{\n            *pmVar18 = mVar19;\n            iVar28 = iVar28 + -1;\n            mVar19 = *pmVar31;\n            pmVar11 = tp + n + -1;\n            pmVar18 = pmVar18 + 1;\n            pmVar31 = pmVar31 + 1;\n          }" { (expression_statement "*pmVar18 = mVar19;" (assignment_expression "*pmVar18 = mVar19" (pointer_expression "*pmVar18" * identifier) = identifier) ;) (expression_statement "iVar28 = iVar28 + -1;" (assignment_expression "iVar28 = iVar28 + -1" identifier = (binary_expression "iVar28 + -1" identifier + number_literal)) ;) (expression_statement "mVar19 = *pmVar31;" (assignment_expression "mVar19 = *pmVar31" identifier = (pointer_expression "*pmVar31" * identifier)) ;) (expression_statement "pmVar11 = tp + n + -1;" (assignment_expression "pmVar11 = tp + n + -1" identifier = (binary_expression "tp + n + -1" (binary_expression "tp + n" identifier + identifier) + number_literal)) ;) (expression_statement "pmVar18 = pmVar18 + 1;" (assignment_expression "pmVar18 = pmVar18 + 1" identifier = (binary_expression "pmVar18 + 1" identifier + number_literal)) ;) (expression_statement "pmVar31 = pmVar31 + 1;" (assignment_expression "pmVar31 = pmVar31 + 1" identifier = (binary_expression "pmVar31 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar28 != 0)" ( (binary_expression "iVar28 != 0" identifier != number_literal) )) ;) })) (expression_statement "*pmVar11 = mVar19;" (assignment_expression "*pmVar11 = mVar19" (pointer_expression "*pmVar11" * identifier) = identifier) ;) })) }) (else_clause "else {\n      (*(code *)PTR___gmpn_sqrlo_0009d354)(tp,rp,n);\n    }" else (compound_statement "{\n      (*(code *)PTR___gmpn_sqrlo_0009d354)(tp,rp,n);\n    }" { (expression_statement "(*(code *)PTR___gmpn_sqrlo_0009d354)(tp,rp,n);" (call_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)(tp,rp,n)" (parenthesized_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)" ( (pointer_expression "*(code *)PTR___gmpn_sqrlo_0009d354" * (cast_expression "(code *)PTR___gmpn_sqrlo_0009d354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(tp,rp,n)" ( identifier , identifier , identifier ))) ;) }))) (expression_statement "pmVar20 = (mp_limb_t *)(((uVar5 >> (uVar4 & 0x1f)) >> 1) * iVar34 + (int)pmVar6);" (assignment_expression "pmVar20 = (mp_limb_t *)(((uVar5 >> (uVar4 & 0x1f)) >> 1) * iVar34 + (int)pmVar6)" identifier = (cast_expression "(mp_limb_t *)(((uVar5 >> (uVar4 & 0x1f)) >> 1) * iVar34 + (int)pmVar6)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((uVar5 >> (uVar4 & 0x1f)) >> 1) * iVar34 + (int)pmVar6)" ( (binary_expression "((uVar5 >> (uVar4 & 0x1f)) >> 1) * iVar34 + (int)pmVar6" (binary_expression "((uVar5 >> (uVar4 & 0x1f)) >> 1) * iVar34" (parenthesized_expression "((uVar5 >> (uVar4 & 0x1f)) >> 1)" ( (binary_expression "(uVar5 >> (uVar4 & 0x1f)) >> 1" (parenthesized_expression "(uVar5 >> (uVar4 & 0x1f))" ( (binary_expression "uVar5 >> (uVar4 & 0x1f)" identifier >> (parenthesized_expression "(uVar4 & 0x1f)" ( (binary_expression "uVar4 & 0x1f" identifier & number_literal) ))) )) >> number_literal) )) * identifier) + (cast_expression "(int)pmVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pmVar18 = tp;" (assignment_expression "pmVar18 = tp" identifier = identifier) ;) (expression_statement "en = n;" (assignment_expression "en = n" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_mullo_n_0009d234)(rp);" (call_expression "(*(code *)PTR___gmpn_mullo_n_0009d234)(rp)" (parenthesized_expression "(*(code *)PTR___gmpn_mullo_n_0009d234)" ( (pointer_expression "*(code *)PTR___gmpn_mullo_n_0009d234" * (cast_expression "(code *)PTR___gmpn_mullo_n_0009d234" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(rp)" ( identifier ))) ;) (expression_statement "pmVar11 = (mp_limb_t *)(uVar4 + uVar13);" (assignment_expression "pmVar11 = (mp_limb_t *)(uVar4 + uVar13)" identifier = (cast_expression "(mp_limb_t *)(uVar4 + uVar13)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar4 + uVar13)" ( (binary_expression "uVar4 + uVar13" identifier + identifier) )))) ;) (expression_statement "ptVar15 = __tmp_marker;" (assignment_expression "ptVar15 = __tmp_marker" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "void __gmpn_powlo(undefined4 *param_1,undefined4 *param_2,uint *param_3,undefined4 *param_4,\n                 undefined4 *param_5,undefined4 *param_6)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  uint extraout_v1;\n  uint *puVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  undefined4 uVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined1 *puVar16;\n  undefined4 uVar17;\n  int iVar18;\n  int iVar19;\n  undefined4 *puVar20;\n  undefined4 *puVar21;\n  undefined4 *puVar22;\n  int *piVar23;\n  undefined4 *puVar24;\n  int iVar25;\n  undefined4 *puVar26;\n  undefined *puVar27;\n  code *UNRECOVERED_JUMPTABLE;\n  int iVar28;\n  int iVar29;\n  undefined1 *puVar30;\n  int iVar31;\n  undefined1 auStack_70 [16];\n  uint local_4c;\n  undefined4 *local_44;\n  undefined1 *local_3c;\n  undefined4 *local_38;\n  undefined4 *local_30;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0009d540;\n  puVar27 = PTR___gmpn_clz_tab_0009d18c;\n  puVar30 = auStack_70;\n  puVar16 = auStack_70;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  uVar2 = param_3[(int)((int)param_4 + -1)];\n  local_30 = (undefined4 *)0x0;\n  if (uVar2 < 0x10000) {\n    iVar19 = 9;\n    if (uVar2 < 0x100) {\n      iVar19 = 1;\n    }\n    puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);\n  }\n  else {\n    iVar19 = 0x19;\n    if (uVar2 < 0x1000000) {\n      iVar19 = 0x11;\n    }\n    puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);\n  }\n  if (puVar20 < &DAT_00000008) {\n    local_4c = 1;\n    local_38 = (undefined4 *)0x1;\n    uVar2 = (int)param_5 << 2;\n    iVar19 = 0;\n    local_44 = local_38;\n  }\n  else {\n    if (puVar20 < (undefined4 *)0x1a) {\n      local_44 = (undefined4 *)0x2;\n      iVar19 = 1;\n    }\n    else if (puVar20 < (undefined4 *)0x52) {\n      local_44 = (undefined4 *)0x3;\n      iVar19 = 2;\n    }\n    else if (puVar20 < (undefined4 *)0xf2) {\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }\n    else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }\n    uVar2 = ((int)param_5 << iVar19) << 2;\n    local_4c = ~(-1 << (int)local_44);\n    iVar19 = (1 << iVar19) + -1;\n  }\n  if (uVar2 < 0x7f01) {\n    iVar25 = -(uVar2 + 7 & 0xfffffff8);\n    puVar16 = auStack_70 + iVar25;\n    puVar30 = auStack_70 + iVar25;\n    puVar26 = (undefined4 *)(&stack0xffffffa0 + iVar25);\n  }\n  else {\n    puVar26 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }\n  if (param_5 == (undefined4 *)0x0) {\n    local_3c = (undefined1 *)0xffffffff;\n    puVar30 = puVar16;\n  }\n  else {\n    local_3c = (undefined1 *)((int)param_5 + -1);\n    uVar13 = *param_2;\n    if (local_3c == (undefined1 *)0x0) {\n      *puVar26 = uVar13;\n    }\n    else {\n      puVar16 = local_3c;\n      puVar7 = puVar26;\n      puVar22 = param_2 + 1;\n      do {\n        *puVar7 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar22;\n        puVar7 = puVar7 + 1;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      puVar26[(int)((int)param_5 + -1)] = uVar13;\n    }\n  }\n  (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_2,param_5);\n  iVar25 = (int)param_5 * 4;\n  puVar7 = puVar26;\n  for (; iVar19 != 0; iVar19 = iVar19 + -1) {\n    param_2 = puVar7 + (int)param_5;\n    param_4 = param_5;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(param_2,puVar7,param_6);\n    puVar7 = param_2;\n  }\n  uVar2 = (int)puVar20 - (int)local_44;\n  if (puVar20 < local_44) {\n    uVar3 = ~(-1 << ((uint)puVar20 & 0x1f)) & *param_3;\n  }\n  else {\n    uVar9 = 0x20 - (uVar2 & 0x1f);\n    param_4 = (undefined4 *)(uint)((int)uVar9 < (int)local_44);\n    uVar3 = param_3[uVar2 >> 5] >> (uVar2 & 0x1f);\n    if (param_4 != (undefined4 *)0x0) {\n      uVar3 = uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f));\n    }\n    uVar3 = uVar3 & local_4c;\n  }\n  if ((uVar3 & 0xff) == 0) {\n    uVar9 = uVar3 >> 8;\n    param_4 = (undefined4 *)&DAT_00000006;\n    iVar19 = 0x1e;\n    if (uVar9 != 0) {\n      iVar19 = 6;\n    }\n    uVar9 = (uint)(byte)puVar27[-uVar9 & uVar9] + iVar19;\n  }\n  else {\n    uVar9 = (byte)puVar27[-uVar3 & uVar3] - 2;\n  }\n  puVar7 = (undefined4 *)(uVar9 + uVar2);\n  if (param_5 != (undefined4 *)0x0) {\n    param_4 = (undefined4 *)(((uVar3 >> (uVar9 & 0x1f)) >> 1) * iVar25);\n    puVar12 = (undefined4 *)((int)param_4 + (int)puVar26);\n    uVar13 = *puVar12;\n    puVar16 = local_3c;\n    puVar22 = param_1;\n    if (local_3c == (undefined1 *)0x0) {\n      *param_1 = uVar13;\n    }\n    else {\n      do {\n        puVar12 = puVar12 + 1;\n        *puVar22 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar12;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      param_1[(int)((int)param_5 + -1)] = uVar13;\n    }\n  }\n  puVar22 = (undefined4 *)((int)puVar7 + -1);\n  if ((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) != 0) goto LAB_0007b010;\nLAB_0007afb0:\n  puVar12 = param_1;\n  puVar14 = param_5;\n  (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6);\n  puVar7 = puVar22;\n  puVar22 = local_30;\n  if (param_5 != (undefined4 *)0x0) {\n    puVar12 = (undefined4 *)*param_6;\n    puVar21 = param_1;\n    puVar24 = param_1;\n    puVar10 = param_6;\n    for (puVar16 = local_3c; puVar16 != (undefined1 *)0x0; puVar16 = puVar16 + -1) {\n      puVar10 = puVar10 + 1;\n      *puVar24 = puVar12;\n      puVar12 = (undefined4 *)*puVar10;\n      puVar21 = param_1 + (int)((int)param_5 + -1);\n      puVar24 = puVar24 + 1;\n    }\n    *puVar21 = puVar12;\n  }\n  do {\n    local_30 = puVar22;\n    if (puVar7 == (undefined4 *)0x0) {\n      if (puVar22 != (undefined4 *)0x0) {\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      uVar13 = 0x7b45c;\n      puVar27 = PTR___stack_chk_fail_0009d4d0;\n      (*(code *)PTR___stack_chk_fail_0009d4d0)();\n      uVar2 = *(uint *)(puVar30 + 0x10);\n      *(undefined4 **)(puVar30 + -0x24) = param_5;\n      *(undefined **)(puVar30 + -0x68) = puVar27 + 0x29be0;\n      *(undefined4 *)(puVar30 + -0x18) = 0;\n      *(undefined4 **)(puVar30 + -0x28) = puVar20;\n      *(undefined4 *)(puVar30 + -4) = uVar13;\n      *(undefined1 **)(puVar30 + -8) = auStack_70;\n      *(int *)(puVar30 + -0xc) = iVar25;\n      *(uint **)(puVar30 + -0x10) = param_3;\n      *(undefined4 **)(puVar30 + -0x14) = param_2;\n      *(undefined4 **)(puVar30 + -0x1c) = param_1;\n      *(undefined4 **)(puVar30 + -0x20) = param_6;\n      *(uint *)(puVar30 + -0x60) = uVar2;\n      *(undefined4 **)(puVar30 + -0x44) = puVar12;\n      *(undefined4 **)(puVar30 + -0x4c) = param_4;\n      piVar23 = *(int **)(puVar30 + 0x14);\n      iVar19 = *(int *)(puVar30 + 0x18);\n      *(undefined4 *)(puVar30 + -0x54) = *(undefined4 *)(puVar30 + 0x1c);\n      if (uVar2 < 3) {\n        iVar25 = 0;\n        *(undefined4 *)(puVar30 + -0x5c) = 1;\n        *(undefined4 *)(puVar30 + -0x50) = 2;\n        iVar4 = 1;\n        *(undefined4 *)(puVar30 + -0x58) = 1;\n      }\n      else {\n        if (uVar2 < 0x22) {\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }\n        else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }\n        *(int *)(puVar30 + -0x5c) = iVar4;\n        *(int *)(puVar30 + -0x50) = 1 << iVar4;\n        iVar25 = (1 << iVar4) + -2;\n      }\n      iVar11 = *piVar23;\n      iVar31 = iVar19 * 4;\n      puVar26 = *(undefined4 **)(puVar30 + -0x54);\n      puVar16 = (undefined1 *)(iVar19 + (int)puVar14);\n      puVar24 = puVar26 + iVar19;\n      uVar2 = (uint)*(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19));\n      puVar7 = puVar24 + iVar19;\n      puVar12 = puVar26 + iVar19 + 1;\n      *(undefined4 **)(puVar30 + -0x48) = puVar7 + (int)puVar16;\n      puVar21 = puVar26 + (iVar19 << iVar4);\n      *puVar24 = 1;\n      iVar4 = uVar2 * 2 - uVar2 * uVar2 * iVar11;\n      iVar4 = iVar4 * iVar4 * iVar11 + iVar4 * -2;\n      puVar20 = puVar24;\n      if (iVar19 == 0) {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c);\n        puVar12[iVar19] = 1;\n        *(undefined4 **)(puVar30 + -0x38) = puVar14;\n        *(undefined1 **)(puVar30 + -0x3c) = puVar16;\n        *(undefined4 **)(puVar30 + -0x40) = puVar7;\n        *(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar11 = *(int *)(puVar30 + -0x40);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        if (iVar18 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar6 = iVar28 + -1;\n        puVar7 = (undefined4 *)(iVar11 + iVar31);\n        uVar13 = **(undefined4 **)(puVar30 + -0x44);\n        if (iVar6 != 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          puVar12 = puVar7;\n          goto LAB_0007b70c;\n        }\n        uVar5 = *(undefined4 *)(puVar30 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n        *puVar7 = uVar13;\n        *(undefined4 *)(puVar30 + -0x70) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);\n        *(undefined4 **)(puVar30 + -0x2c) = puVar14;\n        *(undefined1 **)(puVar30 + -0x30) = puVar16;\n        *(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;\n        *(undefined4 **)(puVar30 + -0x38) = puVar7;\n        *(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;\n        uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);\n        uVar5 = *puVar24;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);\n        *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);\n        *(undefined4 *)(puVar30 + -0x3c) = uVar13;\n        **(undefined4 **)(puVar30 + -0x34) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);\n        iVar11 = iVar19 + -1;\n        puVar7 = *(undefined4 **)(puVar30 + -0x3c);\n        iVar28 = *(int *)(puVar30 + -0x68);\n        uVar13 = *(undefined4 *)(puVar30 + -0x38);\n        uVar17 = *(undefined4 *)(puVar30 + -0x30);\n        uVar5 = *puVar7;\n        uVar15 = *(undefined4 *)(puVar30 + -0x2c);\n        if (iVar11 == 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }\n        else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);\n        *(undefined4 *)(puVar30 + -0x38) = uVar15;\n        *(undefined4 *)(puVar30 + -0x3c) = uVar17;\n        *puVar26 = uVar5;\n        iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        if (iVar28 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }\n        else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }\n        iVar28 = *(int *)(puVar30 + -0x40);\n        uVar13 = *puVar26;\n        puVar7 = puVar24;\n        if (iVar28 == 0) {\n          *puVar24 = uVar13;\n        }\n        else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }\n      }\njoined_r0x0007b75c:\n      for (; iVar25 != 0; iVar25 = iVar25 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);\n        puVar20 = puVar20 + iVar19;\n        *(int *)(puVar30 + -0x70) = iVar4;\n        uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      uVar2 = *(uint *)(puVar30 + -0x5c);\n      if (*(uint *)(puVar30 + -0x60) < uVar2) {\n        (**(code **)(iVar11 + -0x7c20))\n                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438);\n        uVar2 = extraout_v1;\n      }\n      uVar2 = *(int *)(puVar30 + -0x60) - uVar2;\n      uVar9 = 0x20 - (uVar2 & 0x1f);\n      puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4);\n      uVar3 = *puVar8 >> (uVar2 & 0x1f);\n      if ((int)uVar9 < *(int *)(puVar30 + -0x58)) {\n        uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f));\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bac);\n      *(int *)(puVar30 + -0x44) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f));\n      *(uint *)(puVar30 + -0x70) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)) & uVar3;\n      (*UNRECOVERED_JUMPTABLE)\n                (puVar22,*(undefined4 *)(puVar30 + -0x54),iVar19,*(undefined4 *)(puVar30 + -0x50));\n      iVar25 = *(int *)(puVar30 + -0x68);\n      if (uVar2 != 0) {\n        *(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39);\n        do {\n          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n          if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);\n          *(undefined4 *)(puVar30 + -0x70) = uVar13;\n          (*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);\n          *(int *)(puVar30 + -0x70) = iVar4;\n          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n          iVar25 = *(int *)(puVar30 + -0x68);\n          uVar2 = uVar9;\n        } while (uVar9 != 0);\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7eb0);\n      if (iVar19 != 0) {\n        iVar11 = iVar19 + -1;\n        uVar13 = *puVar22;\n        puVar20 = puVar21;\n        puVar26 = puVar22;\n        if (iVar11 != 0) {\n          do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar20 = puVar21 + iVar19 + -1;\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58);\n        *puVar20 = uVar13;\n        (*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0);\n      }\n      *(int *)(puVar30 + -0x70) = iVar4;\n      uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar22,puVar21,piVar23,iVar19);\n      *(int *)(puVar30 + -0x70) = iVar19;\n      (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n      iVar25 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))(puVar21,puVar22,piVar23,iVar19);\n      UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7a70);\n      *(int *)(puVar30 + 0x10) = iVar19;\n                    \n                    \n      (*UNRECOVERED_JUMPTABLE)(iVar25 == 0,puVar22,puVar22,piVar23);\n      return;\n    }\n    puVar22 = (undefined4 *)((int)puVar7 + -1);\n    if ((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) == 0) goto LAB_0007afb0;\nLAB_0007b010:\n    if (puVar7 < local_44) {\n      uVar3 = ~(-1 << ((uint)puVar7 & 0x1f)) & *param_3;\n      uVar9 = 0;\n      if ((uVar3 & 0xff) == 0) goto LAB_0007b270;\nLAB_0007b040:\n      uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2;\n    }\n    else {\n      uVar9 = (int)puVar7 - (int)local_44;\n      uVar2 = 0x20 - (uVar9 & 0x1f);\n      uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f);\n      if ((int)uVar2 < (int)local_44) {\n        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));\n      }\n      uVar3 = uVar3 & local_4c;\n      puVar7 = local_44;\n      if ((uVar3 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar2 = uVar3 >> 8;\n      iVar19 = 0x1e;\n      if (uVar2 != 0) {\n        iVar19 = 6;\n      }\n      uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19;\n    }\n    param_2 = (undefined4 *)((int)puVar7 - uVar2);\n    puVar7 = param_2;\n    if (1 < (int)param_2) {\n      do {\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n        puVar20 = (undefined4 *)((int)puVar7 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5);\n        puVar7 = puVar20;\n      } while (1 < (int)puVar20);\n      param_2 = (undefined4 *)((uint)param_2 & 1);\n    }\n    if (param_2 == (undefined4 *)0x0) {\n      if (param_5 != (undefined4 *)0x0) {\n        uVar13 = *param_1;\n        puVar7 = param_6;\n        if (local_3c != (undefined1 *)0x0) {\n          puVar16 = local_3c;\n          puVar22 = param_6;\n          puVar12 = param_1 + 1;\n          do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);\n        }\n        *puVar7 = uVar13;\n      }\n    }\n    else {\n      (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n    }\n    puVar14 = (undefined4 *)(((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25 + (int)puVar26);\n    puVar12 = param_6;\n    param_4 = param_5;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(param_1);\n    puVar7 = (undefined4 *)(uVar2 + uVar9);\n    puVar22 = local_30;\n  } while( true );\n}\n\n" (function_definition "void __gmpn_powlo(undefined4 *param_1,undefined4 *param_2,uint *param_3,undefined4 *param_4,\n                 undefined4 *param_5,undefined4 *param_6)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  uint extraout_v1;\n  uint *puVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  undefined4 uVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined1 *puVar16;\n  undefined4 uVar17;\n  int iVar18;\n  int iVar19;\n  undefined4 *puVar20;\n  undefined4 *puVar21;\n  undefined4 *puVar22;\n  int *piVar23;\n  undefined4 *puVar24;\n  int iVar25;\n  undefined4 *puVar26;\n  undefined *puVar27;\n  code *UNRECOVERED_JUMPTABLE;\n  int iVar28;\n  int iVar29;\n  undefined1 *puVar30;\n  int iVar31;\n  undefined1 auStack_70 [16];\n  uint local_4c;\n  undefined4 *local_44;\n  undefined1 *local_3c;\n  undefined4 *local_38;\n  undefined4 *local_30;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0009d540;\n  puVar27 = PTR___gmpn_clz_tab_0009d18c;\n  puVar30 = auStack_70;\n  puVar16 = auStack_70;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  uVar2 = param_3[(int)((int)param_4 + -1)];\n  local_30 = (undefined4 *)0x0;\n  if (uVar2 < 0x10000) {\n    iVar19 = 9;\n    if (uVar2 < 0x100) {\n      iVar19 = 1;\n    }\n    puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);\n  }\n  else {\n    iVar19 = 0x19;\n    if (uVar2 < 0x1000000) {\n      iVar19 = 0x11;\n    }\n    puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);\n  }\n  if (puVar20 < &DAT_00000008) {\n    local_4c = 1;\n    local_38 = (undefined4 *)0x1;\n    uVar2 = (int)param_5 << 2;\n    iVar19 = 0;\n    local_44 = local_38;\n  }\n  else {\n    if (puVar20 < (undefined4 *)0x1a) {\n      local_44 = (undefined4 *)0x2;\n      iVar19 = 1;\n    }\n    else if (puVar20 < (undefined4 *)0x52) {\n      local_44 = (undefined4 *)0x3;\n      iVar19 = 2;\n    }\n    else if (puVar20 < (undefined4 *)0xf2) {\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }\n    else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }\n    uVar2 = ((int)param_5 << iVar19) << 2;\n    local_4c = ~(-1 << (int)local_44);\n    iVar19 = (1 << iVar19) + -1;\n  }\n  if (uVar2 < 0x7f01) {\n    iVar25 = -(uVar2 + 7 & 0xfffffff8);\n    puVar16 = auStack_70 + iVar25;\n    puVar30 = auStack_70 + iVar25;\n    puVar26 = (undefined4 *)(&stack0xffffffa0 + iVar25);\n  }\n  else {\n    puVar26 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }\n  if (param_5 == (undefined4 *)0x0) {\n    local_3c = (undefined1 *)0xffffffff;\n    puVar30 = puVar16;\n  }\n  else {\n    local_3c = (undefined1 *)((int)param_5 + -1);\n    uVar13 = *param_2;\n    if (local_3c == (undefined1 *)0x0) {\n      *puVar26 = uVar13;\n    }\n    else {\n      puVar16 = local_3c;\n      puVar7 = puVar26;\n      puVar22 = param_2 + 1;\n      do {\n        *puVar7 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar22;\n        puVar7 = puVar7 + 1;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      puVar26[(int)((int)param_5 + -1)] = uVar13;\n    }\n  }\n  (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_2,param_5);\n  iVar25 = (int)param_5 * 4;\n  puVar7 = puVar26;\n  for (; iVar19 != 0; iVar19 = iVar19 + -1) {\n    param_2 = puVar7 + (int)param_5;\n    param_4 = param_5;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(param_2,puVar7,param_6);\n    puVar7 = param_2;\n  }\n  uVar2 = (int)puVar20 - (int)local_44;\n  if (puVar20 < local_44) {\n    uVar3 = ~(-1 << ((uint)puVar20 & 0x1f)) & *param_3;\n  }\n  else {\n    uVar9 = 0x20 - (uVar2 & 0x1f);\n    param_4 = (undefined4 *)(uint)((int)uVar9 < (int)local_44);\n    uVar3 = param_3[uVar2 >> 5] >> (uVar2 & 0x1f);\n    if (param_4 != (undefined4 *)0x0) {\n      uVar3 = uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f));\n    }\n    uVar3 = uVar3 & local_4c;\n  }\n  if ((uVar3 & 0xff) == 0) {\n    uVar9 = uVar3 >> 8;\n    param_4 = (undefined4 *)&DAT_00000006;\n    iVar19 = 0x1e;\n    if (uVar9 != 0) {\n      iVar19 = 6;\n    }\n    uVar9 = (uint)(byte)puVar27[-uVar9 & uVar9] + iVar19;\n  }\n  else {\n    uVar9 = (byte)puVar27[-uVar3 & uVar3] - 2;\n  }\n  puVar7 = (undefined4 *)(uVar9 + uVar2);\n  if (param_5 != (undefined4 *)0x0) {\n    param_4 = (undefined4 *)(((uVar3 >> (uVar9 & 0x1f)) >> 1) * iVar25);\n    puVar12 = (undefined4 *)((int)param_4 + (int)puVar26);\n    uVar13 = *puVar12;\n    puVar16 = local_3c;\n    puVar22 = param_1;\n    if (local_3c == (undefined1 *)0x0) {\n      *param_1 = uVar13;\n    }\n    else {\n      do {\n        puVar12 = puVar12 + 1;\n        *puVar22 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar12;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      param_1[(int)((int)param_5 + -1)] = uVar13;\n    }\n  }\n  puVar22 = (undefined4 *)((int)puVar7 + -1);\n  if ((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) != 0) goto LAB_0007b010;\nLAB_0007afb0:\n  puVar12 = param_1;\n  puVar14 = param_5;\n  (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6);\n  puVar7 = puVar22;\n  puVar22 = local_30;\n  if (param_5 != (undefined4 *)0x0) {\n    puVar12 = (undefined4 *)*param_6;\n    puVar21 = param_1;\n    puVar24 = param_1;\n    puVar10 = param_6;\n    for (puVar16 = local_3c; puVar16 != (undefined1 *)0x0; puVar16 = puVar16 + -1) {\n      puVar10 = puVar10 + 1;\n      *puVar24 = puVar12;\n      puVar12 = (undefined4 *)*puVar10;\n      puVar21 = param_1 + (int)((int)param_5 + -1);\n      puVar24 = puVar24 + 1;\n    }\n    *puVar21 = puVar12;\n  }\n  do {\n    local_30 = puVar22;\n    if (puVar7 == (undefined4 *)0x0) {\n      if (puVar22 != (undefined4 *)0x0) {\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      uVar13 = 0x7b45c;\n      puVar27 = PTR___stack_chk_fail_0009d4d0;\n      (*(code *)PTR___stack_chk_fail_0009d4d0)();\n      uVar2 = *(uint *)(puVar30 + 0x10);\n      *(undefined4 **)(puVar30 + -0x24) = param_5;\n      *(undefined **)(puVar30 + -0x68) = puVar27 + 0x29be0;\n      *(undefined4 *)(puVar30 + -0x18) = 0;\n      *(undefined4 **)(puVar30 + -0x28) = puVar20;\n      *(undefined4 *)(puVar30 + -4) = uVar13;\n      *(undefined1 **)(puVar30 + -8) = auStack_70;\n      *(int *)(puVar30 + -0xc) = iVar25;\n      *(uint **)(puVar30 + -0x10) = param_3;\n      *(undefined4 **)(puVar30 + -0x14) = param_2;\n      *(undefined4 **)(puVar30 + -0x1c) = param_1;\n      *(undefined4 **)(puVar30 + -0x20) = param_6;\n      *(uint *)(puVar30 + -0x60) = uVar2;\n      *(undefined4 **)(puVar30 + -0x44) = puVar12;\n      *(undefined4 **)(puVar30 + -0x4c) = param_4;\n      piVar23 = *(int **)(puVar30 + 0x14);\n      iVar19 = *(int *)(puVar30 + 0x18);\n      *(undefined4 *)(puVar30 + -0x54) = *(undefined4 *)(puVar30 + 0x1c);\n      if (uVar2 < 3) {\n        iVar25 = 0;\n        *(undefined4 *)(puVar30 + -0x5c) = 1;\n        *(undefined4 *)(puVar30 + -0x50) = 2;\n        iVar4 = 1;\n        *(undefined4 *)(puVar30 + -0x58) = 1;\n      }\n      else {\n        if (uVar2 < 0x22) {\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }\n        else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }\n        *(int *)(puVar30 + -0x5c) = iVar4;\n        *(int *)(puVar30 + -0x50) = 1 << iVar4;\n        iVar25 = (1 << iVar4) + -2;\n      }\n      iVar11 = *piVar23;\n      iVar31 = iVar19 * 4;\n      puVar26 = *(undefined4 **)(puVar30 + -0x54);\n      puVar16 = (undefined1 *)(iVar19 + (int)puVar14);\n      puVar24 = puVar26 + iVar19;\n      uVar2 = (uint)*(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19));\n      puVar7 = puVar24 + iVar19;\n      puVar12 = puVar26 + iVar19 + 1;\n      *(undefined4 **)(puVar30 + -0x48) = puVar7 + (int)puVar16;\n      puVar21 = puVar26 + (iVar19 << iVar4);\n      *puVar24 = 1;\n      iVar4 = uVar2 * 2 - uVar2 * uVar2 * iVar11;\n      iVar4 = iVar4 * iVar4 * iVar11 + iVar4 * -2;\n      puVar20 = puVar24;\n      if (iVar19 == 0) {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c);\n        puVar12[iVar19] = 1;\n        *(undefined4 **)(puVar30 + -0x38) = puVar14;\n        *(undefined1 **)(puVar30 + -0x3c) = puVar16;\n        *(undefined4 **)(puVar30 + -0x40) = puVar7;\n        *(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar11 = *(int *)(puVar30 + -0x40);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        if (iVar18 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar6 = iVar28 + -1;\n        puVar7 = (undefined4 *)(iVar11 + iVar31);\n        uVar13 = **(undefined4 **)(puVar30 + -0x44);\n        if (iVar6 != 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          puVar12 = puVar7;\n          goto LAB_0007b70c;\n        }\n        uVar5 = *(undefined4 *)(puVar30 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n        *puVar7 = uVar13;\n        *(undefined4 *)(puVar30 + -0x70) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);\n        *(undefined4 **)(puVar30 + -0x2c) = puVar14;\n        *(undefined1 **)(puVar30 + -0x30) = puVar16;\n        *(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;\n        *(undefined4 **)(puVar30 + -0x38) = puVar7;\n        *(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;\n        uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);\n        uVar5 = *puVar24;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);\n        *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);\n        *(undefined4 *)(puVar30 + -0x3c) = uVar13;\n        **(undefined4 **)(puVar30 + -0x34) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);\n        iVar11 = iVar19 + -1;\n        puVar7 = *(undefined4 **)(puVar30 + -0x3c);\n        iVar28 = *(int *)(puVar30 + -0x68);\n        uVar13 = *(undefined4 *)(puVar30 + -0x38);\n        uVar17 = *(undefined4 *)(puVar30 + -0x30);\n        uVar5 = *puVar7;\n        uVar15 = *(undefined4 *)(puVar30 + -0x2c);\n        if (iVar11 == 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }\n        else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);\n        *(undefined4 *)(puVar30 + -0x38) = uVar15;\n        *(undefined4 *)(puVar30 + -0x3c) = uVar17;\n        *puVar26 = uVar5;\n        iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        if (iVar28 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }\n        else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }\n        iVar28 = *(int *)(puVar30 + -0x40);\n        uVar13 = *puVar26;\n        puVar7 = puVar24;\n        if (iVar28 == 0) {\n          *puVar24 = uVar13;\n        }\n        else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }\n      }\njoined_r0x0007b75c:\n      for (; iVar25 != 0; iVar25 = iVar25 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);\n        puVar20 = puVar20 + iVar19;\n        *(int *)(puVar30 + -0x70) = iVar4;\n        uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      uVar2 = *(uint *)(puVar30 + -0x5c);\n      if (*(uint *)(puVar30 + -0x60) < uVar2) {\n        (**(code **)(iVar11 + -0x7c20))\n                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438);\n        uVar2 = extraout_v1;\n      }\n      uVar2 = *(int *)(puVar30 + -0x60) - uVar2;\n      uVar9 = 0x20 - (uVar2 & 0x1f);\n      puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4);\n      uVar3 = *puVar8 >> (uVar2 & 0x1f);\n      if ((int)uVar9 < *(int *)(puVar30 + -0x58)) {\n        uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f));\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bac);\n      *(int *)(puVar30 + -0x44) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f));\n      *(uint *)(puVar30 + -0x70) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)) & uVar3;\n      (*UNRECOVERED_JUMPTABLE)\n                (puVar22,*(undefined4 *)(puVar30 + -0x54),iVar19,*(undefined4 *)(puVar30 + -0x50));\n      iVar25 = *(int *)(puVar30 + -0x68);\n      if (uVar2 != 0) {\n        *(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39);\n        do {\n          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n          if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);\n          *(undefined4 *)(puVar30 + -0x70) = uVar13;\n          (*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);\n          *(int *)(puVar30 + -0x70) = iVar4;\n          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n          iVar25 = *(int *)(puVar30 + -0x68);\n          uVar2 = uVar9;\n        } while (uVar9 != 0);\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7eb0);\n      if (iVar19 != 0) {\n        iVar11 = iVar19 + -1;\n        uVar13 = *puVar22;\n        puVar20 = puVar21;\n        puVar26 = puVar22;\n        if (iVar11 != 0) {\n          do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar20 = puVar21 + iVar19 + -1;\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58);\n        *puVar20 = uVar13;\n        (*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0);\n      }\n      *(int *)(puVar30 + -0x70) = iVar4;\n      uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar22,puVar21,piVar23,iVar19);\n      *(int *)(puVar30 + -0x70) = iVar19;\n      (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n      iVar25 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))(puVar21,puVar22,piVar23,iVar19);\n      UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7a70);\n      *(int *)(puVar30 + 0x10) = iVar19;\n                    \n                    \n      (*UNRECOVERED_JUMPTABLE)(iVar25 == 0,puVar22,puVar22,piVar23);\n      return;\n    }\n    puVar22 = (undefined4 *)((int)puVar7 + -1);\n    if ((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) == 0) goto LAB_0007afb0;\nLAB_0007b010:\n    if (puVar7 < local_44) {\n      uVar3 = ~(-1 << ((uint)puVar7 & 0x1f)) & *param_3;\n      uVar9 = 0;\n      if ((uVar3 & 0xff) == 0) goto LAB_0007b270;\nLAB_0007b040:\n      uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2;\n    }\n    else {\n      uVar9 = (int)puVar7 - (int)local_44;\n      uVar2 = 0x20 - (uVar9 & 0x1f);\n      uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f);\n      if ((int)uVar2 < (int)local_44) {\n        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));\n      }\n      uVar3 = uVar3 & local_4c;\n      puVar7 = local_44;\n      if ((uVar3 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar2 = uVar3 >> 8;\n      iVar19 = 0x1e;\n      if (uVar2 != 0) {\n        iVar19 = 6;\n      }\n      uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19;\n    }\n    param_2 = (undefined4 *)((int)puVar7 - uVar2);\n    puVar7 = param_2;\n    if (1 < (int)param_2) {\n      do {\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n        puVar20 = (undefined4 *)((int)puVar7 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5);\n        puVar7 = puVar20;\n      } while (1 < (int)puVar20);\n      param_2 = (undefined4 *)((uint)param_2 & 1);\n    }\n    if (param_2 == (undefined4 *)0x0) {\n      if (param_5 != (undefined4 *)0x0) {\n        uVar13 = *param_1;\n        puVar7 = param_6;\n        if (local_3c != (undefined1 *)0x0) {\n          puVar16 = local_3c;\n          puVar22 = param_6;\n          puVar12 = param_1 + 1;\n          do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);\n        }\n        *puVar7 = uVar13;\n      }\n    }\n    else {\n      (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n    }\n    puVar14 = (undefined4 *)(((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25 + (int)puVar26);\n    puVar12 = param_6;\n    param_4 = param_5;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(param_1);\n    puVar7 = (undefined4 *)(uVar2 + uVar9);\n    puVar22 = local_30;\n  } while( true );\n}" primitive_type (function_declarator "__gmpn_powlo(undefined4 *param_1,undefined4 *param_2,uint *param_3,undefined4 *param_4,\n                 undefined4 *param_5,undefined4 *param_6)" identifier (parameter_list "(undefined4 *param_1,undefined4 *param_2,uint *param_3,undefined4 *param_4,\n                 undefined4 *param_5,undefined4 *param_6)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "undefined4 *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "undefined4 *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  uint extraout_v1;\n  uint *puVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  undefined4 uVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined1 *puVar16;\n  undefined4 uVar17;\n  int iVar18;\n  int iVar19;\n  undefined4 *puVar20;\n  undefined4 *puVar21;\n  undefined4 *puVar22;\n  int *piVar23;\n  undefined4 *puVar24;\n  int iVar25;\n  undefined4 *puVar26;\n  undefined *puVar27;\n  code *UNRECOVERED_JUMPTABLE;\n  int iVar28;\n  int iVar29;\n  undefined1 *puVar30;\n  int iVar31;\n  undefined1 auStack_70 [16];\n  uint local_4c;\n  undefined4 *local_44;\n  undefined1 *local_3c;\n  undefined4 *local_38;\n  undefined4 *local_30;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0009d540;\n  puVar27 = PTR___gmpn_clz_tab_0009d18c;\n  puVar30 = auStack_70;\n  puVar16 = auStack_70;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  uVar2 = param_3[(int)((int)param_4 + -1)];\n  local_30 = (undefined4 *)0x0;\n  if (uVar2 < 0x10000) {\n    iVar19 = 9;\n    if (uVar2 < 0x100) {\n      iVar19 = 1;\n    }\n    puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);\n  }\n  else {\n    iVar19 = 0x19;\n    if (uVar2 < 0x1000000) {\n      iVar19 = 0x11;\n    }\n    puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);\n  }\n  if (puVar20 < &DAT_00000008) {\n    local_4c = 1;\n    local_38 = (undefined4 *)0x1;\n    uVar2 = (int)param_5 << 2;\n    iVar19 = 0;\n    local_44 = local_38;\n  }\n  else {\n    if (puVar20 < (undefined4 *)0x1a) {\n      local_44 = (undefined4 *)0x2;\n      iVar19 = 1;\n    }\n    else if (puVar20 < (undefined4 *)0x52) {\n      local_44 = (undefined4 *)0x3;\n      iVar19 = 2;\n    }\n    else if (puVar20 < (undefined4 *)0xf2) {\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }\n    else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }\n    uVar2 = ((int)param_5 << iVar19) << 2;\n    local_4c = ~(-1 << (int)local_44);\n    iVar19 = (1 << iVar19) + -1;\n  }\n  if (uVar2 < 0x7f01) {\n    iVar25 = -(uVar2 + 7 & 0xfffffff8);\n    puVar16 = auStack_70 + iVar25;\n    puVar30 = auStack_70 + iVar25;\n    puVar26 = (undefined4 *)(&stack0xffffffa0 + iVar25);\n  }\n  else {\n    puVar26 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }\n  if (param_5 == (undefined4 *)0x0) {\n    local_3c = (undefined1 *)0xffffffff;\n    puVar30 = puVar16;\n  }\n  else {\n    local_3c = (undefined1 *)((int)param_5 + -1);\n    uVar13 = *param_2;\n    if (local_3c == (undefined1 *)0x0) {\n      *puVar26 = uVar13;\n    }\n    else {\n      puVar16 = local_3c;\n      puVar7 = puVar26;\n      puVar22 = param_2 + 1;\n      do {\n        *puVar7 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar22;\n        puVar7 = puVar7 + 1;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      puVar26[(int)((int)param_5 + -1)] = uVar13;\n    }\n  }\n  (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_2,param_5);\n  iVar25 = (int)param_5 * 4;\n  puVar7 = puVar26;\n  for (; iVar19 != 0; iVar19 = iVar19 + -1) {\n    param_2 = puVar7 + (int)param_5;\n    param_4 = param_5;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(param_2,puVar7,param_6);\n    puVar7 = param_2;\n  }\n  uVar2 = (int)puVar20 - (int)local_44;\n  if (puVar20 < local_44) {\n    uVar3 = ~(-1 << ((uint)puVar20 & 0x1f)) & *param_3;\n  }\n  else {\n    uVar9 = 0x20 - (uVar2 & 0x1f);\n    param_4 = (undefined4 *)(uint)((int)uVar9 < (int)local_44);\n    uVar3 = param_3[uVar2 >> 5] >> (uVar2 & 0x1f);\n    if (param_4 != (undefined4 *)0x0) {\n      uVar3 = uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f));\n    }\n    uVar3 = uVar3 & local_4c;\n  }\n  if ((uVar3 & 0xff) == 0) {\n    uVar9 = uVar3 >> 8;\n    param_4 = (undefined4 *)&DAT_00000006;\n    iVar19 = 0x1e;\n    if (uVar9 != 0) {\n      iVar19 = 6;\n    }\n    uVar9 = (uint)(byte)puVar27[-uVar9 & uVar9] + iVar19;\n  }\n  else {\n    uVar9 = (byte)puVar27[-uVar3 & uVar3] - 2;\n  }\n  puVar7 = (undefined4 *)(uVar9 + uVar2);\n  if (param_5 != (undefined4 *)0x0) {\n    param_4 = (undefined4 *)(((uVar3 >> (uVar9 & 0x1f)) >> 1) * iVar25);\n    puVar12 = (undefined4 *)((int)param_4 + (int)puVar26);\n    uVar13 = *puVar12;\n    puVar16 = local_3c;\n    puVar22 = param_1;\n    if (local_3c == (undefined1 *)0x0) {\n      *param_1 = uVar13;\n    }\n    else {\n      do {\n        puVar12 = puVar12 + 1;\n        *puVar22 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar12;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      param_1[(int)((int)param_5 + -1)] = uVar13;\n    }\n  }\n  puVar22 = (undefined4 *)((int)puVar7 + -1);\n  if ((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) != 0) goto LAB_0007b010;\nLAB_0007afb0:\n  puVar12 = param_1;\n  puVar14 = param_5;\n  (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6);\n  puVar7 = puVar22;\n  puVar22 = local_30;\n  if (param_5 != (undefined4 *)0x0) {\n    puVar12 = (undefined4 *)*param_6;\n    puVar21 = param_1;\n    puVar24 = param_1;\n    puVar10 = param_6;\n    for (puVar16 = local_3c; puVar16 != (undefined1 *)0x0; puVar16 = puVar16 + -1) {\n      puVar10 = puVar10 + 1;\n      *puVar24 = puVar12;\n      puVar12 = (undefined4 *)*puVar10;\n      puVar21 = param_1 + (int)((int)param_5 + -1);\n      puVar24 = puVar24 + 1;\n    }\n    *puVar21 = puVar12;\n  }\n  do {\n    local_30 = puVar22;\n    if (puVar7 == (undefined4 *)0x0) {\n      if (puVar22 != (undefined4 *)0x0) {\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      uVar13 = 0x7b45c;\n      puVar27 = PTR___stack_chk_fail_0009d4d0;\n      (*(code *)PTR___stack_chk_fail_0009d4d0)();\n      uVar2 = *(uint *)(puVar30 + 0x10);\n      *(undefined4 **)(puVar30 + -0x24) = param_5;\n      *(undefined **)(puVar30 + -0x68) = puVar27 + 0x29be0;\n      *(undefined4 *)(puVar30 + -0x18) = 0;\n      *(undefined4 **)(puVar30 + -0x28) = puVar20;\n      *(undefined4 *)(puVar30 + -4) = uVar13;\n      *(undefined1 **)(puVar30 + -8) = auStack_70;\n      *(int *)(puVar30 + -0xc) = iVar25;\n      *(uint **)(puVar30 + -0x10) = param_3;\n      *(undefined4 **)(puVar30 + -0x14) = param_2;\n      *(undefined4 **)(puVar30 + -0x1c) = param_1;\n      *(undefined4 **)(puVar30 + -0x20) = param_6;\n      *(uint *)(puVar30 + -0x60) = uVar2;\n      *(undefined4 **)(puVar30 + -0x44) = puVar12;\n      *(undefined4 **)(puVar30 + -0x4c) = param_4;\n      piVar23 = *(int **)(puVar30 + 0x14);\n      iVar19 = *(int *)(puVar30 + 0x18);\n      *(undefined4 *)(puVar30 + -0x54) = *(undefined4 *)(puVar30 + 0x1c);\n      if (uVar2 < 3) {\n        iVar25 = 0;\n        *(undefined4 *)(puVar30 + -0x5c) = 1;\n        *(undefined4 *)(puVar30 + -0x50) = 2;\n        iVar4 = 1;\n        *(undefined4 *)(puVar30 + -0x58) = 1;\n      }\n      else {\n        if (uVar2 < 0x22) {\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }\n        else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }\n        *(int *)(puVar30 + -0x5c) = iVar4;\n        *(int *)(puVar30 + -0x50) = 1 << iVar4;\n        iVar25 = (1 << iVar4) + -2;\n      }\n      iVar11 = *piVar23;\n      iVar31 = iVar19 * 4;\n      puVar26 = *(undefined4 **)(puVar30 + -0x54);\n      puVar16 = (undefined1 *)(iVar19 + (int)puVar14);\n      puVar24 = puVar26 + iVar19;\n      uVar2 = (uint)*(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19));\n      puVar7 = puVar24 + iVar19;\n      puVar12 = puVar26 + iVar19 + 1;\n      *(undefined4 **)(puVar30 + -0x48) = puVar7 + (int)puVar16;\n      puVar21 = puVar26 + (iVar19 << iVar4);\n      *puVar24 = 1;\n      iVar4 = uVar2 * 2 - uVar2 * uVar2 * iVar11;\n      iVar4 = iVar4 * iVar4 * iVar11 + iVar4 * -2;\n      puVar20 = puVar24;\n      if (iVar19 == 0) {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c);\n        puVar12[iVar19] = 1;\n        *(undefined4 **)(puVar30 + -0x38) = puVar14;\n        *(undefined1 **)(puVar30 + -0x3c) = puVar16;\n        *(undefined4 **)(puVar30 + -0x40) = puVar7;\n        *(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar11 = *(int *)(puVar30 + -0x40);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        if (iVar18 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar6 = iVar28 + -1;\n        puVar7 = (undefined4 *)(iVar11 + iVar31);\n        uVar13 = **(undefined4 **)(puVar30 + -0x44);\n        if (iVar6 != 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          puVar12 = puVar7;\n          goto LAB_0007b70c;\n        }\n        uVar5 = *(undefined4 *)(puVar30 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n        *puVar7 = uVar13;\n        *(undefined4 *)(puVar30 + -0x70) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);\n        *(undefined4 **)(puVar30 + -0x2c) = puVar14;\n        *(undefined1 **)(puVar30 + -0x30) = puVar16;\n        *(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;\n        *(undefined4 **)(puVar30 + -0x38) = puVar7;\n        *(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;\n        uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);\n        uVar5 = *puVar24;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);\n        *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);\n        *(undefined4 *)(puVar30 + -0x3c) = uVar13;\n        **(undefined4 **)(puVar30 + -0x34) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);\n        iVar11 = iVar19 + -1;\n        puVar7 = *(undefined4 **)(puVar30 + -0x3c);\n        iVar28 = *(int *)(puVar30 + -0x68);\n        uVar13 = *(undefined4 *)(puVar30 + -0x38);\n        uVar17 = *(undefined4 *)(puVar30 + -0x30);\n        uVar5 = *puVar7;\n        uVar15 = *(undefined4 *)(puVar30 + -0x2c);\n        if (iVar11 == 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }\n        else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);\n        *(undefined4 *)(puVar30 + -0x38) = uVar15;\n        *(undefined4 *)(puVar30 + -0x3c) = uVar17;\n        *puVar26 = uVar5;\n        iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        if (iVar28 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }\n        else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }\n        iVar28 = *(int *)(puVar30 + -0x40);\n        uVar13 = *puVar26;\n        puVar7 = puVar24;\n        if (iVar28 == 0) {\n          *puVar24 = uVar13;\n        }\n        else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }\n      }\njoined_r0x0007b75c:\n      for (; iVar25 != 0; iVar25 = iVar25 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);\n        puVar20 = puVar20 + iVar19;\n        *(int *)(puVar30 + -0x70) = iVar4;\n        uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      uVar2 = *(uint *)(puVar30 + -0x5c);\n      if (*(uint *)(puVar30 + -0x60) < uVar2) {\n        (**(code **)(iVar11 + -0x7c20))\n                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438);\n        uVar2 = extraout_v1;\n      }\n      uVar2 = *(int *)(puVar30 + -0x60) - uVar2;\n      uVar9 = 0x20 - (uVar2 & 0x1f);\n      puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4);\n      uVar3 = *puVar8 >> (uVar2 & 0x1f);\n      if ((int)uVar9 < *(int *)(puVar30 + -0x58)) {\n        uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f));\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bac);\n      *(int *)(puVar30 + -0x44) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f));\n      *(uint *)(puVar30 + -0x70) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)) & uVar3;\n      (*UNRECOVERED_JUMPTABLE)\n                (puVar22,*(undefined4 *)(puVar30 + -0x54),iVar19,*(undefined4 *)(puVar30 + -0x50));\n      iVar25 = *(int *)(puVar30 + -0x68);\n      if (uVar2 != 0) {\n        *(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39);\n        do {\n          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n          if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);\n          *(undefined4 *)(puVar30 + -0x70) = uVar13;\n          (*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);\n          *(int *)(puVar30 + -0x70) = iVar4;\n          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n          iVar25 = *(int *)(puVar30 + -0x68);\n          uVar2 = uVar9;\n        } while (uVar9 != 0);\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7eb0);\n      if (iVar19 != 0) {\n        iVar11 = iVar19 + -1;\n        uVar13 = *puVar22;\n        puVar20 = puVar21;\n        puVar26 = puVar22;\n        if (iVar11 != 0) {\n          do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar20 = puVar21 + iVar19 + -1;\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58);\n        *puVar20 = uVar13;\n        (*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0);\n      }\n      *(int *)(puVar30 + -0x70) = iVar4;\n      uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar22,puVar21,piVar23,iVar19);\n      *(int *)(puVar30 + -0x70) = iVar19;\n      (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n      iVar25 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))(puVar21,puVar22,piVar23,iVar19);\n      UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7a70);\n      *(int *)(puVar30 + 0x10) = iVar19;\n                    \n                    \n      (*UNRECOVERED_JUMPTABLE)(iVar25 == 0,puVar22,puVar22,piVar23);\n      return;\n    }\n    puVar22 = (undefined4 *)((int)puVar7 + -1);\n    if ((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) == 0) goto LAB_0007afb0;\nLAB_0007b010:\n    if (puVar7 < local_44) {\n      uVar3 = ~(-1 << ((uint)puVar7 & 0x1f)) & *param_3;\n      uVar9 = 0;\n      if ((uVar3 & 0xff) == 0) goto LAB_0007b270;\nLAB_0007b040:\n      uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2;\n    }\n    else {\n      uVar9 = (int)puVar7 - (int)local_44;\n      uVar2 = 0x20 - (uVar9 & 0x1f);\n      uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f);\n      if ((int)uVar2 < (int)local_44) {\n        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));\n      }\n      uVar3 = uVar3 & local_4c;\n      puVar7 = local_44;\n      if ((uVar3 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar2 = uVar3 >> 8;\n      iVar19 = 0x1e;\n      if (uVar2 != 0) {\n        iVar19 = 6;\n      }\n      uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19;\n    }\n    param_2 = (undefined4 *)((int)puVar7 - uVar2);\n    puVar7 = param_2;\n    if (1 < (int)param_2) {\n      do {\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n        puVar20 = (undefined4 *)((int)puVar7 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5);\n        puVar7 = puVar20;\n      } while (1 < (int)puVar20);\n      param_2 = (undefined4 *)((uint)param_2 & 1);\n    }\n    if (param_2 == (undefined4 *)0x0) {\n      if (param_5 != (undefined4 *)0x0) {\n        uVar13 = *param_1;\n        puVar7 = param_6;\n        if (local_3c != (undefined1 *)0x0) {\n          puVar16 = local_3c;\n          puVar22 = param_6;\n          puVar12 = param_1 + 1;\n          do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);\n        }\n        *puVar7 = uVar13;\n      }\n    }\n    else {\n      (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n    }\n    puVar14 = (undefined4 *)(((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25 + (int)puVar26);\n    puVar12 = param_6;\n    param_4 = param_5;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(param_1);\n    puVar7 = (undefined4 *)(uVar2 + uVar9);\n    puVar22 = local_30;\n  } while( true );\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint extraout_v1;" type_identifier identifier ;) (declaration "uint *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined4 uVar17;" type_identifier identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "undefined4 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined4 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "undefined4 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "int *piVar23;" primitive_type (pointer_declarator "*piVar23" * identifier) ;) (declaration "undefined4 *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "undefined4 *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "undefined *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "code *UNRECOVERED_JUMPTABLE;" type_identifier (pointer_declarator "*UNRECOVERED_JUMPTABLE" * identifier) ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "int iVar29;" primitive_type identifier ;) (declaration "undefined1 *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "int iVar31;" primitive_type identifier ;) (declaration "undefined1 auStack_70 [16];" type_identifier (array_declarator "auStack_70 [16]" identifier [ number_literal ]) ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "undefined4 *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "undefined1 *local_3c;" type_identifier (pointer_declarator "*local_3c" * identifier) ;) (declaration "undefined4 *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "undefined4 *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0009d540;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0009d540" identifier = identifier) ;) (expression_statement "puVar27 = PTR___gmpn_clz_tab_0009d18c;" (assignment_expression "puVar27 = PTR___gmpn_clz_tab_0009d18c" identifier = identifier) ;) (expression_statement "puVar30 = auStack_70;" (assignment_expression "puVar30 = auStack_70" identifier = identifier) ;) (expression_statement "puVar16 = auStack_70;" (assignment_expression "puVar16 = auStack_70" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0009d540;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0009d540" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0009d540" * (cast_expression "(int *)PTR___stack_chk_guard_0009d540" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar2 = param_3[(int)((int)param_4 + -1)];" (assignment_expression "uVar2 = param_3[(int)((int)param_4 + -1)]" identifier = (subscript_expression "param_3[(int)((int)param_4 + -1)]" identifier [ (cast_expression "(int)((int)param_4 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)param_4 + -1)" ( (binary_expression "(int)param_4 + -1" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ])) ;) (expression_statement "local_30 = (undefined4 *)0x0;" (assignment_expression "local_30 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (uVar2 < 0x10000) {\n    iVar19 = 9;\n    if (uVar2 < 0x100) {\n      iVar19 = 1;\n    }\n    puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);\n  }\n  else {\n    iVar19 = 0x19;\n    if (uVar2 < 0x1000000) {\n      iVar19 = 0x11;\n    }\n    puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);\n  }" if (parenthesized_expression "(uVar2 < 0x10000)" ( (binary_expression "uVar2 < 0x10000" identifier < number_literal) )) (compound_statement "{\n    iVar19 = 9;\n    if (uVar2 < 0x100) {\n      iVar19 = 1;\n    }\n    puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);\n  }" { (expression_statement "iVar19 = 9;" (assignment_expression "iVar19 = 9" identifier = number_literal) ;) (if_statement "if (uVar2 < 0x100) {\n      iVar19 = 1;\n    }" if (parenthesized_expression "(uVar2 < 0x100)" ( (binary_expression "uVar2 < 0x100" identifier < number_literal) )) (compound_statement "{\n      iVar19 = 1;\n    }" { (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" identifier = number_literal) ;) })) (expression_statement "puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);" (assignment_expression "puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19])" identifier = (cast_expression "(undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19])" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19])" ( (binary_expression "(int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]" (binary_expression "(int)param_4 * 0x20 + -0x21 + iVar19" (binary_expression "(int)param_4 * 0x20 + -0x21" (binary_expression "(int)param_4 * 0x20" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) + identifier) + (cast_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]" identifier [ (binary_expression "uVar2 >> iVar19" identifier >> identifier) ])))) )))) ;) }) (else_clause "else {\n    iVar19 = 0x19;\n    if (uVar2 < 0x1000000) {\n      iVar19 = 0x11;\n    }\n    puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);\n  }" else (compound_statement "{\n    iVar19 = 0x19;\n    if (uVar2 < 0x1000000) {\n      iVar19 = 0x11;\n    }\n    puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);\n  }" { (expression_statement "iVar19 = 0x19;" (assignment_expression "iVar19 = 0x19" identifier = number_literal) ;) (if_statement "if (uVar2 < 0x1000000) {\n      iVar19 = 0x11;\n    }" if (parenthesized_expression "(uVar2 < 0x1000000)" ( (binary_expression "uVar2 < 0x1000000" identifier < number_literal) )) (compound_statement "{\n      iVar19 = 0x11;\n    }" { (expression_statement "iVar19 = 0x11;" (assignment_expression "iVar19 = 0x11" identifier = number_literal) ;) })) (expression_statement "puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);" (assignment_expression "puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19])" identifier = (cast_expression "(undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19])" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19])" ( (binary_expression "(int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]" (binary_expression "(int)param_4 * 0x20 + -0x21 + iVar19" (binary_expression "(int)param_4 * 0x20 + -0x21" (binary_expression "(int)param_4 * 0x20" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) + identifier) + (cast_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]" identifier [ (binary_expression "uVar2 >> iVar19" identifier >> identifier) ])))) )))) ;) }))) (if_statement "if (puVar20 < &DAT_00000008) {\n    local_4c = 1;\n    local_38 = (undefined4 *)0x1;\n    uVar2 = (int)param_5 << 2;\n    iVar19 = 0;\n    local_44 = local_38;\n  }\n  else {\n    if (puVar20 < (undefined4 *)0x1a) {\n      local_44 = (undefined4 *)0x2;\n      iVar19 = 1;\n    }\n    else if (puVar20 < (undefined4 *)0x52) {\n      local_44 = (undefined4 *)0x3;\n      iVar19 = 2;\n    }\n    else if (puVar20 < (undefined4 *)0xf2) {\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }\n    else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }\n    uVar2 = ((int)param_5 << iVar19) << 2;\n    local_4c = ~(-1 << (int)local_44);\n    iVar19 = (1 << iVar19) + -1;\n  }" if (parenthesized_expression "(puVar20 < &DAT_00000008)" ( (binary_expression "puVar20 < &DAT_00000008" identifier < (pointer_expression "&DAT_00000008" & identifier)) )) (compound_statement "{\n    local_4c = 1;\n    local_38 = (undefined4 *)0x1;\n    uVar2 = (int)param_5 << 2;\n    iVar19 = 0;\n    local_44 = local_38;\n  }" { (expression_statement "local_4c = 1;" (assignment_expression "local_4c = 1" identifier = number_literal) ;) (expression_statement "local_38 = (undefined4 *)0x1;" (assignment_expression "local_38 = (undefined4 *)0x1" identifier = (cast_expression "(undefined4 *)0x1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar2 = (int)param_5 << 2;" (assignment_expression "uVar2 = (int)param_5 << 2" identifier = (binary_expression "(int)param_5 << 2" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "local_44 = local_38;" (assignment_expression "local_44 = local_38" identifier = identifier) ;) }) (else_clause "else {\n    if (puVar20 < (undefined4 *)0x1a) {\n      local_44 = (undefined4 *)0x2;\n      iVar19 = 1;\n    }\n    else if (puVar20 < (undefined4 *)0x52) {\n      local_44 = (undefined4 *)0x3;\n      iVar19 = 2;\n    }\n    else if (puVar20 < (undefined4 *)0xf2) {\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }\n    else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }\n    uVar2 = ((int)param_5 << iVar19) << 2;\n    local_4c = ~(-1 << (int)local_44);\n    iVar19 = (1 << iVar19) + -1;\n  }" else (compound_statement "{\n    if (puVar20 < (undefined4 *)0x1a) {\n      local_44 = (undefined4 *)0x2;\n      iVar19 = 1;\n    }\n    else if (puVar20 < (undefined4 *)0x52) {\n      local_44 = (undefined4 *)0x3;\n      iVar19 = 2;\n    }\n    else if (puVar20 < (undefined4 *)0xf2) {\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }\n    else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }\n    uVar2 = ((int)param_5 << iVar19) << 2;\n    local_4c = ~(-1 << (int)local_44);\n    iVar19 = (1 << iVar19) + -1;\n  }" { (if_statement "if (puVar20 < (undefined4 *)0x1a) {\n      local_44 = (undefined4 *)0x2;\n      iVar19 = 1;\n    }\n    else if (puVar20 < (undefined4 *)0x52) {\n      local_44 = (undefined4 *)0x3;\n      iVar19 = 2;\n    }\n    else if (puVar20 < (undefined4 *)0xf2) {\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }\n    else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" if (parenthesized_expression "(puVar20 < (undefined4 *)0x1a)" ( (binary_expression "puVar20 < (undefined4 *)0x1a" identifier < (cast_expression "(undefined4 *)0x1a" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_44 = (undefined4 *)0x2;\n      iVar19 = 1;\n    }" { (expression_statement "local_44 = (undefined4 *)0x2;" (assignment_expression "local_44 = (undefined4 *)0x2" identifier = (cast_expression "(undefined4 *)0x2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" identifier = number_literal) ;) }) (else_clause "else if (puVar20 < (undefined4 *)0x52) {\n      local_44 = (undefined4 *)0x3;\n      iVar19 = 2;\n    }\n    else if (puVar20 < (undefined4 *)0xf2) {\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }\n    else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" else (if_statement "if (puVar20 < (undefined4 *)0x52) {\n      local_44 = (undefined4 *)0x3;\n      iVar19 = 2;\n    }\n    else if (puVar20 < (undefined4 *)0xf2) {\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }\n    else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" if (parenthesized_expression "(puVar20 < (undefined4 *)0x52)" ( (binary_expression "puVar20 < (undefined4 *)0x52" identifier < (cast_expression "(undefined4 *)0x52" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_44 = (undefined4 *)0x3;\n      iVar19 = 2;\n    }" { (expression_statement "local_44 = (undefined4 *)0x3;" (assignment_expression "local_44 = (undefined4 *)0x3" identifier = (cast_expression "(undefined4 *)0x3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar19 = 2;" (assignment_expression "iVar19 = 2" identifier = number_literal) ;) }) (else_clause "else if (puVar20 < (undefined4 *)0xf2) {\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }\n    else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" else (if_statement "if (puVar20 < (undefined4 *)0xf2) {\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }\n    else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" if (parenthesized_expression "(puVar20 < (undefined4 *)0xf2)" ( (binary_expression "puVar20 < (undefined4 *)0xf2" identifier < (cast_expression "(undefined4 *)0xf2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }" { (expression_statement "local_44 = (undefined4 *)&DAT_00000004;" (assignment_expression "local_44 = (undefined4 *)&DAT_00000004" identifier = (cast_expression "(undefined4 *)&DAT_00000004" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000004" & identifier))) ;) (expression_statement "iVar19 = 3;" (assignment_expression "iVar19 = 3" identifier = number_literal) ;) }) (else_clause "else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" else (if_statement "if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" if (parenthesized_expression "(puVar20 < (undefined4 *)0x2a2)" ( (binary_expression "puVar20 < (undefined4 *)0x2a2" identifier < (cast_expression "(undefined4 *)0x2a2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }" { (expression_statement "local_44 = (undefined4 *)&DAT_00000005;" (assignment_expression "local_44 = (undefined4 *)&DAT_00000005" identifier = (cast_expression "(undefined4 *)&DAT_00000005" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000005" & identifier))) ;) (expression_statement "iVar19 = 4;" (assignment_expression "iVar19 = 4" identifier = number_literal) ;) }) (else_clause "else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" else (if_statement "if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" if (parenthesized_expression "(puVar20 < (undefined4 *)0x702)" ( (binary_expression "puVar20 < (undefined4 *)0x702" identifier < (cast_expression "(undefined4 *)0x702" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }" { (expression_statement "local_44 = (undefined4 *)&DAT_00000006;" (assignment_expression "local_44 = (undefined4 *)&DAT_00000006" identifier = (cast_expression "(undefined4 *)&DAT_00000006" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000006" & identifier))) ;) (expression_statement "iVar19 = 5;" (assignment_expression "iVar19 = 5" identifier = number_literal) ;) }) (else_clause "else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" else (if_statement "if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" if (parenthesized_expression "(puVar20 < (undefined4 *)0x1202)" ( (binary_expression "puVar20 < (undefined4 *)0x1202" identifier < (cast_expression "(undefined4 *)0x1202" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }" { (expression_statement "local_44 = (undefined4 *)0x7;" (assignment_expression "local_44 = (undefined4 *)0x7" identifier = (cast_expression "(undefined4 *)0x7" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar19 = 6;" (assignment_expression "iVar19 = 6" identifier = number_literal) ;) }) (else_clause "else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" else (compound_statement "{\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" { (expression_statement "iVar19 = 9;" (assignment_expression "iVar19 = 9" identifier = number_literal) ;) (if_statement "if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }" if (parenthesized_expression "(puVar20 < (undefined4 *)0x2d02)" ( (binary_expression "puVar20 < (undefined4 *)0x2d02" identifier < (cast_expression "(undefined4 *)0x2d02" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }" { (expression_statement "local_44 = (undefined4 *)&DAT_00000008;" (assignment_expression "local_44 = (undefined4 *)&DAT_00000008" identifier = (cast_expression "(undefined4 *)&DAT_00000008" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000008" & identifier))) ;) (expression_statement "iVar19 = 7;" (assignment_expression "iVar19 = 7" identifier = number_literal) ;) }) (else_clause "else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }" else (compound_statement "{\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }" { (expression_statement "local_44 = (undefined4 *)&DAT_0000000a;" (assignment_expression "local_44 = (undefined4 *)&DAT_0000000a" identifier = (cast_expression "(undefined4 *)&DAT_0000000a" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000000a" & identifier))) ;) (if_statement "if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }" if (parenthesized_expression "(puVar20 < (undefined4 *)0x6e02)" ( (binary_expression "puVar20 < (undefined4 *)0x6e02" identifier < (cast_expression "(undefined4 *)0x6e02" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }" { (expression_statement "local_44 = (undefined4 *)&DAT_00000009;" (assignment_expression "local_44 = (undefined4 *)&DAT_00000009" identifier = (cast_expression "(undefined4 *)&DAT_00000009" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000009" & identifier))) ;) (expression_statement "iVar19 = 8;" (assignment_expression "iVar19 = 8" identifier = number_literal) ;) })) }))) }))))))))))))) (expression_statement "uVar2 = ((int)param_5 << iVar19) << 2;" (assignment_expression "uVar2 = ((int)param_5 << iVar19) << 2" identifier = (binary_expression "((int)param_5 << iVar19) << 2" (parenthesized_expression "((int)param_5 << iVar19)" ( (binary_expression "(int)param_5 << iVar19" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) << identifier) )) << number_literal)) ;) (expression_statement "local_4c = ~(-1 << (int)local_44);" (assignment_expression "local_4c = ~(-1 << (int)local_44)" identifier = (unary_expression "~(-1 << (int)local_44)" ~ (parenthesized_expression "(-1 << (int)local_44)" ( (binary_expression "-1 << (int)local_44" number_literal << (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar19 = (1 << iVar19) + -1;" (assignment_expression "iVar19 = (1 << iVar19) + -1" identifier = (binary_expression "(1 << iVar19) + -1" (parenthesized_expression "(1 << iVar19)" ( (binary_expression "1 << iVar19" number_literal << identifier) )) + number_literal)) ;) }))) (if_statement "if (uVar2 < 0x7f01) {\n    iVar25 = -(uVar2 + 7 & 0xfffffff8);\n    puVar16 = auStack_70 + iVar25;\n    puVar30 = auStack_70 + iVar25;\n    puVar26 = (undefined4 *)(&stack0xffffffa0 + iVar25);\n  }\n  else {\n    puVar26 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }" if (parenthesized_expression "(uVar2 < 0x7f01)" ( (binary_expression "uVar2 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n    iVar25 = -(uVar2 + 7 & 0xfffffff8);\n    puVar16 = auStack_70 + iVar25;\n    puVar30 = auStack_70 + iVar25;\n    puVar26 = (undefined4 *)(&stack0xffffffa0 + iVar25);\n  }" { (expression_statement "iVar25 = -(uVar2 + 7 & 0xfffffff8);" (assignment_expression "iVar25 = -(uVar2 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar2 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar2 + 7 & 0xfffffff8)" ( (binary_expression "uVar2 + 7 & 0xfffffff8" (binary_expression "uVar2 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar16 = auStack_70 + iVar25;" (assignment_expression "puVar16 = auStack_70 + iVar25" identifier = (binary_expression "auStack_70 + iVar25" identifier + identifier)) ;) (expression_statement "puVar30 = auStack_70 + iVar25;" (assignment_expression "puVar30 = auStack_70 + iVar25" identifier = (binary_expression "auStack_70 + iVar25" identifier + identifier)) ;) (expression_statement "puVar26 = (undefined4 *)(&stack0xffffffa0 + iVar25);" (assignment_expression "puVar26 = (undefined4 *)(&stack0xffffffa0 + iVar25)" identifier = (cast_expression "(undefined4 *)(&stack0xffffffa0 + iVar25)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&stack0xffffffa0 + iVar25)" ( (binary_expression "&stack0xffffffa0 + iVar25" (pointer_expression "&stack0xffffffa0" & identifier) + identifier) )))) ;) }) (else_clause "else {\n    puVar26 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }" else (compound_statement "{\n    puVar26 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }" { (expression_statement "puVar26 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);" (assignment_expression "puVar26 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30)" ( (pointer_expression "&local_30" & identifier) ))))) ;) }))) (if_statement "if (param_5 == (undefined4 *)0x0) {\n    local_3c = (undefined1 *)0xffffffff;\n    puVar30 = puVar16;\n  }\n  else {\n    local_3c = (undefined1 *)((int)param_5 + -1);\n    uVar13 = *param_2;\n    if (local_3c == (undefined1 *)0x0) {\n      *puVar26 = uVar13;\n    }\n    else {\n      puVar16 = local_3c;\n      puVar7 = puVar26;\n      puVar22 = param_2 + 1;\n      do {\n        *puVar7 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar22;\n        puVar7 = puVar7 + 1;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      puVar26[(int)((int)param_5 + -1)] = uVar13;\n    }\n  }" if (parenthesized_expression "(param_5 == (undefined4 *)0x0)" ( (binary_expression "param_5 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_3c = (undefined1 *)0xffffffff;\n    puVar30 = puVar16;\n  }" { (expression_statement "local_3c = (undefined1 *)0xffffffff;" (assignment_expression "local_3c = (undefined1 *)0xffffffff" identifier = (cast_expression "(undefined1 *)0xffffffff" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar30 = puVar16;" (assignment_expression "puVar30 = puVar16" identifier = identifier) ;) }) (else_clause "else {\n    local_3c = (undefined1 *)((int)param_5 + -1);\n    uVar13 = *param_2;\n    if (local_3c == (undefined1 *)0x0) {\n      *puVar26 = uVar13;\n    }\n    else {\n      puVar16 = local_3c;\n      puVar7 = puVar26;\n      puVar22 = param_2 + 1;\n      do {\n        *puVar7 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar22;\n        puVar7 = puVar7 + 1;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      puVar26[(int)((int)param_5 + -1)] = uVar13;\n    }\n  }" else (compound_statement "{\n    local_3c = (undefined1 *)((int)param_5 + -1);\n    uVar13 = *param_2;\n    if (local_3c == (undefined1 *)0x0) {\n      *puVar26 = uVar13;\n    }\n    else {\n      puVar16 = local_3c;\n      puVar7 = puVar26;\n      puVar22 = param_2 + 1;\n      do {\n        *puVar7 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar22;\n        puVar7 = puVar7 + 1;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      puVar26[(int)((int)param_5 + -1)] = uVar13;\n    }\n  }" { (expression_statement "local_3c = (undefined1 *)((int)param_5 + -1);" (assignment_expression "local_3c = (undefined1 *)((int)param_5 + -1)" identifier = (cast_expression "(undefined1 *)((int)param_5 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_5 + -1)" ( (binary_expression "(int)param_5 + -1" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar13 = *param_2;" (assignment_expression "uVar13 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (local_3c == (undefined1 *)0x0) {\n      *puVar26 = uVar13;\n    }\n    else {\n      puVar16 = local_3c;\n      puVar7 = puVar26;\n      puVar22 = param_2 + 1;\n      do {\n        *puVar7 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar22;\n        puVar7 = puVar7 + 1;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      puVar26[(int)((int)param_5 + -1)] = uVar13;\n    }" if (parenthesized_expression "(local_3c == (undefined1 *)0x0)" ( (binary_expression "local_3c == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *puVar26 = uVar13;\n    }" { (expression_statement "*puVar26 = uVar13;" (assignment_expression "*puVar26 = uVar13" (pointer_expression "*puVar26" * identifier) = identifier) ;) }) (else_clause "else {\n      puVar16 = local_3c;\n      puVar7 = puVar26;\n      puVar22 = param_2 + 1;\n      do {\n        *puVar7 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar22;\n        puVar7 = puVar7 + 1;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      puVar26[(int)((int)param_5 + -1)] = uVar13;\n    }" else (compound_statement "{\n      puVar16 = local_3c;\n      puVar7 = puVar26;\n      puVar22 = param_2 + 1;\n      do {\n        *puVar7 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar22;\n        puVar7 = puVar7 + 1;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      puVar26[(int)((int)param_5 + -1)] = uVar13;\n    }" { (expression_statement "puVar16 = local_3c;" (assignment_expression "puVar16 = local_3c" identifier = identifier) ;) (expression_statement "puVar7 = puVar26;" (assignment_expression "puVar7 = puVar26" identifier = identifier) ;) (expression_statement "puVar22 = param_2 + 1;" (assignment_expression "puVar22 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (do_statement "do {\n        *puVar7 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar22;\n        puVar7 = puVar7 + 1;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);" do (compound_statement "{\n        *puVar7 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar22;\n        puVar7 = puVar7 + 1;\n        puVar22 = puVar22 + 1;\n      }" { (expression_statement "*puVar7 = uVar13;" (assignment_expression "*puVar7 = uVar13" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "puVar16 = puVar16 + -1;" (assignment_expression "puVar16 = puVar16 + -1" identifier = (binary_expression "puVar16 + -1" identifier + number_literal)) ;) (expression_statement "uVar13 = *puVar22;" (assignment_expression "uVar13 = *puVar22" identifier = (pointer_expression "*puVar22" * identifier)) ;) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) (expression_statement "puVar22 = puVar22 + 1;" (assignment_expression "puVar22 = puVar22 + 1" identifier = (binary_expression "puVar22 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar16 != (undefined1 *)0x0)" ( (binary_expression "puVar16 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "puVar26[(int)((int)param_5 + -1)] = uVar13;" (assignment_expression "puVar26[(int)((int)param_5 + -1)] = uVar13" (subscript_expression "puVar26[(int)((int)param_5 + -1)]" identifier [ (cast_expression "(int)((int)param_5 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)param_5 + -1)" ( (binary_expression "(int)param_5 + -1" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ]) = identifier) ;) }))) }))) (expression_statement "(*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_2,param_5);" (call_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_2,param_5)" (parenthesized_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)" ( (pointer_expression "*(code *)PTR___gmpn_sqrlo_0009d354" * (cast_expression "(code *)PTR___gmpn_sqrlo_0009d354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,param_2,param_5)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar25 = (int)param_5 * 4;" (assignment_expression "iVar25 = (int)param_5 * 4" identifier = (binary_expression "(int)param_5 * 4" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "puVar7 = puVar26;" (assignment_expression "puVar7 = puVar26" identifier = identifier) ;) (for_statement "for (; iVar19 != 0; iVar19 = iVar19 + -1) {\n    param_2 = puVar7 + (int)param_5;\n    param_4 = param_5;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(param_2,puVar7,param_6);\n    puVar7 = param_2;\n  }" for ( ; (binary_expression "iVar19 != 0" identifier != number_literal) ; (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ) (compound_statement "{\n    param_2 = puVar7 + (int)param_5;\n    param_4 = param_5;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(param_2,puVar7,param_6);\n    puVar7 = param_2;\n  }" { (expression_statement "param_2 = puVar7 + (int)param_5;" (assignment_expression "param_2 = puVar7 + (int)param_5" identifier = (binary_expression "puVar7 + (int)param_5" identifier + (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "param_4 = param_5;" (assignment_expression "param_4 = param_5" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_mullo_n_0009d234)(param_2,puVar7,param_6);" (call_expression "(*(code *)PTR___gmpn_mullo_n_0009d234)(param_2,puVar7,param_6)" (parenthesized_expression "(*(code *)PTR___gmpn_mullo_n_0009d234)" ( (pointer_expression "*(code *)PTR___gmpn_mullo_n_0009d234" * (cast_expression "(code *)PTR___gmpn_mullo_n_0009d234" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,puVar7,param_6)" ( identifier , identifier , identifier ))) ;) (expression_statement "puVar7 = param_2;" (assignment_expression "puVar7 = param_2" identifier = identifier) ;) })) (expression_statement "uVar2 = (int)puVar20 - (int)local_44;" (assignment_expression "uVar2 = (int)puVar20 - (int)local_44" identifier = (binary_expression "(int)puVar20 - (int)local_44" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (puVar20 < local_44) {\n    uVar3 = ~(-1 << ((uint)puVar20 & 0x1f)) & *param_3;\n  }\n  else {\n    uVar9 = 0x20 - (uVar2 & 0x1f);\n    param_4 = (undefined4 *)(uint)((int)uVar9 < (int)local_44);\n    uVar3 = param_3[uVar2 >> 5] >> (uVar2 & 0x1f);\n    if (param_4 != (undefined4 *)0x0) {\n      uVar3 = uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f));\n    }\n    uVar3 = uVar3 & local_4c;\n  }" if (parenthesized_expression "(puVar20 < local_44)" ( (binary_expression "puVar20 < local_44" identifier < identifier) )) (compound_statement "{\n    uVar3 = ~(-1 << ((uint)puVar20 & 0x1f)) & *param_3;\n  }" { (expression_statement "uVar3 = ~(-1 << ((uint)puVar20 & 0x1f)) & *param_3;" (assignment_expression "uVar3 = ~(-1 << ((uint)puVar20 & 0x1f)) & *param_3" identifier = (binary_expression "~(-1 << ((uint)puVar20 & 0x1f)) & *param_3" (unary_expression "~(-1 << ((uint)puVar20 & 0x1f))" ~ (parenthesized_expression "(-1 << ((uint)puVar20 & 0x1f))" ( (binary_expression "-1 << ((uint)puVar20 & 0x1f)" number_literal << (parenthesized_expression "((uint)puVar20 & 0x1f)" ( (binary_expression "(uint)puVar20 & 0x1f" (cast_expression "(uint)puVar20" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) ))) & (pointer_expression "*param_3" * identifier))) ;) }) (else_clause "else {\n    uVar9 = 0x20 - (uVar2 & 0x1f);\n    param_4 = (undefined4 *)(uint)((int)uVar9 < (int)local_44);\n    uVar3 = param_3[uVar2 >> 5] >> (uVar2 & 0x1f);\n    if (param_4 != (undefined4 *)0x0) {\n      uVar3 = uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f));\n    }\n    uVar3 = uVar3 & local_4c;\n  }" else (compound_statement "{\n    uVar9 = 0x20 - (uVar2 & 0x1f);\n    param_4 = (undefined4 *)(uint)((int)uVar9 < (int)local_44);\n    uVar3 = param_3[uVar2 >> 5] >> (uVar2 & 0x1f);\n    if (param_4 != (undefined4 *)0x0) {\n      uVar3 = uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f));\n    }\n    uVar3 = uVar3 & local_4c;\n  }" { (expression_statement "uVar9 = 0x20 - (uVar2 & 0x1f);" (assignment_expression "uVar9 = 0x20 - (uVar2 & 0x1f)" identifier = (binary_expression "0x20 - (uVar2 & 0x1f)" number_literal - (parenthesized_expression "(uVar2 & 0x1f)" ( (binary_expression "uVar2 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "param_4 = (undefined4 *)(uint)((int)uVar9 < (int)local_44);" (assignment_expression "param_4 = (undefined4 *)(uint)((int)uVar9 < (int)local_44)" identifier = (cast_expression "(undefined4 *)(uint)((int)uVar9 < (int)local_44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)((int)uVar9 < (int)local_44)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)uVar9 < (int)local_44)" ( (binary_expression "(int)uVar9 < (int)local_44" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "uVar3 = param_3[uVar2 >> 5] >> (uVar2 & 0x1f);" (assignment_expression "uVar3 = param_3[uVar2 >> 5] >> (uVar2 & 0x1f)" identifier = (binary_expression "param_3[uVar2 >> 5] >> (uVar2 & 0x1f)" (subscript_expression "param_3[uVar2 >> 5]" identifier [ (binary_expression "uVar2 >> 5" identifier >> number_literal) ]) >> (parenthesized_expression "(uVar2 & 0x1f)" ( (binary_expression "uVar2 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if (param_4 != (undefined4 *)0x0) {\n      uVar3 = uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f));\n    }" if (parenthesized_expression "(param_4 != (undefined4 *)0x0)" ( (binary_expression "param_4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar3 = uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f));\n    }" { (expression_statement "uVar3 = uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f));" (assignment_expression "uVar3 = uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f))" identifier = (binary_expression "uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f))" identifier + (parenthesized_expression "((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f))" ( (binary_expression "(param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f)" (subscript_expression "(param_3 + (uVar2 >> 5))[1]" (parenthesized_expression "(param_3 + (uVar2 >> 5))" ( (binary_expression "param_3 + (uVar2 >> 5)" identifier + (parenthesized_expression "(uVar2 >> 5)" ( (binary_expression "uVar2 >> 5" identifier >> number_literal) ))) )) [ number_literal ]) << (parenthesized_expression "(uVar9 & 0x1f)" ( (binary_expression "uVar9 & 0x1f" identifier & number_literal) ))) )))) ;) })) (expression_statement "uVar3 = uVar3 & local_4c;" (assignment_expression "uVar3 = uVar3 & local_4c" identifier = (binary_expression "uVar3 & local_4c" identifier & identifier)) ;) }))) (if_statement "if ((uVar3 & 0xff) == 0) {\n    uVar9 = uVar3 >> 8;\n    param_4 = (undefined4 *)&DAT_00000006;\n    iVar19 = 0x1e;\n    if (uVar9 != 0) {\n      iVar19 = 6;\n    }\n    uVar9 = (uint)(byte)puVar27[-uVar9 & uVar9] + iVar19;\n  }\n  else {\n    uVar9 = (byte)puVar27[-uVar3 & uVar3] - 2;\n  }" if (parenthesized_expression "((uVar3 & 0xff) == 0)" ( (binary_expression "(uVar3 & 0xff) == 0" (parenthesized_expression "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar9 = uVar3 >> 8;\n    param_4 = (undefined4 *)&DAT_00000006;\n    iVar19 = 0x1e;\n    if (uVar9 != 0) {\n      iVar19 = 6;\n    }\n    uVar9 = (uint)(byte)puVar27[-uVar9 & uVar9] + iVar19;\n  }" { (expression_statement "uVar9 = uVar3 >> 8;" (assignment_expression "uVar9 = uVar3 >> 8" identifier = (binary_expression "uVar3 >> 8" identifier >> number_literal)) ;) (expression_statement "param_4 = (undefined4 *)&DAT_00000006;" (assignment_expression "param_4 = (undefined4 *)&DAT_00000006" identifier = (cast_expression "(undefined4 *)&DAT_00000006" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000006" & identifier))) ;) (expression_statement "iVar19 = 0x1e;" (assignment_expression "iVar19 = 0x1e" identifier = number_literal) ;) (if_statement "if (uVar9 != 0) {\n      iVar19 = 6;\n    }" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar19 = 6;\n    }" { (expression_statement "iVar19 = 6;" (assignment_expression "iVar19 = 6" identifier = number_literal) ;) })) (expression_statement "uVar9 = (uint)(byte)puVar27[-uVar9 & uVar9] + iVar19;" (assignment_expression "uVar9 = (uint)(byte)puVar27[-uVar9 & uVar9] + iVar19" identifier = (binary_expression "(uint)(byte)puVar27[-uVar9 & uVar9] + iVar19" (cast_expression "(uint)(byte)puVar27[-uVar9 & uVar9]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar27[-uVar9 & uVar9]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar27[-uVar9 & uVar9]" identifier [ (binary_expression "-uVar9 & uVar9" (unary_expression "-uVar9" - identifier) & identifier) ]))) + identifier)) ;) }) (else_clause "else {\n    uVar9 = (byte)puVar27[-uVar3 & uVar3] - 2;\n  }" else (compound_statement "{\n    uVar9 = (byte)puVar27[-uVar3 & uVar3] - 2;\n  }" { (expression_statement "uVar9 = (byte)puVar27[-uVar3 & uVar3] - 2;" (assignment_expression "uVar9 = (byte)puVar27[-uVar3 & uVar3] - 2" identifier = (binary_expression "(byte)puVar27[-uVar3 & uVar3] - 2" (cast_expression "(byte)puVar27[-uVar3 & uVar3]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar27[-uVar3 & uVar3]" identifier [ (binary_expression "-uVar3 & uVar3" (unary_expression "-uVar3" - identifier) & identifier) ])) - number_literal)) ;) }))) (expression_statement "puVar7 = (undefined4 *)(uVar9 + uVar2);" (assignment_expression "puVar7 = (undefined4 *)(uVar9 + uVar2)" identifier = (cast_expression "(undefined4 *)(uVar9 + uVar2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + uVar2)" ( (binary_expression "uVar9 + uVar2" identifier + identifier) )))) ;) (if_statement "if (param_5 != (undefined4 *)0x0) {\n    param_4 = (undefined4 *)(((uVar3 >> (uVar9 & 0x1f)) >> 1) * iVar25);\n    puVar12 = (undefined4 *)((int)param_4 + (int)puVar26);\n    uVar13 = *puVar12;\n    puVar16 = local_3c;\n    puVar22 = param_1;\n    if (local_3c == (undefined1 *)0x0) {\n      *param_1 = uVar13;\n    }\n    else {\n      do {\n        puVar12 = puVar12 + 1;\n        *puVar22 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar12;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      param_1[(int)((int)param_5 + -1)] = uVar13;\n    }\n  }" if (parenthesized_expression "(param_5 != (undefined4 *)0x0)" ( (binary_expression "param_5 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    param_4 = (undefined4 *)(((uVar3 >> (uVar9 & 0x1f)) >> 1) * iVar25);\n    puVar12 = (undefined4 *)((int)param_4 + (int)puVar26);\n    uVar13 = *puVar12;\n    puVar16 = local_3c;\n    puVar22 = param_1;\n    if (local_3c == (undefined1 *)0x0) {\n      *param_1 = uVar13;\n    }\n    else {\n      do {\n        puVar12 = puVar12 + 1;\n        *puVar22 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar12;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      param_1[(int)((int)param_5 + -1)] = uVar13;\n    }\n  }" { (expression_statement "param_4 = (undefined4 *)(((uVar3 >> (uVar9 & 0x1f)) >> 1) * iVar25);" (assignment_expression "param_4 = (undefined4 *)(((uVar3 >> (uVar9 & 0x1f)) >> 1) * iVar25)" identifier = (cast_expression "(undefined4 *)(((uVar3 >> (uVar9 & 0x1f)) >> 1) * iVar25)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((uVar3 >> (uVar9 & 0x1f)) >> 1) * iVar25)" ( (binary_expression "((uVar3 >> (uVar9 & 0x1f)) >> 1) * iVar25" (parenthesized_expression "((uVar3 >> (uVar9 & 0x1f)) >> 1)" ( (binary_expression "(uVar3 >> (uVar9 & 0x1f)) >> 1" (parenthesized_expression "(uVar3 >> (uVar9 & 0x1f))" ( (binary_expression "uVar3 >> (uVar9 & 0x1f)" identifier >> (parenthesized_expression "(uVar9 & 0x1f)" ( (binary_expression "uVar9 & 0x1f" identifier & number_literal) ))) )) >> number_literal) )) * identifier) )))) ;) (expression_statement "puVar12 = (undefined4 *)((int)param_4 + (int)puVar26);" (assignment_expression "puVar12 = (undefined4 *)((int)param_4 + (int)puVar26)" identifier = (cast_expression "(undefined4 *)((int)param_4 + (int)puVar26)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_4 + (int)puVar26)" ( (binary_expression "(int)param_4 + (int)puVar26" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "uVar13 = *puVar12;" (assignment_expression "uVar13 = *puVar12" identifier = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar16 = local_3c;" (assignment_expression "puVar16 = local_3c" identifier = identifier) ;) (expression_statement "puVar22 = param_1;" (assignment_expression "puVar22 = param_1" identifier = identifier) ;) (if_statement "if (local_3c == (undefined1 *)0x0) {\n      *param_1 = uVar13;\n    }\n    else {\n      do {\n        puVar12 = puVar12 + 1;\n        *puVar22 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar12;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      param_1[(int)((int)param_5 + -1)] = uVar13;\n    }" if (parenthesized_expression "(local_3c == (undefined1 *)0x0)" ( (binary_expression "local_3c == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *param_1 = uVar13;\n    }" { (expression_statement "*param_1 = uVar13;" (assignment_expression "*param_1 = uVar13" (pointer_expression "*param_1" * identifier) = identifier) ;) }) (else_clause "else {\n      do {\n        puVar12 = puVar12 + 1;\n        *puVar22 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar12;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      param_1[(int)((int)param_5 + -1)] = uVar13;\n    }" else (compound_statement "{\n      do {\n        puVar12 = puVar12 + 1;\n        *puVar22 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar12;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      param_1[(int)((int)param_5 + -1)] = uVar13;\n    }" { (do_statement "do {\n        puVar12 = puVar12 + 1;\n        *puVar22 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar12;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);" do (compound_statement "{\n        puVar12 = puVar12 + 1;\n        *puVar22 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar12;\n        puVar22 = puVar22 + 1;\n      }" { (expression_statement "puVar12 = puVar12 + 1;" (assignment_expression "puVar12 = puVar12 + 1" identifier = (binary_expression "puVar12 + 1" identifier + number_literal)) ;) (expression_statement "*puVar22 = uVar13;" (assignment_expression "*puVar22 = uVar13" (pointer_expression "*puVar22" * identifier) = identifier) ;) (expression_statement "puVar16 = puVar16 + -1;" (assignment_expression "puVar16 = puVar16 + -1" identifier = (binary_expression "puVar16 + -1" identifier + number_literal)) ;) (expression_statement "uVar13 = *puVar12;" (assignment_expression "uVar13 = *puVar12" identifier = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar22 = puVar22 + 1;" (assignment_expression "puVar22 = puVar22 + 1" identifier = (binary_expression "puVar22 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar16 != (undefined1 *)0x0)" ( (binary_expression "puVar16 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "param_1[(int)((int)param_5 + -1)] = uVar13;" (assignment_expression "param_1[(int)((int)param_5 + -1)] = uVar13" (subscript_expression "param_1[(int)((int)param_5 + -1)]" identifier [ (cast_expression "(int)((int)param_5 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)param_5 + -1)" ( (binary_expression "(int)param_5 + -1" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ]) = identifier) ;) }))) })) (expression_statement "puVar22 = (undefined4 *)((int)puVar7 + -1);" (assignment_expression "puVar22 = (undefined4 *)((int)puVar7 + -1)" identifier = (cast_expression "(undefined4 *)((int)puVar7 + -1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + -1)" ( (binary_expression "(int)puVar7 + -1" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) != 0) goto LAB_0007b010;" if (parenthesized_expression "((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) != 0)" ( (binary_expression "(param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) != 0" (parenthesized_expression "(param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1)" ( (binary_expression "param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1" (binary_expression "param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f)" (subscript_expression "param_3[(uint)puVar22 >> 5]" identifier [ (binary_expression "(uint)puVar22 >> 5" (cast_expression "(uint)puVar22" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ]) >> (parenthesized_expression "((uint)puVar22 & 0x1f)" ( (binary_expression "(uint)puVar22 & 0x1f" (cast_expression "(uint)puVar22" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0007b010;" goto statement_identifier ;)) (labeled_statement "LAB_0007afb0:\n  puVar12 = param_1;" statement_identifier : (expression_statement "puVar12 = param_1;" (assignment_expression "puVar12 = param_1" identifier = identifier) ;)) (expression_statement "puVar14 = param_5;" (assignment_expression "puVar14 = param_5" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_sqrlo_0009d354)(param_6);" (call_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)(param_6)" (parenthesized_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)" ( (pointer_expression "*(code *)PTR___gmpn_sqrlo_0009d354" * (cast_expression "(code *)PTR___gmpn_sqrlo_0009d354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6)" ( identifier ))) ;) (expression_statement "puVar7 = puVar22;" (assignment_expression "puVar7 = puVar22" identifier = identifier) ;) (expression_statement "puVar22 = local_30;" (assignment_expression "puVar22 = local_30" identifier = identifier) ;) (if_statement "if (param_5 != (undefined4 *)0x0) {\n    puVar12 = (undefined4 *)*param_6;\n    puVar21 = param_1;\n    puVar24 = param_1;\n    puVar10 = param_6;\n    for (puVar16 = local_3c; puVar16 != (undefined1 *)0x0; puVar16 = puVar16 + -1) {\n      puVar10 = puVar10 + 1;\n      *puVar24 = puVar12;\n      puVar12 = (undefined4 *)*puVar10;\n      puVar21 = param_1 + (int)((int)param_5 + -1);\n      puVar24 = puVar24 + 1;\n    }\n    *puVar21 = puVar12;\n  }" if (parenthesized_expression "(param_5 != (undefined4 *)0x0)" ( (binary_expression "param_5 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar12 = (undefined4 *)*param_6;\n    puVar21 = param_1;\n    puVar24 = param_1;\n    puVar10 = param_6;\n    for (puVar16 = local_3c; puVar16 != (undefined1 *)0x0; puVar16 = puVar16 + -1) {\n      puVar10 = puVar10 + 1;\n      *puVar24 = puVar12;\n      puVar12 = (undefined4 *)*puVar10;\n      puVar21 = param_1 + (int)((int)param_5 + -1);\n      puVar24 = puVar24 + 1;\n    }\n    *puVar21 = puVar12;\n  }" { (expression_statement "puVar12 = (undefined4 *)*param_6;" (assignment_expression "puVar12 = (undefined4 *)*param_6" identifier = (cast_expression "(undefined4 *)*param_6" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_6" * identifier))) ;) (expression_statement "puVar21 = param_1;" (assignment_expression "puVar21 = param_1" identifier = identifier) ;) (expression_statement "puVar24 = param_1;" (assignment_expression "puVar24 = param_1" identifier = identifier) ;) (expression_statement "puVar10 = param_6;" (assignment_expression "puVar10 = param_6" identifier = identifier) ;) (for_statement "for (puVar16 = local_3c; puVar16 != (undefined1 *)0x0; puVar16 = puVar16 + -1) {\n      puVar10 = puVar10 + 1;\n      *puVar24 = puVar12;\n      puVar12 = (undefined4 *)*puVar10;\n      puVar21 = param_1 + (int)((int)param_5 + -1);\n      puVar24 = puVar24 + 1;\n    }" for ( (assignment_expression "puVar16 = local_3c" identifier = identifier) ; (binary_expression "puVar16 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar16 = puVar16 + -1" identifier = (binary_expression "puVar16 + -1" identifier + number_literal)) ) (compound_statement "{\n      puVar10 = puVar10 + 1;\n      *puVar24 = puVar12;\n      puVar12 = (undefined4 *)*puVar10;\n      puVar21 = param_1 + (int)((int)param_5 + -1);\n      puVar24 = puVar24 + 1;\n    }" { (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) (expression_statement "*puVar24 = puVar12;" (assignment_expression "*puVar24 = puVar12" (pointer_expression "*puVar24" * identifier) = identifier) ;) (expression_statement "puVar12 = (undefined4 *)*puVar10;" (assignment_expression "puVar12 = (undefined4 *)*puVar10" identifier = (cast_expression "(undefined4 *)*puVar10" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar10" * identifier))) ;) (expression_statement "puVar21 = param_1 + (int)((int)param_5 + -1);" (assignment_expression "puVar21 = param_1 + (int)((int)param_5 + -1)" identifier = (binary_expression "param_1 + (int)((int)param_5 + -1)" identifier + (cast_expression "(int)((int)param_5 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)param_5 + -1)" ( (binary_expression "(int)param_5 + -1" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar24 = puVar24 + 1;" (assignment_expression "puVar24 = puVar24 + 1" identifier = (binary_expression "puVar24 + 1" identifier + number_literal)) ;) })) (expression_statement "*puVar21 = puVar12;" (assignment_expression "*puVar21 = puVar12" (pointer_expression "*puVar21" * identifier) = identifier) ;) })) (do_statement "do {\n    local_30 = puVar22;\n    if (puVar7 == (undefined4 *)0x0) {\n      if (puVar22 != (undefined4 *)0x0) {\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      uVar13 = 0x7b45c;\n      puVar27 = PTR___stack_chk_fail_0009d4d0;\n      (*(code *)PTR___stack_chk_fail_0009d4d0)();\n      uVar2 = *(uint *)(puVar30 + 0x10);\n      *(undefined4 **)(puVar30 + -0x24) = param_5;\n      *(undefined **)(puVar30 + -0x68) = puVar27 + 0x29be0;\n      *(undefined4 *)(puVar30 + -0x18) = 0;\n      *(undefined4 **)(puVar30 + -0x28) = puVar20;\n      *(undefined4 *)(puVar30 + -4) = uVar13;\n      *(undefined1 **)(puVar30 + -8) = auStack_70;\n      *(int *)(puVar30 + -0xc) = iVar25;\n      *(uint **)(puVar30 + -0x10) = param_3;\n      *(undefined4 **)(puVar30 + -0x14) = param_2;\n      *(undefined4 **)(puVar30 + -0x1c) = param_1;\n      *(undefined4 **)(puVar30 + -0x20) = param_6;\n      *(uint *)(puVar30 + -0x60) = uVar2;\n      *(undefined4 **)(puVar30 + -0x44) = puVar12;\n      *(undefined4 **)(puVar30 + -0x4c) = param_4;\n      piVar23 = *(int **)(puVar30 + 0x14);\n      iVar19 = *(int *)(puVar30 + 0x18);\n      *(undefined4 *)(puVar30 + -0x54) = *(undefined4 *)(puVar30 + 0x1c);\n      if (uVar2 < 3) {\n        iVar25 = 0;\n        *(undefined4 *)(puVar30 + -0x5c) = 1;\n        *(undefined4 *)(puVar30 + -0x50) = 2;\n        iVar4 = 1;\n        *(undefined4 *)(puVar30 + -0x58) = 1;\n      }\n      else {\n        if (uVar2 < 0x22) {\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }\n        else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }\n        *(int *)(puVar30 + -0x5c) = iVar4;\n        *(int *)(puVar30 + -0x50) = 1 << iVar4;\n        iVar25 = (1 << iVar4) + -2;\n      }\n      iVar11 = *piVar23;\n      iVar31 = iVar19 * 4;\n      puVar26 = *(undefined4 **)(puVar30 + -0x54);\n      puVar16 = (undefined1 *)(iVar19 + (int)puVar14);\n      puVar24 = puVar26 + iVar19;\n      uVar2 = (uint)*(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19));\n      puVar7 = puVar24 + iVar19;\n      puVar12 = puVar26 + iVar19 + 1;\n      *(undefined4 **)(puVar30 + -0x48) = puVar7 + (int)puVar16;\n      puVar21 = puVar26 + (iVar19 << iVar4);\n      *puVar24 = 1;\n      iVar4 = uVar2 * 2 - uVar2 * uVar2 * iVar11;\n      iVar4 = iVar4 * iVar4 * iVar11 + iVar4 * -2;\n      puVar20 = puVar24;\n      if (iVar19 == 0) {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c);\n        puVar12[iVar19] = 1;\n        *(undefined4 **)(puVar30 + -0x38) = puVar14;\n        *(undefined1 **)(puVar30 + -0x3c) = puVar16;\n        *(undefined4 **)(puVar30 + -0x40) = puVar7;\n        *(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar11 = *(int *)(puVar30 + -0x40);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        if (iVar18 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar6 = iVar28 + -1;\n        puVar7 = (undefined4 *)(iVar11 + iVar31);\n        uVar13 = **(undefined4 **)(puVar30 + -0x44);\n        if (iVar6 != 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          puVar12 = puVar7;\n          goto LAB_0007b70c;\n        }\n        uVar5 = *(undefined4 *)(puVar30 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n        *puVar7 = uVar13;\n        *(undefined4 *)(puVar30 + -0x70) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);\n        *(undefined4 **)(puVar30 + -0x2c) = puVar14;\n        *(undefined1 **)(puVar30 + -0x30) = puVar16;\n        *(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;\n        *(undefined4 **)(puVar30 + -0x38) = puVar7;\n        *(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;\n        uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);\n        uVar5 = *puVar24;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);\n        *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);\n        *(undefined4 *)(puVar30 + -0x3c) = uVar13;\n        **(undefined4 **)(puVar30 + -0x34) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);\n        iVar11 = iVar19 + -1;\n        puVar7 = *(undefined4 **)(puVar30 + -0x3c);\n        iVar28 = *(int *)(puVar30 + -0x68);\n        uVar13 = *(undefined4 *)(puVar30 + -0x38);\n        uVar17 = *(undefined4 *)(puVar30 + -0x30);\n        uVar5 = *puVar7;\n        uVar15 = *(undefined4 *)(puVar30 + -0x2c);\n        if (iVar11 == 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }\n        else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);\n        *(undefined4 *)(puVar30 + -0x38) = uVar15;\n        *(undefined4 *)(puVar30 + -0x3c) = uVar17;\n        *puVar26 = uVar5;\n        iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        if (iVar28 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }\n        else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }\n        iVar28 = *(int *)(puVar30 + -0x40);\n        uVar13 = *puVar26;\n        puVar7 = puVar24;\n        if (iVar28 == 0) {\n          *puVar24 = uVar13;\n        }\n        else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }\n      }\njoined_r0x0007b75c:\n      for (; iVar25 != 0; iVar25 = iVar25 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);\n        puVar20 = puVar20 + iVar19;\n        *(int *)(puVar30 + -0x70) = iVar4;\n        uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      uVar2 = *(uint *)(puVar30 + -0x5c);\n      if (*(uint *)(puVar30 + -0x60) < uVar2) {\n        (**(code **)(iVar11 + -0x7c20))\n                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438);\n        uVar2 = extraout_v1;\n      }\n      uVar2 = *(int *)(puVar30 + -0x60) - uVar2;\n      uVar9 = 0x20 - (uVar2 & 0x1f);\n      puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4);\n      uVar3 = *puVar8 >> (uVar2 & 0x1f);\n      if ((int)uVar9 < *(int *)(puVar30 + -0x58)) {\n        uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f));\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bac);\n      *(int *)(puVar30 + -0x44) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f));\n      *(uint *)(puVar30 + -0x70) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)) & uVar3;\n      (*UNRECOVERED_JUMPTABLE)\n                (puVar22,*(undefined4 *)(puVar30 + -0x54),iVar19,*(undefined4 *)(puVar30 + -0x50));\n      iVar25 = *(int *)(puVar30 + -0x68);\n      if (uVar2 != 0) {\n        *(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39);\n        do {\n          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n          if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);\n          *(undefined4 *)(puVar30 + -0x70) = uVar13;\n          (*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);\n          *(int *)(puVar30 + -0x70) = iVar4;\n          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n          iVar25 = *(int *)(puVar30 + -0x68);\n          uVar2 = uVar9;\n        } while (uVar9 != 0);\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7eb0);\n      if (iVar19 != 0) {\n        iVar11 = iVar19 + -1;\n        uVar13 = *puVar22;\n        puVar20 = puVar21;\n        puVar26 = puVar22;\n        if (iVar11 != 0) {\n          do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar20 = puVar21 + iVar19 + -1;\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58);\n        *puVar20 = uVar13;\n        (*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0);\n      }\n      *(int *)(puVar30 + -0x70) = iVar4;\n      uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar22,puVar21,piVar23,iVar19);\n      *(int *)(puVar30 + -0x70) = iVar19;\n      (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n      iVar25 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))(puVar21,puVar22,piVar23,iVar19);\n      UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7a70);\n      *(int *)(puVar30 + 0x10) = iVar19;\n                    \n                    \n      (*UNRECOVERED_JUMPTABLE)(iVar25 == 0,puVar22,puVar22,piVar23);\n      return;\n    }\n    puVar22 = (undefined4 *)((int)puVar7 + -1);\n    if ((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) == 0) goto LAB_0007afb0;\nLAB_0007b010:\n    if (puVar7 < local_44) {\n      uVar3 = ~(-1 << ((uint)puVar7 & 0x1f)) & *param_3;\n      uVar9 = 0;\n      if ((uVar3 & 0xff) == 0) goto LAB_0007b270;\nLAB_0007b040:\n      uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2;\n    }\n    else {\n      uVar9 = (int)puVar7 - (int)local_44;\n      uVar2 = 0x20 - (uVar9 & 0x1f);\n      uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f);\n      if ((int)uVar2 < (int)local_44) {\n        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));\n      }\n      uVar3 = uVar3 & local_4c;\n      puVar7 = local_44;\n      if ((uVar3 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar2 = uVar3 >> 8;\n      iVar19 = 0x1e;\n      if (uVar2 != 0) {\n        iVar19 = 6;\n      }\n      uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19;\n    }\n    param_2 = (undefined4 *)((int)puVar7 - uVar2);\n    puVar7 = param_2;\n    if (1 < (int)param_2) {\n      do {\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n        puVar20 = (undefined4 *)((int)puVar7 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5);\n        puVar7 = puVar20;\n      } while (1 < (int)puVar20);\n      param_2 = (undefined4 *)((uint)param_2 & 1);\n    }\n    if (param_2 == (undefined4 *)0x0) {\n      if (param_5 != (undefined4 *)0x0) {\n        uVar13 = *param_1;\n        puVar7 = param_6;\n        if (local_3c != (undefined1 *)0x0) {\n          puVar16 = local_3c;\n          puVar22 = param_6;\n          puVar12 = param_1 + 1;\n          do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);\n        }\n        *puVar7 = uVar13;\n      }\n    }\n    else {\n      (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n    }\n    puVar14 = (undefined4 *)(((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25 + (int)puVar26);\n    puVar12 = param_6;\n    param_4 = param_5;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(param_1);\n    puVar7 = (undefined4 *)(uVar2 + uVar9);\n    puVar22 = local_30;\n  } while( true );" do (compound_statement "{\n    local_30 = puVar22;\n    if (puVar7 == (undefined4 *)0x0) {\n      if (puVar22 != (undefined4 *)0x0) {\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      uVar13 = 0x7b45c;\n      puVar27 = PTR___stack_chk_fail_0009d4d0;\n      (*(code *)PTR___stack_chk_fail_0009d4d0)();\n      uVar2 = *(uint *)(puVar30 + 0x10);\n      *(undefined4 **)(puVar30 + -0x24) = param_5;\n      *(undefined **)(puVar30 + -0x68) = puVar27 + 0x29be0;\n      *(undefined4 *)(puVar30 + -0x18) = 0;\n      *(undefined4 **)(puVar30 + -0x28) = puVar20;\n      *(undefined4 *)(puVar30 + -4) = uVar13;\n      *(undefined1 **)(puVar30 + -8) = auStack_70;\n      *(int *)(puVar30 + -0xc) = iVar25;\n      *(uint **)(puVar30 + -0x10) = param_3;\n      *(undefined4 **)(puVar30 + -0x14) = param_2;\n      *(undefined4 **)(puVar30 + -0x1c) = param_1;\n      *(undefined4 **)(puVar30 + -0x20) = param_6;\n      *(uint *)(puVar30 + -0x60) = uVar2;\n      *(undefined4 **)(puVar30 + -0x44) = puVar12;\n      *(undefined4 **)(puVar30 + -0x4c) = param_4;\n      piVar23 = *(int **)(puVar30 + 0x14);\n      iVar19 = *(int *)(puVar30 + 0x18);\n      *(undefined4 *)(puVar30 + -0x54) = *(undefined4 *)(puVar30 + 0x1c);\n      if (uVar2 < 3) {\n        iVar25 = 0;\n        *(undefined4 *)(puVar30 + -0x5c) = 1;\n        *(undefined4 *)(puVar30 + -0x50) = 2;\n        iVar4 = 1;\n        *(undefined4 *)(puVar30 + -0x58) = 1;\n      }\n      else {\n        if (uVar2 < 0x22) {\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }\n        else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }\n        *(int *)(puVar30 + -0x5c) = iVar4;\n        *(int *)(puVar30 + -0x50) = 1 << iVar4;\n        iVar25 = (1 << iVar4) + -2;\n      }\n      iVar11 = *piVar23;\n      iVar31 = iVar19 * 4;\n      puVar26 = *(undefined4 **)(puVar30 + -0x54);\n      puVar16 = (undefined1 *)(iVar19 + (int)puVar14);\n      puVar24 = puVar26 + iVar19;\n      uVar2 = (uint)*(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19));\n      puVar7 = puVar24 + iVar19;\n      puVar12 = puVar26 + iVar19 + 1;\n      *(undefined4 **)(puVar30 + -0x48) = puVar7 + (int)puVar16;\n      puVar21 = puVar26 + (iVar19 << iVar4);\n      *puVar24 = 1;\n      iVar4 = uVar2 * 2 - uVar2 * uVar2 * iVar11;\n      iVar4 = iVar4 * iVar4 * iVar11 + iVar4 * -2;\n      puVar20 = puVar24;\n      if (iVar19 == 0) {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c);\n        puVar12[iVar19] = 1;\n        *(undefined4 **)(puVar30 + -0x38) = puVar14;\n        *(undefined1 **)(puVar30 + -0x3c) = puVar16;\n        *(undefined4 **)(puVar30 + -0x40) = puVar7;\n        *(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar11 = *(int *)(puVar30 + -0x40);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        if (iVar18 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar6 = iVar28 + -1;\n        puVar7 = (undefined4 *)(iVar11 + iVar31);\n        uVar13 = **(undefined4 **)(puVar30 + -0x44);\n        if (iVar6 != 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          puVar12 = puVar7;\n          goto LAB_0007b70c;\n        }\n        uVar5 = *(undefined4 *)(puVar30 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n        *puVar7 = uVar13;\n        *(undefined4 *)(puVar30 + -0x70) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);\n        *(undefined4 **)(puVar30 + -0x2c) = puVar14;\n        *(undefined1 **)(puVar30 + -0x30) = puVar16;\n        *(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;\n        *(undefined4 **)(puVar30 + -0x38) = puVar7;\n        *(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;\n        uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);\n        uVar5 = *puVar24;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);\n        *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);\n        *(undefined4 *)(puVar30 + -0x3c) = uVar13;\n        **(undefined4 **)(puVar30 + -0x34) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);\n        iVar11 = iVar19 + -1;\n        puVar7 = *(undefined4 **)(puVar30 + -0x3c);\n        iVar28 = *(int *)(puVar30 + -0x68);\n        uVar13 = *(undefined4 *)(puVar30 + -0x38);\n        uVar17 = *(undefined4 *)(puVar30 + -0x30);\n        uVar5 = *puVar7;\n        uVar15 = *(undefined4 *)(puVar30 + -0x2c);\n        if (iVar11 == 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }\n        else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);\n        *(undefined4 *)(puVar30 + -0x38) = uVar15;\n        *(undefined4 *)(puVar30 + -0x3c) = uVar17;\n        *puVar26 = uVar5;\n        iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        if (iVar28 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }\n        else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }\n        iVar28 = *(int *)(puVar30 + -0x40);\n        uVar13 = *puVar26;\n        puVar7 = puVar24;\n        if (iVar28 == 0) {\n          *puVar24 = uVar13;\n        }\n        else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }\n      }\njoined_r0x0007b75c:\n      for (; iVar25 != 0; iVar25 = iVar25 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);\n        puVar20 = puVar20 + iVar19;\n        *(int *)(puVar30 + -0x70) = iVar4;\n        uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      uVar2 = *(uint *)(puVar30 + -0x5c);\n      if (*(uint *)(puVar30 + -0x60) < uVar2) {\n        (**(code **)(iVar11 + -0x7c20))\n                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438);\n        uVar2 = extraout_v1;\n      }\n      uVar2 = *(int *)(puVar30 + -0x60) - uVar2;\n      uVar9 = 0x20 - (uVar2 & 0x1f);\n      puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4);\n      uVar3 = *puVar8 >> (uVar2 & 0x1f);\n      if ((int)uVar9 < *(int *)(puVar30 + -0x58)) {\n        uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f));\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bac);\n      *(int *)(puVar30 + -0x44) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f));\n      *(uint *)(puVar30 + -0x70) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)) & uVar3;\n      (*UNRECOVERED_JUMPTABLE)\n                (puVar22,*(undefined4 *)(puVar30 + -0x54),iVar19,*(undefined4 *)(puVar30 + -0x50));\n      iVar25 = *(int *)(puVar30 + -0x68);\n      if (uVar2 != 0) {\n        *(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39);\n        do {\n          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n          if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);\n          *(undefined4 *)(puVar30 + -0x70) = uVar13;\n          (*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);\n          *(int *)(puVar30 + -0x70) = iVar4;\n          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n          iVar25 = *(int *)(puVar30 + -0x68);\n          uVar2 = uVar9;\n        } while (uVar9 != 0);\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7eb0);\n      if (iVar19 != 0) {\n        iVar11 = iVar19 + -1;\n        uVar13 = *puVar22;\n        puVar20 = puVar21;\n        puVar26 = puVar22;\n        if (iVar11 != 0) {\n          do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar20 = puVar21 + iVar19 + -1;\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58);\n        *puVar20 = uVar13;\n        (*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0);\n      }\n      *(int *)(puVar30 + -0x70) = iVar4;\n      uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar22,puVar21,piVar23,iVar19);\n      *(int *)(puVar30 + -0x70) = iVar19;\n      (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n      iVar25 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))(puVar21,puVar22,piVar23,iVar19);\n      UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7a70);\n      *(int *)(puVar30 + 0x10) = iVar19;\n                    \n                    \n      (*UNRECOVERED_JUMPTABLE)(iVar25 == 0,puVar22,puVar22,piVar23);\n      return;\n    }\n    puVar22 = (undefined4 *)((int)puVar7 + -1);\n    if ((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) == 0) goto LAB_0007afb0;\nLAB_0007b010:\n    if (puVar7 < local_44) {\n      uVar3 = ~(-1 << ((uint)puVar7 & 0x1f)) & *param_3;\n      uVar9 = 0;\n      if ((uVar3 & 0xff) == 0) goto LAB_0007b270;\nLAB_0007b040:\n      uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2;\n    }\n    else {\n      uVar9 = (int)puVar7 - (int)local_44;\n      uVar2 = 0x20 - (uVar9 & 0x1f);\n      uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f);\n      if ((int)uVar2 < (int)local_44) {\n        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));\n      }\n      uVar3 = uVar3 & local_4c;\n      puVar7 = local_44;\n      if ((uVar3 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar2 = uVar3 >> 8;\n      iVar19 = 0x1e;\n      if (uVar2 != 0) {\n        iVar19 = 6;\n      }\n      uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19;\n    }\n    param_2 = (undefined4 *)((int)puVar7 - uVar2);\n    puVar7 = param_2;\n    if (1 < (int)param_2) {\n      do {\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n        puVar20 = (undefined4 *)((int)puVar7 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5);\n        puVar7 = puVar20;\n      } while (1 < (int)puVar20);\n      param_2 = (undefined4 *)((uint)param_2 & 1);\n    }\n    if (param_2 == (undefined4 *)0x0) {\n      if (param_5 != (undefined4 *)0x0) {\n        uVar13 = *param_1;\n        puVar7 = param_6;\n        if (local_3c != (undefined1 *)0x0) {\n          puVar16 = local_3c;\n          puVar22 = param_6;\n          puVar12 = param_1 + 1;\n          do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);\n        }\n        *puVar7 = uVar13;\n      }\n    }\n    else {\n      (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n    }\n    puVar14 = (undefined4 *)(((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25 + (int)puVar26);\n    puVar12 = param_6;\n    param_4 = param_5;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(param_1);\n    puVar7 = (undefined4 *)(uVar2 + uVar9);\n    puVar22 = local_30;\n  }" { (expression_statement "local_30 = puVar22;" (assignment_expression "local_30 = puVar22" identifier = identifier) ;) (if_statement "if (puVar7 == (undefined4 *)0x0) {\n      if (puVar22 != (undefined4 *)0x0) {\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      uVar13 = 0x7b45c;\n      puVar27 = PTR___stack_chk_fail_0009d4d0;\n      (*(code *)PTR___stack_chk_fail_0009d4d0)();\n      uVar2 = *(uint *)(puVar30 + 0x10);\n      *(undefined4 **)(puVar30 + -0x24) = param_5;\n      *(undefined **)(puVar30 + -0x68) = puVar27 + 0x29be0;\n      *(undefined4 *)(puVar30 + -0x18) = 0;\n      *(undefined4 **)(puVar30 + -0x28) = puVar20;\n      *(undefined4 *)(puVar30 + -4) = uVar13;\n      *(undefined1 **)(puVar30 + -8) = auStack_70;\n      *(int *)(puVar30 + -0xc) = iVar25;\n      *(uint **)(puVar30 + -0x10) = param_3;\n      *(undefined4 **)(puVar30 + -0x14) = param_2;\n      *(undefined4 **)(puVar30 + -0x1c) = param_1;\n      *(undefined4 **)(puVar30 + -0x20) = param_6;\n      *(uint *)(puVar30 + -0x60) = uVar2;\n      *(undefined4 **)(puVar30 + -0x44) = puVar12;\n      *(undefined4 **)(puVar30 + -0x4c) = param_4;\n      piVar23 = *(int **)(puVar30 + 0x14);\n      iVar19 = *(int *)(puVar30 + 0x18);\n      *(undefined4 *)(puVar30 + -0x54) = *(undefined4 *)(puVar30 + 0x1c);\n      if (uVar2 < 3) {\n        iVar25 = 0;\n        *(undefined4 *)(puVar30 + -0x5c) = 1;\n        *(undefined4 *)(puVar30 + -0x50) = 2;\n        iVar4 = 1;\n        *(undefined4 *)(puVar30 + -0x58) = 1;\n      }\n      else {\n        if (uVar2 < 0x22) {\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }\n        else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }\n        *(int *)(puVar30 + -0x5c) = iVar4;\n        *(int *)(puVar30 + -0x50) = 1 << iVar4;\n        iVar25 = (1 << iVar4) + -2;\n      }\n      iVar11 = *piVar23;\n      iVar31 = iVar19 * 4;\n      puVar26 = *(undefined4 **)(puVar30 + -0x54);\n      puVar16 = (undefined1 *)(iVar19 + (int)puVar14);\n      puVar24 = puVar26 + iVar19;\n      uVar2 = (uint)*(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19));\n      puVar7 = puVar24 + iVar19;\n      puVar12 = puVar26 + iVar19 + 1;\n      *(undefined4 **)(puVar30 + -0x48) = puVar7 + (int)puVar16;\n      puVar21 = puVar26 + (iVar19 << iVar4);\n      *puVar24 = 1;\n      iVar4 = uVar2 * 2 - uVar2 * uVar2 * iVar11;\n      iVar4 = iVar4 * iVar4 * iVar11 + iVar4 * -2;\n      puVar20 = puVar24;\n      if (iVar19 == 0) {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c);\n        puVar12[iVar19] = 1;\n        *(undefined4 **)(puVar30 + -0x38) = puVar14;\n        *(undefined1 **)(puVar30 + -0x3c) = puVar16;\n        *(undefined4 **)(puVar30 + -0x40) = puVar7;\n        *(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar11 = *(int *)(puVar30 + -0x40);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        if (iVar18 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar6 = iVar28 + -1;\n        puVar7 = (undefined4 *)(iVar11 + iVar31);\n        uVar13 = **(undefined4 **)(puVar30 + -0x44);\n        if (iVar6 != 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          puVar12 = puVar7;\n          goto LAB_0007b70c;\n        }\n        uVar5 = *(undefined4 *)(puVar30 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n        *puVar7 = uVar13;\n        *(undefined4 *)(puVar30 + -0x70) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);\n        *(undefined4 **)(puVar30 + -0x2c) = puVar14;\n        *(undefined1 **)(puVar30 + -0x30) = puVar16;\n        *(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;\n        *(undefined4 **)(puVar30 + -0x38) = puVar7;\n        *(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;\n        uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);\n        uVar5 = *puVar24;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);\n        *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);\n        *(undefined4 *)(puVar30 + -0x3c) = uVar13;\n        **(undefined4 **)(puVar30 + -0x34) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);\n        iVar11 = iVar19 + -1;\n        puVar7 = *(undefined4 **)(puVar30 + -0x3c);\n        iVar28 = *(int *)(puVar30 + -0x68);\n        uVar13 = *(undefined4 *)(puVar30 + -0x38);\n        uVar17 = *(undefined4 *)(puVar30 + -0x30);\n        uVar5 = *puVar7;\n        uVar15 = *(undefined4 *)(puVar30 + -0x2c);\n        if (iVar11 == 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }\n        else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);\n        *(undefined4 *)(puVar30 + -0x38) = uVar15;\n        *(undefined4 *)(puVar30 + -0x3c) = uVar17;\n        *puVar26 = uVar5;\n        iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        if (iVar28 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }\n        else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }\n        iVar28 = *(int *)(puVar30 + -0x40);\n        uVar13 = *puVar26;\n        puVar7 = puVar24;\n        if (iVar28 == 0) {\n          *puVar24 = uVar13;\n        }\n        else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }\n      }\njoined_r0x0007b75c:\n      for (; iVar25 != 0; iVar25 = iVar25 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);\n        puVar20 = puVar20 + iVar19;\n        *(int *)(puVar30 + -0x70) = iVar4;\n        uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      uVar2 = *(uint *)(puVar30 + -0x5c);\n      if (*(uint *)(puVar30 + -0x60) < uVar2) {\n        (**(code **)(iVar11 + -0x7c20))\n                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438);\n        uVar2 = extraout_v1;\n      }\n      uVar2 = *(int *)(puVar30 + -0x60) - uVar2;\n      uVar9 = 0x20 - (uVar2 & 0x1f);\n      puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4);\n      uVar3 = *puVar8 >> (uVar2 & 0x1f);\n      if ((int)uVar9 < *(int *)(puVar30 + -0x58)) {\n        uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f));\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bac);\n      *(int *)(puVar30 + -0x44) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f));\n      *(uint *)(puVar30 + -0x70) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)) & uVar3;\n      (*UNRECOVERED_JUMPTABLE)\n                (puVar22,*(undefined4 *)(puVar30 + -0x54),iVar19,*(undefined4 *)(puVar30 + -0x50));\n      iVar25 = *(int *)(puVar30 + -0x68);\n      if (uVar2 != 0) {\n        *(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39);\n        do {\n          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n          if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);\n          *(undefined4 *)(puVar30 + -0x70) = uVar13;\n          (*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);\n          *(int *)(puVar30 + -0x70) = iVar4;\n          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n          iVar25 = *(int *)(puVar30 + -0x68);\n          uVar2 = uVar9;\n        } while (uVar9 != 0);\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7eb0);\n      if (iVar19 != 0) {\n        iVar11 = iVar19 + -1;\n        uVar13 = *puVar22;\n        puVar20 = puVar21;\n        puVar26 = puVar22;\n        if (iVar11 != 0) {\n          do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar20 = puVar21 + iVar19 + -1;\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58);\n        *puVar20 = uVar13;\n        (*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0);\n      }\n      *(int *)(puVar30 + -0x70) = iVar4;\n      uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar22,puVar21,piVar23,iVar19);\n      *(int *)(puVar30 + -0x70) = iVar19;\n      (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n      iVar25 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))(puVar21,puVar22,piVar23,iVar19);\n      UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7a70);\n      *(int *)(puVar30 + 0x10) = iVar19;\n                    \n                    \n      (*UNRECOVERED_JUMPTABLE)(iVar25 == 0,puVar22,puVar22,piVar23);\n      return;\n    }" if (parenthesized_expression "(puVar7 == (undefined4 *)0x0)" ( (binary_expression "puVar7 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (puVar22 != (undefined4 *)0x0) {\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      uVar13 = 0x7b45c;\n      puVar27 = PTR___stack_chk_fail_0009d4d0;\n      (*(code *)PTR___stack_chk_fail_0009d4d0)();\n      uVar2 = *(uint *)(puVar30 + 0x10);\n      *(undefined4 **)(puVar30 + -0x24) = param_5;\n      *(undefined **)(puVar30 + -0x68) = puVar27 + 0x29be0;\n      *(undefined4 *)(puVar30 + -0x18) = 0;\n      *(undefined4 **)(puVar30 + -0x28) = puVar20;\n      *(undefined4 *)(puVar30 + -4) = uVar13;\n      *(undefined1 **)(puVar30 + -8) = auStack_70;\n      *(int *)(puVar30 + -0xc) = iVar25;\n      *(uint **)(puVar30 + -0x10) = param_3;\n      *(undefined4 **)(puVar30 + -0x14) = param_2;\n      *(undefined4 **)(puVar30 + -0x1c) = param_1;\n      *(undefined4 **)(puVar30 + -0x20) = param_6;\n      *(uint *)(puVar30 + -0x60) = uVar2;\n      *(undefined4 **)(puVar30 + -0x44) = puVar12;\n      *(undefined4 **)(puVar30 + -0x4c) = param_4;\n      piVar23 = *(int **)(puVar30 + 0x14);\n      iVar19 = *(int *)(puVar30 + 0x18);\n      *(undefined4 *)(puVar30 + -0x54) = *(undefined4 *)(puVar30 + 0x1c);\n      if (uVar2 < 3) {\n        iVar25 = 0;\n        *(undefined4 *)(puVar30 + -0x5c) = 1;\n        *(undefined4 *)(puVar30 + -0x50) = 2;\n        iVar4 = 1;\n        *(undefined4 *)(puVar30 + -0x58) = 1;\n      }\n      else {\n        if (uVar2 < 0x22) {\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }\n        else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }\n        *(int *)(puVar30 + -0x5c) = iVar4;\n        *(int *)(puVar30 + -0x50) = 1 << iVar4;\n        iVar25 = (1 << iVar4) + -2;\n      }\n      iVar11 = *piVar23;\n      iVar31 = iVar19 * 4;\n      puVar26 = *(undefined4 **)(puVar30 + -0x54);\n      puVar16 = (undefined1 *)(iVar19 + (int)puVar14);\n      puVar24 = puVar26 + iVar19;\n      uVar2 = (uint)*(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19));\n      puVar7 = puVar24 + iVar19;\n      puVar12 = puVar26 + iVar19 + 1;\n      *(undefined4 **)(puVar30 + -0x48) = puVar7 + (int)puVar16;\n      puVar21 = puVar26 + (iVar19 << iVar4);\n      *puVar24 = 1;\n      iVar4 = uVar2 * 2 - uVar2 * uVar2 * iVar11;\n      iVar4 = iVar4 * iVar4 * iVar11 + iVar4 * -2;\n      puVar20 = puVar24;\n      if (iVar19 == 0) {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c);\n        puVar12[iVar19] = 1;\n        *(undefined4 **)(puVar30 + -0x38) = puVar14;\n        *(undefined1 **)(puVar30 + -0x3c) = puVar16;\n        *(undefined4 **)(puVar30 + -0x40) = puVar7;\n        *(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar11 = *(int *)(puVar30 + -0x40);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        if (iVar18 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar6 = iVar28 + -1;\n        puVar7 = (undefined4 *)(iVar11 + iVar31);\n        uVar13 = **(undefined4 **)(puVar30 + -0x44);\n        if (iVar6 != 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          puVar12 = puVar7;\n          goto LAB_0007b70c;\n        }\n        uVar5 = *(undefined4 *)(puVar30 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n        *puVar7 = uVar13;\n        *(undefined4 *)(puVar30 + -0x70) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);\n        *(undefined4 **)(puVar30 + -0x2c) = puVar14;\n        *(undefined1 **)(puVar30 + -0x30) = puVar16;\n        *(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;\n        *(undefined4 **)(puVar30 + -0x38) = puVar7;\n        *(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;\n        uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);\n        uVar5 = *puVar24;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);\n        *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);\n        *(undefined4 *)(puVar30 + -0x3c) = uVar13;\n        **(undefined4 **)(puVar30 + -0x34) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);\n        iVar11 = iVar19 + -1;\n        puVar7 = *(undefined4 **)(puVar30 + -0x3c);\n        iVar28 = *(int *)(puVar30 + -0x68);\n        uVar13 = *(undefined4 *)(puVar30 + -0x38);\n        uVar17 = *(undefined4 *)(puVar30 + -0x30);\n        uVar5 = *puVar7;\n        uVar15 = *(undefined4 *)(puVar30 + -0x2c);\n        if (iVar11 == 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }\n        else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);\n        *(undefined4 *)(puVar30 + -0x38) = uVar15;\n        *(undefined4 *)(puVar30 + -0x3c) = uVar17;\n        *puVar26 = uVar5;\n        iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        if (iVar28 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }\n        else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }\n        iVar28 = *(int *)(puVar30 + -0x40);\n        uVar13 = *puVar26;\n        puVar7 = puVar24;\n        if (iVar28 == 0) {\n          *puVar24 = uVar13;\n        }\n        else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }\n      }\njoined_r0x0007b75c:\n      for (; iVar25 != 0; iVar25 = iVar25 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);\n        puVar20 = puVar20 + iVar19;\n        *(int *)(puVar30 + -0x70) = iVar4;\n        uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      uVar2 = *(uint *)(puVar30 + -0x5c);\n      if (*(uint *)(puVar30 + -0x60) < uVar2) {\n        (**(code **)(iVar11 + -0x7c20))\n                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438);\n        uVar2 = extraout_v1;\n      }\n      uVar2 = *(int *)(puVar30 + -0x60) - uVar2;\n      uVar9 = 0x20 - (uVar2 & 0x1f);\n      puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4);\n      uVar3 = *puVar8 >> (uVar2 & 0x1f);\n      if ((int)uVar9 < *(int *)(puVar30 + -0x58)) {\n        uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f));\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bac);\n      *(int *)(puVar30 + -0x44) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f));\n      *(uint *)(puVar30 + -0x70) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)) & uVar3;\n      (*UNRECOVERED_JUMPTABLE)\n                (puVar22,*(undefined4 *)(puVar30 + -0x54),iVar19,*(undefined4 *)(puVar30 + -0x50));\n      iVar25 = *(int *)(puVar30 + -0x68);\n      if (uVar2 != 0) {\n        *(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39);\n        do {\n          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n          if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);\n          *(undefined4 *)(puVar30 + -0x70) = uVar13;\n          (*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);\n          *(int *)(puVar30 + -0x70) = iVar4;\n          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n          iVar25 = *(int *)(puVar30 + -0x68);\n          uVar2 = uVar9;\n        } while (uVar9 != 0);\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7eb0);\n      if (iVar19 != 0) {\n        iVar11 = iVar19 + -1;\n        uVar13 = *puVar22;\n        puVar20 = puVar21;\n        puVar26 = puVar22;\n        if (iVar11 != 0) {\n          do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar20 = puVar21 + iVar19 + -1;\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58);\n        *puVar20 = uVar13;\n        (*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0);\n      }\n      *(int *)(puVar30 + -0x70) = iVar4;\n      uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar22,puVar21,piVar23,iVar19);\n      *(int *)(puVar30 + -0x70) = iVar19;\n      (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n      iVar25 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))(puVar21,puVar22,piVar23,iVar19);\n      UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7a70);\n      *(int *)(puVar30 + 0x10) = iVar19;\n                    \n                    \n      (*UNRECOVERED_JUMPTABLE)(iVar25 == 0,puVar22,puVar22,piVar23);\n      return;\n    }" { (if_statement "if (puVar22 != (undefined4 *)0x0) {\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }" if (parenthesized_expression "(puVar22 != (undefined4 *)0x0)" ( (binary_expression "puVar22 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }" { (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)" ( (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_0009d618" * (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_0009d618" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (if_statement "if (local_2c == *(int *)puVar1) {\n        return;\n      }" if (parenthesized_expression "(local_2c == *(int *)puVar1)" ( (binary_expression "local_2c == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "uVar13 = 0x7b45c;" (assignment_expression "uVar13 = 0x7b45c" identifier = number_literal) ;) (expression_statement "puVar27 = PTR___stack_chk_fail_0009d4d0;" (assignment_expression "puVar27 = PTR___stack_chk_fail_0009d4d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0009d4d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0009d4d0" * (cast_expression "(code *)PTR___stack_chk_fail_0009d4d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar2 = *(uint *)(puVar30 + 0x10);" (assignment_expression "uVar2 = *(uint *)(puVar30 + 0x10)" identifier = (pointer_expression "*(uint *)(puVar30 + 0x10)" * (cast_expression "(uint *)(puVar30 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + 0x10)" ( (binary_expression "puVar30 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x24) = param_5;" (assignment_expression "*(undefined4 **)(puVar30 + -0x24) = param_5" (pointer_expression "*(undefined4 **)(puVar30 + -0x24)" * (cast_expression "(undefined4 **)(puVar30 + -0x24)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x24)" ( (binary_expression "puVar30 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar30 + -0x68) = puVar27 + 0x29be0;" (assignment_expression "*(undefined **)(puVar30 + -0x68) = puVar27 + 0x29be0" (pointer_expression "*(undefined **)(puVar30 + -0x68)" * (cast_expression "(undefined **)(puVar30 + -0x68)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) = (binary_expression "puVar27 + 0x29be0" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x18) = 0;" (assignment_expression "*(undefined4 *)(puVar30 + -0x18) = 0" (pointer_expression "*(undefined4 *)(puVar30 + -0x18)" * (cast_expression "(undefined4 *)(puVar30 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x18)" ( (binary_expression "puVar30 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x28) = puVar20;" (assignment_expression "*(undefined4 **)(puVar30 + -0x28) = puVar20" (pointer_expression "*(undefined4 **)(puVar30 + -0x28)" * (cast_expression "(undefined4 **)(puVar30 + -0x28)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x28)" ( (binary_expression "puVar30 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar30 + -4) = uVar13;" (assignment_expression "*(undefined4 *)(puVar30 + -4) = uVar13" (pointer_expression "*(undefined4 *)(puVar30 + -4)" * (cast_expression "(undefined4 *)(puVar30 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -4)" ( (binary_expression "puVar30 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar30 + -8) = auStack_70;" (assignment_expression "*(undefined1 **)(puVar30 + -8) = auStack_70" (pointer_expression "*(undefined1 **)(puVar30 + -8)" * (cast_expression "(undefined1 **)(puVar30 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -8)" ( (binary_expression "puVar30 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar30 + -0xc) = iVar25;" (assignment_expression "*(int *)(puVar30 + -0xc) = iVar25" (pointer_expression "*(int *)(puVar30 + -0xc)" * (cast_expression "(int *)(puVar30 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0xc)" ( (binary_expression "puVar30 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar30 + -0x10) = param_3;" (assignment_expression "*(uint **)(puVar30 + -0x10) = param_3" (pointer_expression "*(uint **)(puVar30 + -0x10)" * (cast_expression "(uint **)(puVar30 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x10)" ( (binary_expression "puVar30 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x14) = param_2;" (assignment_expression "*(undefined4 **)(puVar30 + -0x14) = param_2" (pointer_expression "*(undefined4 **)(puVar30 + -0x14)" * (cast_expression "(undefined4 **)(puVar30 + -0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x14)" ( (binary_expression "puVar30 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x1c) = param_1;" (assignment_expression "*(undefined4 **)(puVar30 + -0x1c) = param_1" (pointer_expression "*(undefined4 **)(puVar30 + -0x1c)" * (cast_expression "(undefined4 **)(puVar30 + -0x1c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x1c)" ( (binary_expression "puVar30 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x20) = param_6;" (assignment_expression "*(undefined4 **)(puVar30 + -0x20) = param_6" (pointer_expression "*(undefined4 **)(puVar30 + -0x20)" * (cast_expression "(undefined4 **)(puVar30 + -0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x20)" ( (binary_expression "puVar30 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar30 + -0x60) = uVar2;" (assignment_expression "*(uint *)(puVar30 + -0x60) = uVar2" (pointer_expression "*(uint *)(puVar30 + -0x60)" * (cast_expression "(uint *)(puVar30 + -0x60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x60)" ( (binary_expression "puVar30 + -0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x44) = puVar12;" (assignment_expression "*(undefined4 **)(puVar30 + -0x44) = puVar12" (pointer_expression "*(undefined4 **)(puVar30 + -0x44)" * (cast_expression "(undefined4 **)(puVar30 + -0x44)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x44)" ( (binary_expression "puVar30 + -0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x4c) = param_4;" (assignment_expression "*(undefined4 **)(puVar30 + -0x4c) = param_4" (pointer_expression "*(undefined4 **)(puVar30 + -0x4c)" * (cast_expression "(undefined4 **)(puVar30 + -0x4c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x4c)" ( (binary_expression "puVar30 + -0x4c" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar23 = *(int **)(puVar30 + 0x14);" (assignment_expression "piVar23 = *(int **)(puVar30 + 0x14)" identifier = (pointer_expression "*(int **)(puVar30 + 0x14)" * (cast_expression "(int **)(puVar30 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + 0x14)" ( (binary_expression "puVar30 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar19 = *(int *)(puVar30 + 0x18);" (assignment_expression "iVar19 = *(int *)(puVar30 + 0x18)" identifier = (pointer_expression "*(int *)(puVar30 + 0x18)" * (cast_expression "(int *)(puVar30 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + 0x18)" ( (binary_expression "puVar30 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x54) = *(undefined4 *)(puVar30 + 0x1c);" (assignment_expression "*(undefined4 *)(puVar30 + -0x54) = *(undefined4 *)(puVar30 + 0x1c)" (pointer_expression "*(undefined4 *)(puVar30 + -0x54)" * (cast_expression "(undefined4 *)(puVar30 + -0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar30 + 0x1c)" * (cast_expression "(undefined4 *)(puVar30 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + 0x1c)" ( (binary_expression "puVar30 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (uVar2 < 3) {\n        iVar25 = 0;\n        *(undefined4 *)(puVar30 + -0x5c) = 1;\n        *(undefined4 *)(puVar30 + -0x50) = 2;\n        iVar4 = 1;\n        *(undefined4 *)(puVar30 + -0x58) = 1;\n      }\n      else {\n        if (uVar2 < 0x22) {\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }\n        else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }\n        *(int *)(puVar30 + -0x5c) = iVar4;\n        *(int *)(puVar30 + -0x50) = 1 << iVar4;\n        iVar25 = (1 << iVar4) + -2;\n      }" if (parenthesized_expression "(uVar2 < 3)" ( (binary_expression "uVar2 < 3" identifier < number_literal) )) (compound_statement "{\n        iVar25 = 0;\n        *(undefined4 *)(puVar30 + -0x5c) = 1;\n        *(undefined4 *)(puVar30 + -0x50) = 2;\n        iVar4 = 1;\n        *(undefined4 *)(puVar30 + -0x58) = 1;\n      }" { (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x5c) = 1;" (assignment_expression "*(undefined4 *)(puVar30 + -0x5c) = 1" (pointer_expression "*(undefined4 *)(puVar30 + -0x5c)" * (cast_expression "(undefined4 *)(puVar30 + -0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x5c)" ( (binary_expression "puVar30 + -0x5c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x50) = 2;" (assignment_expression "*(undefined4 *)(puVar30 + -0x50) = 2" (pointer_expression "*(undefined4 *)(puVar30 + -0x50)" * (cast_expression "(undefined4 *)(puVar30 + -0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x58) = 1;" (assignment_expression "*(undefined4 *)(puVar30 + -0x58) = 1" (pointer_expression "*(undefined4 *)(puVar30 + -0x58)" * (cast_expression "(undefined4 *)(puVar30 + -0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x58)" ( (binary_expression "puVar30 + -0x58" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        if (uVar2 < 0x22) {\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }\n        else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }\n        *(int *)(puVar30 + -0x5c) = iVar4;\n        *(int *)(puVar30 + -0x50) = 1 << iVar4;\n        iVar25 = (1 << iVar4) + -2;\n      }" else (compound_statement "{\n        if (uVar2 < 0x22) {\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }\n        else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }\n        *(int *)(puVar30 + -0x5c) = iVar4;\n        *(int *)(puVar30 + -0x50) = 1 << iVar4;\n        iVar25 = (1 << iVar4) + -2;\n      }" { (if_statement "if (uVar2 < 0x22) {\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }\n        else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }" if (parenthesized_expression "(uVar2 < 0x22)" ( (binary_expression "uVar2 < 0x22" identifier < number_literal) )) (compound_statement "{\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }" { (expression_statement "*(undefined4 *)(puVar30 + -0x58) = 2;" (assignment_expression "*(undefined4 *)(puVar30 + -0x58) = 2" (pointer_expression "*(undefined4 *)(puVar30 + -0x58)" * (cast_expression "(undefined4 *)(puVar30 + -0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x58)" ( (binary_expression "puVar30 + -0x58" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }) (else_clause "else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }" else (if_statement "if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }" if (parenthesized_expression "(uVar2 < 0x61)" ( (binary_expression "uVar2 < 0x61" identifier < number_literal) )) (compound_statement "{\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }" { (expression_statement "*(undefined4 *)(puVar30 + -0x58) = 3;" (assignment_expression "*(undefined4 *)(puVar30 + -0x58) = 3" (pointer_expression "*(undefined4 *)(puVar30 + -0x58)" * (cast_expression "(undefined4 *)(puVar30 + -0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x58)" ( (binary_expression "puVar30 + -0x58" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar4 = 3;" (assignment_expression "iVar4 = 3" identifier = number_literal) ;) }) (else_clause "else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }" else (if_statement "if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }" if (parenthesized_expression "(uVar2 < 0x30d)" ( (binary_expression "uVar2 < 0x30d" identifier < number_literal) )) (compound_statement "{\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }" { (expression_statement "*(undefined4 *)(puVar30 + -0x58) = 4;" (assignment_expression "*(undefined4 *)(puVar30 + -0x58) = 4" (pointer_expression "*(undefined4 *)(puVar30 + -0x58)" * (cast_expression "(undefined4 *)(puVar30 + -0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x58)" ( (binary_expression "puVar30 + -0x58" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar4 = 4;" (assignment_expression "iVar4 = 4" identifier = number_literal) ;) }) (else_clause "else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }" else (compound_statement "{\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }" { (expression_statement "iVar4 = 6;" (assignment_expression "iVar4 = 6" identifier = number_literal) ;) (if_statement "if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }" if (parenthesized_expression "(uVar2 < 0xab6)" ( (binary_expression "uVar2 < 0xab6" identifier < number_literal) )) (compound_statement "{\n            iVar4 = 5;\n          }" { (expression_statement "iVar4 = 5;" (assignment_expression "iVar4 = 5" identifier = number_literal) ;) })) (expression_statement "*(int *)(puVar30 + -0x58) = iVar4;" (assignment_expression "*(int *)(puVar30 + -0x58) = iVar4" (pointer_expression "*(int *)(puVar30 + -0x58)" * (cast_expression "(int *)(puVar30 + -0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x58)" ( (binary_expression "puVar30 + -0x58" identifier + number_literal) )))) = identifier) ;) }))))))) (expression_statement "*(int *)(puVar30 + -0x5c) = iVar4;" (assignment_expression "*(int *)(puVar30 + -0x5c) = iVar4" (pointer_expression "*(int *)(puVar30 + -0x5c)" * (cast_expression "(int *)(puVar30 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x5c)" ( (binary_expression "puVar30 + -0x5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar30 + -0x50) = 1 << iVar4;" (assignment_expression "*(int *)(puVar30 + -0x50) = 1 << iVar4" (pointer_expression "*(int *)(puVar30 + -0x50)" * (cast_expression "(int *)(puVar30 + -0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) )))) = (binary_expression "1 << iVar4" number_literal << identifier)) ;) (expression_statement "iVar25 = (1 << iVar4) + -2;" (assignment_expression "iVar25 = (1 << iVar4) + -2" identifier = (binary_expression "(1 << iVar4) + -2" (parenthesized_expression "(1 << iVar4)" ( (binary_expression "1 << iVar4" number_literal << identifier) )) + number_literal)) ;) }))) (expression_statement "iVar11 = *piVar23;" (assignment_expression "iVar11 = *piVar23" identifier = (pointer_expression "*piVar23" * identifier)) ;) (expression_statement "iVar31 = iVar19 * 4;" (assignment_expression "iVar31 = iVar19 * 4" identifier = (binary_expression "iVar19 * 4" identifier * number_literal)) ;) (expression_statement "puVar26 = *(undefined4 **)(puVar30 + -0x54);" (assignment_expression "puVar26 = *(undefined4 **)(puVar30 + -0x54)" identifier = (pointer_expression "*(undefined4 **)(puVar30 + -0x54)" * (cast_expression "(undefined4 **)(puVar30 + -0x54)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = (undefined1 *)(iVar19 + (int)puVar14);" (assignment_expression "puVar16 = (undefined1 *)(iVar19 + (int)puVar14)" identifier = (cast_expression "(undefined1 *)(iVar19 + (int)puVar14)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + (int)puVar14)" ( (binary_expression "iVar19 + (int)puVar14" identifier + (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar24 = puVar26 + iVar19;" (assignment_expression "puVar24 = puVar26 + iVar19" identifier = (binary_expression "puVar26 + iVar19" identifier + identifier)) ;) (expression_statement "uVar2 = (uint)*(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19));" (assignment_expression "uVar2 = (uint)*(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19))" identifier = (binary_expression "(uint)*(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19))" ( (binary_expression "*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19)" (pointer_expression "*(int *)(puVar27 + 0x21ea4)" * (cast_expression "(int *)(puVar27 + 0x21ea4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + 0x21ea4)" ( (binary_expression "puVar27 + 0x21ea4" identifier + number_literal) )))) + (parenthesized_expression "((uint)(iVar11 << 0x18) >> 0x19)" ( (binary_expression "(uint)(iVar11 << 0x18) >> 0x19" (call_expression "(uint)(iVar11 << 0x18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar11 << 0x18)" ( (binary_expression "iVar11 << 0x18" identifier << number_literal) ))) >> number_literal) ))) ))))) ;) (expression_statement "puVar7 = puVar24 + iVar19;" (assignment_expression "puVar7 = puVar24 + iVar19" identifier = (binary_expression "puVar24 + iVar19" identifier + identifier)) ;) (expression_statement "puVar12 = puVar26 + iVar19 + 1;" (assignment_expression "puVar12 = puVar26 + iVar19 + 1" identifier = (binary_expression "puVar26 + iVar19 + 1" (binary_expression "puVar26 + iVar19" identifier + identifier) + number_literal)) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x48) = puVar7 + (int)puVar16;" (assignment_expression "*(undefined4 **)(puVar30 + -0x48) = puVar7 + (int)puVar16" (pointer_expression "*(undefined4 **)(puVar30 + -0x48)" * (cast_expression "(undefined4 **)(puVar30 + -0x48)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x48)" ( (binary_expression "puVar30 + -0x48" identifier + number_literal) )))) = (binary_expression "puVar7 + (int)puVar16" identifier + (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar21 = puVar26 + (iVar19 << iVar4);" (assignment_expression "puVar21 = puVar26 + (iVar19 << iVar4)" identifier = (binary_expression "puVar26 + (iVar19 << iVar4)" identifier + (parenthesized_expression "(iVar19 << iVar4)" ( (binary_expression "iVar19 << iVar4" identifier << identifier) )))) ;) (expression_statement "*puVar24 = 1;" (assignment_expression "*puVar24 = 1" (pointer_expression "*puVar24" * identifier) = number_literal) ;) (expression_statement "iVar4 = uVar2 * 2 - uVar2 * uVar2 * iVar11;" (assignment_expression "iVar4 = uVar2 * 2 - uVar2 * uVar2 * iVar11" identifier = (binary_expression "uVar2 * 2 - uVar2 * uVar2 * iVar11" (binary_expression "uVar2 * 2" identifier * number_literal) - (binary_expression "uVar2 * uVar2 * iVar11" (binary_expression "uVar2 * uVar2" identifier * identifier) * identifier))) ;) (expression_statement "iVar4 = iVar4 * iVar4 * iVar11 + iVar4 * -2;" (assignment_expression "iVar4 = iVar4 * iVar4 * iVar11 + iVar4 * -2" identifier = (binary_expression "iVar4 * iVar4 * iVar11 + iVar4 * -2" (binary_expression "iVar4 * iVar4 * iVar11" (binary_expression "iVar4 * iVar4" identifier * identifier) * identifier) + (binary_expression "iVar4 * -2" identifier * number_literal))) ;) (expression_statement "puVar20 = puVar24;" (assignment_expression "puVar20 = puVar24" identifier = identifier) ;) (if_statement "if (iVar19 == 0) {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c);\n        puVar12[iVar19] = 1;\n        *(undefined4 **)(puVar30 + -0x38) = puVar14;\n        *(undefined1 **)(puVar30 + -0x3c) = puVar16;\n        *(undefined4 **)(puVar30 + -0x40) = puVar7;\n        *(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar11 = *(int *)(puVar30 + -0x40);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        if (iVar18 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar6 = iVar28 + -1;\n        puVar7 = (undefined4 *)(iVar11 + iVar31);\n        uVar13 = **(undefined4 **)(puVar30 + -0x44);\n        if (iVar6 != 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          puVar12 = puVar7;\n          goto LAB_0007b70c;\n        }\n        uVar5 = *(undefined4 *)(puVar30 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n        *puVar7 = uVar13;\n        *(undefined4 *)(puVar30 + -0x70) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);\n        *(undefined4 **)(puVar30 + -0x2c) = puVar14;\n        *(undefined1 **)(puVar30 + -0x30) = puVar16;\n        *(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;\n        *(undefined4 **)(puVar30 + -0x38) = puVar7;\n        *(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;\n        uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);\n        uVar5 = *puVar24;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);\n        *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);\n        *(undefined4 *)(puVar30 + -0x3c) = uVar13;\n        **(undefined4 **)(puVar30 + -0x34) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);\n        iVar11 = iVar19 + -1;\n        puVar7 = *(undefined4 **)(puVar30 + -0x3c);\n        iVar28 = *(int *)(puVar30 + -0x68);\n        uVar13 = *(undefined4 *)(puVar30 + -0x38);\n        uVar17 = *(undefined4 *)(puVar30 + -0x30);\n        uVar5 = *puVar7;\n        uVar15 = *(undefined4 *)(puVar30 + -0x2c);\n        if (iVar11 == 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }\n        else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);\n        *(undefined4 *)(puVar30 + -0x38) = uVar15;\n        *(undefined4 *)(puVar30 + -0x3c) = uVar17;\n        *puVar26 = uVar5;\n        iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        if (iVar28 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }\n        else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }\n        iVar28 = *(int *)(puVar30 + -0x40);\n        uVar13 = *puVar26;\n        puVar7 = puVar24;\n        if (iVar28 == 0) {\n          *puVar24 = uVar13;\n        }\n        else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }\n      }" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (compound_statement "{\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c);\n        puVar12[iVar19] = 1;\n        *(undefined4 **)(puVar30 + -0x38) = puVar14;\n        *(undefined1 **)(puVar30 + -0x3c) = puVar16;\n        *(undefined4 **)(puVar30 + -0x40) = puVar7;\n        *(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar11 = *(int *)(puVar30 + -0x40);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        if (iVar18 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar6 = iVar28 + -1;\n        puVar7 = (undefined4 *)(iVar11 + iVar31);\n        uVar13 = **(undefined4 **)(puVar30 + -0x44);\n        if (iVar6 != 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          puVar12 = puVar7;\n          goto LAB_0007b70c;\n        }\n        uVar5 = *(undefined4 *)(puVar30 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n        *puVar7 = uVar13;\n        *(undefined4 *)(puVar30 + -0x70) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }" { (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c)" identifier = (pointer_expression "*(code **)(puVar27 + 0x2211c)" * (cast_expression "(code **)(puVar27 + 0x2211c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + 0x2211c)" ( (binary_expression "puVar27 + 0x2211c" identifier + number_literal) ))))) ;) (expression_statement "puVar12[iVar19] = 1;" (assignment_expression "puVar12[iVar19] = 1" (subscript_expression "puVar12[iVar19]" identifier [ identifier ]) = number_literal) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x38) = puVar14;" (assignment_expression "*(undefined4 **)(puVar30 + -0x38) = puVar14" (pointer_expression "*(undefined4 **)(puVar30 + -0x38)" * (cast_expression "(undefined4 **)(puVar30 + -0x38)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x38)" ( (binary_expression "puVar30 + -0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar30 + -0x3c) = puVar16;" (assignment_expression "*(undefined1 **)(puVar30 + -0x3c) = puVar16" (pointer_expression "*(undefined1 **)(puVar30 + -0x3c)" * (cast_expression "(undefined1 **)(puVar30 + -0x3c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x3c)" ( (binary_expression "puVar30 + -0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x40) = puVar7;" (assignment_expression "*(undefined4 **)(puVar30 + -0x40) = puVar7" (pointer_expression "*(undefined4 **)(puVar30 + -0x40)" * (cast_expression "(undefined4 **)(puVar30 + -0x40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x40)" ( (binary_expression "puVar30 + -0x40" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1;" (assignment_expression "*(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1" (pointer_expression "*(undefined4 **)(puVar30 + -0x70)" * (cast_expression "(undefined4 **)(puVar30 + -0x70)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = (binary_expression "puVar12 + iVar19 + 1" (binary_expression "puVar12 + iVar19" identifier + identifier) + number_literal)) ;) (expression_statement "(*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0);" (call_expression "(*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(puVar12,1,piVar23,0)" ( identifier , number_literal , identifier , number_literal ))) ;) (expression_statement "iVar18 = *(int *)(puVar30 + -0x3c);" (assignment_expression "iVar18 = *(int *)(puVar30 + -0x3c)" identifier = (pointer_expression "*(int *)(puVar30 + -0x3c)" * (cast_expression "(int *)(puVar30 + -0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x3c)" ( (binary_expression "puVar30 + -0x3c" identifier + number_literal) ))))) ;) (expression_statement "iVar29 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar29 = *(int *)(puVar30 + -0x68)" identifier = (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(puVar30 + -0x40);" (assignment_expression "iVar11 = *(int *)(puVar30 + -0x40)" identifier = (pointer_expression "*(int *)(puVar30 + -0x40)" * (cast_expression "(int *)(puVar30 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x40)" ( (binary_expression "puVar30 + -0x40" identifier + number_literal) ))))) ;) (expression_statement "iVar28 = *(int *)(puVar30 + -0x38);" (assignment_expression "iVar28 = *(int *)(puVar30 + -0x38)" identifier = (pointer_expression "*(int *)(puVar30 + -0x38)" * (cast_expression "(int *)(puVar30 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x38)" ( (binary_expression "puVar30 + -0x38" identifier + number_literal) ))))) ;) (if_statement "if (iVar18 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          goto joined_r0x0007b75c;\n        }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          goto joined_r0x0007b75c;\n        }" { (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4)" identifier = (pointer_expression "*(code **)(iVar29 + -0x7ac4)" * (cast_expression "(code **)(iVar29 + -0x7ac4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar29 + -0x7ac4)" ( (binary_expression "iVar29 + -0x7ac4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);" (assignment_expression "*(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48)" (pointer_expression "*(undefined4 *)(puVar30 + -0x70)" * (cast_expression "(undefined4 *)(puVar30 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar30 + -0x48)" * (cast_expression "(undefined4 *)(puVar30 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x48)" ( (binary_expression "puVar30 + -0x48" identifier + number_literal) ))))) ;) (expression_statement "(*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);" (call_expression "(*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(iVar11,0,piVar23,0)" ( identifier , number_literal , identifier , number_literal ))) ;) (expression_statement "iVar11 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar11 = *(int *)(puVar30 + -0x68)" identifier = (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) ))))) ;) (goto_statement "goto joined_r0x0007b75c;" goto statement_identifier ;) })) (expression_statement "iVar6 = iVar28 + -1;" (assignment_expression "iVar6 = iVar28 + -1" identifier = (binary_expression "iVar28 + -1" identifier + number_literal)) ;) (expression_statement "puVar7 = (undefined4 *)(iVar11 + iVar31);" (assignment_expression "puVar7 = (undefined4 *)(iVar11 + iVar31)" identifier = (cast_expression "(undefined4 *)(iVar11 + iVar31)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + iVar31)" ( (binary_expression "iVar11 + iVar31" identifier + identifier) )))) ;) (expression_statement "uVar13 = **(undefined4 **)(puVar30 + -0x44);" (assignment_expression "uVar13 = **(undefined4 **)(puVar30 + -0x44)" identifier = (pointer_expression "**(undefined4 **)(puVar30 + -0x44)" * (pointer_expression "*(undefined4 **)(puVar30 + -0x44)" * (cast_expression "(undefined4 **)(puVar30 + -0x44)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x44)" ( (binary_expression "puVar30 + -0x44" identifier + number_literal) )))))) ;) (if_statement "if (iVar6 != 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          puVar12 = puVar7;\n          goto LAB_0007b70c;\n        }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          puVar12 = puVar7;\n          goto LAB_0007b70c;\n        }" { (expression_statement "puVar26 = *(undefined4 **)(puVar30 + -0x44);" (assignment_expression "puVar26 = *(undefined4 **)(puVar30 + -0x44)" identifier = (pointer_expression "*(undefined4 **)(puVar30 + -0x44)" * (cast_expression "(undefined4 **)(puVar30 + -0x44)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x44)" ( (binary_expression "puVar30 + -0x44" identifier + number_literal) ))))) ;) (expression_statement "puVar12 = puVar7;" (assignment_expression "puVar12 = puVar7" identifier = identifier) ;) (goto_statement "goto LAB_0007b70c;" goto statement_identifier ;) })) (expression_statement "uVar5 = *(undefined4 *)(puVar30 + -0x48);" (assignment_expression "uVar5 = *(undefined4 *)(puVar30 + -0x48)" identifier = (pointer_expression "*(undefined4 *)(puVar30 + -0x48)" * (cast_expression "(undefined4 *)(puVar30 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x48)" ( (binary_expression "puVar30 + -0x48" identifier + number_literal) ))))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4)" identifier = (pointer_expression "*(code **)(iVar29 + -0x7ac4)" * (cast_expression "(code **)(iVar29 + -0x7ac4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar29 + -0x7ac4)" ( (binary_expression "iVar29 + -0x7ac4" identifier + number_literal) ))))) ;) (expression_statement "*puVar7 = uVar13;" (assignment_expression "*puVar7 = uVar13" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x70) = uVar5;" (assignment_expression "*(undefined4 *)(puVar30 + -0x70) = uVar5" (pointer_expression "*(undefined4 *)(puVar30 + -0x70)" * (cast_expression "(undefined4 *)(puVar30 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0);" (call_expression "(*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(iVar11,iVar18,piVar23,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "iVar11 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar11 = *(int *)(puVar30 + -0x68)" identifier = (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);\n        *(undefined4 **)(puVar30 + -0x2c) = puVar14;\n        *(undefined1 **)(puVar30 + -0x30) = puVar16;\n        *(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;\n        *(undefined4 **)(puVar30 + -0x38) = puVar7;\n        *(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;\n        uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);\n        uVar5 = *puVar24;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);\n        *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);\n        *(undefined4 *)(puVar30 + -0x3c) = uVar13;\n        **(undefined4 **)(puVar30 + -0x34) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);\n        iVar11 = iVar19 + -1;\n        puVar7 = *(undefined4 **)(puVar30 + -0x3c);\n        iVar28 = *(int *)(puVar30 + -0x68);\n        uVar13 = *(undefined4 *)(puVar30 + -0x38);\n        uVar17 = *(undefined4 *)(puVar30 + -0x30);\n        uVar5 = *puVar7;\n        uVar15 = *(undefined4 *)(puVar30 + -0x2c);\n        if (iVar11 == 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }\n        else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);\n        *(undefined4 *)(puVar30 + -0x38) = uVar15;\n        *(undefined4 *)(puVar30 + -0x3c) = uVar17;\n        *puVar26 = uVar5;\n        iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        if (iVar28 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }\n        else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }\n        iVar28 = *(int *)(puVar30 + -0x40);\n        uVar13 = *puVar26;\n        puVar7 = puVar24;\n        if (iVar28 == 0) {\n          *puVar24 = uVar13;\n        }\n        else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }\n      }" else (compound_statement "{\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);\n        *(undefined4 **)(puVar30 + -0x2c) = puVar14;\n        *(undefined1 **)(puVar30 + -0x30) = puVar16;\n        *(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;\n        *(undefined4 **)(puVar30 + -0x38) = puVar7;\n        *(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;\n        uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);\n        uVar5 = *puVar24;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);\n        *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);\n        *(undefined4 *)(puVar30 + -0x3c) = uVar13;\n        **(undefined4 **)(puVar30 + -0x34) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);\n        iVar11 = iVar19 + -1;\n        puVar7 = *(undefined4 **)(puVar30 + -0x3c);\n        iVar28 = *(int *)(puVar30 + -0x68);\n        uVar13 = *(undefined4 *)(puVar30 + -0x38);\n        uVar17 = *(undefined4 *)(puVar30 + -0x30);\n        uVar5 = *puVar7;\n        uVar15 = *(undefined4 *)(puVar30 + -0x2c);\n        if (iVar11 == 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }\n        else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);\n        *(undefined4 *)(puVar30 + -0x38) = uVar15;\n        *(undefined4 *)(puVar30 + -0x3c) = uVar17;\n        *puVar26 = uVar5;\n        iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        if (iVar28 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }\n        else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }\n        iVar28 = *(int *)(puVar30 + -0x40);\n        uVar13 = *puVar26;\n        puVar7 = puVar24;\n        if (iVar28 == 0) {\n          *puVar24 = uVar13;\n        }\n        else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }\n      }" { (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88)" identifier = (pointer_expression "*(code **)(puVar27 + 0x21e88)" * (cast_expression "(code **)(puVar27 + 0x21e88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + 0x21e88)" ( (binary_expression "puVar27 + 0x21e88" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x2c) = puVar14;" (assignment_expression "*(undefined4 **)(puVar30 + -0x2c) = puVar14" (pointer_expression "*(undefined4 **)(puVar30 + -0x2c)" * (cast_expression "(undefined4 **)(puVar30 + -0x2c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x2c)" ( (binary_expression "puVar30 + -0x2c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar30 + -0x30) = puVar16;" (assignment_expression "*(undefined1 **)(puVar30 + -0x30) = puVar16" (pointer_expression "*(undefined1 **)(puVar30 + -0x30)" * (cast_expression "(undefined1 **)(puVar30 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x30)" ( (binary_expression "puVar30 + -0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;" (assignment_expression "*(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19" (pointer_expression "*(undefined4 **)(puVar30 + -0x34)" * (cast_expression "(undefined4 **)(puVar30 + -0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x34)" ( (binary_expression "puVar30 + -0x34" identifier + number_literal) )))) = (binary_expression "puVar12 + iVar19" identifier + identifier)) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x38) = puVar7;" (assignment_expression "*(undefined4 **)(puVar30 + -0x38) = puVar7" (pointer_expression "*(undefined4 **)(puVar30 + -0x38)" * (cast_expression "(undefined4 **)(puVar30 + -0x38)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x38)" ( (binary_expression "puVar30 + -0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;" (assignment_expression "*(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1" (pointer_expression "*(undefined4 **)(puVar30 + -0x3c)" * (cast_expression "(undefined4 **)(puVar30 + -0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x3c)" ( (binary_expression "puVar30 + -0x3c" identifier + number_literal) )))) = (binary_expression "puVar12 + iVar19 + 1" (binary_expression "puVar12 + iVar19" identifier + identifier) + number_literal)) ;) (expression_statement "uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);" (assignment_expression "uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(puVar12,0,iVar31)" ( identifier , number_literal , identifier )))) ;) (expression_statement "uVar5 = *puVar24;" (assignment_expression "uVar5 = *puVar24" identifier = (pointer_expression "*puVar24" * identifier)) ;) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4)" identifier = (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4)" * (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7ac4)" ( (binary_expression "*(int *)(puVar30 + -0x68) + -0x7ac4" (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(int *)(puVar30 + -0x40) = iVar19 + -1;" (assignment_expression "*(int *)(puVar30 + -0x40) = iVar19 + -1" (pointer_expression "*(int *)(puVar30 + -0x40)" * (cast_expression "(int *)(puVar30 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x40)" ( (binary_expression "puVar30 + -0x40" identifier + number_literal) )))) = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);" (assignment_expression "*(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c)" (pointer_expression "*(undefined4 *)(puVar30 + -0x70)" * (cast_expression "(undefined4 *)(puVar30 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar30 + -0x3c)" * (cast_expression "(undefined4 *)(puVar30 + -0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x3c)" ( (binary_expression "puVar30 + -0x3c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x3c) = uVar13;" (assignment_expression "*(undefined4 *)(puVar30 + -0x3c) = uVar13" (pointer_expression "*(undefined4 *)(puVar30 + -0x3c)" * (cast_expression "(undefined4 *)(puVar30 + -0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x3c)" ( (binary_expression "puVar30 + -0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "**(undefined4 **)(puVar30 + -0x34) = uVar5;" (assignment_expression "**(undefined4 **)(puVar30 + -0x34) = uVar5" (pointer_expression "**(undefined4 **)(puVar30 + -0x34)" * (pointer_expression "*(undefined4 **)(puVar30 + -0x34)" * (cast_expression "(undefined4 **)(puVar30 + -0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x34)" ( (binary_expression "puVar30 + -0x34" identifier + number_literal) ))))) = identifier) ;) (expression_statement "(*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);" (call_expression "(*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(uVar13,iVar19 + 1,piVar23,iVar19)" ( identifier , (binary_expression "iVar19 + 1" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "iVar11 = iVar19 + -1;" (assignment_expression "iVar11 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "puVar7 = *(undefined4 **)(puVar30 + -0x3c);" (assignment_expression "puVar7 = *(undefined4 **)(puVar30 + -0x3c)" identifier = (pointer_expression "*(undefined4 **)(puVar30 + -0x3c)" * (cast_expression "(undefined4 **)(puVar30 + -0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x3c)" ( (binary_expression "puVar30 + -0x3c" identifier + number_literal) ))))) ;) (expression_statement "iVar28 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar28 = *(int *)(puVar30 + -0x68)" identifier = (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = *(undefined4 *)(puVar30 + -0x38);" (assignment_expression "uVar13 = *(undefined4 *)(puVar30 + -0x38)" identifier = (pointer_expression "*(undefined4 *)(puVar30 + -0x38)" * (cast_expression "(undefined4 *)(puVar30 + -0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x38)" ( (binary_expression "puVar30 + -0x38" identifier + number_literal) ))))) ;) (expression_statement "uVar17 = *(undefined4 *)(puVar30 + -0x30);" (assignment_expression "uVar17 = *(undefined4 *)(puVar30 + -0x30)" identifier = (pointer_expression "*(undefined4 *)(puVar30 + -0x30)" * (cast_expression "(undefined4 *)(puVar30 + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x30)" ( (binary_expression "puVar30 + -0x30" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = *puVar7;" (assignment_expression "uVar5 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "uVar15 = *(undefined4 *)(puVar30 + -0x2c);" (assignment_expression "uVar15 = *(undefined4 *)(puVar30 + -0x2c)" identifier = (pointer_expression "*(undefined4 *)(puVar30 + -0x2c)" * (cast_expression "(undefined4 *)(puVar30 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x2c)" ( (binary_expression "puVar30 + -0x2c" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 == 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }\n        else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }" { (expression_statement "puVar26 = *(undefined4 **)(puVar30 + -0x54);" (assignment_expression "puVar26 = *(undefined4 **)(puVar30 + -0x54)" identifier = (pointer_expression "*(undefined4 **)(puVar30 + -0x54)" * (cast_expression "(undefined4 **)(puVar30 + -0x54)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }" else (compound_statement "{\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }" { (do_statement "do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);" do (compound_statement "{\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          }" { (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) (expression_statement "*puVar26 = uVar5;" (assignment_expression "*puVar26 = uVar5" (pointer_expression "*puVar26" * identifier) = identifier) ;) (expression_statement "iVar11 = iVar11 + -1;" (assignment_expression "iVar11 = iVar11 + -1" identifier = (binary_expression "iVar11 + -1" identifier + number_literal)) ;) (expression_statement "uVar5 = *puVar7;" (assignment_expression "uVar5 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "puVar26 = puVar26 + 1;" (assignment_expression "puVar26 = puVar26 + 1" identifier = (binary_expression "puVar26 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) ;) (expression_statement "puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);" (assignment_expression "puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4)" identifier = (cast_expression "(undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar30 + -0x54) + iVar31 + -4)" ( (binary_expression "*(int *)(puVar30 + -0x54) + iVar31 + -4" (binary_expression "*(int *)(puVar30 + -0x54) + iVar31" (pointer_expression "*(int *)(puVar30 + -0x54)" * (cast_expression "(int *)(puVar30 + -0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) )))) + identifier) + number_literal) )))) ;) }))) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58)" identifier = (pointer_expression "*(code **)(iVar28 + -0x7d58)" * (cast_expression "(code **)(iVar28 + -0x7d58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7d58)" ( (binary_expression "iVar28 + -0x7d58" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x38) = uVar15;" (assignment_expression "*(undefined4 *)(puVar30 + -0x38) = uVar15" (pointer_expression "*(undefined4 *)(puVar30 + -0x38)" * (cast_expression "(undefined4 *)(puVar30 + -0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x38)" ( (binary_expression "puVar30 + -0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x3c) = uVar17;" (assignment_expression "*(undefined4 *)(puVar30 + -0x3c) = uVar17" (pointer_expression "*(undefined4 *)(puVar30 + -0x3c)" * (cast_expression "(undefined4 *)(puVar30 + -0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x3c)" ( (binary_expression "puVar30 + -0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*puVar26 = uVar5;" (assignment_expression "*puVar26 = uVar5" (pointer_expression "*puVar26" * identifier) = identifier) ;) (expression_statement "iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);" (assignment_expression "iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(uVar13,0,iVar31)" ( identifier , number_literal , identifier )))) ;) (expression_statement "iVar28 = *(int *)(puVar30 + -0x38);" (assignment_expression "iVar28 = *(int *)(puVar30 + -0x38)" identifier = (pointer_expression "*(int *)(puVar30 + -0x38)" * (cast_expression "(int *)(puVar30 + -0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x38)" ( (binary_expression "puVar30 + -0x38" identifier + number_literal) ))))) ;) (expression_statement "iVar29 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar29 = *(int *)(puVar30 + -0x68)" identifier = (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = *(int *)(puVar30 + -0x3c);" (assignment_expression "iVar18 = *(int *)(puVar30 + -0x3c)" identifier = (pointer_expression "*(int *)(puVar30 + -0x3c)" * (cast_expression "(int *)(puVar30 + -0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x3c)" ( (binary_expression "puVar30 + -0x3c" identifier + number_literal) ))))) ;) (if_statement "if (iVar28 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }\n        else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (compound_statement "{\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }" { (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4)" identifier = (pointer_expression "*(code **)(iVar29 + -0x7ac4)" * (cast_expression "(code **)(iVar29 + -0x7ac4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar29 + -0x7ac4)" ( (binary_expression "iVar29 + -0x7ac4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);" (assignment_expression "*(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48)" (pointer_expression "*(undefined4 *)(puVar30 + -0x70)" * (cast_expression "(undefined4 *)(puVar30 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar30 + -0x48)" * (cast_expression "(undefined4 *)(puVar30 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x48)" ( (binary_expression "puVar30 + -0x48" identifier + number_literal) ))))) ;) (expression_statement "iVar28 = iVar18;" (assignment_expression "iVar28 = iVar18" identifier = identifier) ;) (labeled_statement "LAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;" statement_identifier : (expression_statement "*(int *)(puVar30 + -0x48) = iVar11;" (assignment_expression "*(int *)(puVar30 + -0x48) = iVar11" (pointer_expression "*(int *)(puVar30 + -0x48)" * (cast_expression "(int *)(puVar30 + -0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x48)" ( (binary_expression "puVar30 + -0x48" identifier + number_literal) )))) = identifier) ;)) (expression_statement "(*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);" (call_expression "(*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(iVar11,iVar18,piVar23,iVar28)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar11 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar11 = *(int *)(puVar30 + -0x68)" identifier = (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) ))))) ;) (expression_statement "puVar26 = *(undefined4 **)(puVar30 + -0x48);" (assignment_expression "puVar26 = *(undefined4 **)(puVar30 + -0x48)" identifier = (pointer_expression "*(undefined4 **)(puVar30 + -0x48)" * (cast_expression "(undefined4 **)(puVar30 + -0x48)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x48)" ( (binary_expression "puVar30 + -0x48" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }" else (compound_statement "{\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }" { (expression_statement "puVar26 = *(undefined4 **)(puVar30 + -0x44);" (assignment_expression "puVar26 = *(undefined4 **)(puVar30 + -0x44)" identifier = (pointer_expression "*(undefined4 **)(puVar30 + -0x44)" * (cast_expression "(undefined4 **)(puVar30 + -0x44)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x44)" ( (binary_expression "puVar30 + -0x44" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = iVar28 + -1;" (assignment_expression "iVar6 = iVar28 + -1" identifier = (binary_expression "iVar28 + -1" identifier + number_literal)) ;) (expression_statement "puVar7 = (undefined4 *)(iVar11 + iVar31);" (assignment_expression "puVar7 = (undefined4 *)(iVar11 + iVar31)" identifier = (cast_expression "(undefined4 *)(iVar11 + iVar31)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + iVar31)" ( (binary_expression "iVar11 + iVar31" identifier + identifier) )))) ;) (expression_statement "uVar13 = *puVar26;" (assignment_expression "uVar13 = *puVar26" identifier = (pointer_expression "*puVar26" * identifier)) ;) (expression_statement "puVar12 = puVar7;" (assignment_expression "puVar12 = puVar7" identifier = identifier) ;) (if_statement "if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }" { (expression_statement "uVar5 = *(undefined4 *)(puVar30 + -0x48);" (assignment_expression "uVar5 = *(undefined4 *)(puVar30 + -0x48)" identifier = (pointer_expression "*(undefined4 *)(puVar30 + -0x48)" * (cast_expression "(undefined4 *)(puVar30 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x48)" ( (binary_expression "puVar30 + -0x48" identifier + number_literal) ))))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4)" identifier = (pointer_expression "*(code **)(iVar29 + -0x7ac4)" * (cast_expression "(code **)(iVar29 + -0x7ac4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar29 + -0x7ac4)" ( (binary_expression "iVar29 + -0x7ac4" identifier + number_literal) ))))) ;) (expression_statement "*puVar7 = uVar13;" (assignment_expression "*puVar7 = uVar13" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x70) = uVar5;" (assignment_expression "*(undefined4 *)(puVar30 + -0x70) = uVar5" (pointer_expression "*(undefined4 *)(puVar30 + -0x70)" * (cast_expression "(undefined4 *)(puVar30 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar28 = iVar19;" (assignment_expression "iVar28 = iVar19" identifier = identifier) ;) (goto_statement "goto LAB_0007bb8c;" goto statement_identifier ;) })) (labeled_statement "LAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);" statement_identifier : (do_statement "do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);" do (compound_statement "{\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          }" { (expression_statement "puVar26 = puVar26 + 1;" (assignment_expression "puVar26 = puVar26 + 1" identifier = (binary_expression "puVar26 + 1" identifier + number_literal)) ;) (expression_statement "*puVar7 = uVar13;" (assignment_expression "*puVar7 = uVar13" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "uVar13 = *puVar26;" (assignment_expression "uVar13 = *puVar26" identifier = (pointer_expression "*puVar26" * identifier)) ;) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) ;)) (expression_statement "uVar5 = *(undefined4 *)(puVar30 + -0x48);" (assignment_expression "uVar5 = *(undefined4 *)(puVar30 + -0x48)" identifier = (pointer_expression "*(undefined4 *)(puVar30 + -0x48)" * (cast_expression "(undefined4 *)(puVar30 + -0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x48)" ( (binary_expression "puVar30 + -0x48" identifier + number_literal) ))))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4)" identifier = (pointer_expression "*(code **)(iVar29 + -0x7ac4)" * (cast_expression "(code **)(iVar29 + -0x7ac4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar29 + -0x7ac4)" ( (binary_expression "iVar29 + -0x7ac4" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar30 + -0x48) = iVar11;" (assignment_expression "*(int *)(puVar30 + -0x48) = iVar11" (pointer_expression "*(int *)(puVar30 + -0x48)" * (cast_expression "(int *)(puVar30 + -0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x48)" ( (binary_expression "puVar30 + -0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x70) = uVar5;" (assignment_expression "*(undefined4 *)(puVar30 + -0x70) = uVar5" (pointer_expression "*(undefined4 *)(puVar30 + -0x70)" * (cast_expression "(undefined4 *)(puVar30 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar12[iVar28 + -1] = uVar13;" (assignment_expression "puVar12[iVar28 + -1] = uVar13" (subscript_expression "puVar12[iVar28 + -1]" identifier [ (binary_expression "iVar28 + -1" identifier + number_literal) ]) = identifier) ;) (expression_statement "(*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);" (call_expression "(*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(iVar11,iVar18,piVar23,iVar19)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar11 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar11 = *(int *)(puVar30 + -0x68)" identifier = (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) ))))) ;) (if_statement "if (iVar19 == 0) goto joined_r0x0007b75c;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (goto_statement "goto joined_r0x0007b75c;" goto statement_identifier ;)) (expression_statement "puVar26 = *(undefined4 **)(puVar30 + -0x48);" (assignment_expression "puVar26 = *(undefined4 **)(puVar30 + -0x48)" identifier = (pointer_expression "*(undefined4 **)(puVar30 + -0x48)" * (cast_expression "(undefined4 **)(puVar30 + -0x48)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x48)" ( (binary_expression "puVar30 + -0x48" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar30 + -0x40) = iVar19 + -1;" (assignment_expression "*(int *)(puVar30 + -0x40) = iVar19 + -1" (pointer_expression "*(int *)(puVar30 + -0x40)" * (cast_expression "(int *)(puVar30 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x40)" ( (binary_expression "puVar30 + -0x40" identifier + number_literal) )))) = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) }))) (expression_statement "iVar28 = *(int *)(puVar30 + -0x40);" (assignment_expression "iVar28 = *(int *)(puVar30 + -0x40)" identifier = (pointer_expression "*(int *)(puVar30 + -0x40)" * (cast_expression "(int *)(puVar30 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x40)" ( (binary_expression "puVar30 + -0x40" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = *puVar26;" (assignment_expression "uVar13 = *puVar26" identifier = (pointer_expression "*puVar26" * identifier)) ;) (expression_statement "puVar7 = puVar24;" (assignment_expression "puVar7 = puVar24" identifier = identifier) ;) (if_statement "if (iVar28 == 0) {\n          *puVar24 = uVar13;\n        }\n        else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (compound_statement "{\n          *puVar24 = uVar13;\n        }" { (expression_statement "*puVar24 = uVar13;" (assignment_expression "*puVar24 = uVar13" (pointer_expression "*puVar24" * identifier) = identifier) ;) }) (else_clause "else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }" else (compound_statement "{\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }" { (do_statement "do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);" do (compound_statement "{\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          }" { (expression_statement "puVar26 = puVar26 + 1;" (assignment_expression "puVar26 = puVar26 + 1" identifier = (binary_expression "puVar26 + 1" identifier + number_literal)) ;) (expression_statement "*puVar7 = uVar13;" (assignment_expression "*puVar7 = uVar13" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "iVar28 = iVar28 + -1;" (assignment_expression "iVar28 = iVar28 + -1" identifier = (binary_expression "iVar28 + -1" identifier + number_literal)) ;) (expression_statement "uVar13 = *puVar26;" (assignment_expression "uVar13 = *puVar26" identifier = (pointer_expression "*puVar26" * identifier)) ;) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar28 != 0)" ( (binary_expression "iVar28 != 0" identifier != number_literal) )) ;) (expression_statement "puVar24[*(int *)(puVar30 + -0x40)] = uVar13;" (assignment_expression "puVar24[*(int *)(puVar30 + -0x40)] = uVar13" (subscript_expression "puVar24[*(int *)(puVar30 + -0x40)]" identifier [ (pointer_expression "*(int *)(puVar30 + -0x40)" * (cast_expression "(int *)(puVar30 + -0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x40)" ( (binary_expression "puVar30 + -0x40" identifier + number_literal) )))) ]) = identifier) ;) }))) }))) (labeled_statement "joined_r0x0007b75c:\n      for (; iVar25 != 0; iVar25 = iVar25 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);\n        puVar20 = puVar20 + iVar19;\n        *(int *)(puVar30 + -0x70) = iVar4;\n        uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }" statement_identifier : (for_statement "for (; iVar25 != 0; iVar25 = iVar25 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);\n        puVar20 = puVar20 + iVar19;\n        *(int *)(puVar30 + -0x70) = iVar4;\n        uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }" for ( ; (binary_expression "iVar25 != 0" identifier != number_literal) ; (assignment_expression "iVar25 = iVar25 + -1" identifier = (binary_expression "iVar25 + -1" identifier + number_literal)) ) (compound_statement "{\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);\n        puVar20 = puVar20 + iVar19;\n        *(int *)(puVar30 + -0x70) = iVar4;\n        uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }" { (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0)" identifier = (pointer_expression "*(code **)(iVar11 + -0x7bd0)" * (cast_expression "(code **)(iVar11 + -0x7bd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7bd0)" ( (binary_expression "iVar11 + -0x7bd0" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar30 + -0x70) = iVar19;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar19" (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);" (call_expression "(*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(puVar21,puVar20,iVar19,puVar24)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar20 = puVar20 + iVar19;" (assignment_expression "puVar20 = puVar20 + iVar19" identifier = (binary_expression "puVar20 + iVar19" identifier + identifier)) ;) (expression_statement "*(int *)(puVar30 + -0x70) = iVar4;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar4" (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);" (assignment_expression "uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19)" identifier = (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))" ( (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" * (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" * (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7eb0)" ( (binary_expression "*(int *)(puVar30 + -0x68) + -0x7eb0" (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar20,puVar21,piVar23,iVar19)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "*(int *)(puVar30 + -0x70) = iVar19;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar19" (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);" (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))" ( (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" * (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" * (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7a70)" ( (binary_expression "*(int *)(puVar30 + -0x68) + -0x7a70" (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar13,puVar20,puVar20,piVar23)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar11 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar11 = *(int *)(puVar30 + -0x68)" identifier = (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) ))))) ;) }))) (expression_statement "uVar2 = *(uint *)(puVar30 + -0x5c);" (assignment_expression "uVar2 = *(uint *)(puVar30 + -0x5c)" identifier = (pointer_expression "*(uint *)(puVar30 + -0x5c)" * (cast_expression "(uint *)(puVar30 + -0x5c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x5c)" ( (binary_expression "puVar30 + -0x5c" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(puVar30 + -0x60) < uVar2) {\n        (**(code **)(iVar11 + -0x7c20))\n                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438);\n        uVar2 = extraout_v1;\n      }" if (parenthesized_expression "(*(uint *)(puVar30 + -0x60) < uVar2)" ( (binary_expression "*(uint *)(puVar30 + -0x60) < uVar2" (pointer_expression "*(uint *)(puVar30 + -0x60)" * (cast_expression "(uint *)(puVar30 + -0x60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x60)" ( (binary_expression "puVar30 + -0x60" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n        (**(code **)(iVar11 + -0x7c20))\n                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438);\n        uVar2 = extraout_v1;\n      }" { (expression_statement "(**(code **)(iVar11 + -0x7c20))\n                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438);" (call_expression "(**(code **)(iVar11 + -0x7c20))\n                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438)" (parenthesized_expression "(**(code **)(iVar11 + -0x7c20))" ( (pointer_expression "**(code **)(iVar11 + -0x7c20)" * (pointer_expression "*(code **)(iVar11 + -0x7c20)" * (cast_expression "(code **)(iVar11 + -0x7c20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7c20)" ( (binary_expression "iVar11 + -0x7c20" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438)" ( (binary_expression "*(int *)(iVar11 + -0x7fd4) + 0x544c" (pointer_expression "*(int *)(iVar11 + -0x7fd4)" * (cast_expression "(int *)(iVar11 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -0x7fd4)" ( (binary_expression "iVar11 + -0x7fd4" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(iVar11 + -0x7fd4) + 0x5438" (pointer_expression "*(int *)(iVar11 + -0x7fd4)" * (cast_expression "(int *)(iVar11 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -0x7fd4)" ( (binary_expression "iVar11 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "uVar2 = extraout_v1;" (assignment_expression "uVar2 = extraout_v1" identifier = identifier) ;) })) (expression_statement "uVar2 = *(int *)(puVar30 + -0x60) - uVar2;" (assignment_expression "uVar2 = *(int *)(puVar30 + -0x60) - uVar2" identifier = (binary_expression "*(int *)(puVar30 + -0x60) - uVar2" (pointer_expression "*(int *)(puVar30 + -0x60)" * (cast_expression "(int *)(puVar30 + -0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x60)" ( (binary_expression "puVar30 + -0x60" identifier + number_literal) )))) - identifier)) ;) (expression_statement "uVar9 = 0x20 - (uVar2 & 0x1f);" (assignment_expression "uVar9 = 0x20 - (uVar2 & 0x1f)" identifier = (binary_expression "0x20 - (uVar2 & 0x1f)" number_literal - (parenthesized_expression "(uVar2 & 0x1f)" ( (binary_expression "uVar2 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4);" (assignment_expression "puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4)" identifier = (cast_expression "(uint *)(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4)" ( (binary_expression "*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4" (pointer_expression "*(int *)(puVar30 + -0x4c)" * (cast_expression "(int *)(puVar30 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x4c)" ( (binary_expression "puVar30 + -0x4c" identifier + number_literal) )))) + (binary_expression "(uVar2 >> 5) * 4" (parenthesized_expression "(uVar2 >> 5)" ( (binary_expression "uVar2 >> 5" identifier >> number_literal) )) * number_literal)) )))) ;) (expression_statement "uVar3 = *puVar8 >> (uVar2 & 0x1f);" (assignment_expression "uVar3 = *puVar8 >> (uVar2 & 0x1f)" identifier = (binary_expression "*puVar8 >> (uVar2 & 0x1f)" (pointer_expression "*puVar8" * identifier) >> (parenthesized_expression "(uVar2 & 0x1f)" ( (binary_expression "uVar2 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if ((int)uVar9 < *(int *)(puVar30 + -0x58)) {\n        uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f));\n      }" if (parenthesized_expression "((int)uVar9 < *(int *)(puVar30 + -0x58))" ( (binary_expression "(int)uVar9 < *(int *)(puVar30 + -0x58)" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(puVar30 + -0x58)" * (cast_expression "(int *)(puVar30 + -0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x58)" ( (binary_expression "puVar30 + -0x58" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f));\n      }" { (expression_statement "uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f));" (assignment_expression "uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f))" identifier = (binary_expression "uVar3 + (puVar8[1] << (uVar9 & 0x1f))" identifier + (parenthesized_expression "(puVar8[1] << (uVar9 & 0x1f))" ( (binary_expression "puVar8[1] << (uVar9 & 0x1f)" (subscript_expression "puVar8[1]" identifier [ number_literal ]) << (parenthesized_expression "(uVar9 & 0x1f)" ( (binary_expression "uVar9 & 0x1f" identifier & number_literal) ))) )))) ;) })) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bac);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bac)" identifier = (pointer_expression "*(code **)(iVar11 + -0x7bac)" * (cast_expression "(code **)(iVar11 + -0x7bac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7bac)" ( (binary_expression "iVar11 + -0x7bac" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar30 + -0x44) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f));" (assignment_expression "*(int *)(puVar30 + -0x44) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f))" (pointer_expression "*(int *)(puVar30 + -0x44)" * (cast_expression "(int *)(puVar30 + -0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x44)" ( (binary_expression "puVar30 + -0x44" identifier + number_literal) )))) = (unary_expression "~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f))" ~ (parenthesized_expression "(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f))" ( (binary_expression "-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)" number_literal << (parenthesized_expression "(*(uint *)(puVar30 + -0x58) & 0x1f)" ( (binary_expression "*(uint *)(puVar30 + -0x58) & 0x1f" (pointer_expression "*(uint *)(puVar30 + -0x58)" * (cast_expression "(uint *)(puVar30 + -0x58)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x58)" ( (binary_expression "puVar30 + -0x58" identifier + number_literal) )))) & number_literal) ))) )))) ;) (expression_statement "*(uint *)(puVar30 + -0x70) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)) & uVar3;" (assignment_expression "*(uint *)(puVar30 + -0x70) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)) & uVar3" (pointer_expression "*(uint *)(puVar30 + -0x70)" * (cast_expression "(uint *)(puVar30 + -0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = (binary_expression "~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)) & uVar3" (unary_expression "~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f))" ~ (parenthesized_expression "(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f))" ( (binary_expression "-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)" number_literal << (parenthesized_expression "(*(uint *)(puVar30 + -0x58) & 0x1f)" ( (binary_expression "*(uint *)(puVar30 + -0x58) & 0x1f" (pointer_expression "*(uint *)(puVar30 + -0x58)" * (cast_expression "(uint *)(puVar30 + -0x58)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x58)" ( (binary_expression "puVar30 + -0x58" identifier + number_literal) )))) & number_literal) ))) ))) & identifier)) ;) (expression_statement "(*UNRECOVERED_JUMPTABLE)\n                (puVar22,*(undefined4 *)(puVar30 + -0x54),iVar19,*(undefined4 *)(puVar30 + -0x50));" (call_expression "(*UNRECOVERED_JUMPTABLE)\n                (puVar22,*(undefined4 *)(puVar30 + -0x54),iVar19,*(undefined4 *)(puVar30 + -0x50))" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(puVar22,*(undefined4 *)(puVar30 + -0x54),iVar19,*(undefined4 *)(puVar30 + -0x50))" ( identifier , (pointer_expression "*(undefined4 *)(puVar30 + -0x54)" * (cast_expression "(undefined4 *)(puVar30 + -0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) )))) , identifier , (pointer_expression "*(undefined4 *)(puVar30 + -0x50)" * (cast_expression "(undefined4 *)(puVar30 + -0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) )))) ))) ;) (expression_statement "iVar25 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar25 = *(int *)(puVar30 + -0x68)" identifier = (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) ))))) ;) (if_statement "if (uVar2 != 0) {\n        *(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39);\n        do {\n          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n          if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);\n          *(undefined4 *)(puVar30 + -0x70) = uVar13;\n          (*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);\n          *(int *)(puVar30 + -0x70) = iVar4;\n          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n          iVar25 = *(int *)(puVar30 + -0x68);\n          uVar2 = uVar9;\n        } while (uVar9 != 0);\n      }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        *(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39);\n        do {\n          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n          if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);\n          *(undefined4 *)(puVar30 + -0x70) = uVar13;\n          (*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);\n          *(int *)(puVar30 + -0x70) = iVar4;\n          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n          iVar25 = *(int *)(puVar30 + -0x68);\n          uVar2 = uVar9;\n        } while (uVar9 != 0);\n      }" { (expression_statement "*(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39);" (assignment_expression "*(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39)" (pointer_expression "*(uint *)(puVar30 + -0x48)" * (cast_expression "(uint *)(puVar30 + -0x48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x48)" ( (binary_expression "puVar30 + -0x48" identifier + number_literal) )))) = (call_expression "(uint)(iVar19 < 0x39)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar19 < 0x39)" ( (binary_expression "iVar19 < 0x39" identifier < number_literal) )))) ;) (do_statement "do {\n          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n          if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);\n          *(undefined4 *)(puVar30 + -0x70) = uVar13;\n          (*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);\n          *(int *)(puVar30 + -0x70) = iVar4;\n          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n          iVar25 = *(int *)(puVar30 + -0x68);\n          uVar2 = uVar9;\n        } while (uVar9 != 0);" do (compound_statement "{\n          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n          if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);\n          *(undefined4 *)(puVar30 + -0x70) = uVar13;\n          (*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);\n          *(int *)(puVar30 + -0x70) = iVar4;\n          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n          iVar25 = *(int *)(puVar30 + -0x68);\n          uVar2 = uVar9;\n        }" { (if_statement "if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }" if (parenthesized_expression "(uVar2 < *(uint *)(puVar30 + -0x5c))" ( (binary_expression "uVar2 < *(uint *)(puVar30 + -0x5c)" identifier < (pointer_expression "*(uint *)(puVar30 + -0x5c)" * (cast_expression "(uint *)(puVar30 + -0x5c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x5c)" ( (binary_expression "puVar30 + -0x5c" identifier + number_literal) ))))) )) (compound_statement "{\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "*(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);" (assignment_expression "*(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c)" (pointer_expression "*(uint *)(puVar30 + -0x60)" * (cast_expression "(uint *)(puVar30 + -0x60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x60)" ( (binary_expression "puVar30 + -0x60" identifier + number_literal) )))) = (binary_expression "~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c)" (unary_expression "~(-1 << (uVar2 & 0x1f))" ~ (parenthesized_expression "(-1 << (uVar2 & 0x1f))" ( (binary_expression "-1 << (uVar2 & 0x1f)" number_literal << (parenthesized_expression "(uVar2 & 0x1f)" ( (binary_expression "uVar2 & 0x1f" identifier & number_literal) ))) ))) & (pointer_expression "**(uint **)(puVar30 + -0x4c)" * (pointer_expression "*(uint **)(puVar30 + -0x4c)" * (cast_expression "(uint **)(puVar30 + -0x4c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x4c)" ( (binary_expression "puVar30 + -0x4c" identifier + number_literal) ))))))) ;) }) (else_clause "else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }" else (compound_statement "{\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }" { (expression_statement "uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);" (assignment_expression "uVar9 = uVar2 - *(int *)(puVar30 + -0x5c)" identifier = (binary_expression "uVar2 - *(int *)(puVar30 + -0x5c)" identifier - (pointer_expression "*(int *)(puVar30 + -0x5c)" * (cast_expression "(int *)(puVar30 + -0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x5c)" ( (binary_expression "puVar30 + -0x5c" identifier + number_literal) )))))) ;) (expression_statement "uVar2 = 0x20 - (uVar9 & 0x1f);" (assignment_expression "uVar2 = 0x20 - (uVar9 & 0x1f)" identifier = (binary_expression "0x20 - (uVar9 & 0x1f)" number_literal - (parenthesized_expression "(uVar9 & 0x1f)" ( (binary_expression "uVar9 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);" (assignment_expression "puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4)" identifier = (cast_expression "(uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4)" ( (binary_expression "*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4" (pointer_expression "*(int *)(puVar30 + -0x4c)" * (cast_expression "(int *)(puVar30 + -0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x4c)" ( (binary_expression "puVar30 + -0x4c" identifier + number_literal) )))) + (binary_expression "(uVar9 >> 5) * 4" (parenthesized_expression "(uVar9 >> 5)" ( (binary_expression "uVar9 >> 5" identifier >> number_literal) )) * number_literal)) )))) ;) (expression_statement "uVar3 = *puVar8 >> (uVar9 & 0x1f);" (assignment_expression "uVar3 = *puVar8 >> (uVar9 & 0x1f)" identifier = (binary_expression "*puVar8 >> (uVar9 & 0x1f)" (pointer_expression "*puVar8" * identifier) >> (parenthesized_expression "(uVar9 & 0x1f)" ( (binary_expression "uVar9 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }" if (parenthesized_expression "((int)uVar2 < *(int *)(puVar30 + -0x58))" ( (binary_expression "(int)uVar2 < *(int *)(puVar30 + -0x58)" (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(puVar30 + -0x58)" * (cast_expression "(int *)(puVar30 + -0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x58)" ( (binary_expression "puVar30 + -0x58" identifier + number_literal) ))))) )) (compound_statement "{\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }" { (expression_statement "uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));" (assignment_expression "uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f))" identifier = (binary_expression "uVar3 + (puVar8[1] << (uVar2 & 0x1f))" identifier + (parenthesized_expression "(puVar8[1] << (uVar2 & 0x1f))" ( (binary_expression "puVar8[1] << (uVar2 & 0x1f)" (subscript_expression "puVar8[1]" identifier [ number_literal ]) << (parenthesized_expression "(uVar2 & 0x1f)" ( (binary_expression "uVar2 & 0x1f" identifier & number_literal) ))) )))) ;) })) (expression_statement "uVar2 = *(uint *)(puVar30 + -0x58);" (assignment_expression "uVar2 = *(uint *)(puVar30 + -0x58)" identifier = (pointer_expression "*(uint *)(puVar30 + -0x58)" * (cast_expression "(uint *)(puVar30 + -0x58)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x58)" ( (binary_expression "puVar30 + -0x58" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;" (assignment_expression "*(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3" (pointer_expression "*(uint *)(puVar30 + -0x60)" * (cast_expression "(uint *)(puVar30 + -0x60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x60)" ( (binary_expression "puVar30 + -0x60" identifier + number_literal) )))) = (binary_expression "*(uint *)(puVar30 + -0x44) & uVar3" (pointer_expression "*(uint *)(puVar30 + -0x44)" * (cast_expression "(uint *)(puVar30 + -0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x44)" ( (binary_expression "puVar30 + -0x44" identifier + number_literal) )))) & identifier)) ;) }))) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc)" identifier = (pointer_expression "*(code **)(iVar25 + -0x7adc)" * (cast_expression "(code **)(iVar25 + -0x7adc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7adc)" ( (binary_expression "iVar25 + -0x7adc" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }" if (parenthesized_expression "(*(int *)(puVar30 + -0x48) == 0)" ( (binary_expression "*(int *)(puVar30 + -0x48) == 0" (pointer_expression "*(int *)(puVar30 + -0x48)" * (cast_expression "(int *)(puVar30 + -0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x48)" ( (binary_expression "puVar30 + -0x48" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }" { (do_statement "do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);" do (compound_statement "{\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            }" { (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0)" identifier = (pointer_expression "*(code **)(iVar25 + -0x7bd0)" * (cast_expression "(code **)(iVar25 + -0x7bd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7bd0)" ( (binary_expression "iVar25 + -0x7bd0" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar30 + -0x70) = iVar19;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar19" (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);" (call_expression "(*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(puVar21,puVar22,iVar19,puVar22)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(int *)(puVar30 + -0x70) = iVar4;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar4" (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = uVar2 - 1;" (assignment_expression "uVar2 = uVar2 - 1" identifier = (binary_expression "uVar2 - 1" identifier - number_literal)) ;) (expression_statement "uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);" (assignment_expression "uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19)" identifier = (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))" ( (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" * (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" * (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7eb0)" ( (binary_expression "*(int *)(puVar30 + -0x68) + -0x7eb0" (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar22,puVar21,piVar23,iVar19)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "*(int *)(puVar30 + -0x70) = iVar19;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar19" (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);" (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))" ( (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" * (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" * (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7a70)" ( (binary_expression "*(int *)(puVar30 + -0x68) + -0x7a70" (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar13,puVar22,puVar22,piVar23)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar25 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar25 = *(int *)(puVar30 + -0x68)" identifier = (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) ;) (expression_statement "uVar13 = *(undefined4 *)(puVar30 + -0x60);" (assignment_expression "uVar13 = *(undefined4 *)(puVar30 + -0x60)" identifier = (pointer_expression "*(undefined4 *)(puVar30 + -0x60)" * (cast_expression "(undefined4 *)(puVar30 + -0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x60)" ( (binary_expression "puVar30 + -0x60" identifier + number_literal) ))))) ;) }) (else_clause "else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }" else (compound_statement "{\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }" { (while_statement "while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }" { (expression_statement "(*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);" (call_expression "(*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(puVar21,puVar22,iVar19)" ( identifier , identifier , identifier ))) ;) (expression_statement "*(int *)(puVar30 + -0x70) = iVar4;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar4" (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = uVar2 - 1;" (assignment_expression "uVar2 = uVar2 - 1" identifier = (binary_expression "uVar2 - 1" identifier - number_literal)) ;) (expression_statement "uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);" (assignment_expression "uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19)" identifier = (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))" ( (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" * (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" * (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7eb0)" ( (binary_expression "*(int *)(puVar30 + -0x68) + -0x7eb0" (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar22,puVar21,piVar23,iVar19)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "*(int *)(puVar30 + -0x70) = iVar19;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar19" (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);" (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))" ( (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" * (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" * (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7a70)" ( (binary_expression "*(int *)(puVar30 + -0x68) + -0x7a70" (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar13,puVar22,puVar22,piVar23)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar25 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar25 = *(int *)(puVar30 + -0x68)" identifier = (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) ))))) ;) (if_statement "if (uVar2 == 0) break;" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc)" identifier = (pointer_expression "*(code **)(iVar25 + -0x7adc)" * (cast_expression "(code **)(iVar25 + -0x7adc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7adc)" ( (binary_expression "iVar25 + -0x7adc" identifier + number_literal) ))))) ;) })) (expression_statement "uVar13 = *(undefined4 *)(puVar30 + -0x60);" (assignment_expression "uVar13 = *(undefined4 *)(puVar30 + -0x60)" identifier = (pointer_expression "*(undefined4 *)(puVar30 + -0x60)" * (cast_expression "(undefined4 *)(puVar30 + -0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x60)" ( (binary_expression "puVar30 + -0x60" identifier + number_literal) ))))) ;) }))) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac)" identifier = (pointer_expression "*(code **)(iVar25 + -0x7bac)" * (cast_expression "(code **)(iVar25 + -0x7bac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7bac)" ( (binary_expression "iVar25 + -0x7bac" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar30 + -0x70) = uVar13;" (assignment_expression "*(undefined4 *)(puVar30 + -0x70) = uVar13" (pointer_expression "*(undefined4 *)(puVar30 + -0x70)" * (cast_expression "(undefined4 *)(puVar30 + -0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));" (call_expression "(*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50))" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50))" ( (binary_expression "puVar21 + iVar19 * 2" identifier + (binary_expression "iVar19 * 2" identifier * number_literal)) , (pointer_expression "*(undefined4 *)(puVar30 + -0x54)" * (cast_expression "(undefined4 *)(puVar30 + -0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x54)" ( (binary_expression "puVar30 + -0x54" identifier + number_literal) )))) , identifier , (pointer_expression "*(undefined4 *)(puVar30 + -0x50)" * (cast_expression "(undefined4 *)(puVar30 + -0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x50)" ( (binary_expression "puVar30 + -0x50" identifier + number_literal) )))) ))) ;) (expression_statement "*(int *)(puVar30 + -0x70) = iVar19;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar19" (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);" (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))" ( (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0)" * (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0)" * (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7bd0)" ( (binary_expression "*(int *)(puVar30 + -0x68) + -0x7bd0" (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar21,puVar22,iVar19,puVar21 + iVar19 * 2)" ( identifier , identifier , identifier , (binary_expression "puVar21 + iVar19 * 2" identifier + (binary_expression "iVar19 * 2" identifier * number_literal)) ))) ;) (expression_statement "*(int *)(puVar30 + -0x70) = iVar4;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar4" (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);" (assignment_expression "uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19)" identifier = (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))" ( (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" * (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" * (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7eb0)" ( (binary_expression "*(int *)(puVar30 + -0x68) + -0x7eb0" (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar22,puVar21,piVar23,iVar19)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "*(int *)(puVar30 + -0x70) = iVar19;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar19" (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);" (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))" ( (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" * (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" * (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7a70)" ( (binary_expression "*(int *)(puVar30 + -0x68) + -0x7a70" (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar13,puVar22,puVar22,piVar23)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar25 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar25 = *(int *)(puVar30 + -0x68)" identifier = (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = uVar9;" (assignment_expression "uVar2 = uVar9" identifier = identifier) ;) }) while (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) ;) })) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7eb0);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7eb0)" identifier = (pointer_expression "*(code **)(iVar25 + -0x7eb0)" * (cast_expression "(code **)(iVar25 + -0x7eb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7eb0)" ( (binary_expression "iVar25 + -0x7eb0" identifier + number_literal) ))))) ;) (if_statement "if (iVar19 != 0) {\n        iVar11 = iVar19 + -1;\n        uVar13 = *puVar22;\n        puVar20 = puVar21;\n        puVar26 = puVar22;\n        if (iVar11 != 0) {\n          do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar20 = puVar21 + iVar19 + -1;\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58);\n        *puVar20 = uVar13;\n        (*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0);\n      }" if (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar11 = iVar19 + -1;\n        uVar13 = *puVar22;\n        puVar20 = puVar21;\n        puVar26 = puVar22;\n        if (iVar11 != 0) {\n          do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar20 = puVar21 + iVar19 + -1;\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58);\n        *puVar20 = uVar13;\n        (*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0);\n      }" { (expression_statement "iVar11 = iVar19 + -1;" (assignment_expression "iVar11 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "uVar13 = *puVar22;" (assignment_expression "uVar13 = *puVar22" identifier = (pointer_expression "*puVar22" * identifier)) ;) (expression_statement "puVar20 = puVar21;" (assignment_expression "puVar20 = puVar21" identifier = identifier) ;) (expression_statement "puVar26 = puVar22;" (assignment_expression "puVar26 = puVar22" identifier = identifier) ;) (if_statement "if (iVar11 != 0) {\n          do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar20 = puVar21 + iVar19 + -1;\n        }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n          do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar20 = puVar21 + iVar19 + -1;\n        }" { (do_statement "do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);" do (compound_statement "{\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          }" { (expression_statement "*puVar20 = uVar13;" (assignment_expression "*puVar20 = uVar13" (pointer_expression "*puVar20" * identifier) = identifier) ;) (expression_statement "iVar11 = iVar11 + -1;" (assignment_expression "iVar11 = iVar11 + -1" identifier = (binary_expression "iVar11 + -1" identifier + number_literal)) ;) (expression_statement "uVar13 = puVar26[1];" (assignment_expression "uVar13 = puVar26[1]" identifier = (subscript_expression "puVar26[1]" identifier [ number_literal ])) ;) (expression_statement "puVar20 = puVar20 + 1;" (assignment_expression "puVar20 = puVar20 + 1" identifier = (binary_expression "puVar20 + 1" identifier + number_literal)) ;) (expression_statement "puVar26 = puVar26 + 1;" (assignment_expression "puVar26 = puVar26 + 1" identifier = (binary_expression "puVar26 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) ;) (expression_statement "puVar20 = puVar21 + iVar19 + -1;" (assignment_expression "puVar20 = puVar21 + iVar19 + -1" identifier = (binary_expression "puVar21 + iVar19 + -1" (binary_expression "puVar21 + iVar19" identifier + identifier) + number_literal)) ;) })) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58)" identifier = (pointer_expression "*(code **)(iVar25 + -0x7d58)" * (cast_expression "(code **)(iVar25 + -0x7d58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7d58)" ( (binary_expression "iVar25 + -0x7d58" identifier + number_literal) ))))) ;) (expression_statement "*puVar20 = uVar13;" (assignment_expression "*puVar20 = uVar13" (pointer_expression "*puVar20" * identifier) = identifier) ;) (expression_statement "(*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31);" (call_expression "(*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(puVar21 + iVar19,0,iVar31)" ( (binary_expression "puVar21 + iVar19" identifier + identifier) , number_literal , identifier ))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" identifier = (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" * (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7eb0)" ( (binary_expression "*(int *)(puVar30 + -0x68) + -0x7eb0" (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) + number_literal) ))))) ;) })) (expression_statement "*(int *)(puVar30 + -0x70) = iVar4;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar4" (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar22,puVar21,piVar23,iVar19);" (assignment_expression "uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar22,puVar21,piVar23,iVar19)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE)(puVar22,puVar21,piVar23,iVar19)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(puVar22,puVar21,piVar23,iVar19)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "*(int *)(puVar30 + -0x70) = iVar19;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar19" (pointer_expression "*(int *)(puVar30 + -0x70)" * (cast_expression "(int *)(puVar30 + -0x70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x70)" ( (binary_expression "puVar30 + -0x70" identifier + number_literal) )))) = identifier) ;) (expression_statement "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);" (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))" ( (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" * (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" * (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7a70)" ( (binary_expression "*(int *)(puVar30 + -0x68) + -0x7a70" (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar13,puVar22,puVar22,piVar23)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar25 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))(puVar21,puVar22,piVar23,iVar19);" (assignment_expression "iVar25 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))(puVar21,puVar22,piVar23,iVar19)" identifier = (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))(puVar21,puVar22,piVar23,iVar19)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))" ( (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c)" * (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c)" * (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7b2c)" ( (binary_expression "*(int *)(puVar30 + -0x68) + -0x7b2c" (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar21,puVar22,piVar23,iVar19)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7a70);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" identifier = (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" * (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7a70)" ( (binary_expression "*(int *)(puVar30 + -0x68) + -0x7a70" (pointer_expression "*(int *)(puVar30 + -0x68)" * (cast_expression "(int *)(puVar30 + -0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x68)" ( (binary_expression "puVar30 + -0x68" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(int *)(puVar30 + 0x10) = iVar19;" (assignment_expression "*(int *)(puVar30 + 0x10) = iVar19" (pointer_expression "*(int *)(puVar30 + 0x10)" * (cast_expression "(int *)(puVar30 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + 0x10)" ( (binary_expression "puVar30 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*UNRECOVERED_JUMPTABLE)(iVar25 == 0,puVar22,puVar22,piVar23);" (call_expression "(*UNRECOVERED_JUMPTABLE)(iVar25 == 0,puVar22,puVar22,piVar23)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(iVar25 == 0,puVar22,puVar22,piVar23)" ( (binary_expression "iVar25 == 0" identifier == number_literal) , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "puVar22 = (undefined4 *)((int)puVar7 + -1);" (assignment_expression "puVar22 = (undefined4 *)((int)puVar7 + -1)" identifier = (cast_expression "(undefined4 *)((int)puVar7 + -1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + -1)" ( (binary_expression "(int)puVar7 + -1" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) == 0) goto LAB_0007afb0;" if (parenthesized_expression "((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) == 0)" ( (binary_expression "(param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) == 0" (parenthesized_expression "(param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1)" ( (binary_expression "param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1" (binary_expression "param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f)" (subscript_expression "param_3[(uint)puVar22 >> 5]" identifier [ (binary_expression "(uint)puVar22 >> 5" (cast_expression "(uint)puVar22" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ]) >> (parenthesized_expression "((uint)puVar22 & 0x1f)" ( (binary_expression "(uint)puVar22 & 0x1f" (cast_expression "(uint)puVar22" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0007afb0;" goto statement_identifier ;)) (labeled_statement "LAB_0007b010:\n    if (puVar7 < local_44) {\n      uVar3 = ~(-1 << ((uint)puVar7 & 0x1f)) & *param_3;\n      uVar9 = 0;\n      if ((uVar3 & 0xff) == 0) goto LAB_0007b270;\nLAB_0007b040:\n      uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2;\n    }\n    else {\n      uVar9 = (int)puVar7 - (int)local_44;\n      uVar2 = 0x20 - (uVar9 & 0x1f);\n      uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f);\n      if ((int)uVar2 < (int)local_44) {\n        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));\n      }\n      uVar3 = uVar3 & local_4c;\n      puVar7 = local_44;\n      if ((uVar3 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar2 = uVar3 >> 8;\n      iVar19 = 0x1e;\n      if (uVar2 != 0) {\n        iVar19 = 6;\n      }\n      uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19;\n    }" statement_identifier : (if_statement "if (puVar7 < local_44) {\n      uVar3 = ~(-1 << ((uint)puVar7 & 0x1f)) & *param_3;\n      uVar9 = 0;\n      if ((uVar3 & 0xff) == 0) goto LAB_0007b270;\nLAB_0007b040:\n      uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2;\n    }\n    else {\n      uVar9 = (int)puVar7 - (int)local_44;\n      uVar2 = 0x20 - (uVar9 & 0x1f);\n      uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f);\n      if ((int)uVar2 < (int)local_44) {\n        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));\n      }\n      uVar3 = uVar3 & local_4c;\n      puVar7 = local_44;\n      if ((uVar3 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar2 = uVar3 >> 8;\n      iVar19 = 0x1e;\n      if (uVar2 != 0) {\n        iVar19 = 6;\n      }\n      uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19;\n    }" if (parenthesized_expression "(puVar7 < local_44)" ( (binary_expression "puVar7 < local_44" identifier < identifier) )) (compound_statement "{\n      uVar3 = ~(-1 << ((uint)puVar7 & 0x1f)) & *param_3;\n      uVar9 = 0;\n      if ((uVar3 & 0xff) == 0) goto LAB_0007b270;\nLAB_0007b040:\n      uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2;\n    }" { (expression_statement "uVar3 = ~(-1 << ((uint)puVar7 & 0x1f)) & *param_3;" (assignment_expression "uVar3 = ~(-1 << ((uint)puVar7 & 0x1f)) & *param_3" identifier = (binary_expression "~(-1 << ((uint)puVar7 & 0x1f)) & *param_3" (unary_expression "~(-1 << ((uint)puVar7 & 0x1f))" ~ (parenthesized_expression "(-1 << ((uint)puVar7 & 0x1f))" ( (binary_expression "-1 << ((uint)puVar7 & 0x1f)" number_literal << (parenthesized_expression "((uint)puVar7 & 0x1f)" ( (binary_expression "(uint)puVar7 & 0x1f" (cast_expression "(uint)puVar7" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) ))) & (pointer_expression "*param_3" * identifier))) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (if_statement "if ((uVar3 & 0xff) == 0) goto LAB_0007b270;" if (parenthesized_expression "((uVar3 & 0xff) == 0)" ( (binary_expression "(uVar3 & 0xff) == 0" (parenthesized_expression "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0007b270;" goto statement_identifier ;)) (labeled_statement "LAB_0007b040:\n      uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2;" statement_identifier : (expression_statement "uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2;" (assignment_expression "uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2" identifier = (binary_expression "(byte)puVar27[-uVar3 & uVar3] - 2" (cast_expression "(byte)puVar27[-uVar3 & uVar3]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar27[-uVar3 & uVar3]" identifier [ (binary_expression "-uVar3 & uVar3" (unary_expression "-uVar3" - identifier) & identifier) ])) - number_literal)) ;)) }) (else_clause "else {\n      uVar9 = (int)puVar7 - (int)local_44;\n      uVar2 = 0x20 - (uVar9 & 0x1f);\n      uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f);\n      if ((int)uVar2 < (int)local_44) {\n        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));\n      }\n      uVar3 = uVar3 & local_4c;\n      puVar7 = local_44;\n      if ((uVar3 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar2 = uVar3 >> 8;\n      iVar19 = 0x1e;\n      if (uVar2 != 0) {\n        iVar19 = 6;\n      }\n      uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19;\n    }" else (compound_statement "{\n      uVar9 = (int)puVar7 - (int)local_44;\n      uVar2 = 0x20 - (uVar9 & 0x1f);\n      uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f);\n      if ((int)uVar2 < (int)local_44) {\n        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));\n      }\n      uVar3 = uVar3 & local_4c;\n      puVar7 = local_44;\n      if ((uVar3 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar2 = uVar3 >> 8;\n      iVar19 = 0x1e;\n      if (uVar2 != 0) {\n        iVar19 = 6;\n      }\n      uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19;\n    }" { (expression_statement "uVar9 = (int)puVar7 - (int)local_44;" (assignment_expression "uVar9 = (int)puVar7 - (int)local_44" identifier = (binary_expression "(int)puVar7 - (int)local_44" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar2 = 0x20 - (uVar9 & 0x1f);" (assignment_expression "uVar2 = 0x20 - (uVar9 & 0x1f)" identifier = (binary_expression "0x20 - (uVar9 & 0x1f)" number_literal - (parenthesized_expression "(uVar9 & 0x1f)" ( (binary_expression "uVar9 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f);" (assignment_expression "uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f)" identifier = (binary_expression "param_3[uVar9 >> 5] >> (uVar9 & 0x1f)" (subscript_expression "param_3[uVar9 >> 5]" identifier [ (binary_expression "uVar9 >> 5" identifier >> number_literal) ]) >> (parenthesized_expression "(uVar9 & 0x1f)" ( (binary_expression "uVar9 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if ((int)uVar2 < (int)local_44) {\n        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));\n      }" if (parenthesized_expression "((int)uVar2 < (int)local_44)" ( (binary_expression "(int)uVar2 < (int)local_44" (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));\n      }" { (expression_statement "uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));" (assignment_expression "uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f))" identifier = (binary_expression "uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f))" identifier + (parenthesized_expression "((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f))" ( (binary_expression "(param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f)" (subscript_expression "(param_3 + (uVar9 >> 5))[1]" (parenthesized_expression "(param_3 + (uVar9 >> 5))" ( (binary_expression "param_3 + (uVar9 >> 5)" identifier + (parenthesized_expression "(uVar9 >> 5)" ( (binary_expression "uVar9 >> 5" identifier >> number_literal) ))) )) [ number_literal ]) << (parenthesized_expression "(uVar2 & 0x1f)" ( (binary_expression "uVar2 & 0x1f" identifier & number_literal) ))) )))) ;) })) (expression_statement "uVar3 = uVar3 & local_4c;" (assignment_expression "uVar3 = uVar3 & local_4c" identifier = (binary_expression "uVar3 & local_4c" identifier & identifier)) ;) (expression_statement "puVar7 = local_44;" (assignment_expression "puVar7 = local_44" identifier = identifier) ;) (if_statement "if ((uVar3 & 0xff) != 0) goto LAB_0007b040;" if (parenthesized_expression "((uVar3 & 0xff) != 0)" ( (binary_expression "(uVar3 & 0xff) != 0" (parenthesized_expression "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0007b040;" goto statement_identifier ;)) (labeled_statement "LAB_0007b270:\n      uVar2 = uVar3 >> 8;" statement_identifier : (expression_statement "uVar2 = uVar3 >> 8;" (assignment_expression "uVar2 = uVar3 >> 8" identifier = (binary_expression "uVar3 >> 8" identifier >> number_literal)) ;)) (expression_statement "iVar19 = 0x1e;" (assignment_expression "iVar19 = 0x1e" identifier = number_literal) ;) (if_statement "if (uVar2 != 0) {\n        iVar19 = 6;\n      }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar19 = 6;\n      }" { (expression_statement "iVar19 = 6;" (assignment_expression "iVar19 = 6" identifier = number_literal) ;) })) (expression_statement "uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19;" (assignment_expression "uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19" identifier = (binary_expression "(uint)(byte)puVar27[-uVar2 & uVar2] + iVar19" (cast_expression "(uint)(byte)puVar27[-uVar2 & uVar2]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar27[-uVar2 & uVar2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar27[-uVar2 & uVar2]" identifier [ (binary_expression "-uVar2 & uVar2" (unary_expression "-uVar2" - identifier) & identifier) ]))) + identifier)) ;) })))) (expression_statement "param_2 = (undefined4 *)((int)puVar7 - uVar2);" (assignment_expression "param_2 = (undefined4 *)((int)puVar7 - uVar2)" identifier = (cast_expression "(undefined4 *)((int)puVar7 - uVar2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 - uVar2)" ( (binary_expression "(int)puVar7 - uVar2" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ;) (expression_statement "puVar7 = param_2;" (assignment_expression "puVar7 = param_2" identifier = identifier) ;) (if_statement "if (1 < (int)param_2) {\n      do {\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n        puVar20 = (undefined4 *)((int)puVar7 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5);\n        puVar7 = puVar20;\n      } while (1 < (int)puVar20);\n      param_2 = (undefined4 *)((uint)param_2 & 1);\n    }" if (parenthesized_expression "(1 < (int)param_2)" ( (binary_expression "1 < (int)param_2" number_literal < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      do {\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n        puVar20 = (undefined4 *)((int)puVar7 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5);\n        puVar7 = puVar20;\n      } while (1 < (int)puVar20);\n      param_2 = (undefined4 *)((uint)param_2 & 1);\n    }" { (do_statement "do {\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n        puVar20 = (undefined4 *)((int)puVar7 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5);\n        puVar7 = puVar20;\n      } while (1 < (int)puVar20);" do (compound_statement "{\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n        puVar20 = (undefined4 *)((int)puVar7 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5);\n        puVar7 = puVar20;\n      }" { (expression_statement "(*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);" (call_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5)" (parenthesized_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)" ( (pointer_expression "*(code *)PTR___gmpn_sqrlo_0009d354" * (cast_expression "(code *)PTR___gmpn_sqrlo_0009d354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,param_1,param_5)" ( identifier , identifier , identifier ))) ;) (expression_statement "puVar20 = (undefined4 *)((int)puVar7 + -2);" (assignment_expression "puVar20 = (undefined4 *)((int)puVar7 + -2)" identifier = (cast_expression "(undefined4 *)((int)puVar7 + -2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + -2)" ( (binary_expression "(int)puVar7 + -2" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "(*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5);" (call_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5)" (parenthesized_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)" ( (pointer_expression "*(code *)PTR___gmpn_sqrlo_0009d354" * (cast_expression "(code *)PTR___gmpn_sqrlo_0009d354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_6,param_5)" ( identifier , identifier , identifier ))) ;) (expression_statement "puVar7 = puVar20;" (assignment_expression "puVar7 = puVar20" identifier = identifier) ;) }) while (parenthesized_expression "(1 < (int)puVar20)" ( (binary_expression "1 < (int)puVar20" number_literal < (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (expression_statement "param_2 = (undefined4 *)((uint)param_2 & 1);" (assignment_expression "param_2 = (undefined4 *)((uint)param_2 & 1)" identifier = (cast_expression "(undefined4 *)((uint)param_2 & 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)param_2 & 1)" ( (binary_expression "(uint)param_2 & 1" (cast_expression "(uint)param_2" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) })) (if_statement "if (param_2 == (undefined4 *)0x0) {\n      if (param_5 != (undefined4 *)0x0) {\n        uVar13 = *param_1;\n        puVar7 = param_6;\n        if (local_3c != (undefined1 *)0x0) {\n          puVar16 = local_3c;\n          puVar22 = param_6;\n          puVar12 = param_1 + 1;\n          do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);\n        }\n        *puVar7 = uVar13;\n      }\n    }\n    else {\n      (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n    }" if (parenthesized_expression "(param_2 == (undefined4 *)0x0)" ( (binary_expression "param_2 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (param_5 != (undefined4 *)0x0) {\n        uVar13 = *param_1;\n        puVar7 = param_6;\n        if (local_3c != (undefined1 *)0x0) {\n          puVar16 = local_3c;\n          puVar22 = param_6;\n          puVar12 = param_1 + 1;\n          do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);\n        }\n        *puVar7 = uVar13;\n      }\n    }" { (if_statement "if (param_5 != (undefined4 *)0x0) {\n        uVar13 = *param_1;\n        puVar7 = param_6;\n        if (local_3c != (undefined1 *)0x0) {\n          puVar16 = local_3c;\n          puVar22 = param_6;\n          puVar12 = param_1 + 1;\n          do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);\n        }\n        *puVar7 = uVar13;\n      }" if (parenthesized_expression "(param_5 != (undefined4 *)0x0)" ( (binary_expression "param_5 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar13 = *param_1;\n        puVar7 = param_6;\n        if (local_3c != (undefined1 *)0x0) {\n          puVar16 = local_3c;\n          puVar22 = param_6;\n          puVar12 = param_1 + 1;\n          do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);\n        }\n        *puVar7 = uVar13;\n      }" { (expression_statement "uVar13 = *param_1;" (assignment_expression "uVar13 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "puVar7 = param_6;" (assignment_expression "puVar7 = param_6" identifier = identifier) ;) (if_statement "if (local_3c != (undefined1 *)0x0) {\n          puVar16 = local_3c;\n          puVar22 = param_6;\n          puVar12 = param_1 + 1;\n          do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);\n        }" if (parenthesized_expression "(local_3c != (undefined1 *)0x0)" ( (binary_expression "local_3c != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar16 = local_3c;\n          puVar22 = param_6;\n          puVar12 = param_1 + 1;\n          do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);\n        }" { (expression_statement "puVar16 = local_3c;" (assignment_expression "puVar16 = local_3c" identifier = identifier) ;) (expression_statement "puVar22 = param_6;" (assignment_expression "puVar22 = param_6" identifier = identifier) ;) (expression_statement "puVar12 = param_1 + 1;" (assignment_expression "puVar12 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (do_statement "do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);" do (compound_statement "{\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          }" { (expression_statement "*puVar22 = uVar13;" (assignment_expression "*puVar22 = uVar13" (pointer_expression "*puVar22" * identifier) = identifier) ;) (expression_statement "puVar16 = puVar16 + -1;" (assignment_expression "puVar16 = puVar16 + -1" identifier = (binary_expression "puVar16 + -1" identifier + number_literal)) ;) (expression_statement "uVar13 = *puVar12;" (assignment_expression "uVar13 = *puVar12" identifier = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar7 = param_6 + (int)((int)param_5 + -1);" (assignment_expression "puVar7 = param_6 + (int)((int)param_5 + -1)" identifier = (binary_expression "param_6 + (int)((int)param_5 + -1)" identifier + (cast_expression "(int)((int)param_5 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)param_5 + -1)" ( (binary_expression "(int)param_5 + -1" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar22 = puVar22 + 1;" (assignment_expression "puVar22 = puVar22 + 1" identifier = (binary_expression "puVar22 + 1" identifier + number_literal)) ;) (expression_statement "puVar12 = puVar12 + 1;" (assignment_expression "puVar12 = puVar12 + 1" identifier = (binary_expression "puVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar16 != (undefined1 *)0x0)" ( (binary_expression "puVar16 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "*puVar7 = uVar13;" (assignment_expression "*puVar7 = uVar13" (pointer_expression "*puVar7" * identifier) = identifier) ;) })) }) (else_clause "else {\n      (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n    }" else (compound_statement "{\n      (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n    }" { (expression_statement "(*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);" (call_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5)" (parenthesized_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)" ( (pointer_expression "*(code *)PTR___gmpn_sqrlo_0009d354" * (cast_expression "(code *)PTR___gmpn_sqrlo_0009d354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,param_1,param_5)" ( identifier , identifier , identifier ))) ;) }))) (expression_statement "puVar14 = (undefined4 *)(((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25 + (int)puVar26);" (assignment_expression "puVar14 = (undefined4 *)(((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25 + (int)puVar26)" identifier = (cast_expression "(undefined4 *)(((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25 + (int)puVar26)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25 + (int)puVar26)" ( (binary_expression "((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25 + (int)puVar26" (binary_expression "((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25" (parenthesized_expression "((uVar3 >> (uVar2 & 0x1f)) >> 1)" ( (binary_expression "(uVar3 >> (uVar2 & 0x1f)) >> 1" (parenthesized_expression "(uVar3 >> (uVar2 & 0x1f))" ( (binary_expression "uVar3 >> (uVar2 & 0x1f)" identifier >> (parenthesized_expression "(uVar2 & 0x1f)" ( (binary_expression "uVar2 & 0x1f" identifier & number_literal) ))) )) >> number_literal) )) * identifier) + (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar12 = param_6;" (assignment_expression "puVar12 = param_6" identifier = identifier) ;) (expression_statement "param_4 = param_5;" (assignment_expression "param_4 = param_5" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmpn_mullo_n_0009d234)(param_1);" (call_expression "(*(code *)PTR___gmpn_mullo_n_0009d234)(param_1)" (parenthesized_expression "(*(code *)PTR___gmpn_mullo_n_0009d234)" ( (pointer_expression "*(code *)PTR___gmpn_mullo_n_0009d234" * (cast_expression "(code *)PTR___gmpn_mullo_n_0009d234" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "puVar7 = (undefined4 *)(uVar2 + uVar9);" (assignment_expression "puVar7 = (undefined4 *)(uVar2 + uVar9)" identifier = (cast_expression "(undefined4 *)(uVar2 + uVar9)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar2 + uVar9)" ( (binary_expression "uVar2 + uVar9" identifier + identifier) )))) ;) (expression_statement "puVar22 = local_30;" (assignment_expression "puVar22 = local_30" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression IDENT >> IDENT) ])))) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression IDENT >> IDENT) ])))) )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) }))))))))))))) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << IDENT) )) << LIT)) ;) (expression_statement (assignment_expression IDENT = (unary_expression ~ (parenthesized_expression ( (binary_expression LIT << (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression LIT << 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 = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) ]) = IDENT) ;) }))) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression ~ (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) ))) & (pointer_expression * IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression LIT - (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ (binary_expression IDENT >> LIT) ]) >> (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT >> LIT) ))) )) [ LIT ]) << (parenthesized_expression ( (binary_expression IDENT & LIT) ))) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression (unary_expression - IDENT) & IDENT) ]))) + IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression (unary_expression - IDENT) & IDENT) ])) - LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))) )) >> LIT) )) * IDENT) )))) ;) (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 = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) ]) = IDENT) ;) }))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ]) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( (assignment_expression IDENT = IDENT) ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (do_statement do (compound_statement { (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 { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 *)) ) (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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (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) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (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) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (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) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))))))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression LIT << IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression LIT << IDENT) )) + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))) >> LIT) ))) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT << IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) - (binary_expression (binary_expression IDENT * IDENT) * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT * IDENT) * IDENT) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression 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 * 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 (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression 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 IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) + LIT) )))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_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) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , 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 IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = IDENT) ;) }))) }))) (labeled_statement statement_identifier : (for_statement for ( ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , IDENT , 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 (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT - (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) >> (parenthesized_expression ( (binary_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 = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) << (parenthesized_expression ( (binary_expression IDENT & LIT) ))) )))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (unary_expression ~ (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) ))) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (unary_expression ~ (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) ))) ))) & IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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) )))) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < LIT) )))) ;) (do_statement do (compound_statement { (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 IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (unary_expression ~ (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) ))) ))) & (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT - (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) >> (parenthesized_expression ( (binary_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 = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) << (parenthesized_expression ( (binary_expression IDENT & LIT) ))) )))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , 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 = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , IDENT , 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 (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , 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 = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , IDENT , 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 (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , 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 IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression IDENT + (binary_expression IDENT * LIT)) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , (binary_expression IDENT + (binary_expression IDENT * LIT)) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , IDENT , 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 (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression IDENT + 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , 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 (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression IDENT == LIT) , IDENT , IDENT , IDENT ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ]) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression ~ (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) ))) & (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression (unary_expression - IDENT) & IDENT) ])) - LIT)) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT - (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ (binary_expression IDENT >> LIT) ]) >> (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 = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT >> LIT) ))) )) [ LIT ]) << (parenthesized_expression ( (binary_expression IDENT & LIT) ))) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression (unary_expression - IDENT) & IDENT) ]))) + IDENT)) ;) })))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (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)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))) )) >> LIT) )) * IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "void __gmpn_powlo(undefined4 *param_1,undefined4 *param_2,uint *param_3,undefined4 *param_4,\n                 undefined4 *param_5,undefined4 *param_6)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  uint extraout_v1;\n  uint *puVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  undefined4 uVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined1 *puVar16;\n  undefined4 uVar17;\n  int iVar18;\n  int iVar19;\n  undefined4 *puVar20;\n  undefined4 *puVar21;\n  undefined4 *puVar22;\n  int *piVar23;\n  undefined4 *puVar24;\n  int iVar25;\n  undefined4 *puVar26;\n  undefined *puVar27;\n  code *UNRECOVERED_JUMPTABLE;\n  int iVar28;\n  int iVar29;\n  undefined1 *puVar30;\n  int iVar31;\n  undefined1 auStack_70 [16];\n  uint local_4c;\n  undefined4 *local_44;\n  undefined1 *local_3c;\n  undefined4 *local_38;\n  undefined4 *local_30;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0009d540;\n  puVar27 = PTR___gmpn_clz_tab_0009d18c;\n  puVar30 = auStack_70;\n  puVar16 = auStack_70;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  uVar2 = param_3[(int)((int)param_4 + -1)];\n  local_30 = (undefined4 *)0x0;\n  if (uVar2 < 0x10000) {\n    iVar19 = 9;\n    if (uVar2 < 0x100) {\n      iVar19 = 1;\n    }\n    puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);\n  }\n  else {\n    iVar19 = 0x19;\n    if (uVar2 < 0x1000000) {\n      iVar19 = 0x11;\n    }\n    puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);\n  }\n  if (puVar20 < &DAT_00000008) {\n    local_4c = 1;\n    local_38 = (undefined4 *)0x1;\n    uVar2 = (int)param_5 << 2;\n    iVar19 = 0;\n    local_44 = local_38;\n  }\n  else {\n    if (puVar20 < (undefined4 *)0x1a) {\n      local_44 = (undefined4 *)0x2;\n      iVar19 = 1;\n    }\n    else if (puVar20 < (undefined4 *)0x52) {\n      local_44 = (undefined4 *)0x3;\n      iVar19 = 2;\n    }\n    else if (puVar20 < (undefined4 *)0xf2) {\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }\n    else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }\n    uVar2 = ((int)param_5 << iVar19) << 2;\n    local_4c = ~(-1 << (int)local_44);\n    iVar19 = (1 << iVar19) + -1;\n  }\n  if (uVar2 < 0x7f01) {\n    iVar25 = -(uVar2 + 7 & 0xfffffff8);\n    puVar16 = auStack_70 + iVar25;\n    puVar30 = auStack_70 + iVar25;\n    puVar26 = (undefined4 *)(&stack0xffffffa0 + iVar25);\n  }\n  else {\n    puVar26 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }\n  if (param_5 == (undefined4 *)0x0) {\n    local_3c = (undefined1 *)0xffffffff;\n    puVar30 = puVar16;\n  }\n  else {\n    local_3c = (undefined1 *)((int)param_5 + -1);\n    uVar13 = *param_2;\n    if (local_3c == (undefined1 *)0x0) {\n      *puVar26 = uVar13;\n    }\n    else {\n      puVar16 = local_3c;\n      puVar7 = puVar26;\n      puVar22 = param_2 + 1;\n      do {\n        *puVar7 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar22;\n        puVar7 = puVar7 + 1;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      puVar26[(int)((int)param_5 + -1)] = uVar13;\n    }\n  }\n  (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_2,param_5);\n  iVar25 = (int)param_5 * 4;\n  puVar7 = puVar26;\n  for (; iVar19 != 0; iVar19 = iVar19 + -1) {\n    param_2 = puVar7 + (int)param_5;\n    param_4 = param_5;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(param_2,puVar7,param_6);\n    puVar7 = param_2;\n  }\n  uVar2 = (int)puVar20 - (int)local_44;\n  if (puVar20 < local_44) {\n    uVar3 = ~(-1 << ((uint)puVar20 & 0x1f)) & *param_3;\n  }\n  else {\n    uVar9 = 0x20 - (uVar2 & 0x1f);\n    param_4 = (undefined4 *)(uint)((int)uVar9 < (int)local_44);\n    uVar3 = param_3[uVar2 >> 5] >> (uVar2 & 0x1f);\n    if (param_4 != (undefined4 *)0x0) {\n      uVar3 = uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f));\n    }\n    uVar3 = uVar3 & local_4c;\n  }\n  if ((uVar3 & 0xff) == 0) {\n    uVar9 = uVar3 >> 8;\n    param_4 = (undefined4 *)&DAT_00000006;\n    iVar19 = 0x1e;\n    if (uVar9 != 0) {\n      iVar19 = 6;\n    }\n    uVar9 = (uint)(byte)puVar27[-uVar9 & uVar9] + iVar19;\n  }\n  else {\n    uVar9 = (byte)puVar27[-uVar3 & uVar3] - 2;\n  }\n  puVar7 = (undefined4 *)(uVar9 + uVar2);\n  if (param_5 != (undefined4 *)0x0) {\n    param_4 = (undefined4 *)(((uVar3 >> (uVar9 & 0x1f)) >> 1) * iVar25);\n    puVar12 = (undefined4 *)((int)param_4 + (int)puVar26);\n    uVar13 = *puVar12;\n    puVar16 = local_3c;\n    puVar22 = param_1;\n    if (local_3c == (undefined1 *)0x0) {\n      *param_1 = uVar13;\n    }\n    else {\n      do {\n        puVar12 = puVar12 + 1;\n        *puVar22 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar12;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      param_1[(int)((int)param_5 + -1)] = uVar13;\n    }\n  }\n  puVar22 = (undefined4 *)((int)puVar7 + -1);\n  if ((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) != 0) goto LAB_0007b010;\nLAB_0007afb0:\n  puVar12 = param_1;\n  puVar14 = param_5;\n  (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6);\n  puVar7 = puVar22;\n  puVar22 = local_30;\n  if (param_5 != (undefined4 *)0x0) {\n    puVar12 = (undefined4 *)*param_6;\n    puVar21 = param_1;\n    puVar24 = param_1;\n    puVar10 = param_6;\n    for (puVar16 = local_3c; puVar16 != (undefined1 *)0x0; puVar16 = puVar16 + -1) {\n      puVar10 = puVar10 + 1;\n      *puVar24 = puVar12;\n      puVar12 = (undefined4 *)*puVar10;\n      puVar21 = param_1 + (int)((int)param_5 + -1);\n      puVar24 = puVar24 + 1;\n    }\n    *puVar21 = puVar12;\n  }\n  do {\n    local_30 = puVar22;\n    if (puVar7 == (undefined4 *)0x0) {\n      if (puVar22 != (undefined4 *)0x0) {\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      uVar13 = 0x7b45c;\n      puVar27 = PTR___stack_chk_fail_0009d4d0;\n      (*(code *)PTR___stack_chk_fail_0009d4d0)();\n      uVar2 = *(uint *)(puVar30 + 0x10);\n      *(undefined4 **)(puVar30 + -0x24) = param_5;\n      *(undefined **)(puVar30 + -0x68) = puVar27 + 0x29be0;\n      *(undefined4 *)(puVar30 + -0x18) = 0;\n      *(undefined4 **)(puVar30 + -0x28) = puVar20;\n      *(undefined4 *)(puVar30 + -4) = uVar13;\n      *(undefined1 **)(puVar30 + -8) = auStack_70;\n      *(int *)(puVar30 + -0xc) = iVar25;\n      *(uint **)(puVar30 + -0x10) = param_3;\n      *(undefined4 **)(puVar30 + -0x14) = param_2;\n      *(undefined4 **)(puVar30 + -0x1c) = param_1;\n      *(undefined4 **)(puVar30 + -0x20) = param_6;\n      *(uint *)(puVar30 + -0x60) = uVar2;\n      *(undefined4 **)(puVar30 + -0x44) = puVar12;\n      *(undefined4 **)(puVar30 + -0x4c) = param_4;\n      piVar23 = *(int **)(puVar30 + 0x14);\n      iVar19 = *(int *)(puVar30 + 0x18);\n      *(undefined4 *)(puVar30 + -0x54) = *(undefined4 *)(puVar30 + 0x1c);\n      if (uVar2 < 3) {\n        iVar25 = 0;\n        *(undefined4 *)(puVar30 + -0x5c) = 1;\n        *(undefined4 *)(puVar30 + -0x50) = 2;\n        iVar4 = 1;\n        *(undefined4 *)(puVar30 + -0x58) = 1;\n      }\n      else {\n        if (uVar2 < 0x22) {\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }\n        else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }\n        *(int *)(puVar30 + -0x5c) = iVar4;\n        *(int *)(puVar30 + -0x50) = 1 << iVar4;\n        iVar25 = (1 << iVar4) + -2;\n      }\n      iVar11 = *piVar23;\n      iVar31 = iVar19 * 4;\n      puVar26 = *(undefined4 **)(puVar30 + -0x54);\n      puVar16 = (undefined1 *)(iVar19 + (int)puVar14);\n      puVar24 = puVar26 + iVar19;\n      uVar2 = (uint)*(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19));\n      puVar7 = puVar24 + iVar19;\n      puVar12 = puVar26 + iVar19 + 1;\n      *(undefined4 **)(puVar30 + -0x48) = puVar7 + (int)puVar16;\n      puVar21 = puVar26 + (iVar19 << iVar4);\n      *puVar24 = 1;\n      iVar4 = uVar2 * 2 - uVar2 * uVar2 * iVar11;\n      iVar4 = iVar4 * iVar4 * iVar11 + iVar4 * -2;\n      puVar20 = puVar24;\n      if (iVar19 == 0) {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c);\n        puVar12[iVar19] = 1;\n        *(undefined4 **)(puVar30 + -0x38) = puVar14;\n        *(undefined1 **)(puVar30 + -0x3c) = puVar16;\n        *(undefined4 **)(puVar30 + -0x40) = puVar7;\n        *(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar11 = *(int *)(puVar30 + -0x40);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        if (iVar18 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar6 = iVar28 + -1;\n        puVar7 = (undefined4 *)(iVar11 + iVar31);\n        uVar13 = **(undefined4 **)(puVar30 + -0x44);\n        if (iVar6 != 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          puVar12 = puVar7;\n          goto LAB_0007b70c;\n        }\n        uVar5 = *(undefined4 *)(puVar30 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n        *puVar7 = uVar13;\n        *(undefined4 *)(puVar30 + -0x70) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);\n        *(undefined4 **)(puVar30 + -0x2c) = puVar14;\n        *(undefined1 **)(puVar30 + -0x30) = puVar16;\n        *(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;\n        *(undefined4 **)(puVar30 + -0x38) = puVar7;\n        *(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;\n        uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);\n        uVar5 = *puVar24;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);\n        *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);\n        *(undefined4 *)(puVar30 + -0x3c) = uVar13;\n        **(undefined4 **)(puVar30 + -0x34) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);\n        iVar11 = iVar19 + -1;\n        puVar7 = *(undefined4 **)(puVar30 + -0x3c);\n        iVar28 = *(int *)(puVar30 + -0x68);\n        uVar13 = *(undefined4 *)(puVar30 + -0x38);\n        uVar17 = *(undefined4 *)(puVar30 + -0x30);\n        uVar5 = *puVar7;\n        uVar15 = *(undefined4 *)(puVar30 + -0x2c);\n        if (iVar11 == 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }\n        else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);\n        *(undefined4 *)(puVar30 + -0x38) = uVar15;\n        *(undefined4 *)(puVar30 + -0x3c) = uVar17;\n        *puVar26 = uVar5;\n        iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        if (iVar28 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }\n        else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }\n        iVar28 = *(int *)(puVar30 + -0x40);\n        uVar13 = *puVar26;\n        puVar7 = puVar24;\n        if (iVar28 == 0) {\n          *puVar24 = uVar13;\n        }\n        else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }\n      }\njoined_r0x0007b75c:\n      for (; iVar25 != 0; iVar25 = iVar25 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);\n        puVar20 = puVar20 + iVar19;\n        *(int *)(puVar30 + -0x70) = iVar4;\n        uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      uVar2 = *(uint *)(puVar30 + -0x5c);\n      if (*(uint *)(puVar30 + -0x60) < uVar2) {\n        (**(code **)(iVar11 + -0x7c20))\n                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438);\n        uVar2 = extraout_v1;\n      }\n      uVar2 = *(int *)(puVar30 + -0x60) - uVar2;\n      uVar9 = 0x20 - (uVar2 & 0x1f);\n      puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4);\n      uVar3 = *puVar8 >> (uVar2 & 0x1f);\n      if ((int)uVar9 < *(int *)(puVar30 + -0x58)) {\n        uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f));\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bac);\n      *(int *)(puVar30 + -0x44) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f));\n      *(uint *)(puVar30 + -0x70) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)) & uVar3;\n      (*UNRECOVERED_JUMPTABLE)\n                (puVar22,*(undefined4 *)(puVar30 + -0x54),iVar19,*(undefined4 *)(puVar30 + -0x50));\n      iVar25 = *(int *)(puVar30 + -0x68);\n      if (uVar2 != 0) {\n        *(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39);\n        do {\n          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n          if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);\n          *(undefined4 *)(puVar30 + -0x70) = uVar13;\n          (*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);\n          *(int *)(puVar30 + -0x70) = iVar4;\n          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n          iVar25 = *(int *)(puVar30 + -0x68);\n          uVar2 = uVar9;\n        } while (uVar9 != 0);\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7eb0);\n      if (iVar19 != 0) {\n        iVar11 = iVar19 + -1;\n        uVar13 = *puVar22;\n        puVar20 = puVar21;\n        puVar26 = puVar22;\n        if (iVar11 != 0) {\n          do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar20 = puVar21 + iVar19 + -1;\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58);\n        *puVar20 = uVar13;\n        (*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0);\n      }\n      *(int *)(puVar30 + -0x70) = iVar4;\n      uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar22,puVar21,piVar23,iVar19);\n      *(int *)(puVar30 + -0x70) = iVar19;\n      (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n      iVar25 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))(puVar21,puVar22,piVar23,iVar19);\n      UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7a70);\n      *(int *)(puVar30 + 0x10) = iVar19;\n                    \n                    \n      (*UNRECOVERED_JUMPTABLE)(iVar25 == 0,puVar22,puVar22,piVar23);\n      return;\n    }\n    puVar22 = (undefined4 *)((int)puVar7 + -1);\n    if ((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) == 0) goto LAB_0007afb0;\nLAB_0007b010:\n    if (puVar7 < local_44) {\n      uVar3 = ~(-1 << ((uint)puVar7 & 0x1f)) & *param_3;\n      uVar9 = 0;\n      if ((uVar3 & 0xff) == 0) goto LAB_0007b270;\nLAB_0007b040:\n      uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2;\n    }\n    else {\n      uVar9 = (int)puVar7 - (int)local_44;\n      uVar2 = 0x20 - (uVar9 & 0x1f);\n      uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f);\n      if ((int)uVar2 < (int)local_44) {\n        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));\n      }\n      uVar3 = uVar3 & local_4c;\n      puVar7 = local_44;\n      if ((uVar3 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar2 = uVar3 >> 8;\n      iVar19 = 0x1e;\n      if (uVar2 != 0) {\n        iVar19 = 6;\n      }\n      uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19;\n    }\n    param_2 = (undefined4 *)((int)puVar7 - uVar2);\n    puVar7 = param_2;\n    if (1 < (int)param_2) {\n      do {\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n        puVar20 = (undefined4 *)((int)puVar7 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5);\n        puVar7 = puVar20;\n      } while (1 < (int)puVar20);\n      param_2 = (undefined4 *)((uint)param_2 & 1);\n    }\n    if (param_2 == (undefined4 *)0x0) {\n      if (param_5 != (undefined4 *)0x0) {\n        uVar13 = *param_1;\n        puVar7 = param_6;\n        if (local_3c != (undefined1 *)0x0) {\n          puVar16 = local_3c;\n          puVar22 = param_6;\n          puVar12 = param_1 + 1;\n          do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);\n        }\n        *puVar7 = uVar13;\n      }\n    }\n    else {\n      (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n    }\n    puVar14 = (undefined4 *)(((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25 + (int)puVar26);\n    puVar12 = param_6;\n    param_4 = param_5;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(param_1);\n    puVar7 = (undefined4 *)(uVar2 + uVar9);\n    puVar22 = local_30;\n  } while( true );\n}" (primitive_type "void") (function_declarator "__gmpn_powlo(undefined4 *param_1,undefined4 *param_2,uint *param_3,undefined4 *param_4,\n                 undefined4 *param_5,undefined4 *param_6)" (identifier "__gmpn_powlo") (parameter_list "(undefined4 *param_1,undefined4 *param_2,uint *param_3,undefined4 *param_4,\n                 undefined4 *param_5,undefined4 *param_6)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "uint *param_3" (type_identifier "uint") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "undefined4 *param_4" (type_identifier "undefined4") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "undefined4 *param_5" (type_identifier "undefined4") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "undefined4 *param_6" (type_identifier "undefined4") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  uint extraout_v1;\n  uint *puVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  int iVar11;\n  undefined4 *puVar12;\n  undefined4 uVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined1 *puVar16;\n  undefined4 uVar17;\n  int iVar18;\n  int iVar19;\n  undefined4 *puVar20;\n  undefined4 *puVar21;\n  undefined4 *puVar22;\n  int *piVar23;\n  undefined4 *puVar24;\n  int iVar25;\n  undefined4 *puVar26;\n  undefined *puVar27;\n  code *UNRECOVERED_JUMPTABLE;\n  int iVar28;\n  int iVar29;\n  undefined1 *puVar30;\n  int iVar31;\n  undefined1 auStack_70 [16];\n  uint local_4c;\n  undefined4 *local_44;\n  undefined1 *local_3c;\n  undefined4 *local_38;\n  undefined4 *local_30;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0009d540;\n  puVar27 = PTR___gmpn_clz_tab_0009d18c;\n  puVar30 = auStack_70;\n  puVar16 = auStack_70;\n  local_2c = *(int *)PTR___stack_chk_guard_0009d540;\n  uVar2 = param_3[(int)((int)param_4 + -1)];\n  local_30 = (undefined4 *)0x0;\n  if (uVar2 < 0x10000) {\n    iVar19 = 9;\n    if (uVar2 < 0x100) {\n      iVar19 = 1;\n    }\n    puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);\n  }\n  else {\n    iVar19 = 0x19;\n    if (uVar2 < 0x1000000) {\n      iVar19 = 0x11;\n    }\n    puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);\n  }\n  if (puVar20 < &DAT_00000008) {\n    local_4c = 1;\n    local_38 = (undefined4 *)0x1;\n    uVar2 = (int)param_5 << 2;\n    iVar19 = 0;\n    local_44 = local_38;\n  }\n  else {\n    if (puVar20 < (undefined4 *)0x1a) {\n      local_44 = (undefined4 *)0x2;\n      iVar19 = 1;\n    }\n    else if (puVar20 < (undefined4 *)0x52) {\n      local_44 = (undefined4 *)0x3;\n      iVar19 = 2;\n    }\n    else if (puVar20 < (undefined4 *)0xf2) {\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }\n    else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }\n    uVar2 = ((int)param_5 << iVar19) << 2;\n    local_4c = ~(-1 << (int)local_44);\n    iVar19 = (1 << iVar19) + -1;\n  }\n  if (uVar2 < 0x7f01) {\n    iVar25 = -(uVar2 + 7 & 0xfffffff8);\n    puVar16 = auStack_70 + iVar25;\n    puVar30 = auStack_70 + iVar25;\n    puVar26 = (undefined4 *)(&stack0xffffffa0 + iVar25);\n  }\n  else {\n    puVar26 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }\n  if (param_5 == (undefined4 *)0x0) {\n    local_3c = (undefined1 *)0xffffffff;\n    puVar30 = puVar16;\n  }\n  else {\n    local_3c = (undefined1 *)((int)param_5 + -1);\n    uVar13 = *param_2;\n    if (local_3c == (undefined1 *)0x0) {\n      *puVar26 = uVar13;\n    }\n    else {\n      puVar16 = local_3c;\n      puVar7 = puVar26;\n      puVar22 = param_2 + 1;\n      do {\n        *puVar7 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar22;\n        puVar7 = puVar7 + 1;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      puVar26[(int)((int)param_5 + -1)] = uVar13;\n    }\n  }\n  (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_2,param_5);\n  iVar25 = (int)param_5 * 4;\n  puVar7 = puVar26;\n  for (; iVar19 != 0; iVar19 = iVar19 + -1) {\n    param_2 = puVar7 + (int)param_5;\n    param_4 = param_5;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(param_2,puVar7,param_6);\n    puVar7 = param_2;\n  }\n  uVar2 = (int)puVar20 - (int)local_44;\n  if (puVar20 < local_44) {\n    uVar3 = ~(-1 << ((uint)puVar20 & 0x1f)) & *param_3;\n  }\n  else {\n    uVar9 = 0x20 - (uVar2 & 0x1f);\n    param_4 = (undefined4 *)(uint)((int)uVar9 < (int)local_44);\n    uVar3 = param_3[uVar2 >> 5] >> (uVar2 & 0x1f);\n    if (param_4 != (undefined4 *)0x0) {\n      uVar3 = uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f));\n    }\n    uVar3 = uVar3 & local_4c;\n  }\n  if ((uVar3 & 0xff) == 0) {\n    uVar9 = uVar3 >> 8;\n    param_4 = (undefined4 *)&DAT_00000006;\n    iVar19 = 0x1e;\n    if (uVar9 != 0) {\n      iVar19 = 6;\n    }\n    uVar9 = (uint)(byte)puVar27[-uVar9 & uVar9] + iVar19;\n  }\n  else {\n    uVar9 = (byte)puVar27[-uVar3 & uVar3] - 2;\n  }\n  puVar7 = (undefined4 *)(uVar9 + uVar2);\n  if (param_5 != (undefined4 *)0x0) {\n    param_4 = (undefined4 *)(((uVar3 >> (uVar9 & 0x1f)) >> 1) * iVar25);\n    puVar12 = (undefined4 *)((int)param_4 + (int)puVar26);\n    uVar13 = *puVar12;\n    puVar16 = local_3c;\n    puVar22 = param_1;\n    if (local_3c == (undefined1 *)0x0) {\n      *param_1 = uVar13;\n    }\n    else {\n      do {\n        puVar12 = puVar12 + 1;\n        *puVar22 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar12;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      param_1[(int)((int)param_5 + -1)] = uVar13;\n    }\n  }\n  puVar22 = (undefined4 *)((int)puVar7 + -1);\n  if ((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) != 0) goto LAB_0007b010;\nLAB_0007afb0:\n  puVar12 = param_1;\n  puVar14 = param_5;\n  (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6);\n  puVar7 = puVar22;\n  puVar22 = local_30;\n  if (param_5 != (undefined4 *)0x0) {\n    puVar12 = (undefined4 *)*param_6;\n    puVar21 = param_1;\n    puVar24 = param_1;\n    puVar10 = param_6;\n    for (puVar16 = local_3c; puVar16 != (undefined1 *)0x0; puVar16 = puVar16 + -1) {\n      puVar10 = puVar10 + 1;\n      *puVar24 = puVar12;\n      puVar12 = (undefined4 *)*puVar10;\n      puVar21 = param_1 + (int)((int)param_5 + -1);\n      puVar24 = puVar24 + 1;\n    }\n    *puVar21 = puVar12;\n  }\n  do {\n    local_30 = puVar22;\n    if (puVar7 == (undefined4 *)0x0) {\n      if (puVar22 != (undefined4 *)0x0) {\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      uVar13 = 0x7b45c;\n      puVar27 = PTR___stack_chk_fail_0009d4d0;\n      (*(code *)PTR___stack_chk_fail_0009d4d0)();\n      uVar2 = *(uint *)(puVar30 + 0x10);\n      *(undefined4 **)(puVar30 + -0x24) = param_5;\n      *(undefined **)(puVar30 + -0x68) = puVar27 + 0x29be0;\n      *(undefined4 *)(puVar30 + -0x18) = 0;\n      *(undefined4 **)(puVar30 + -0x28) = puVar20;\n      *(undefined4 *)(puVar30 + -4) = uVar13;\n      *(undefined1 **)(puVar30 + -8) = auStack_70;\n      *(int *)(puVar30 + -0xc) = iVar25;\n      *(uint **)(puVar30 + -0x10) = param_3;\n      *(undefined4 **)(puVar30 + -0x14) = param_2;\n      *(undefined4 **)(puVar30 + -0x1c) = param_1;\n      *(undefined4 **)(puVar30 + -0x20) = param_6;\n      *(uint *)(puVar30 + -0x60) = uVar2;\n      *(undefined4 **)(puVar30 + -0x44) = puVar12;\n      *(undefined4 **)(puVar30 + -0x4c) = param_4;\n      piVar23 = *(int **)(puVar30 + 0x14);\n      iVar19 = *(int *)(puVar30 + 0x18);\n      *(undefined4 *)(puVar30 + -0x54) = *(undefined4 *)(puVar30 + 0x1c);\n      if (uVar2 < 3) {\n        iVar25 = 0;\n        *(undefined4 *)(puVar30 + -0x5c) = 1;\n        *(undefined4 *)(puVar30 + -0x50) = 2;\n        iVar4 = 1;\n        *(undefined4 *)(puVar30 + -0x58) = 1;\n      }\n      else {\n        if (uVar2 < 0x22) {\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }\n        else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }\n        *(int *)(puVar30 + -0x5c) = iVar4;\n        *(int *)(puVar30 + -0x50) = 1 << iVar4;\n        iVar25 = (1 << iVar4) + -2;\n      }\n      iVar11 = *piVar23;\n      iVar31 = iVar19 * 4;\n      puVar26 = *(undefined4 **)(puVar30 + -0x54);\n      puVar16 = (undefined1 *)(iVar19 + (int)puVar14);\n      puVar24 = puVar26 + iVar19;\n      uVar2 = (uint)*(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19));\n      puVar7 = puVar24 + iVar19;\n      puVar12 = puVar26 + iVar19 + 1;\n      *(undefined4 **)(puVar30 + -0x48) = puVar7 + (int)puVar16;\n      puVar21 = puVar26 + (iVar19 << iVar4);\n      *puVar24 = 1;\n      iVar4 = uVar2 * 2 - uVar2 * uVar2 * iVar11;\n      iVar4 = iVar4 * iVar4 * iVar11 + iVar4 * -2;\n      puVar20 = puVar24;\n      if (iVar19 == 0) {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c);\n        puVar12[iVar19] = 1;\n        *(undefined4 **)(puVar30 + -0x38) = puVar14;\n        *(undefined1 **)(puVar30 + -0x3c) = puVar16;\n        *(undefined4 **)(puVar30 + -0x40) = puVar7;\n        *(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar11 = *(int *)(puVar30 + -0x40);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        if (iVar18 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar6 = iVar28 + -1;\n        puVar7 = (undefined4 *)(iVar11 + iVar31);\n        uVar13 = **(undefined4 **)(puVar30 + -0x44);\n        if (iVar6 != 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          puVar12 = puVar7;\n          goto LAB_0007b70c;\n        }\n        uVar5 = *(undefined4 *)(puVar30 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n        *puVar7 = uVar13;\n        *(undefined4 *)(puVar30 + -0x70) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);\n        *(undefined4 **)(puVar30 + -0x2c) = puVar14;\n        *(undefined1 **)(puVar30 + -0x30) = puVar16;\n        *(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;\n        *(undefined4 **)(puVar30 + -0x38) = puVar7;\n        *(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;\n        uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);\n        uVar5 = *puVar24;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);\n        *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);\n        *(undefined4 *)(puVar30 + -0x3c) = uVar13;\n        **(undefined4 **)(puVar30 + -0x34) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);\n        iVar11 = iVar19 + -1;\n        puVar7 = *(undefined4 **)(puVar30 + -0x3c);\n        iVar28 = *(int *)(puVar30 + -0x68);\n        uVar13 = *(undefined4 *)(puVar30 + -0x38);\n        uVar17 = *(undefined4 *)(puVar30 + -0x30);\n        uVar5 = *puVar7;\n        uVar15 = *(undefined4 *)(puVar30 + -0x2c);\n        if (iVar11 == 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }\n        else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);\n        *(undefined4 *)(puVar30 + -0x38) = uVar15;\n        *(undefined4 *)(puVar30 + -0x3c) = uVar17;\n        *puVar26 = uVar5;\n        iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        if (iVar28 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }\n        else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }\n        iVar28 = *(int *)(puVar30 + -0x40);\n        uVar13 = *puVar26;\n        puVar7 = puVar24;\n        if (iVar28 == 0) {\n          *puVar24 = uVar13;\n        }\n        else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }\n      }\njoined_r0x0007b75c:\n      for (; iVar25 != 0; iVar25 = iVar25 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);\n        puVar20 = puVar20 + iVar19;\n        *(int *)(puVar30 + -0x70) = iVar4;\n        uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      uVar2 = *(uint *)(puVar30 + -0x5c);\n      if (*(uint *)(puVar30 + -0x60) < uVar2) {\n        (**(code **)(iVar11 + -0x7c20))\n                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438);\n        uVar2 = extraout_v1;\n      }\n      uVar2 = *(int *)(puVar30 + -0x60) - uVar2;\n      uVar9 = 0x20 - (uVar2 & 0x1f);\n      puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4);\n      uVar3 = *puVar8 >> (uVar2 & 0x1f);\n      if ((int)uVar9 < *(int *)(puVar30 + -0x58)) {\n        uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f));\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bac);\n      *(int *)(puVar30 + -0x44) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f));\n      *(uint *)(puVar30 + -0x70) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)) & uVar3;\n      (*UNRECOVERED_JUMPTABLE)\n                (puVar22,*(undefined4 *)(puVar30 + -0x54),iVar19,*(undefined4 *)(puVar30 + -0x50));\n      iVar25 = *(int *)(puVar30 + -0x68);\n      if (uVar2 != 0) {\n        *(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39);\n        do {\n          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n          if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);\n          *(undefined4 *)(puVar30 + -0x70) = uVar13;\n          (*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);\n          *(int *)(puVar30 + -0x70) = iVar4;\n          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n          iVar25 = *(int *)(puVar30 + -0x68);\n          uVar2 = uVar9;\n        } while (uVar9 != 0);\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7eb0);\n      if (iVar19 != 0) {\n        iVar11 = iVar19 + -1;\n        uVar13 = *puVar22;\n        puVar20 = puVar21;\n        puVar26 = puVar22;\n        if (iVar11 != 0) {\n          do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar20 = puVar21 + iVar19 + -1;\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58);\n        *puVar20 = uVar13;\n        (*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0);\n      }\n      *(int *)(puVar30 + -0x70) = iVar4;\n      uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar22,puVar21,piVar23,iVar19);\n      *(int *)(puVar30 + -0x70) = iVar19;\n      (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n      iVar25 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))(puVar21,puVar22,piVar23,iVar19);\n      UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7a70);\n      *(int *)(puVar30 + 0x10) = iVar19;\n                    \n                    \n      (*UNRECOVERED_JUMPTABLE)(iVar25 == 0,puVar22,puVar22,piVar23);\n      return;\n    }\n    puVar22 = (undefined4 *)((int)puVar7 + -1);\n    if ((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) == 0) goto LAB_0007afb0;\nLAB_0007b010:\n    if (puVar7 < local_44) {\n      uVar3 = ~(-1 << ((uint)puVar7 & 0x1f)) & *param_3;\n      uVar9 = 0;\n      if ((uVar3 & 0xff) == 0) goto LAB_0007b270;\nLAB_0007b040:\n      uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2;\n    }\n    else {\n      uVar9 = (int)puVar7 - (int)local_44;\n      uVar2 = 0x20 - (uVar9 & 0x1f);\n      uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f);\n      if ((int)uVar2 < (int)local_44) {\n        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));\n      }\n      uVar3 = uVar3 & local_4c;\n      puVar7 = local_44;\n      if ((uVar3 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar2 = uVar3 >> 8;\n      iVar19 = 0x1e;\n      if (uVar2 != 0) {\n        iVar19 = 6;\n      }\n      uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19;\n    }\n    param_2 = (undefined4 *)((int)puVar7 - uVar2);\n    puVar7 = param_2;\n    if (1 < (int)param_2) {\n      do {\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n        puVar20 = (undefined4 *)((int)puVar7 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5);\n        puVar7 = puVar20;\n      } while (1 < (int)puVar20);\n      param_2 = (undefined4 *)((uint)param_2 & 1);\n    }\n    if (param_2 == (undefined4 *)0x0) {\n      if (param_5 != (undefined4 *)0x0) {\n        uVar13 = *param_1;\n        puVar7 = param_6;\n        if (local_3c != (undefined1 *)0x0) {\n          puVar16 = local_3c;\n          puVar22 = param_6;\n          puVar12 = param_1 + 1;\n          do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);\n        }\n        *puVar7 = uVar13;\n      }\n    }\n    else {\n      (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n    }\n    puVar14 = (undefined4 *)(((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25 + (int)puVar26);\n    puVar12 = param_6;\n    param_4 = param_5;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(param_1);\n    puVar7 = (undefined4 *)(uVar2 + uVar9);\n    puVar22 = local_30;\n  } while( true );\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "uint extraout_v1;" (type_identifier "uint") (identifier "extraout_v1") (; ";")) (declaration "uint *puVar8;" (type_identifier "uint") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "undefined4 *puVar10;" (type_identifier "undefined4") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "undefined4 *puVar12;" (type_identifier "undefined4") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "undefined4 uVar13;" (type_identifier "undefined4") (identifier "uVar13") (; ";")) (declaration "undefined4 *puVar14;" (type_identifier "undefined4") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "undefined4 uVar15;" (type_identifier "undefined4") (identifier "uVar15") (; ";")) (declaration "undefined1 *puVar16;" (type_identifier "undefined1") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "undefined4 uVar17;" (type_identifier "undefined4") (identifier "uVar17") (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "undefined4 *puVar20;" (type_identifier "undefined4") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "undefined4 *puVar21;" (type_identifier "undefined4") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "undefined4 *puVar22;" (type_identifier "undefined4") (pointer_declarator "*puVar22" (* "*") (identifier "puVar22")) (; ";")) (declaration "int *piVar23;" (primitive_type "int") (pointer_declarator "*piVar23" (* "*") (identifier "piVar23")) (; ";")) (declaration "undefined4 *puVar24;" (type_identifier "undefined4") (pointer_declarator "*puVar24" (* "*") (identifier "puVar24")) (; ";")) (declaration "int iVar25;" (primitive_type "int") (identifier "iVar25") (; ";")) (declaration "undefined4 *puVar26;" (type_identifier "undefined4") (pointer_declarator "*puVar26" (* "*") (identifier "puVar26")) (; ";")) (declaration "undefined *puVar27;" (type_identifier "undefined") (pointer_declarator "*puVar27" (* "*") (identifier "puVar27")) (; ";")) (declaration "code *UNRECOVERED_JUMPTABLE;" (type_identifier "code") (pointer_declarator "*UNRECOVERED_JUMPTABLE" (* "*") (identifier "UNRECOVERED_JUMPTABLE")) (; ";")) (declaration "int iVar28;" (primitive_type "int") (identifier "iVar28") (; ";")) (declaration "int iVar29;" (primitive_type "int") (identifier "iVar29") (; ";")) (declaration "undefined1 *puVar30;" (type_identifier "undefined1") (pointer_declarator "*puVar30" (* "*") (identifier "puVar30")) (; ";")) (declaration "int iVar31;" (primitive_type "int") (identifier "iVar31") (; ";")) (declaration "undefined1 auStack_70 [16];" (type_identifier "undefined1") (array_declarator "auStack_70 [16]" (identifier "auStack_70") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "uint local_4c;" (type_identifier "uint") (identifier "local_4c") (; ";")) (declaration "undefined4 *local_44;" (type_identifier "undefined4") (pointer_declarator "*local_44" (* "*") (identifier "local_44")) (; ";")) (declaration "undefined1 *local_3c;" (type_identifier "undefined1") (pointer_declarator "*local_3c" (* "*") (identifier "local_3c")) (; ";")) (declaration "undefined4 *local_38;" (type_identifier "undefined4") (pointer_declarator "*local_38" (* "*") (identifier "local_38")) (; ";")) (declaration "undefined4 *local_30;" (type_identifier "undefined4") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar1 = PTR___stack_chk_guard_0009d540;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0009d540" (identifier "puVar1") (= "=") (identifier "PTR___stack_chk_guard_0009d540")) (; ";")) (expression_statement "puVar27 = PTR___gmpn_clz_tab_0009d18c;" (assignment_expression "puVar27 = PTR___gmpn_clz_tab_0009d18c" (identifier "puVar27") (= "=") (identifier "PTR___gmpn_clz_tab_0009d18c")) (; ";")) (expression_statement "puVar30 = auStack_70;" (assignment_expression "puVar30 = auStack_70" (identifier "puVar30") (= "=") (identifier "auStack_70")) (; ";")) (expression_statement "puVar16 = auStack_70;" (assignment_expression "puVar16 = auStack_70" (identifier "puVar16") (= "=") (identifier "auStack_70")) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0009d540;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0009d540" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0009d540" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0009d540" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0009d540")))) (; ";")) (expression_statement "uVar2 = param_3[(int)((int)param_4 + -1)];" (assignment_expression "uVar2 = param_3[(int)((int)param_4 + -1)]" (identifier "uVar2") (= "=") (subscript_expression "param_3[(int)((int)param_4 + -1)]" (identifier "param_3") ([ "[") (cast_expression "(int)((int)param_4 + -1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)param_4 + -1)" (( "(") (binary_expression "(int)param_4 + -1" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (+ "+") (number_literal "-1")) () ")"))) (] "]"))) (; ";")) (expression_statement "local_30 = (undefined4 *)0x0;" (assignment_expression "local_30 = (undefined4 *)0x0" (identifier "local_30") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (uVar2 < 0x10000) {\n    iVar19 = 9;\n    if (uVar2 < 0x100) {\n      iVar19 = 1;\n    }\n    puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);\n  }\n  else {\n    iVar19 = 0x19;\n    if (uVar2 < 0x1000000) {\n      iVar19 = 0x11;\n    }\n    puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);\n  }" (if "if") (parenthesized_expression "(uVar2 < 0x10000)" (( "(") (binary_expression "uVar2 < 0x10000" (identifier "uVar2") (< "<") (number_literal "0x10000")) () ")")) (compound_statement "{\n    iVar19 = 9;\n    if (uVar2 < 0x100) {\n      iVar19 = 1;\n    }\n    puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);\n  }" ({ "{") (expression_statement "iVar19 = 9;" (assignment_expression "iVar19 = 9" (identifier "iVar19") (= "=") (number_literal "9")) (; ";")) (if_statement "if (uVar2 < 0x100) {\n      iVar19 = 1;\n    }" (if "if") (parenthesized_expression "(uVar2 < 0x100)" (( "(") (binary_expression "uVar2 < 0x100" (identifier "uVar2") (< "<") (number_literal "0x100")) () ")")) (compound_statement "{\n      iVar19 = 1;\n    }" ({ "{") (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" (identifier "iVar19") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);" (assignment_expression "puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19])" (identifier "puVar20") (= "=") (cast_expression "(undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19])" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19])" (( "(") (binary_expression "(int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]" (binary_expression "(int)param_4 * 0x20 + -0x21 + iVar19" (binary_expression "(int)param_4 * 0x20 + -0x21" (binary_expression "(int)param_4 * 0x20" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (* "*") (number_literal "0x20")) (+ "+") (number_literal "-0x21")) (+ "+") (identifier "iVar19")) (+ "+") (cast_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]" (identifier "PTR___gmpn_clz_tab_0009d18c") ([ "[") (binary_expression "uVar2 >> iVar19" (identifier "uVar2") (>> ">>") (identifier "iVar19")) (] "]"))))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n    iVar19 = 0x19;\n    if (uVar2 < 0x1000000) {\n      iVar19 = 0x11;\n    }\n    puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);\n  }" (else "else") (compound_statement "{\n    iVar19 = 0x19;\n    if (uVar2 < 0x1000000) {\n      iVar19 = 0x11;\n    }\n    puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);\n  }" ({ "{") (expression_statement "iVar19 = 0x19;" (assignment_expression "iVar19 = 0x19" (identifier "iVar19") (= "=") (number_literal "0x19")) (; ";")) (if_statement "if (uVar2 < 0x1000000) {\n      iVar19 = 0x11;\n    }" (if "if") (parenthesized_expression "(uVar2 < 0x1000000)" (( "(") (binary_expression "uVar2 < 0x1000000" (identifier "uVar2") (< "<") (number_literal "0x1000000")) () ")")) (compound_statement "{\n      iVar19 = 0x11;\n    }" ({ "{") (expression_statement "iVar19 = 0x11;" (assignment_expression "iVar19 = 0x11" (identifier "iVar19") (= "=") (number_literal "0x11")) (; ";")) (} "}"))) (expression_statement "puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);" (assignment_expression "puVar20 = (undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19])" (identifier "puVar20") (= "=") (cast_expression "(undefined4 *)\n              ((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19])" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19])" (( "(") (binary_expression "(int)param_4 * 0x20 + -0x21 + iVar19 +\n              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]" (binary_expression "(int)param_4 * 0x20 + -0x21 + iVar19" (binary_expression "(int)param_4 * 0x20 + -0x21" (binary_expression "(int)param_4 * 0x20" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (* "*") (number_literal "0x20")) (+ "+") (number_literal "-0x21")) (+ "+") (identifier "iVar19")) (+ "+") (cast_expression "(uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]" (identifier "PTR___gmpn_clz_tab_0009d18c") ([ "[") (binary_expression "uVar2 >> iVar19" (identifier "uVar2") (>> ">>") (identifier "iVar19")) (] "]"))))) () ")")))) (; ";")) (} "}")))) (if_statement "if (puVar20 < &DAT_00000008) {\n    local_4c = 1;\n    local_38 = (undefined4 *)0x1;\n    uVar2 = (int)param_5 << 2;\n    iVar19 = 0;\n    local_44 = local_38;\n  }\n  else {\n    if (puVar20 < (undefined4 *)0x1a) {\n      local_44 = (undefined4 *)0x2;\n      iVar19 = 1;\n    }\n    else if (puVar20 < (undefined4 *)0x52) {\n      local_44 = (undefined4 *)0x3;\n      iVar19 = 2;\n    }\n    else if (puVar20 < (undefined4 *)0xf2) {\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }\n    else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }\n    uVar2 = ((int)param_5 << iVar19) << 2;\n    local_4c = ~(-1 << (int)local_44);\n    iVar19 = (1 << iVar19) + -1;\n  }" (if "if") (parenthesized_expression "(puVar20 < &DAT_00000008)" (( "(") (binary_expression "puVar20 < &DAT_00000008" (identifier "puVar20") (< "<") (pointer_expression "&DAT_00000008" (& "&") (identifier "DAT_00000008"))) () ")")) (compound_statement "{\n    local_4c = 1;\n    local_38 = (undefined4 *)0x1;\n    uVar2 = (int)param_5 << 2;\n    iVar19 = 0;\n    local_44 = local_38;\n  }" ({ "{") (expression_statement "local_4c = 1;" (assignment_expression "local_4c = 1" (identifier "local_4c") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_38 = (undefined4 *)0x1;" (assignment_expression "local_38 = (undefined4 *)0x1" (identifier "local_38") (= "=") (cast_expression "(undefined4 *)0x1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "uVar2 = (int)param_5 << 2;" (assignment_expression "uVar2 = (int)param_5 << 2" (identifier "uVar2") (= "=") (binary_expression "(int)param_5 << 2" (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (<< "<<") (number_literal "2"))) (; ";")) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" (identifier "iVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_44 = local_38;" (assignment_expression "local_44 = local_38" (identifier "local_44") (= "=") (identifier "local_38")) (; ";")) (} "}")) (else_clause "else {\n    if (puVar20 < (undefined4 *)0x1a) {\n      local_44 = (undefined4 *)0x2;\n      iVar19 = 1;\n    }\n    else if (puVar20 < (undefined4 *)0x52) {\n      local_44 = (undefined4 *)0x3;\n      iVar19 = 2;\n    }\n    else if (puVar20 < (undefined4 *)0xf2) {\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }\n    else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }\n    uVar2 = ((int)param_5 << iVar19) << 2;\n    local_4c = ~(-1 << (int)local_44);\n    iVar19 = (1 << iVar19) + -1;\n  }" (else "else") (compound_statement "{\n    if (puVar20 < (undefined4 *)0x1a) {\n      local_44 = (undefined4 *)0x2;\n      iVar19 = 1;\n    }\n    else if (puVar20 < (undefined4 *)0x52) {\n      local_44 = (undefined4 *)0x3;\n      iVar19 = 2;\n    }\n    else if (puVar20 < (undefined4 *)0xf2) {\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }\n    else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }\n    uVar2 = ((int)param_5 << iVar19) << 2;\n    local_4c = ~(-1 << (int)local_44);\n    iVar19 = (1 << iVar19) + -1;\n  }" ({ "{") (if_statement "if (puVar20 < (undefined4 *)0x1a) {\n      local_44 = (undefined4 *)0x2;\n      iVar19 = 1;\n    }\n    else if (puVar20 < (undefined4 *)0x52) {\n      local_44 = (undefined4 *)0x3;\n      iVar19 = 2;\n    }\n    else if (puVar20 < (undefined4 *)0xf2) {\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }\n    else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" (if "if") (parenthesized_expression "(puVar20 < (undefined4 *)0x1a)" (( "(") (binary_expression "puVar20 < (undefined4 *)0x1a" (identifier "puVar20") (< "<") (cast_expression "(undefined4 *)0x1a" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1a"))) () ")")) (compound_statement "{\n      local_44 = (undefined4 *)0x2;\n      iVar19 = 1;\n    }" ({ "{") (expression_statement "local_44 = (undefined4 *)0x2;" (assignment_expression "local_44 = (undefined4 *)0x2" (identifier "local_44") (= "=") (cast_expression "(undefined4 *)0x2" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" (identifier "iVar19") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else if (puVar20 < (undefined4 *)0x52) {\n      local_44 = (undefined4 *)0x3;\n      iVar19 = 2;\n    }\n    else if (puVar20 < (undefined4 *)0xf2) {\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }\n    else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" (else "else") (if_statement "if (puVar20 < (undefined4 *)0x52) {\n      local_44 = (undefined4 *)0x3;\n      iVar19 = 2;\n    }\n    else if (puVar20 < (undefined4 *)0xf2) {\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }\n    else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" (if "if") (parenthesized_expression "(puVar20 < (undefined4 *)0x52)" (( "(") (binary_expression "puVar20 < (undefined4 *)0x52" (identifier "puVar20") (< "<") (cast_expression "(undefined4 *)0x52" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x52"))) () ")")) (compound_statement "{\n      local_44 = (undefined4 *)0x3;\n      iVar19 = 2;\n    }" ({ "{") (expression_statement "local_44 = (undefined4 *)0x3;" (assignment_expression "local_44 = (undefined4 *)0x3" (identifier "local_44") (= "=") (cast_expression "(undefined4 *)0x3" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3"))) (; ";")) (expression_statement "iVar19 = 2;" (assignment_expression "iVar19 = 2" (identifier "iVar19") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else if (puVar20 < (undefined4 *)0xf2) {\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }\n    else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" (else "else") (if_statement "if (puVar20 < (undefined4 *)0xf2) {\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }\n    else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" (if "if") (parenthesized_expression "(puVar20 < (undefined4 *)0xf2)" (( "(") (binary_expression "puVar20 < (undefined4 *)0xf2" (identifier "puVar20") (< "<") (cast_expression "(undefined4 *)0xf2" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xf2"))) () ")")) (compound_statement "{\n      local_44 = (undefined4 *)&DAT_00000004;\n      iVar19 = 3;\n    }" ({ "{") (expression_statement "local_44 = (undefined4 *)&DAT_00000004;" (assignment_expression "local_44 = (undefined4 *)&DAT_00000004" (identifier "local_44") (= "=") (cast_expression "(undefined4 *)&DAT_00000004" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000004" (& "&") (identifier "DAT_00000004")))) (; ";")) (expression_statement "iVar19 = 3;" (assignment_expression "iVar19 = 3" (identifier "iVar19") (= "=") (number_literal "3")) (; ";")) (} "}")) (else_clause "else if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" (else "else") (if_statement "if (puVar20 < (undefined4 *)0x2a2) {\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }\n    else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" (if "if") (parenthesized_expression "(puVar20 < (undefined4 *)0x2a2)" (( "(") (binary_expression "puVar20 < (undefined4 *)0x2a2" (identifier "puVar20") (< "<") (cast_expression "(undefined4 *)0x2a2" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2a2"))) () ")")) (compound_statement "{\n      local_44 = (undefined4 *)&DAT_00000005;\n      iVar19 = 4;\n    }" ({ "{") (expression_statement "local_44 = (undefined4 *)&DAT_00000005;" (assignment_expression "local_44 = (undefined4 *)&DAT_00000005" (identifier "local_44") (= "=") (cast_expression "(undefined4 *)&DAT_00000005" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000005" (& "&") (identifier "DAT_00000005")))) (; ";")) (expression_statement "iVar19 = 4;" (assignment_expression "iVar19 = 4" (identifier "iVar19") (= "=") (number_literal "4")) (; ";")) (} "}")) (else_clause "else if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" (else "else") (if_statement "if (puVar20 < (undefined4 *)0x702) {\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }\n    else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" (if "if") (parenthesized_expression "(puVar20 < (undefined4 *)0x702)" (( "(") (binary_expression "puVar20 < (undefined4 *)0x702" (identifier "puVar20") (< "<") (cast_expression "(undefined4 *)0x702" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x702"))) () ")")) (compound_statement "{\n      local_44 = (undefined4 *)&DAT_00000006;\n      iVar19 = 5;\n    }" ({ "{") (expression_statement "local_44 = (undefined4 *)&DAT_00000006;" (assignment_expression "local_44 = (undefined4 *)&DAT_00000006" (identifier "local_44") (= "=") (cast_expression "(undefined4 *)&DAT_00000006" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000006" (& "&") (identifier "DAT_00000006")))) (; ";")) (expression_statement "iVar19 = 5;" (assignment_expression "iVar19 = 5" (identifier "iVar19") (= "=") (number_literal "5")) (; ";")) (} "}")) (else_clause "else if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" (else "else") (if_statement "if (puVar20 < (undefined4 *)0x1202) {\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }\n    else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" (if "if") (parenthesized_expression "(puVar20 < (undefined4 *)0x1202)" (( "(") (binary_expression "puVar20 < (undefined4 *)0x1202" (identifier "puVar20") (< "<") (cast_expression "(undefined4 *)0x1202" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1202"))) () ")")) (compound_statement "{\n      local_44 = (undefined4 *)0x7;\n      iVar19 = 6;\n    }" ({ "{") (expression_statement "local_44 = (undefined4 *)0x7;" (assignment_expression "local_44 = (undefined4 *)0x7" (identifier "local_44") (= "=") (cast_expression "(undefined4 *)0x7" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7"))) (; ";")) (expression_statement "iVar19 = 6;" (assignment_expression "iVar19 = 6" (identifier "iVar19") (= "=") (number_literal "6")) (; ";")) (} "}")) (else_clause "else {\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" (else "else") (compound_statement "{\n      iVar19 = 9;\n      if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }\n    }" ({ "{") (expression_statement "iVar19 = 9;" (assignment_expression "iVar19 = 9" (identifier "iVar19") (= "=") (number_literal "9")) (; ";")) (if_statement "if (puVar20 < (undefined4 *)0x2d02) {\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }\n      else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }" (if "if") (parenthesized_expression "(puVar20 < (undefined4 *)0x2d02)" (( "(") (binary_expression "puVar20 < (undefined4 *)0x2d02" (identifier "puVar20") (< "<") (cast_expression "(undefined4 *)0x2d02" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2d02"))) () ")")) (compound_statement "{\n        local_44 = (undefined4 *)&DAT_00000008;\n        iVar19 = 7;\n      }" ({ "{") (expression_statement "local_44 = (undefined4 *)&DAT_00000008;" (assignment_expression "local_44 = (undefined4 *)&DAT_00000008" (identifier "local_44") (= "=") (cast_expression "(undefined4 *)&DAT_00000008" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000008" (& "&") (identifier "DAT_00000008")))) (; ";")) (expression_statement "iVar19 = 7;" (assignment_expression "iVar19 = 7" (identifier "iVar19") (= "=") (number_literal "7")) (; ";")) (} "}")) (else_clause "else {\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }" (else "else") (compound_statement "{\n        local_44 = (undefined4 *)&DAT_0000000a;\n        if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }\n      }" ({ "{") (expression_statement "local_44 = (undefined4 *)&DAT_0000000a;" (assignment_expression "local_44 = (undefined4 *)&DAT_0000000a" (identifier "local_44") (= "=") (cast_expression "(undefined4 *)&DAT_0000000a" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_0000000a" (& "&") (identifier "DAT_0000000a")))) (; ";")) (if_statement "if (puVar20 < (undefined4 *)0x6e02) {\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }" (if "if") (parenthesized_expression "(puVar20 < (undefined4 *)0x6e02)" (( "(") (binary_expression "puVar20 < (undefined4 *)0x6e02" (identifier "puVar20") (< "<") (cast_expression "(undefined4 *)0x6e02" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x6e02"))) () ")")) (compound_statement "{\n          local_44 = (undefined4 *)&DAT_00000009;\n          iVar19 = 8;\n        }" ({ "{") (expression_statement "local_44 = (undefined4 *)&DAT_00000009;" (assignment_expression "local_44 = (undefined4 *)&DAT_00000009" (identifier "local_44") (= "=") (cast_expression "(undefined4 *)&DAT_00000009" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000009" (& "&") (identifier "DAT_00000009")))) (; ";")) (expression_statement "iVar19 = 8;" (assignment_expression "iVar19 = 8" (identifier "iVar19") (= "=") (number_literal "8")) (; ";")) (} "}"))) (} "}")))) (} "}")))))))))))))) (expression_statement "uVar2 = ((int)param_5 << iVar19) << 2;" (assignment_expression "uVar2 = ((int)param_5 << iVar19) << 2" (identifier "uVar2") (= "=") (binary_expression "((int)param_5 << iVar19) << 2" (parenthesized_expression "((int)param_5 << iVar19)" (( "(") (binary_expression "(int)param_5 << iVar19" (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (<< "<<") (identifier "iVar19")) () ")")) (<< "<<") (number_literal "2"))) (; ";")) (expression_statement "local_4c = ~(-1 << (int)local_44);" (assignment_expression "local_4c = ~(-1 << (int)local_44)" (identifier "local_4c") (= "=") (unary_expression "~(-1 << (int)local_44)" (~ "~") (parenthesized_expression "(-1 << (int)local_44)" (( "(") (binary_expression "-1 << (int)local_44" (number_literal "-1") (<< "<<") (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44"))) () ")")))) (; ";")) (expression_statement "iVar19 = (1 << iVar19) + -1;" (assignment_expression "iVar19 = (1 << iVar19) + -1" (identifier "iVar19") (= "=") (binary_expression "(1 << iVar19) + -1" (parenthesized_expression "(1 << iVar19)" (( "(") (binary_expression "1 << iVar19" (number_literal "1") (<< "<<") (identifier "iVar19")) () ")")) (+ "+") (number_literal "-1"))) (; ";")) (} "}")))) (if_statement "if (uVar2 < 0x7f01) {\n    iVar25 = -(uVar2 + 7 & 0xfffffff8);\n    puVar16 = auStack_70 + iVar25;\n    puVar30 = auStack_70 + iVar25;\n    puVar26 = (undefined4 *)(&stack0xffffffa0 + iVar25);\n  }\n  else {\n    puVar26 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }" (if "if") (parenthesized_expression "(uVar2 < 0x7f01)" (( "(") (binary_expression "uVar2 < 0x7f01" (identifier "uVar2") (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n    iVar25 = -(uVar2 + 7 & 0xfffffff8);\n    puVar16 = auStack_70 + iVar25;\n    puVar30 = auStack_70 + iVar25;\n    puVar26 = (undefined4 *)(&stack0xffffffa0 + iVar25);\n  }" ({ "{") (expression_statement "iVar25 = -(uVar2 + 7 & 0xfffffff8);" (assignment_expression "iVar25 = -(uVar2 + 7 & 0xfffffff8)" (identifier "iVar25") (= "=") (unary_expression "-(uVar2 + 7 & 0xfffffff8)" (- "-") (parenthesized_expression "(uVar2 + 7 & 0xfffffff8)" (( "(") (binary_expression "uVar2 + 7 & 0xfffffff8" (binary_expression "uVar2 + 7" (identifier "uVar2") (+ "+") (number_literal "7")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar16 = auStack_70 + iVar25;" (assignment_expression "puVar16 = auStack_70 + iVar25" (identifier "puVar16") (= "=") (binary_expression "auStack_70 + iVar25" (identifier "auStack_70") (+ "+") (identifier "iVar25"))) (; ";")) (expression_statement "puVar30 = auStack_70 + iVar25;" (assignment_expression "puVar30 = auStack_70 + iVar25" (identifier "puVar30") (= "=") (binary_expression "auStack_70 + iVar25" (identifier "auStack_70") (+ "+") (identifier "iVar25"))) (; ";")) (expression_statement "puVar26 = (undefined4 *)(&stack0xffffffa0 + iVar25);" (assignment_expression "puVar26 = (undefined4 *)(&stack0xffffffa0 + iVar25)" (identifier "puVar26") (= "=") (cast_expression "(undefined4 *)(&stack0xffffffa0 + iVar25)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&stack0xffffffa0 + iVar25)" (( "(") (binary_expression "&stack0xffffffa0 + iVar25" (pointer_expression "&stack0xffffffa0" (& "&") (identifier "stack0xffffffa0")) (+ "+") (identifier "iVar25")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n    puVar26 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }" (else "else") (compound_statement "{\n    puVar26 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);\n  }" ({ "{") (expression_statement "puVar26 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);" (assignment_expression "puVar26 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (identifier "puVar26") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30)" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)" (( "(") (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" (* "*") (cast_expression "(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmp_tmp_reentrant_alloc_0009d2f0"))) () ")")) (argument_list "(&local_30)" (( "(") (pointer_expression "&local_30" (& "&") (identifier "local_30")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (param_5 == (undefined4 *)0x0) {\n    local_3c = (undefined1 *)0xffffffff;\n    puVar30 = puVar16;\n  }\n  else {\n    local_3c = (undefined1 *)((int)param_5 + -1);\n    uVar13 = *param_2;\n    if (local_3c == (undefined1 *)0x0) {\n      *puVar26 = uVar13;\n    }\n    else {\n      puVar16 = local_3c;\n      puVar7 = puVar26;\n      puVar22 = param_2 + 1;\n      do {\n        *puVar7 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar22;\n        puVar7 = puVar7 + 1;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      puVar26[(int)((int)param_5 + -1)] = uVar13;\n    }\n  }" (if "if") (parenthesized_expression "(param_5 == (undefined4 *)0x0)" (( "(") (binary_expression "param_5 == (undefined4 *)0x0" (identifier "param_5") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    local_3c = (undefined1 *)0xffffffff;\n    puVar30 = puVar16;\n  }" ({ "{") (expression_statement "local_3c = (undefined1 *)0xffffffff;" (assignment_expression "local_3c = (undefined1 *)0xffffffff" (identifier "local_3c") (= "=") (cast_expression "(undefined1 *)0xffffffff" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "puVar30 = puVar16;" (assignment_expression "puVar30 = puVar16" (identifier "puVar30") (= "=") (identifier "puVar16")) (; ";")) (} "}")) (else_clause "else {\n    local_3c = (undefined1 *)((int)param_5 + -1);\n    uVar13 = *param_2;\n    if (local_3c == (undefined1 *)0x0) {\n      *puVar26 = uVar13;\n    }\n    else {\n      puVar16 = local_3c;\n      puVar7 = puVar26;\n      puVar22 = param_2 + 1;\n      do {\n        *puVar7 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar22;\n        puVar7 = puVar7 + 1;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      puVar26[(int)((int)param_5 + -1)] = uVar13;\n    }\n  }" (else "else") (compound_statement "{\n    local_3c = (undefined1 *)((int)param_5 + -1);\n    uVar13 = *param_2;\n    if (local_3c == (undefined1 *)0x0) {\n      *puVar26 = uVar13;\n    }\n    else {\n      puVar16 = local_3c;\n      puVar7 = puVar26;\n      puVar22 = param_2 + 1;\n      do {\n        *puVar7 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar22;\n        puVar7 = puVar7 + 1;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      puVar26[(int)((int)param_5 + -1)] = uVar13;\n    }\n  }" ({ "{") (expression_statement "local_3c = (undefined1 *)((int)param_5 + -1);" (assignment_expression "local_3c = (undefined1 *)((int)param_5 + -1)" (identifier "local_3c") (= "=") (cast_expression "(undefined1 *)((int)param_5 + -1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_5 + -1)" (( "(") (binary_expression "(int)param_5 + -1" (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "uVar13 = *param_2;" (assignment_expression "uVar13 = *param_2" (identifier "uVar13") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (if_statement "if (local_3c == (undefined1 *)0x0) {\n      *puVar26 = uVar13;\n    }\n    else {\n      puVar16 = local_3c;\n      puVar7 = puVar26;\n      puVar22 = param_2 + 1;\n      do {\n        *puVar7 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar22;\n        puVar7 = puVar7 + 1;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      puVar26[(int)((int)param_5 + -1)] = uVar13;\n    }" (if "if") (parenthesized_expression "(local_3c == (undefined1 *)0x0)" (( "(") (binary_expression "local_3c == (undefined1 *)0x0" (identifier "local_3c") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      *puVar26 = uVar13;\n    }" ({ "{") (expression_statement "*puVar26 = uVar13;" (assignment_expression "*puVar26 = uVar13" (pointer_expression "*puVar26" (* "*") (identifier "puVar26")) (= "=") (identifier "uVar13")) (; ";")) (} "}")) (else_clause "else {\n      puVar16 = local_3c;\n      puVar7 = puVar26;\n      puVar22 = param_2 + 1;\n      do {\n        *puVar7 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar22;\n        puVar7 = puVar7 + 1;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      puVar26[(int)((int)param_5 + -1)] = uVar13;\n    }" (else "else") (compound_statement "{\n      puVar16 = local_3c;\n      puVar7 = puVar26;\n      puVar22 = param_2 + 1;\n      do {\n        *puVar7 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar22;\n        puVar7 = puVar7 + 1;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      puVar26[(int)((int)param_5 + -1)] = uVar13;\n    }" ({ "{") (expression_statement "puVar16 = local_3c;" (assignment_expression "puVar16 = local_3c" (identifier "puVar16") (= "=") (identifier "local_3c")) (; ";")) (expression_statement "puVar7 = puVar26;" (assignment_expression "puVar7 = puVar26" (identifier "puVar7") (= "=") (identifier "puVar26")) (; ";")) (expression_statement "puVar22 = param_2 + 1;" (assignment_expression "puVar22 = param_2 + 1" (identifier "puVar22") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (do_statement "do {\n        *puVar7 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar22;\n        puVar7 = puVar7 + 1;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);" (do "do") (compound_statement "{\n        *puVar7 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar22;\n        puVar7 = puVar7 + 1;\n        puVar22 = puVar22 + 1;\n      }" ({ "{") (expression_statement "*puVar7 = uVar13;" (assignment_expression "*puVar7 = uVar13" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "puVar16 = puVar16 + -1;" (assignment_expression "puVar16 = puVar16 + -1" (identifier "puVar16") (= "=") (binary_expression "puVar16 + -1" (identifier "puVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar13 = *puVar22;" (assignment_expression "uVar13 = *puVar22" (identifier "uVar13") (= "=") (pointer_expression "*puVar22" (* "*") (identifier "puVar22"))) (; ";")) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" (identifier "puVar7") (= "=") (binary_expression "puVar7 + 1" (identifier "puVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar22 = puVar22 + 1;" (assignment_expression "puVar22 = puVar22 + 1" (identifier "puVar22") (= "=") (binary_expression "puVar22 + 1" (identifier "puVar22") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar16 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar16 != (undefined1 *)0x0" (identifier "puVar16") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "puVar26[(int)((int)param_5 + -1)] = uVar13;" (assignment_expression "puVar26[(int)((int)param_5 + -1)] = uVar13" (subscript_expression "puVar26[(int)((int)param_5 + -1)]" (identifier "puVar26") ([ "[") (cast_expression "(int)((int)param_5 + -1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)param_5 + -1)" (( "(") (binary_expression "(int)param_5 + -1" (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (+ "+") (number_literal "-1")) () ")"))) (] "]")) (= "=") (identifier "uVar13")) (; ";")) (} "}")))) (} "}")))) (expression_statement "(*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_2,param_5);" (call_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_2,param_5)" (parenthesized_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)" (( "(") (pointer_expression "*(code *)PTR___gmpn_sqrlo_0009d354" (* "*") (cast_expression "(code *)PTR___gmpn_sqrlo_0009d354" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_sqrlo_0009d354"))) () ")")) (argument_list "(param_6,param_2,param_5)" (( "(") (identifier "param_6") (, ",") (identifier "param_2") (, ",") (identifier "param_5") () ")"))) (; ";")) (expression_statement "iVar25 = (int)param_5 * 4;" (assignment_expression "iVar25 = (int)param_5 * 4" (identifier "iVar25") (= "=") (binary_expression "(int)param_5 * 4" (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (* "*") (number_literal "4"))) (; ";")) (expression_statement "puVar7 = puVar26;" (assignment_expression "puVar7 = puVar26" (identifier "puVar7") (= "=") (identifier "puVar26")) (; ";")) (for_statement "for (; iVar19 != 0; iVar19 = iVar19 + -1) {\n    param_2 = puVar7 + (int)param_5;\n    param_4 = param_5;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(param_2,puVar7,param_6);\n    puVar7 = param_2;\n  }" (for "for") (( "(") (; ";") (binary_expression "iVar19 != 0" (identifier "iVar19") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar19 = iVar19 + -1" (identifier "iVar19") (= "=") (binary_expression "iVar19 + -1" (identifier "iVar19") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n    param_2 = puVar7 + (int)param_5;\n    param_4 = param_5;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(param_2,puVar7,param_6);\n    puVar7 = param_2;\n  }" ({ "{") (expression_statement "param_2 = puVar7 + (int)param_5;" (assignment_expression "param_2 = puVar7 + (int)param_5" (identifier "param_2") (= "=") (binary_expression "puVar7 + (int)param_5" (identifier "puVar7") (+ "+") (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")))) (; ";")) (expression_statement "param_4 = param_5;" (assignment_expression "param_4 = param_5" (identifier "param_4") (= "=") (identifier "param_5")) (; ";")) (expression_statement "(*(code *)PTR___gmpn_mullo_n_0009d234)(param_2,puVar7,param_6);" (call_expression "(*(code *)PTR___gmpn_mullo_n_0009d234)(param_2,puVar7,param_6)" (parenthesized_expression "(*(code *)PTR___gmpn_mullo_n_0009d234)" (( "(") (pointer_expression "*(code *)PTR___gmpn_mullo_n_0009d234" (* "*") (cast_expression "(code *)PTR___gmpn_mullo_n_0009d234" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_mullo_n_0009d234"))) () ")")) (argument_list "(param_2,puVar7,param_6)" (( "(") (identifier "param_2") (, ",") (identifier "puVar7") (, ",") (identifier "param_6") () ")"))) (; ";")) (expression_statement "puVar7 = param_2;" (assignment_expression "puVar7 = param_2" (identifier "puVar7") (= "=") (identifier "param_2")) (; ";")) (} "}"))) (expression_statement "uVar2 = (int)puVar20 - (int)local_44;" (assignment_expression "uVar2 = (int)puVar20 - (int)local_44" (identifier "uVar2") (= "=") (binary_expression "(int)puVar20 - (int)local_44" (cast_expression "(int)puVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar20")) (- "-") (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")))) (; ";")) (if_statement "if (puVar20 < local_44) {\n    uVar3 = ~(-1 << ((uint)puVar20 & 0x1f)) & *param_3;\n  }\n  else {\n    uVar9 = 0x20 - (uVar2 & 0x1f);\n    param_4 = (undefined4 *)(uint)((int)uVar9 < (int)local_44);\n    uVar3 = param_3[uVar2 >> 5] >> (uVar2 & 0x1f);\n    if (param_4 != (undefined4 *)0x0) {\n      uVar3 = uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f));\n    }\n    uVar3 = uVar3 & local_4c;\n  }" (if "if") (parenthesized_expression "(puVar20 < local_44)" (( "(") (binary_expression "puVar20 < local_44" (identifier "puVar20") (< "<") (identifier "local_44")) () ")")) (compound_statement "{\n    uVar3 = ~(-1 << ((uint)puVar20 & 0x1f)) & *param_3;\n  }" ({ "{") (expression_statement "uVar3 = ~(-1 << ((uint)puVar20 & 0x1f)) & *param_3;" (assignment_expression "uVar3 = ~(-1 << ((uint)puVar20 & 0x1f)) & *param_3" (identifier "uVar3") (= "=") (binary_expression "~(-1 << ((uint)puVar20 & 0x1f)) & *param_3" (unary_expression "~(-1 << ((uint)puVar20 & 0x1f))" (~ "~") (parenthesized_expression "(-1 << ((uint)puVar20 & 0x1f))" (( "(") (binary_expression "-1 << ((uint)puVar20 & 0x1f)" (number_literal "-1") (<< "<<") (parenthesized_expression "((uint)puVar20 & 0x1f)" (( "(") (binary_expression "(uint)puVar20 & 0x1f" (cast_expression "(uint)puVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar20")) (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (& "&") (pointer_expression "*param_3" (* "*") (identifier "param_3")))) (; ";")) (} "}")) (else_clause "else {\n    uVar9 = 0x20 - (uVar2 & 0x1f);\n    param_4 = (undefined4 *)(uint)((int)uVar9 < (int)local_44);\n    uVar3 = param_3[uVar2 >> 5] >> (uVar2 & 0x1f);\n    if (param_4 != (undefined4 *)0x0) {\n      uVar3 = uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f));\n    }\n    uVar3 = uVar3 & local_4c;\n  }" (else "else") (compound_statement "{\n    uVar9 = 0x20 - (uVar2 & 0x1f);\n    param_4 = (undefined4 *)(uint)((int)uVar9 < (int)local_44);\n    uVar3 = param_3[uVar2 >> 5] >> (uVar2 & 0x1f);\n    if (param_4 != (undefined4 *)0x0) {\n      uVar3 = uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f));\n    }\n    uVar3 = uVar3 & local_4c;\n  }" ({ "{") (expression_statement "uVar9 = 0x20 - (uVar2 & 0x1f);" (assignment_expression "uVar9 = 0x20 - (uVar2 & 0x1f)" (identifier "uVar9") (= "=") (binary_expression "0x20 - (uVar2 & 0x1f)" (number_literal "0x20") (- "-") (parenthesized_expression "(uVar2 & 0x1f)" (( "(") (binary_expression "uVar2 & 0x1f" (identifier "uVar2") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "param_4 = (undefined4 *)(uint)((int)uVar9 < (int)local_44);" (assignment_expression "param_4 = (undefined4 *)(uint)((int)uVar9 < (int)local_44)" (identifier "param_4") (= "=") (cast_expression "(undefined4 *)(uint)((int)uVar9 < (int)local_44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)((int)uVar9 < (int)local_44)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)uVar9 < (int)local_44)" (( "(") (binary_expression "(int)uVar9 < (int)local_44" (cast_expression "(int)uVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar9")) (< "<") (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44"))) () ")"))))) (; ";")) (expression_statement "uVar3 = param_3[uVar2 >> 5] >> (uVar2 & 0x1f);" (assignment_expression "uVar3 = param_3[uVar2 >> 5] >> (uVar2 & 0x1f)" (identifier "uVar3") (= "=") (binary_expression "param_3[uVar2 >> 5] >> (uVar2 & 0x1f)" (subscript_expression "param_3[uVar2 >> 5]" (identifier "param_3") ([ "[") (binary_expression "uVar2 >> 5" (identifier "uVar2") (>> ">>") (number_literal "5")) (] "]")) (>> ">>") (parenthesized_expression "(uVar2 & 0x1f)" (( "(") (binary_expression "uVar2 & 0x1f" (identifier "uVar2") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (if_statement "if (param_4 != (undefined4 *)0x0) {\n      uVar3 = uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f));\n    }" (if "if") (parenthesized_expression "(param_4 != (undefined4 *)0x0)" (( "(") (binary_expression "param_4 != (undefined4 *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      uVar3 = uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f));\n    }" ({ "{") (expression_statement "uVar3 = uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f));" (assignment_expression "uVar3 = uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f))" (identifier "uVar3") (= "=") (binary_expression "uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f))" (identifier "uVar3") (+ "+") (parenthesized_expression "((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f))" (( "(") (binary_expression "(param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f)" (subscript_expression "(param_3 + (uVar2 >> 5))[1]" (parenthesized_expression "(param_3 + (uVar2 >> 5))" (( "(") (binary_expression "param_3 + (uVar2 >> 5)" (identifier "param_3") (+ "+") (parenthesized_expression "(uVar2 >> 5)" (( "(") (binary_expression "uVar2 >> 5" (identifier "uVar2") (>> ">>") (number_literal "5")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]")) (<< "<<") (parenthesized_expression "(uVar9 & 0x1f)" (( "(") (binary_expression "uVar9 & 0x1f" (identifier "uVar9") (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (} "}"))) (expression_statement "uVar3 = uVar3 & local_4c;" (assignment_expression "uVar3 = uVar3 & local_4c" (identifier "uVar3") (= "=") (binary_expression "uVar3 & local_4c" (identifier "uVar3") (& "&") (identifier "local_4c"))) (; ";")) (} "}")))) (if_statement "if ((uVar3 & 0xff) == 0) {\n    uVar9 = uVar3 >> 8;\n    param_4 = (undefined4 *)&DAT_00000006;\n    iVar19 = 0x1e;\n    if (uVar9 != 0) {\n      iVar19 = 6;\n    }\n    uVar9 = (uint)(byte)puVar27[-uVar9 & uVar9] + iVar19;\n  }\n  else {\n    uVar9 = (byte)puVar27[-uVar3 & uVar3] - 2;\n  }" (if "if") (parenthesized_expression "((uVar3 & 0xff) == 0)" (( "(") (binary_expression "(uVar3 & 0xff) == 0" (parenthesized_expression "(uVar3 & 0xff)" (( "(") (binary_expression "uVar3 & 0xff" (identifier "uVar3") (& "&") (number_literal "0xff")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar9 = uVar3 >> 8;\n    param_4 = (undefined4 *)&DAT_00000006;\n    iVar19 = 0x1e;\n    if (uVar9 != 0) {\n      iVar19 = 6;\n    }\n    uVar9 = (uint)(byte)puVar27[-uVar9 & uVar9] + iVar19;\n  }" ({ "{") (expression_statement "uVar9 = uVar3 >> 8;" (assignment_expression "uVar9 = uVar3 >> 8" (identifier "uVar9") (= "=") (binary_expression "uVar3 >> 8" (identifier "uVar3") (>> ">>") (number_literal "8"))) (; ";")) (expression_statement "param_4 = (undefined4 *)&DAT_00000006;" (assignment_expression "param_4 = (undefined4 *)&DAT_00000006" (identifier "param_4") (= "=") (cast_expression "(undefined4 *)&DAT_00000006" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000006" (& "&") (identifier "DAT_00000006")))) (; ";")) (expression_statement "iVar19 = 0x1e;" (assignment_expression "iVar19 = 0x1e" (identifier "iVar19") (= "=") (number_literal "0x1e")) (; ";")) (if_statement "if (uVar9 != 0) {\n      iVar19 = 6;\n    }" (if "if") (parenthesized_expression "(uVar9 != 0)" (( "(") (binary_expression "uVar9 != 0" (identifier "uVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar19 = 6;\n    }" ({ "{") (expression_statement "iVar19 = 6;" (assignment_expression "iVar19 = 6" (identifier "iVar19") (= "=") (number_literal "6")) (; ";")) (} "}"))) (expression_statement "uVar9 = (uint)(byte)puVar27[-uVar9 & uVar9] + iVar19;" (assignment_expression "uVar9 = (uint)(byte)puVar27[-uVar9 & uVar9] + iVar19" (identifier "uVar9") (= "=") (binary_expression "(uint)(byte)puVar27[-uVar9 & uVar9] + iVar19" (cast_expression "(uint)(byte)puVar27[-uVar9 & uVar9]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)puVar27[-uVar9 & uVar9]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "puVar27[-uVar9 & uVar9]" (identifier "puVar27") ([ "[") (binary_expression "-uVar9 & uVar9" (unary_expression "-uVar9" (- "-") (identifier "uVar9")) (& "&") (identifier "uVar9")) (] "]")))) (+ "+") (identifier "iVar19"))) (; ";")) (} "}")) (else_clause "else {\n    uVar9 = (byte)puVar27[-uVar3 & uVar3] - 2;\n  }" (else "else") (compound_statement "{\n    uVar9 = (byte)puVar27[-uVar3 & uVar3] - 2;\n  }" ({ "{") (expression_statement "uVar9 = (byte)puVar27[-uVar3 & uVar3] - 2;" (assignment_expression "uVar9 = (byte)puVar27[-uVar3 & uVar3] - 2" (identifier "uVar9") (= "=") (binary_expression "(byte)puVar27[-uVar3 & uVar3] - 2" (cast_expression "(byte)puVar27[-uVar3 & uVar3]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "puVar27[-uVar3 & uVar3]" (identifier "puVar27") ([ "[") (binary_expression "-uVar3 & uVar3" (unary_expression "-uVar3" (- "-") (identifier "uVar3")) (& "&") (identifier "uVar3")) (] "]"))) (- "-") (number_literal "2"))) (; ";")) (} "}")))) (expression_statement "puVar7 = (undefined4 *)(uVar9 + uVar2);" (assignment_expression "puVar7 = (undefined4 *)(uVar9 + uVar2)" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(uVar9 + uVar2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 + uVar2)" (( "(") (binary_expression "uVar9 + uVar2" (identifier "uVar9") (+ "+") (identifier "uVar2")) () ")")))) (; ";")) (if_statement "if (param_5 != (undefined4 *)0x0) {\n    param_4 = (undefined4 *)(((uVar3 >> (uVar9 & 0x1f)) >> 1) * iVar25);\n    puVar12 = (undefined4 *)((int)param_4 + (int)puVar26);\n    uVar13 = *puVar12;\n    puVar16 = local_3c;\n    puVar22 = param_1;\n    if (local_3c == (undefined1 *)0x0) {\n      *param_1 = uVar13;\n    }\n    else {\n      do {\n        puVar12 = puVar12 + 1;\n        *puVar22 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar12;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      param_1[(int)((int)param_5 + -1)] = uVar13;\n    }\n  }" (if "if") (parenthesized_expression "(param_5 != (undefined4 *)0x0)" (( "(") (binary_expression "param_5 != (undefined4 *)0x0" (identifier "param_5") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    param_4 = (undefined4 *)(((uVar3 >> (uVar9 & 0x1f)) >> 1) * iVar25);\n    puVar12 = (undefined4 *)((int)param_4 + (int)puVar26);\n    uVar13 = *puVar12;\n    puVar16 = local_3c;\n    puVar22 = param_1;\n    if (local_3c == (undefined1 *)0x0) {\n      *param_1 = uVar13;\n    }\n    else {\n      do {\n        puVar12 = puVar12 + 1;\n        *puVar22 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar12;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      param_1[(int)((int)param_5 + -1)] = uVar13;\n    }\n  }" ({ "{") (expression_statement "param_4 = (undefined4 *)(((uVar3 >> (uVar9 & 0x1f)) >> 1) * iVar25);" (assignment_expression "param_4 = (undefined4 *)(((uVar3 >> (uVar9 & 0x1f)) >> 1) * iVar25)" (identifier "param_4") (= "=") (cast_expression "(undefined4 *)(((uVar3 >> (uVar9 & 0x1f)) >> 1) * iVar25)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((uVar3 >> (uVar9 & 0x1f)) >> 1) * iVar25)" (( "(") (binary_expression "((uVar3 >> (uVar9 & 0x1f)) >> 1) * iVar25" (parenthesized_expression "((uVar3 >> (uVar9 & 0x1f)) >> 1)" (( "(") (binary_expression "(uVar3 >> (uVar9 & 0x1f)) >> 1" (parenthesized_expression "(uVar3 >> (uVar9 & 0x1f))" (( "(") (binary_expression "uVar3 >> (uVar9 & 0x1f)" (identifier "uVar3") (>> ">>") (parenthesized_expression "(uVar9 & 0x1f)" (( "(") (binary_expression "uVar9 & 0x1f" (identifier "uVar9") (& "&") (number_literal "0x1f")) () ")"))) () ")")) (>> ">>") (number_literal "1")) () ")")) (* "*") (identifier "iVar25")) () ")")))) (; ";")) (expression_statement "puVar12 = (undefined4 *)((int)param_4 + (int)puVar26);" (assignment_expression "puVar12 = (undefined4 *)((int)param_4 + (int)puVar26)" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)((int)param_4 + (int)puVar26)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_4 + (int)puVar26)" (( "(") (binary_expression "(int)param_4 + (int)puVar26" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (+ "+") (cast_expression "(int)puVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar26"))) () ")")))) (; ";")) (expression_statement "uVar13 = *puVar12;" (assignment_expression "uVar13 = *puVar12" (identifier "uVar13") (= "=") (pointer_expression "*puVar12" (* "*") (identifier "puVar12"))) (; ";")) (expression_statement "puVar16 = local_3c;" (assignment_expression "puVar16 = local_3c" (identifier "puVar16") (= "=") (identifier "local_3c")) (; ";")) (expression_statement "puVar22 = param_1;" (assignment_expression "puVar22 = param_1" (identifier "puVar22") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (local_3c == (undefined1 *)0x0) {\n      *param_1 = uVar13;\n    }\n    else {\n      do {\n        puVar12 = puVar12 + 1;\n        *puVar22 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar12;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      param_1[(int)((int)param_5 + -1)] = uVar13;\n    }" (if "if") (parenthesized_expression "(local_3c == (undefined1 *)0x0)" (( "(") (binary_expression "local_3c == (undefined1 *)0x0" (identifier "local_3c") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      *param_1 = uVar13;\n    }" ({ "{") (expression_statement "*param_1 = uVar13;" (assignment_expression "*param_1 = uVar13" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "uVar13")) (; ";")) (} "}")) (else_clause "else {\n      do {\n        puVar12 = puVar12 + 1;\n        *puVar22 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar12;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      param_1[(int)((int)param_5 + -1)] = uVar13;\n    }" (else "else") (compound_statement "{\n      do {\n        puVar12 = puVar12 + 1;\n        *puVar22 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar12;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);\n      param_1[(int)((int)param_5 + -1)] = uVar13;\n    }" ({ "{") (do_statement "do {\n        puVar12 = puVar12 + 1;\n        *puVar22 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar12;\n        puVar22 = puVar22 + 1;\n      } while (puVar16 != (undefined1 *)0x0);" (do "do") (compound_statement "{\n        puVar12 = puVar12 + 1;\n        *puVar22 = uVar13;\n        puVar16 = puVar16 + -1;\n        uVar13 = *puVar12;\n        puVar22 = puVar22 + 1;\n      }" ({ "{") (expression_statement "puVar12 = puVar12 + 1;" (assignment_expression "puVar12 = puVar12 + 1" (identifier "puVar12") (= "=") (binary_expression "puVar12 + 1" (identifier "puVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar22 = uVar13;" (assignment_expression "*puVar22 = uVar13" (pointer_expression "*puVar22" (* "*") (identifier "puVar22")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "puVar16 = puVar16 + -1;" (assignment_expression "puVar16 = puVar16 + -1" (identifier "puVar16") (= "=") (binary_expression "puVar16 + -1" (identifier "puVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar13 = *puVar12;" (assignment_expression "uVar13 = *puVar12" (identifier "uVar13") (= "=") (pointer_expression "*puVar12" (* "*") (identifier "puVar12"))) (; ";")) (expression_statement "puVar22 = puVar22 + 1;" (assignment_expression "puVar22 = puVar22 + 1" (identifier "puVar22") (= "=") (binary_expression "puVar22 + 1" (identifier "puVar22") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar16 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar16 != (undefined1 *)0x0" (identifier "puVar16") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "param_1[(int)((int)param_5 + -1)] = uVar13;" (assignment_expression "param_1[(int)((int)param_5 + -1)] = uVar13" (subscript_expression "param_1[(int)((int)param_5 + -1)]" (identifier "param_1") ([ "[") (cast_expression "(int)((int)param_5 + -1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)param_5 + -1)" (( "(") (binary_expression "(int)param_5 + -1" (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (+ "+") (number_literal "-1")) () ")"))) (] "]")) (= "=") (identifier "uVar13")) (; ";")) (} "}")))) (} "}"))) (expression_statement "puVar22 = (undefined4 *)((int)puVar7 + -1);" (assignment_expression "puVar22 = (undefined4 *)((int)puVar7 + -1)" (identifier "puVar22") (= "=") (cast_expression "(undefined4 *)((int)puVar7 + -1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 + -1)" (( "(") (binary_expression "(int)puVar7 + -1" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (if_statement "if ((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) != 0) goto LAB_0007b010;" (if "if") (parenthesized_expression "((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) != 0)" (( "(") (binary_expression "(param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) != 0" (parenthesized_expression "(param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1)" (( "(") (binary_expression "param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1" (binary_expression "param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f)" (subscript_expression "param_3[(uint)puVar22 >> 5]" (identifier "param_3") ([ "[") (binary_expression "(uint)puVar22 >> 5" (cast_expression "(uint)puVar22" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar22")) (>> ">>") (number_literal "5")) (] "]")) (>> ">>") (parenthesized_expression "((uint)puVar22 & 0x1f)" (( "(") (binary_expression "(uint)puVar22 & 0x1f" (cast_expression "(uint)puVar22" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar22")) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0007b010;" (goto "goto") (statement_identifier "LAB_0007b010") (; ";"))) (labeled_statement "LAB_0007afb0:\n  puVar12 = param_1;" (statement_identifier "LAB_0007afb0") (: ":") (expression_statement "puVar12 = param_1;" (assignment_expression "puVar12 = param_1" (identifier "puVar12") (= "=") (identifier "param_1")) (; ";"))) (expression_statement "puVar14 = param_5;" (assignment_expression "puVar14 = param_5" (identifier "puVar14") (= "=") (identifier "param_5")) (; ";")) (expression_statement "(*(code *)PTR___gmpn_sqrlo_0009d354)(param_6);" (call_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)(param_6)" (parenthesized_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)" (( "(") (pointer_expression "*(code *)PTR___gmpn_sqrlo_0009d354" (* "*") (cast_expression "(code *)PTR___gmpn_sqrlo_0009d354" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_sqrlo_0009d354"))) () ")")) (argument_list "(param_6)" (( "(") (identifier "param_6") () ")"))) (; ";")) (expression_statement "puVar7 = puVar22;" (assignment_expression "puVar7 = puVar22" (identifier "puVar7") (= "=") (identifier "puVar22")) (; ";")) (expression_statement "puVar22 = local_30;" (assignment_expression "puVar22 = local_30" (identifier "puVar22") (= "=") (identifier "local_30")) (; ";")) (if_statement "if (param_5 != (undefined4 *)0x0) {\n    puVar12 = (undefined4 *)*param_6;\n    puVar21 = param_1;\n    puVar24 = param_1;\n    puVar10 = param_6;\n    for (puVar16 = local_3c; puVar16 != (undefined1 *)0x0; puVar16 = puVar16 + -1) {\n      puVar10 = puVar10 + 1;\n      *puVar24 = puVar12;\n      puVar12 = (undefined4 *)*puVar10;\n      puVar21 = param_1 + (int)((int)param_5 + -1);\n      puVar24 = puVar24 + 1;\n    }\n    *puVar21 = puVar12;\n  }" (if "if") (parenthesized_expression "(param_5 != (undefined4 *)0x0)" (( "(") (binary_expression "param_5 != (undefined4 *)0x0" (identifier "param_5") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar12 = (undefined4 *)*param_6;\n    puVar21 = param_1;\n    puVar24 = param_1;\n    puVar10 = param_6;\n    for (puVar16 = local_3c; puVar16 != (undefined1 *)0x0; puVar16 = puVar16 + -1) {\n      puVar10 = puVar10 + 1;\n      *puVar24 = puVar12;\n      puVar12 = (undefined4 *)*puVar10;\n      puVar21 = param_1 + (int)((int)param_5 + -1);\n      puVar24 = puVar24 + 1;\n    }\n    *puVar21 = puVar12;\n  }" ({ "{") (expression_statement "puVar12 = (undefined4 *)*param_6;" (assignment_expression "puVar12 = (undefined4 *)*param_6" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)*param_6" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_6" (* "*") (identifier "param_6")))) (; ";")) (expression_statement "puVar21 = param_1;" (assignment_expression "puVar21 = param_1" (identifier "puVar21") (= "=") (identifier "param_1")) (; ";")) (expression_statement "puVar24 = param_1;" (assignment_expression "puVar24 = param_1" (identifier "puVar24") (= "=") (identifier "param_1")) (; ";")) (expression_statement "puVar10 = param_6;" (assignment_expression "puVar10 = param_6" (identifier "puVar10") (= "=") (identifier "param_6")) (; ";")) (for_statement "for (puVar16 = local_3c; puVar16 != (undefined1 *)0x0; puVar16 = puVar16 + -1) {\n      puVar10 = puVar10 + 1;\n      *puVar24 = puVar12;\n      puVar12 = (undefined4 *)*puVar10;\n      puVar21 = param_1 + (int)((int)param_5 + -1);\n      puVar24 = puVar24 + 1;\n    }" (for "for") (( "(") (assignment_expression "puVar16 = local_3c" (identifier "puVar16") (= "=") (identifier "local_3c")) (; ";") (binary_expression "puVar16 != (undefined1 *)0x0" (identifier "puVar16") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar16 = puVar16 + -1" (identifier "puVar16") (= "=") (binary_expression "puVar16 + -1" (identifier "puVar16") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n      puVar10 = puVar10 + 1;\n      *puVar24 = puVar12;\n      puVar12 = (undefined4 *)*puVar10;\n      puVar21 = param_1 + (int)((int)param_5 + -1);\n      puVar24 = puVar24 + 1;\n    }" ({ "{") (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" (identifier "puVar10") (= "=") (binary_expression "puVar10 + 1" (identifier "puVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar24 = puVar12;" (assignment_expression "*puVar24 = puVar12" (pointer_expression "*puVar24" (* "*") (identifier "puVar24")) (= "=") (identifier "puVar12")) (; ";")) (expression_statement "puVar12 = (undefined4 *)*puVar10;" (assignment_expression "puVar12 = (undefined4 *)*puVar10" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)*puVar10" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar10" (* "*") (identifier "puVar10")))) (; ";")) (expression_statement "puVar21 = param_1 + (int)((int)param_5 + -1);" (assignment_expression "puVar21 = param_1 + (int)((int)param_5 + -1)" (identifier "puVar21") (= "=") (binary_expression "param_1 + (int)((int)param_5 + -1)" (identifier "param_1") (+ "+") (cast_expression "(int)((int)param_5 + -1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)param_5 + -1)" (( "(") (binary_expression "(int)param_5 + -1" (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (+ "+") (number_literal "-1")) () ")"))))) (; ";")) (expression_statement "puVar24 = puVar24 + 1;" (assignment_expression "puVar24 = puVar24 + 1" (identifier "puVar24") (= "=") (binary_expression "puVar24 + 1" (identifier "puVar24") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "*puVar21 = puVar12;" (assignment_expression "*puVar21 = puVar12" (pointer_expression "*puVar21" (* "*") (identifier "puVar21")) (= "=") (identifier "puVar12")) (; ";")) (} "}"))) (do_statement "do {\n    local_30 = puVar22;\n    if (puVar7 == (undefined4 *)0x0) {\n      if (puVar22 != (undefined4 *)0x0) {\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      uVar13 = 0x7b45c;\n      puVar27 = PTR___stack_chk_fail_0009d4d0;\n      (*(code *)PTR___stack_chk_fail_0009d4d0)();\n      uVar2 = *(uint *)(puVar30 + 0x10);\n      *(undefined4 **)(puVar30 + -0x24) = param_5;\n      *(undefined **)(puVar30 + -0x68) = puVar27 + 0x29be0;\n      *(undefined4 *)(puVar30 + -0x18) = 0;\n      *(undefined4 **)(puVar30 + -0x28) = puVar20;\n      *(undefined4 *)(puVar30 + -4) = uVar13;\n      *(undefined1 **)(puVar30 + -8) = auStack_70;\n      *(int *)(puVar30 + -0xc) = iVar25;\n      *(uint **)(puVar30 + -0x10) = param_3;\n      *(undefined4 **)(puVar30 + -0x14) = param_2;\n      *(undefined4 **)(puVar30 + -0x1c) = param_1;\n      *(undefined4 **)(puVar30 + -0x20) = param_6;\n      *(uint *)(puVar30 + -0x60) = uVar2;\n      *(undefined4 **)(puVar30 + -0x44) = puVar12;\n      *(undefined4 **)(puVar30 + -0x4c) = param_4;\n      piVar23 = *(int **)(puVar30 + 0x14);\n      iVar19 = *(int *)(puVar30 + 0x18);\n      *(undefined4 *)(puVar30 + -0x54) = *(undefined4 *)(puVar30 + 0x1c);\n      if (uVar2 < 3) {\n        iVar25 = 0;\n        *(undefined4 *)(puVar30 + -0x5c) = 1;\n        *(undefined4 *)(puVar30 + -0x50) = 2;\n        iVar4 = 1;\n        *(undefined4 *)(puVar30 + -0x58) = 1;\n      }\n      else {\n        if (uVar2 < 0x22) {\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }\n        else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }\n        *(int *)(puVar30 + -0x5c) = iVar4;\n        *(int *)(puVar30 + -0x50) = 1 << iVar4;\n        iVar25 = (1 << iVar4) + -2;\n      }\n      iVar11 = *piVar23;\n      iVar31 = iVar19 * 4;\n      puVar26 = *(undefined4 **)(puVar30 + -0x54);\n      puVar16 = (undefined1 *)(iVar19 + (int)puVar14);\n      puVar24 = puVar26 + iVar19;\n      uVar2 = (uint)*(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19));\n      puVar7 = puVar24 + iVar19;\n      puVar12 = puVar26 + iVar19 + 1;\n      *(undefined4 **)(puVar30 + -0x48) = puVar7 + (int)puVar16;\n      puVar21 = puVar26 + (iVar19 << iVar4);\n      *puVar24 = 1;\n      iVar4 = uVar2 * 2 - uVar2 * uVar2 * iVar11;\n      iVar4 = iVar4 * iVar4 * iVar11 + iVar4 * -2;\n      puVar20 = puVar24;\n      if (iVar19 == 0) {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c);\n        puVar12[iVar19] = 1;\n        *(undefined4 **)(puVar30 + -0x38) = puVar14;\n        *(undefined1 **)(puVar30 + -0x3c) = puVar16;\n        *(undefined4 **)(puVar30 + -0x40) = puVar7;\n        *(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar11 = *(int *)(puVar30 + -0x40);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        if (iVar18 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar6 = iVar28 + -1;\n        puVar7 = (undefined4 *)(iVar11 + iVar31);\n        uVar13 = **(undefined4 **)(puVar30 + -0x44);\n        if (iVar6 != 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          puVar12 = puVar7;\n          goto LAB_0007b70c;\n        }\n        uVar5 = *(undefined4 *)(puVar30 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n        *puVar7 = uVar13;\n        *(undefined4 *)(puVar30 + -0x70) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);\n        *(undefined4 **)(puVar30 + -0x2c) = puVar14;\n        *(undefined1 **)(puVar30 + -0x30) = puVar16;\n        *(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;\n        *(undefined4 **)(puVar30 + -0x38) = puVar7;\n        *(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;\n        uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);\n        uVar5 = *puVar24;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);\n        *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);\n        *(undefined4 *)(puVar30 + -0x3c) = uVar13;\n        **(undefined4 **)(puVar30 + -0x34) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);\n        iVar11 = iVar19 + -1;\n        puVar7 = *(undefined4 **)(puVar30 + -0x3c);\n        iVar28 = *(int *)(puVar30 + -0x68);\n        uVar13 = *(undefined4 *)(puVar30 + -0x38);\n        uVar17 = *(undefined4 *)(puVar30 + -0x30);\n        uVar5 = *puVar7;\n        uVar15 = *(undefined4 *)(puVar30 + -0x2c);\n        if (iVar11 == 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }\n        else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);\n        *(undefined4 *)(puVar30 + -0x38) = uVar15;\n        *(undefined4 *)(puVar30 + -0x3c) = uVar17;\n        *puVar26 = uVar5;\n        iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        if (iVar28 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }\n        else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }\n        iVar28 = *(int *)(puVar30 + -0x40);\n        uVar13 = *puVar26;\n        puVar7 = puVar24;\n        if (iVar28 == 0) {\n          *puVar24 = uVar13;\n        }\n        else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }\n      }\njoined_r0x0007b75c:\n      for (; iVar25 != 0; iVar25 = iVar25 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);\n        puVar20 = puVar20 + iVar19;\n        *(int *)(puVar30 + -0x70) = iVar4;\n        uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      uVar2 = *(uint *)(puVar30 + -0x5c);\n      if (*(uint *)(puVar30 + -0x60) < uVar2) {\n        (**(code **)(iVar11 + -0x7c20))\n                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438);\n        uVar2 = extraout_v1;\n      }\n      uVar2 = *(int *)(puVar30 + -0x60) - uVar2;\n      uVar9 = 0x20 - (uVar2 & 0x1f);\n      puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4);\n      uVar3 = *puVar8 >> (uVar2 & 0x1f);\n      if ((int)uVar9 < *(int *)(puVar30 + -0x58)) {\n        uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f));\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bac);\n      *(int *)(puVar30 + -0x44) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f));\n      *(uint *)(puVar30 + -0x70) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)) & uVar3;\n      (*UNRECOVERED_JUMPTABLE)\n                (puVar22,*(undefined4 *)(puVar30 + -0x54),iVar19,*(undefined4 *)(puVar30 + -0x50));\n      iVar25 = *(int *)(puVar30 + -0x68);\n      if (uVar2 != 0) {\n        *(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39);\n        do {\n          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n          if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);\n          *(undefined4 *)(puVar30 + -0x70) = uVar13;\n          (*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);\n          *(int *)(puVar30 + -0x70) = iVar4;\n          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n          iVar25 = *(int *)(puVar30 + -0x68);\n          uVar2 = uVar9;\n        } while (uVar9 != 0);\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7eb0);\n      if (iVar19 != 0) {\n        iVar11 = iVar19 + -1;\n        uVar13 = *puVar22;\n        puVar20 = puVar21;\n        puVar26 = puVar22;\n        if (iVar11 != 0) {\n          do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar20 = puVar21 + iVar19 + -1;\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58);\n        *puVar20 = uVar13;\n        (*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0);\n      }\n      *(int *)(puVar30 + -0x70) = iVar4;\n      uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar22,puVar21,piVar23,iVar19);\n      *(int *)(puVar30 + -0x70) = iVar19;\n      (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n      iVar25 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))(puVar21,puVar22,piVar23,iVar19);\n      UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7a70);\n      *(int *)(puVar30 + 0x10) = iVar19;\n                    \n                    \n      (*UNRECOVERED_JUMPTABLE)(iVar25 == 0,puVar22,puVar22,piVar23);\n      return;\n    }\n    puVar22 = (undefined4 *)((int)puVar7 + -1);\n    if ((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) == 0) goto LAB_0007afb0;\nLAB_0007b010:\n    if (puVar7 < local_44) {\n      uVar3 = ~(-1 << ((uint)puVar7 & 0x1f)) & *param_3;\n      uVar9 = 0;\n      if ((uVar3 & 0xff) == 0) goto LAB_0007b270;\nLAB_0007b040:\n      uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2;\n    }\n    else {\n      uVar9 = (int)puVar7 - (int)local_44;\n      uVar2 = 0x20 - (uVar9 & 0x1f);\n      uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f);\n      if ((int)uVar2 < (int)local_44) {\n        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));\n      }\n      uVar3 = uVar3 & local_4c;\n      puVar7 = local_44;\n      if ((uVar3 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar2 = uVar3 >> 8;\n      iVar19 = 0x1e;\n      if (uVar2 != 0) {\n        iVar19 = 6;\n      }\n      uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19;\n    }\n    param_2 = (undefined4 *)((int)puVar7 - uVar2);\n    puVar7 = param_2;\n    if (1 < (int)param_2) {\n      do {\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n        puVar20 = (undefined4 *)((int)puVar7 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5);\n        puVar7 = puVar20;\n      } while (1 < (int)puVar20);\n      param_2 = (undefined4 *)((uint)param_2 & 1);\n    }\n    if (param_2 == (undefined4 *)0x0) {\n      if (param_5 != (undefined4 *)0x0) {\n        uVar13 = *param_1;\n        puVar7 = param_6;\n        if (local_3c != (undefined1 *)0x0) {\n          puVar16 = local_3c;\n          puVar22 = param_6;\n          puVar12 = param_1 + 1;\n          do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);\n        }\n        *puVar7 = uVar13;\n      }\n    }\n    else {\n      (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n    }\n    puVar14 = (undefined4 *)(((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25 + (int)puVar26);\n    puVar12 = param_6;\n    param_4 = param_5;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(param_1);\n    puVar7 = (undefined4 *)(uVar2 + uVar9);\n    puVar22 = local_30;\n  } while( true );" (do "do") (compound_statement "{\n    local_30 = puVar22;\n    if (puVar7 == (undefined4 *)0x0) {\n      if (puVar22 != (undefined4 *)0x0) {\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      uVar13 = 0x7b45c;\n      puVar27 = PTR___stack_chk_fail_0009d4d0;\n      (*(code *)PTR___stack_chk_fail_0009d4d0)();\n      uVar2 = *(uint *)(puVar30 + 0x10);\n      *(undefined4 **)(puVar30 + -0x24) = param_5;\n      *(undefined **)(puVar30 + -0x68) = puVar27 + 0x29be0;\n      *(undefined4 *)(puVar30 + -0x18) = 0;\n      *(undefined4 **)(puVar30 + -0x28) = puVar20;\n      *(undefined4 *)(puVar30 + -4) = uVar13;\n      *(undefined1 **)(puVar30 + -8) = auStack_70;\n      *(int *)(puVar30 + -0xc) = iVar25;\n      *(uint **)(puVar30 + -0x10) = param_3;\n      *(undefined4 **)(puVar30 + -0x14) = param_2;\n      *(undefined4 **)(puVar30 + -0x1c) = param_1;\n      *(undefined4 **)(puVar30 + -0x20) = param_6;\n      *(uint *)(puVar30 + -0x60) = uVar2;\n      *(undefined4 **)(puVar30 + -0x44) = puVar12;\n      *(undefined4 **)(puVar30 + -0x4c) = param_4;\n      piVar23 = *(int **)(puVar30 + 0x14);\n      iVar19 = *(int *)(puVar30 + 0x18);\n      *(undefined4 *)(puVar30 + -0x54) = *(undefined4 *)(puVar30 + 0x1c);\n      if (uVar2 < 3) {\n        iVar25 = 0;\n        *(undefined4 *)(puVar30 + -0x5c) = 1;\n        *(undefined4 *)(puVar30 + -0x50) = 2;\n        iVar4 = 1;\n        *(undefined4 *)(puVar30 + -0x58) = 1;\n      }\n      else {\n        if (uVar2 < 0x22) {\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }\n        else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }\n        *(int *)(puVar30 + -0x5c) = iVar4;\n        *(int *)(puVar30 + -0x50) = 1 << iVar4;\n        iVar25 = (1 << iVar4) + -2;\n      }\n      iVar11 = *piVar23;\n      iVar31 = iVar19 * 4;\n      puVar26 = *(undefined4 **)(puVar30 + -0x54);\n      puVar16 = (undefined1 *)(iVar19 + (int)puVar14);\n      puVar24 = puVar26 + iVar19;\n      uVar2 = (uint)*(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19));\n      puVar7 = puVar24 + iVar19;\n      puVar12 = puVar26 + iVar19 + 1;\n      *(undefined4 **)(puVar30 + -0x48) = puVar7 + (int)puVar16;\n      puVar21 = puVar26 + (iVar19 << iVar4);\n      *puVar24 = 1;\n      iVar4 = uVar2 * 2 - uVar2 * uVar2 * iVar11;\n      iVar4 = iVar4 * iVar4 * iVar11 + iVar4 * -2;\n      puVar20 = puVar24;\n      if (iVar19 == 0) {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c);\n        puVar12[iVar19] = 1;\n        *(undefined4 **)(puVar30 + -0x38) = puVar14;\n        *(undefined1 **)(puVar30 + -0x3c) = puVar16;\n        *(undefined4 **)(puVar30 + -0x40) = puVar7;\n        *(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar11 = *(int *)(puVar30 + -0x40);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        if (iVar18 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar6 = iVar28 + -1;\n        puVar7 = (undefined4 *)(iVar11 + iVar31);\n        uVar13 = **(undefined4 **)(puVar30 + -0x44);\n        if (iVar6 != 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          puVar12 = puVar7;\n          goto LAB_0007b70c;\n        }\n        uVar5 = *(undefined4 *)(puVar30 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n        *puVar7 = uVar13;\n        *(undefined4 *)(puVar30 + -0x70) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);\n        *(undefined4 **)(puVar30 + -0x2c) = puVar14;\n        *(undefined1 **)(puVar30 + -0x30) = puVar16;\n        *(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;\n        *(undefined4 **)(puVar30 + -0x38) = puVar7;\n        *(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;\n        uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);\n        uVar5 = *puVar24;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);\n        *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);\n        *(undefined4 *)(puVar30 + -0x3c) = uVar13;\n        **(undefined4 **)(puVar30 + -0x34) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);\n        iVar11 = iVar19 + -1;\n        puVar7 = *(undefined4 **)(puVar30 + -0x3c);\n        iVar28 = *(int *)(puVar30 + -0x68);\n        uVar13 = *(undefined4 *)(puVar30 + -0x38);\n        uVar17 = *(undefined4 *)(puVar30 + -0x30);\n        uVar5 = *puVar7;\n        uVar15 = *(undefined4 *)(puVar30 + -0x2c);\n        if (iVar11 == 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }\n        else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);\n        *(undefined4 *)(puVar30 + -0x38) = uVar15;\n        *(undefined4 *)(puVar30 + -0x3c) = uVar17;\n        *puVar26 = uVar5;\n        iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        if (iVar28 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }\n        else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }\n        iVar28 = *(int *)(puVar30 + -0x40);\n        uVar13 = *puVar26;\n        puVar7 = puVar24;\n        if (iVar28 == 0) {\n          *puVar24 = uVar13;\n        }\n        else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }\n      }\njoined_r0x0007b75c:\n      for (; iVar25 != 0; iVar25 = iVar25 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);\n        puVar20 = puVar20 + iVar19;\n        *(int *)(puVar30 + -0x70) = iVar4;\n        uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      uVar2 = *(uint *)(puVar30 + -0x5c);\n      if (*(uint *)(puVar30 + -0x60) < uVar2) {\n        (**(code **)(iVar11 + -0x7c20))\n                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438);\n        uVar2 = extraout_v1;\n      }\n      uVar2 = *(int *)(puVar30 + -0x60) - uVar2;\n      uVar9 = 0x20 - (uVar2 & 0x1f);\n      puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4);\n      uVar3 = *puVar8 >> (uVar2 & 0x1f);\n      if ((int)uVar9 < *(int *)(puVar30 + -0x58)) {\n        uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f));\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bac);\n      *(int *)(puVar30 + -0x44) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f));\n      *(uint *)(puVar30 + -0x70) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)) & uVar3;\n      (*UNRECOVERED_JUMPTABLE)\n                (puVar22,*(undefined4 *)(puVar30 + -0x54),iVar19,*(undefined4 *)(puVar30 + -0x50));\n      iVar25 = *(int *)(puVar30 + -0x68);\n      if (uVar2 != 0) {\n        *(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39);\n        do {\n          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n          if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);\n          *(undefined4 *)(puVar30 + -0x70) = uVar13;\n          (*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);\n          *(int *)(puVar30 + -0x70) = iVar4;\n          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n          iVar25 = *(int *)(puVar30 + -0x68);\n          uVar2 = uVar9;\n        } while (uVar9 != 0);\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7eb0);\n      if (iVar19 != 0) {\n        iVar11 = iVar19 + -1;\n        uVar13 = *puVar22;\n        puVar20 = puVar21;\n        puVar26 = puVar22;\n        if (iVar11 != 0) {\n          do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar20 = puVar21 + iVar19 + -1;\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58);\n        *puVar20 = uVar13;\n        (*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0);\n      }\n      *(int *)(puVar30 + -0x70) = iVar4;\n      uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar22,puVar21,piVar23,iVar19);\n      *(int *)(puVar30 + -0x70) = iVar19;\n      (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n      iVar25 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))(puVar21,puVar22,piVar23,iVar19);\n      UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7a70);\n      *(int *)(puVar30 + 0x10) = iVar19;\n                    \n                    \n      (*UNRECOVERED_JUMPTABLE)(iVar25 == 0,puVar22,puVar22,piVar23);\n      return;\n    }\n    puVar22 = (undefined4 *)((int)puVar7 + -1);\n    if ((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) == 0) goto LAB_0007afb0;\nLAB_0007b010:\n    if (puVar7 < local_44) {\n      uVar3 = ~(-1 << ((uint)puVar7 & 0x1f)) & *param_3;\n      uVar9 = 0;\n      if ((uVar3 & 0xff) == 0) goto LAB_0007b270;\nLAB_0007b040:\n      uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2;\n    }\n    else {\n      uVar9 = (int)puVar7 - (int)local_44;\n      uVar2 = 0x20 - (uVar9 & 0x1f);\n      uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f);\n      if ((int)uVar2 < (int)local_44) {\n        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));\n      }\n      uVar3 = uVar3 & local_4c;\n      puVar7 = local_44;\n      if ((uVar3 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar2 = uVar3 >> 8;\n      iVar19 = 0x1e;\n      if (uVar2 != 0) {\n        iVar19 = 6;\n      }\n      uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19;\n    }\n    param_2 = (undefined4 *)((int)puVar7 - uVar2);\n    puVar7 = param_2;\n    if (1 < (int)param_2) {\n      do {\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n        puVar20 = (undefined4 *)((int)puVar7 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5);\n        puVar7 = puVar20;\n      } while (1 < (int)puVar20);\n      param_2 = (undefined4 *)((uint)param_2 & 1);\n    }\n    if (param_2 == (undefined4 *)0x0) {\n      if (param_5 != (undefined4 *)0x0) {\n        uVar13 = *param_1;\n        puVar7 = param_6;\n        if (local_3c != (undefined1 *)0x0) {\n          puVar16 = local_3c;\n          puVar22 = param_6;\n          puVar12 = param_1 + 1;\n          do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);\n        }\n        *puVar7 = uVar13;\n      }\n    }\n    else {\n      (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n    }\n    puVar14 = (undefined4 *)(((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25 + (int)puVar26);\n    puVar12 = param_6;\n    param_4 = param_5;\n    (*(code *)PTR___gmpn_mullo_n_0009d234)(param_1);\n    puVar7 = (undefined4 *)(uVar2 + uVar9);\n    puVar22 = local_30;\n  }" ({ "{") (expression_statement "local_30 = puVar22;" (assignment_expression "local_30 = puVar22" (identifier "local_30") (= "=") (identifier "puVar22")) (; ";")) (if_statement "if (puVar7 == (undefined4 *)0x0) {\n      if (puVar22 != (undefined4 *)0x0) {\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      uVar13 = 0x7b45c;\n      puVar27 = PTR___stack_chk_fail_0009d4d0;\n      (*(code *)PTR___stack_chk_fail_0009d4d0)();\n      uVar2 = *(uint *)(puVar30 + 0x10);\n      *(undefined4 **)(puVar30 + -0x24) = param_5;\n      *(undefined **)(puVar30 + -0x68) = puVar27 + 0x29be0;\n      *(undefined4 *)(puVar30 + -0x18) = 0;\n      *(undefined4 **)(puVar30 + -0x28) = puVar20;\n      *(undefined4 *)(puVar30 + -4) = uVar13;\n      *(undefined1 **)(puVar30 + -8) = auStack_70;\n      *(int *)(puVar30 + -0xc) = iVar25;\n      *(uint **)(puVar30 + -0x10) = param_3;\n      *(undefined4 **)(puVar30 + -0x14) = param_2;\n      *(undefined4 **)(puVar30 + -0x1c) = param_1;\n      *(undefined4 **)(puVar30 + -0x20) = param_6;\n      *(uint *)(puVar30 + -0x60) = uVar2;\n      *(undefined4 **)(puVar30 + -0x44) = puVar12;\n      *(undefined4 **)(puVar30 + -0x4c) = param_4;\n      piVar23 = *(int **)(puVar30 + 0x14);\n      iVar19 = *(int *)(puVar30 + 0x18);\n      *(undefined4 *)(puVar30 + -0x54) = *(undefined4 *)(puVar30 + 0x1c);\n      if (uVar2 < 3) {\n        iVar25 = 0;\n        *(undefined4 *)(puVar30 + -0x5c) = 1;\n        *(undefined4 *)(puVar30 + -0x50) = 2;\n        iVar4 = 1;\n        *(undefined4 *)(puVar30 + -0x58) = 1;\n      }\n      else {\n        if (uVar2 < 0x22) {\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }\n        else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }\n        *(int *)(puVar30 + -0x5c) = iVar4;\n        *(int *)(puVar30 + -0x50) = 1 << iVar4;\n        iVar25 = (1 << iVar4) + -2;\n      }\n      iVar11 = *piVar23;\n      iVar31 = iVar19 * 4;\n      puVar26 = *(undefined4 **)(puVar30 + -0x54);\n      puVar16 = (undefined1 *)(iVar19 + (int)puVar14);\n      puVar24 = puVar26 + iVar19;\n      uVar2 = (uint)*(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19));\n      puVar7 = puVar24 + iVar19;\n      puVar12 = puVar26 + iVar19 + 1;\n      *(undefined4 **)(puVar30 + -0x48) = puVar7 + (int)puVar16;\n      puVar21 = puVar26 + (iVar19 << iVar4);\n      *puVar24 = 1;\n      iVar4 = uVar2 * 2 - uVar2 * uVar2 * iVar11;\n      iVar4 = iVar4 * iVar4 * iVar11 + iVar4 * -2;\n      puVar20 = puVar24;\n      if (iVar19 == 0) {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c);\n        puVar12[iVar19] = 1;\n        *(undefined4 **)(puVar30 + -0x38) = puVar14;\n        *(undefined1 **)(puVar30 + -0x3c) = puVar16;\n        *(undefined4 **)(puVar30 + -0x40) = puVar7;\n        *(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar11 = *(int *)(puVar30 + -0x40);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        if (iVar18 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar6 = iVar28 + -1;\n        puVar7 = (undefined4 *)(iVar11 + iVar31);\n        uVar13 = **(undefined4 **)(puVar30 + -0x44);\n        if (iVar6 != 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          puVar12 = puVar7;\n          goto LAB_0007b70c;\n        }\n        uVar5 = *(undefined4 *)(puVar30 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n        *puVar7 = uVar13;\n        *(undefined4 *)(puVar30 + -0x70) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);\n        *(undefined4 **)(puVar30 + -0x2c) = puVar14;\n        *(undefined1 **)(puVar30 + -0x30) = puVar16;\n        *(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;\n        *(undefined4 **)(puVar30 + -0x38) = puVar7;\n        *(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;\n        uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);\n        uVar5 = *puVar24;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);\n        *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);\n        *(undefined4 *)(puVar30 + -0x3c) = uVar13;\n        **(undefined4 **)(puVar30 + -0x34) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);\n        iVar11 = iVar19 + -1;\n        puVar7 = *(undefined4 **)(puVar30 + -0x3c);\n        iVar28 = *(int *)(puVar30 + -0x68);\n        uVar13 = *(undefined4 *)(puVar30 + -0x38);\n        uVar17 = *(undefined4 *)(puVar30 + -0x30);\n        uVar5 = *puVar7;\n        uVar15 = *(undefined4 *)(puVar30 + -0x2c);\n        if (iVar11 == 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }\n        else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);\n        *(undefined4 *)(puVar30 + -0x38) = uVar15;\n        *(undefined4 *)(puVar30 + -0x3c) = uVar17;\n        *puVar26 = uVar5;\n        iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        if (iVar28 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }\n        else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }\n        iVar28 = *(int *)(puVar30 + -0x40);\n        uVar13 = *puVar26;\n        puVar7 = puVar24;\n        if (iVar28 == 0) {\n          *puVar24 = uVar13;\n        }\n        else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }\n      }\njoined_r0x0007b75c:\n      for (; iVar25 != 0; iVar25 = iVar25 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);\n        puVar20 = puVar20 + iVar19;\n        *(int *)(puVar30 + -0x70) = iVar4;\n        uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      uVar2 = *(uint *)(puVar30 + -0x5c);\n      if (*(uint *)(puVar30 + -0x60) < uVar2) {\n        (**(code **)(iVar11 + -0x7c20))\n                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438);\n        uVar2 = extraout_v1;\n      }\n      uVar2 = *(int *)(puVar30 + -0x60) - uVar2;\n      uVar9 = 0x20 - (uVar2 & 0x1f);\n      puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4);\n      uVar3 = *puVar8 >> (uVar2 & 0x1f);\n      if ((int)uVar9 < *(int *)(puVar30 + -0x58)) {\n        uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f));\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bac);\n      *(int *)(puVar30 + -0x44) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f));\n      *(uint *)(puVar30 + -0x70) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)) & uVar3;\n      (*UNRECOVERED_JUMPTABLE)\n                (puVar22,*(undefined4 *)(puVar30 + -0x54),iVar19,*(undefined4 *)(puVar30 + -0x50));\n      iVar25 = *(int *)(puVar30 + -0x68);\n      if (uVar2 != 0) {\n        *(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39);\n        do {\n          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n          if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);\n          *(undefined4 *)(puVar30 + -0x70) = uVar13;\n          (*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);\n          *(int *)(puVar30 + -0x70) = iVar4;\n          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n          iVar25 = *(int *)(puVar30 + -0x68);\n          uVar2 = uVar9;\n        } while (uVar9 != 0);\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7eb0);\n      if (iVar19 != 0) {\n        iVar11 = iVar19 + -1;\n        uVar13 = *puVar22;\n        puVar20 = puVar21;\n        puVar26 = puVar22;\n        if (iVar11 != 0) {\n          do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar20 = puVar21 + iVar19 + -1;\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58);\n        *puVar20 = uVar13;\n        (*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0);\n      }\n      *(int *)(puVar30 + -0x70) = iVar4;\n      uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar22,puVar21,piVar23,iVar19);\n      *(int *)(puVar30 + -0x70) = iVar19;\n      (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n      iVar25 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))(puVar21,puVar22,piVar23,iVar19);\n      UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7a70);\n      *(int *)(puVar30 + 0x10) = iVar19;\n                    \n                    \n      (*UNRECOVERED_JUMPTABLE)(iVar25 == 0,puVar22,puVar22,piVar23);\n      return;\n    }" (if "if") (parenthesized_expression "(puVar7 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar7 == (undefined4 *)0x0" (identifier "puVar7") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      if (puVar22 != (undefined4 *)0x0) {\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      uVar13 = 0x7b45c;\n      puVar27 = PTR___stack_chk_fail_0009d4d0;\n      (*(code *)PTR___stack_chk_fail_0009d4d0)();\n      uVar2 = *(uint *)(puVar30 + 0x10);\n      *(undefined4 **)(puVar30 + -0x24) = param_5;\n      *(undefined **)(puVar30 + -0x68) = puVar27 + 0x29be0;\n      *(undefined4 *)(puVar30 + -0x18) = 0;\n      *(undefined4 **)(puVar30 + -0x28) = puVar20;\n      *(undefined4 *)(puVar30 + -4) = uVar13;\n      *(undefined1 **)(puVar30 + -8) = auStack_70;\n      *(int *)(puVar30 + -0xc) = iVar25;\n      *(uint **)(puVar30 + -0x10) = param_3;\n      *(undefined4 **)(puVar30 + -0x14) = param_2;\n      *(undefined4 **)(puVar30 + -0x1c) = param_1;\n      *(undefined4 **)(puVar30 + -0x20) = param_6;\n      *(uint *)(puVar30 + -0x60) = uVar2;\n      *(undefined4 **)(puVar30 + -0x44) = puVar12;\n      *(undefined4 **)(puVar30 + -0x4c) = param_4;\n      piVar23 = *(int **)(puVar30 + 0x14);\n      iVar19 = *(int *)(puVar30 + 0x18);\n      *(undefined4 *)(puVar30 + -0x54) = *(undefined4 *)(puVar30 + 0x1c);\n      if (uVar2 < 3) {\n        iVar25 = 0;\n        *(undefined4 *)(puVar30 + -0x5c) = 1;\n        *(undefined4 *)(puVar30 + -0x50) = 2;\n        iVar4 = 1;\n        *(undefined4 *)(puVar30 + -0x58) = 1;\n      }\n      else {\n        if (uVar2 < 0x22) {\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }\n        else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }\n        *(int *)(puVar30 + -0x5c) = iVar4;\n        *(int *)(puVar30 + -0x50) = 1 << iVar4;\n        iVar25 = (1 << iVar4) + -2;\n      }\n      iVar11 = *piVar23;\n      iVar31 = iVar19 * 4;\n      puVar26 = *(undefined4 **)(puVar30 + -0x54);\n      puVar16 = (undefined1 *)(iVar19 + (int)puVar14);\n      puVar24 = puVar26 + iVar19;\n      uVar2 = (uint)*(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19));\n      puVar7 = puVar24 + iVar19;\n      puVar12 = puVar26 + iVar19 + 1;\n      *(undefined4 **)(puVar30 + -0x48) = puVar7 + (int)puVar16;\n      puVar21 = puVar26 + (iVar19 << iVar4);\n      *puVar24 = 1;\n      iVar4 = uVar2 * 2 - uVar2 * uVar2 * iVar11;\n      iVar4 = iVar4 * iVar4 * iVar11 + iVar4 * -2;\n      puVar20 = puVar24;\n      if (iVar19 == 0) {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c);\n        puVar12[iVar19] = 1;\n        *(undefined4 **)(puVar30 + -0x38) = puVar14;\n        *(undefined1 **)(puVar30 + -0x3c) = puVar16;\n        *(undefined4 **)(puVar30 + -0x40) = puVar7;\n        *(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar11 = *(int *)(puVar30 + -0x40);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        if (iVar18 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar6 = iVar28 + -1;\n        puVar7 = (undefined4 *)(iVar11 + iVar31);\n        uVar13 = **(undefined4 **)(puVar30 + -0x44);\n        if (iVar6 != 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          puVar12 = puVar7;\n          goto LAB_0007b70c;\n        }\n        uVar5 = *(undefined4 *)(puVar30 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n        *puVar7 = uVar13;\n        *(undefined4 *)(puVar30 + -0x70) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);\n        *(undefined4 **)(puVar30 + -0x2c) = puVar14;\n        *(undefined1 **)(puVar30 + -0x30) = puVar16;\n        *(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;\n        *(undefined4 **)(puVar30 + -0x38) = puVar7;\n        *(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;\n        uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);\n        uVar5 = *puVar24;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);\n        *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);\n        *(undefined4 *)(puVar30 + -0x3c) = uVar13;\n        **(undefined4 **)(puVar30 + -0x34) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);\n        iVar11 = iVar19 + -1;\n        puVar7 = *(undefined4 **)(puVar30 + -0x3c);\n        iVar28 = *(int *)(puVar30 + -0x68);\n        uVar13 = *(undefined4 *)(puVar30 + -0x38);\n        uVar17 = *(undefined4 *)(puVar30 + -0x30);\n        uVar5 = *puVar7;\n        uVar15 = *(undefined4 *)(puVar30 + -0x2c);\n        if (iVar11 == 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }\n        else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);\n        *(undefined4 *)(puVar30 + -0x38) = uVar15;\n        *(undefined4 *)(puVar30 + -0x3c) = uVar17;\n        *puVar26 = uVar5;\n        iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        if (iVar28 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }\n        else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }\n        iVar28 = *(int *)(puVar30 + -0x40);\n        uVar13 = *puVar26;\n        puVar7 = puVar24;\n        if (iVar28 == 0) {\n          *puVar24 = uVar13;\n        }\n        else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }\n      }\njoined_r0x0007b75c:\n      for (; iVar25 != 0; iVar25 = iVar25 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);\n        puVar20 = puVar20 + iVar19;\n        *(int *)(puVar30 + -0x70) = iVar4;\n        uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      uVar2 = *(uint *)(puVar30 + -0x5c);\n      if (*(uint *)(puVar30 + -0x60) < uVar2) {\n        (**(code **)(iVar11 + -0x7c20))\n                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438);\n        uVar2 = extraout_v1;\n      }\n      uVar2 = *(int *)(puVar30 + -0x60) - uVar2;\n      uVar9 = 0x20 - (uVar2 & 0x1f);\n      puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4);\n      uVar3 = *puVar8 >> (uVar2 & 0x1f);\n      if ((int)uVar9 < *(int *)(puVar30 + -0x58)) {\n        uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f));\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bac);\n      *(int *)(puVar30 + -0x44) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f));\n      *(uint *)(puVar30 + -0x70) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)) & uVar3;\n      (*UNRECOVERED_JUMPTABLE)\n                (puVar22,*(undefined4 *)(puVar30 + -0x54),iVar19,*(undefined4 *)(puVar30 + -0x50));\n      iVar25 = *(int *)(puVar30 + -0x68);\n      if (uVar2 != 0) {\n        *(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39);\n        do {\n          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n          if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);\n          *(undefined4 *)(puVar30 + -0x70) = uVar13;\n          (*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);\n          *(int *)(puVar30 + -0x70) = iVar4;\n          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n          iVar25 = *(int *)(puVar30 + -0x68);\n          uVar2 = uVar9;\n        } while (uVar9 != 0);\n      }\n      UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7eb0);\n      if (iVar19 != 0) {\n        iVar11 = iVar19 + -1;\n        uVar13 = *puVar22;\n        puVar20 = puVar21;\n        puVar26 = puVar22;\n        if (iVar11 != 0) {\n          do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar20 = puVar21 + iVar19 + -1;\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58);\n        *puVar20 = uVar13;\n        (*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0);\n      }\n      *(int *)(puVar30 + -0x70) = iVar4;\n      uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar22,puVar21,piVar23,iVar19);\n      *(int *)(puVar30 + -0x70) = iVar19;\n      (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n      iVar25 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))(puVar21,puVar22,piVar23,iVar19);\n      UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7a70);\n      *(int *)(puVar30 + 0x10) = iVar19;\n                    \n                    \n      (*UNRECOVERED_JUMPTABLE)(iVar25 == 0,puVar22,puVar22,piVar23);\n      return;\n    }" ({ "{") (if_statement "if (puVar22 != (undefined4 *)0x0) {\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }" (if "if") (parenthesized_expression "(puVar22 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar22 != (undefined4 *)0x0" (identifier "puVar22") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();\n      }" ({ "{") (expression_statement "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();" (call_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)()" (parenthesized_expression "(*(code *)PTR___gmp_tmp_reentrant_free_0009d618)" (( "(") (pointer_expression "*(code *)PTR___gmp_tmp_reentrant_free_0009d618" (* "*") (cast_expression "(code *)PTR___gmp_tmp_reentrant_free_0009d618" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmp_tmp_reentrant_free_0009d618"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_2c == *(int *)puVar1) {\n        return;\n      }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar1)" (( "(") (binary_expression "local_2c == *(int *)puVar1" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar1" (* "*") (cast_expression "(int *)puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1")))) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar13 = 0x7b45c;" (assignment_expression "uVar13 = 0x7b45c" (identifier "uVar13") (= "=") (number_literal "0x7b45c")) (; ";")) (expression_statement "puVar27 = PTR___stack_chk_fail_0009d4d0;" (assignment_expression "puVar27 = PTR___stack_chk_fail_0009d4d0" (identifier "puVar27") (= "=") (identifier "PTR___stack_chk_fail_0009d4d0")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0009d4d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0009d4d0)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0009d4d0" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0009d4d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0009d4d0"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar2 = *(uint *)(puVar30 + 0x10);" (assignment_expression "uVar2 = *(uint *)(puVar30 + 0x10)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(puVar30 + 0x10)" (* "*") (cast_expression "(uint *)(puVar30 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + 0x10)" (( "(") (binary_expression "puVar30 + 0x10" (identifier "puVar30") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "*(undefined4 **)(puVar30 + -0x24) = param_5;" (assignment_expression "*(undefined4 **)(puVar30 + -0x24) = param_5" (pointer_expression "*(undefined4 **)(puVar30 + -0x24)" (* "*") (cast_expression "(undefined4 **)(puVar30 + -0x24)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x24)" (( "(") (binary_expression "puVar30 + -0x24" (identifier "puVar30") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (identifier "param_5")) (; ";")) (expression_statement "*(undefined **)(puVar30 + -0x68) = puVar27 + 0x29be0;" (assignment_expression "*(undefined **)(puVar30 + -0x68) = puVar27 + 0x29be0" (pointer_expression "*(undefined **)(puVar30 + -0x68)" (* "*") (cast_expression "(undefined **)(puVar30 + -0x68)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x68)" (( "(") (binary_expression "puVar30 + -0x68" (identifier "puVar30") (+ "+") (number_literal "-0x68")) () ")")))) (= "=") (binary_expression "puVar27 + 0x29be0" (identifier "puVar27") (+ "+") (number_literal "0x29be0"))) (; ";")) (expression_statement "*(undefined4 *)(puVar30 + -0x18) = 0;" (assignment_expression "*(undefined4 *)(puVar30 + -0x18) = 0" (pointer_expression "*(undefined4 *)(puVar30 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x18)" (( "(") (binary_expression "puVar30 + -0x18" (identifier "puVar30") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 **)(puVar30 + -0x28) = puVar20;" (assignment_expression "*(undefined4 **)(puVar30 + -0x28) = puVar20" (pointer_expression "*(undefined4 **)(puVar30 + -0x28)" (* "*") (cast_expression "(undefined4 **)(puVar30 + -0x28)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x28)" (( "(") (binary_expression "puVar30 + -0x28" (identifier "puVar30") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (identifier "puVar20")) (; ";")) (expression_statement "*(undefined4 *)(puVar30 + -4) = uVar13;" (assignment_expression "*(undefined4 *)(puVar30 + -4) = uVar13" (pointer_expression "*(undefined4 *)(puVar30 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -4)" (( "(") (binary_expression "puVar30 + -4" (identifier "puVar30") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "*(undefined1 **)(puVar30 + -8) = auStack_70;" (assignment_expression "*(undefined1 **)(puVar30 + -8) = auStack_70" (pointer_expression "*(undefined1 **)(puVar30 + -8)" (* "*") (cast_expression "(undefined1 **)(puVar30 + -8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -8)" (( "(") (binary_expression "puVar30 + -8" (identifier "puVar30") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "auStack_70")) (; ";")) (expression_statement "*(int *)(puVar30 + -0xc) = iVar25;" (assignment_expression "*(int *)(puVar30 + -0xc) = iVar25" (pointer_expression "*(int *)(puVar30 + -0xc)" (* "*") (cast_expression "(int *)(puVar30 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0xc)" (( "(") (binary_expression "puVar30 + -0xc" (identifier "puVar30") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "iVar25")) (; ";")) (expression_statement "*(uint **)(puVar30 + -0x10) = param_3;" (assignment_expression "*(uint **)(puVar30 + -0x10) = param_3" (pointer_expression "*(uint **)(puVar30 + -0x10)" (* "*") (cast_expression "(uint **)(puVar30 + -0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x10)" (( "(") (binary_expression "puVar30 + -0x10" (identifier "puVar30") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*(undefined4 **)(puVar30 + -0x14) = param_2;" (assignment_expression "*(undefined4 **)(puVar30 + -0x14) = param_2" (pointer_expression "*(undefined4 **)(puVar30 + -0x14)" (* "*") (cast_expression "(undefined4 **)(puVar30 + -0x14)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x14)" (( "(") (binary_expression "puVar30 + -0x14" (identifier "puVar30") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(undefined4 **)(puVar30 + -0x1c) = param_1;" (assignment_expression "*(undefined4 **)(puVar30 + -0x1c) = param_1" (pointer_expression "*(undefined4 **)(puVar30 + -0x1c)" (* "*") (cast_expression "(undefined4 **)(puVar30 + -0x1c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x1c)" (( "(") (binary_expression "puVar30 + -0x1c" (identifier "puVar30") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined4 **)(puVar30 + -0x20) = param_6;" (assignment_expression "*(undefined4 **)(puVar30 + -0x20) = param_6" (pointer_expression "*(undefined4 **)(puVar30 + -0x20)" (* "*") (cast_expression "(undefined4 **)(puVar30 + -0x20)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x20)" (( "(") (binary_expression "puVar30 + -0x20" (identifier "puVar30") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "param_6")) (; ";")) (expression_statement "*(uint *)(puVar30 + -0x60) = uVar2;" (assignment_expression "*(uint *)(puVar30 + -0x60) = uVar2" (pointer_expression "*(uint *)(puVar30 + -0x60)" (* "*") (cast_expression "(uint *)(puVar30 + -0x60)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x60)" (( "(") (binary_expression "puVar30 + -0x60" (identifier "puVar30") (+ "+") (number_literal "-0x60")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "*(undefined4 **)(puVar30 + -0x44) = puVar12;" (assignment_expression "*(undefined4 **)(puVar30 + -0x44) = puVar12" (pointer_expression "*(undefined4 **)(puVar30 + -0x44)" (* "*") (cast_expression "(undefined4 **)(puVar30 + -0x44)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x44)" (( "(") (binary_expression "puVar30 + -0x44" (identifier "puVar30") (+ "+") (number_literal "-0x44")) () ")")))) (= "=") (identifier "puVar12")) (; ";")) (expression_statement "*(undefined4 **)(puVar30 + -0x4c) = param_4;" (assignment_expression "*(undefined4 **)(puVar30 + -0x4c) = param_4" (pointer_expression "*(undefined4 **)(puVar30 + -0x4c)" (* "*") (cast_expression "(undefined4 **)(puVar30 + -0x4c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x4c)" (( "(") (binary_expression "puVar30 + -0x4c" (identifier "puVar30") (+ "+") (number_literal "-0x4c")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "piVar23 = *(int **)(puVar30 + 0x14);" (assignment_expression "piVar23 = *(int **)(puVar30 + 0x14)" (identifier "piVar23") (= "=") (pointer_expression "*(int **)(puVar30 + 0x14)" (* "*") (cast_expression "(int **)(puVar30 + 0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + 0x14)" (( "(") (binary_expression "puVar30 + 0x14" (identifier "puVar30") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "iVar19 = *(int *)(puVar30 + 0x18);" (assignment_expression "iVar19 = *(int *)(puVar30 + 0x18)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(puVar30 + 0x18)" (* "*") (cast_expression "(int *)(puVar30 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + 0x18)" (( "(") (binary_expression "puVar30 + 0x18" (identifier "puVar30") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar30 + -0x54) = *(undefined4 *)(puVar30 + 0x1c);" (assignment_expression "*(undefined4 *)(puVar30 + -0x54) = *(undefined4 *)(puVar30 + 0x1c)" (pointer_expression "*(undefined4 *)(puVar30 + -0x54)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x54)" (( "(") (binary_expression "puVar30 + -0x54" (identifier "puVar30") (+ "+") (number_literal "-0x54")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar30 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar30 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + 0x1c)" (( "(") (binary_expression "puVar30 + 0x1c" (identifier "puVar30") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if (uVar2 < 3) {\n        iVar25 = 0;\n        *(undefined4 *)(puVar30 + -0x5c) = 1;\n        *(undefined4 *)(puVar30 + -0x50) = 2;\n        iVar4 = 1;\n        *(undefined4 *)(puVar30 + -0x58) = 1;\n      }\n      else {\n        if (uVar2 < 0x22) {\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }\n        else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }\n        *(int *)(puVar30 + -0x5c) = iVar4;\n        *(int *)(puVar30 + -0x50) = 1 << iVar4;\n        iVar25 = (1 << iVar4) + -2;\n      }" (if "if") (parenthesized_expression "(uVar2 < 3)" (( "(") (binary_expression "uVar2 < 3" (identifier "uVar2") (< "<") (number_literal "3")) () ")")) (compound_statement "{\n        iVar25 = 0;\n        *(undefined4 *)(puVar30 + -0x5c) = 1;\n        *(undefined4 *)(puVar30 + -0x50) = 2;\n        iVar4 = 1;\n        *(undefined4 *)(puVar30 + -0x58) = 1;\n      }" ({ "{") (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" (identifier "iVar25") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar30 + -0x5c) = 1;" (assignment_expression "*(undefined4 *)(puVar30 + -0x5c) = 1" (pointer_expression "*(undefined4 *)(puVar30 + -0x5c)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x5c)" (( "(") (binary_expression "puVar30 + -0x5c" (identifier "puVar30") (+ "+") (number_literal "-0x5c")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(puVar30 + -0x50) = 2;" (assignment_expression "*(undefined4 *)(puVar30 + -0x50) = 2" (pointer_expression "*(undefined4 *)(puVar30 + -0x50)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x50)" (( "(") (binary_expression "puVar30 + -0x50" (identifier "puVar30") (+ "+") (number_literal "-0x50")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" (identifier "iVar4") (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(puVar30 + -0x58) = 1;" (assignment_expression "*(undefined4 *)(puVar30 + -0x58) = 1" (pointer_expression "*(undefined4 *)(puVar30 + -0x58)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x58)" (( "(") (binary_expression "puVar30 + -0x58" (identifier "puVar30") (+ "+") (number_literal "-0x58")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n        if (uVar2 < 0x22) {\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }\n        else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }\n        *(int *)(puVar30 + -0x5c) = iVar4;\n        *(int *)(puVar30 + -0x50) = 1 << iVar4;\n        iVar25 = (1 << iVar4) + -2;\n      }" (else "else") (compound_statement "{\n        if (uVar2 < 0x22) {\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }\n        else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }\n        *(int *)(puVar30 + -0x5c) = iVar4;\n        *(int *)(puVar30 + -0x50) = 1 << iVar4;\n        iVar25 = (1 << iVar4) + -2;\n      }" ({ "{") (if_statement "if (uVar2 < 0x22) {\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }\n        else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }" (if "if") (parenthesized_expression "(uVar2 < 0x22)" (( "(") (binary_expression "uVar2 < 0x22" (identifier "uVar2") (< "<") (number_literal "0x22")) () ")")) (compound_statement "{\n          *(undefined4 *)(puVar30 + -0x58) = 2;\n          iVar4 = 2;\n        }" ({ "{") (expression_statement "*(undefined4 *)(puVar30 + -0x58) = 2;" (assignment_expression "*(undefined4 *)(puVar30 + -0x58) = 2" (pointer_expression "*(undefined4 *)(puVar30 + -0x58)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x58)" (( "(") (binary_expression "puVar30 + -0x58" (identifier "puVar30") (+ "+") (number_literal "-0x58")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" (identifier "iVar4") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }" (else "else") (if_statement "if (uVar2 < 0x61) {\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }\n        else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }" (if "if") (parenthesized_expression "(uVar2 < 0x61)" (( "(") (binary_expression "uVar2 < 0x61" (identifier "uVar2") (< "<") (number_literal "0x61")) () ")")) (compound_statement "{\n          *(undefined4 *)(puVar30 + -0x58) = 3;\n          iVar4 = 3;\n        }" ({ "{") (expression_statement "*(undefined4 *)(puVar30 + -0x58) = 3;" (assignment_expression "*(undefined4 *)(puVar30 + -0x58) = 3" (pointer_expression "*(undefined4 *)(puVar30 + -0x58)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x58)" (( "(") (binary_expression "puVar30 + -0x58" (identifier "puVar30") (+ "+") (number_literal "-0x58")) () ")")))) (= "=") (number_literal "3")) (; ";")) (expression_statement "iVar4 = 3;" (assignment_expression "iVar4 = 3" (identifier "iVar4") (= "=") (number_literal "3")) (; ";")) (} "}")) (else_clause "else if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }" (else "else") (if_statement "if (uVar2 < 0x30d) {\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }\n        else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }" (if "if") (parenthesized_expression "(uVar2 < 0x30d)" (( "(") (binary_expression "uVar2 < 0x30d" (identifier "uVar2") (< "<") (number_literal "0x30d")) () ")")) (compound_statement "{\n          *(undefined4 *)(puVar30 + -0x58) = 4;\n          iVar4 = 4;\n        }" ({ "{") (expression_statement "*(undefined4 *)(puVar30 + -0x58) = 4;" (assignment_expression "*(undefined4 *)(puVar30 + -0x58) = 4" (pointer_expression "*(undefined4 *)(puVar30 + -0x58)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x58)" (( "(") (binary_expression "puVar30 + -0x58" (identifier "puVar30") (+ "+") (number_literal "-0x58")) () ")")))) (= "=") (number_literal "4")) (; ";")) (expression_statement "iVar4 = 4;" (assignment_expression "iVar4 = 4" (identifier "iVar4") (= "=") (number_literal "4")) (; ";")) (} "}")) (else_clause "else {\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }" (else "else") (compound_statement "{\n          iVar4 = 6;\n          if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }\n          *(int *)(puVar30 + -0x58) = iVar4;\n        }" ({ "{") (expression_statement "iVar4 = 6;" (assignment_expression "iVar4 = 6" (identifier "iVar4") (= "=") (number_literal "6")) (; ";")) (if_statement "if (uVar2 < 0xab6) {\n            iVar4 = 5;\n          }" (if "if") (parenthesized_expression "(uVar2 < 0xab6)" (( "(") (binary_expression "uVar2 < 0xab6" (identifier "uVar2") (< "<") (number_literal "0xab6")) () ")")) (compound_statement "{\n            iVar4 = 5;\n          }" ({ "{") (expression_statement "iVar4 = 5;" (assignment_expression "iVar4 = 5" (identifier "iVar4") (= "=") (number_literal "5")) (; ";")) (} "}"))) (expression_statement "*(int *)(puVar30 + -0x58) = iVar4;" (assignment_expression "*(int *)(puVar30 + -0x58) = iVar4" (pointer_expression "*(int *)(puVar30 + -0x58)" (* "*") (cast_expression "(int *)(puVar30 + -0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x58)" (( "(") (binary_expression "puVar30 + -0x58" (identifier "puVar30") (+ "+") (number_literal "-0x58")) () ")")))) (= "=") (identifier "iVar4")) (; ";")) (} "}")))))))) (expression_statement "*(int *)(puVar30 + -0x5c) = iVar4;" (assignment_expression "*(int *)(puVar30 + -0x5c) = iVar4" (pointer_expression "*(int *)(puVar30 + -0x5c)" (* "*") (cast_expression "(int *)(puVar30 + -0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x5c)" (( "(") (binary_expression "puVar30 + -0x5c" (identifier "puVar30") (+ "+") (number_literal "-0x5c")) () ")")))) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "*(int *)(puVar30 + -0x50) = 1 << iVar4;" (assignment_expression "*(int *)(puVar30 + -0x50) = 1 << iVar4" (pointer_expression "*(int *)(puVar30 + -0x50)" (* "*") (cast_expression "(int *)(puVar30 + -0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x50)" (( "(") (binary_expression "puVar30 + -0x50" (identifier "puVar30") (+ "+") (number_literal "-0x50")) () ")")))) (= "=") (binary_expression "1 << iVar4" (number_literal "1") (<< "<<") (identifier "iVar4"))) (; ";")) (expression_statement "iVar25 = (1 << iVar4) + -2;" (assignment_expression "iVar25 = (1 << iVar4) + -2" (identifier "iVar25") (= "=") (binary_expression "(1 << iVar4) + -2" (parenthesized_expression "(1 << iVar4)" (( "(") (binary_expression "1 << iVar4" (number_literal "1") (<< "<<") (identifier "iVar4")) () ")")) (+ "+") (number_literal "-2"))) (; ";")) (} "}")))) (expression_statement "iVar11 = *piVar23;" (assignment_expression "iVar11 = *piVar23" (identifier "iVar11") (= "=") (pointer_expression "*piVar23" (* "*") (identifier "piVar23"))) (; ";")) (expression_statement "iVar31 = iVar19 * 4;" (assignment_expression "iVar31 = iVar19 * 4" (identifier "iVar31") (= "=") (binary_expression "iVar19 * 4" (identifier "iVar19") (* "*") (number_literal "4"))) (; ";")) (expression_statement "puVar26 = *(undefined4 **)(puVar30 + -0x54);" (assignment_expression "puVar26 = *(undefined4 **)(puVar30 + -0x54)" (identifier "puVar26") (= "=") (pointer_expression "*(undefined4 **)(puVar30 + -0x54)" (* "*") (cast_expression "(undefined4 **)(puVar30 + -0x54)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x54)" (( "(") (binary_expression "puVar30 + -0x54" (identifier "puVar30") (+ "+") (number_literal "-0x54")) () ")"))))) (; ";")) (expression_statement "puVar16 = (undefined1 *)(iVar19 + (int)puVar14);" (assignment_expression "puVar16 = (undefined1 *)(iVar19 + (int)puVar14)" (identifier "puVar16") (= "=") (cast_expression "(undefined1 *)(iVar19 + (int)puVar14)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + (int)puVar14)" (( "(") (binary_expression "iVar19 + (int)puVar14" (identifier "iVar19") (+ "+") (cast_expression "(int)puVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar14"))) () ")")))) (; ";")) (expression_statement "puVar24 = puVar26 + iVar19;" (assignment_expression "puVar24 = puVar26 + iVar19" (identifier "puVar24") (= "=") (binary_expression "puVar26 + iVar19" (identifier "puVar26") (+ "+") (identifier "iVar19"))) (; ";")) (expression_statement "uVar2 = (uint)*(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19));" (assignment_expression "uVar2 = (uint)*(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19))" (identifier "uVar2") (= "=") (binary_expression "(uint)*(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19))" (( "(") (binary_expression "*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19)" (pointer_expression "*(int *)(puVar27 + 0x21ea4)" (* "*") (cast_expression "(int *)(puVar27 + 0x21ea4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + 0x21ea4)" (( "(") (binary_expression "puVar27 + 0x21ea4" (identifier "puVar27") (+ "+") (number_literal "0x21ea4")) () ")")))) (+ "+") (parenthesized_expression "((uint)(iVar11 << 0x18) >> 0x19)" (( "(") (binary_expression "(uint)(iVar11 << 0x18) >> 0x19" (call_expression "(uint)(iVar11 << 0x18)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar11 << 0x18)" (( "(") (binary_expression "iVar11 << 0x18" (identifier "iVar11") (<< "<<") (number_literal "0x18")) () ")"))) (>> ">>") (number_literal "0x19")) () ")"))) () ")"))))) (; ";")) (expression_statement "puVar7 = puVar24 + iVar19;" (assignment_expression "puVar7 = puVar24 + iVar19" (identifier "puVar7") (= "=") (binary_expression "puVar24 + iVar19" (identifier "puVar24") (+ "+") (identifier "iVar19"))) (; ";")) (expression_statement "puVar12 = puVar26 + iVar19 + 1;" (assignment_expression "puVar12 = puVar26 + iVar19 + 1" (identifier "puVar12") (= "=") (binary_expression "puVar26 + iVar19 + 1" (binary_expression "puVar26 + iVar19" (identifier "puVar26") (+ "+") (identifier "iVar19")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined4 **)(puVar30 + -0x48) = puVar7 + (int)puVar16;" (assignment_expression "*(undefined4 **)(puVar30 + -0x48) = puVar7 + (int)puVar16" (pointer_expression "*(undefined4 **)(puVar30 + -0x48)" (* "*") (cast_expression "(undefined4 **)(puVar30 + -0x48)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x48)" (( "(") (binary_expression "puVar30 + -0x48" (identifier "puVar30") (+ "+") (number_literal "-0x48")) () ")")))) (= "=") (binary_expression "puVar7 + (int)puVar16" (identifier "puVar7") (+ "+") (cast_expression "(int)puVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar16")))) (; ";")) (expression_statement "puVar21 = puVar26 + (iVar19 << iVar4);" (assignment_expression "puVar21 = puVar26 + (iVar19 << iVar4)" (identifier "puVar21") (= "=") (binary_expression "puVar26 + (iVar19 << iVar4)" (identifier "puVar26") (+ "+") (parenthesized_expression "(iVar19 << iVar4)" (( "(") (binary_expression "iVar19 << iVar4" (identifier "iVar19") (<< "<<") (identifier "iVar4")) () ")")))) (; ";")) (expression_statement "*puVar24 = 1;" (assignment_expression "*puVar24 = 1" (pointer_expression "*puVar24" (* "*") (identifier "puVar24")) (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar4 = uVar2 * 2 - uVar2 * uVar2 * iVar11;" (assignment_expression "iVar4 = uVar2 * 2 - uVar2 * uVar2 * iVar11" (identifier "iVar4") (= "=") (binary_expression "uVar2 * 2 - uVar2 * uVar2 * iVar11" (binary_expression "uVar2 * 2" (identifier "uVar2") (* "*") (number_literal "2")) (- "-") (binary_expression "uVar2 * uVar2 * iVar11" (binary_expression "uVar2 * uVar2" (identifier "uVar2") (* "*") (identifier "uVar2")) (* "*") (identifier "iVar11")))) (; ";")) (expression_statement "iVar4 = iVar4 * iVar4 * iVar11 + iVar4 * -2;" (assignment_expression "iVar4 = iVar4 * iVar4 * iVar11 + iVar4 * -2" (identifier "iVar4") (= "=") (binary_expression "iVar4 * iVar4 * iVar11 + iVar4 * -2" (binary_expression "iVar4 * iVar4 * iVar11" (binary_expression "iVar4 * iVar4" (identifier "iVar4") (* "*") (identifier "iVar4")) (* "*") (identifier "iVar11")) (+ "+") (binary_expression "iVar4 * -2" (identifier "iVar4") (* "*") (number_literal "-2")))) (; ";")) (expression_statement "puVar20 = puVar24;" (assignment_expression "puVar20 = puVar24" (identifier "puVar20") (= "=") (identifier "puVar24")) (; ";")) (if_statement "if (iVar19 == 0) {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c);\n        puVar12[iVar19] = 1;\n        *(undefined4 **)(puVar30 + -0x38) = puVar14;\n        *(undefined1 **)(puVar30 + -0x3c) = puVar16;\n        *(undefined4 **)(puVar30 + -0x40) = puVar7;\n        *(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar11 = *(int *)(puVar30 + -0x40);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        if (iVar18 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar6 = iVar28 + -1;\n        puVar7 = (undefined4 *)(iVar11 + iVar31);\n        uVar13 = **(undefined4 **)(puVar30 + -0x44);\n        if (iVar6 != 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          puVar12 = puVar7;\n          goto LAB_0007b70c;\n        }\n        uVar5 = *(undefined4 *)(puVar30 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n        *puVar7 = uVar13;\n        *(undefined4 *)(puVar30 + -0x70) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }\n      else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);\n        *(undefined4 **)(puVar30 + -0x2c) = puVar14;\n        *(undefined1 **)(puVar30 + -0x30) = puVar16;\n        *(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;\n        *(undefined4 **)(puVar30 + -0x38) = puVar7;\n        *(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;\n        uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);\n        uVar5 = *puVar24;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);\n        *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);\n        *(undefined4 *)(puVar30 + -0x3c) = uVar13;\n        **(undefined4 **)(puVar30 + -0x34) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);\n        iVar11 = iVar19 + -1;\n        puVar7 = *(undefined4 **)(puVar30 + -0x3c);\n        iVar28 = *(int *)(puVar30 + -0x68);\n        uVar13 = *(undefined4 *)(puVar30 + -0x38);\n        uVar17 = *(undefined4 *)(puVar30 + -0x30);\n        uVar5 = *puVar7;\n        uVar15 = *(undefined4 *)(puVar30 + -0x2c);\n        if (iVar11 == 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }\n        else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);\n        *(undefined4 *)(puVar30 + -0x38) = uVar15;\n        *(undefined4 *)(puVar30 + -0x3c) = uVar17;\n        *puVar26 = uVar5;\n        iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        if (iVar28 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }\n        else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }\n        iVar28 = *(int *)(puVar30 + -0x40);\n        uVar13 = *puVar26;\n        puVar7 = puVar24;\n        if (iVar28 == 0) {\n          *puVar24 = uVar13;\n        }\n        else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }\n      }" (if "if") (parenthesized_expression "(iVar19 == 0)" (( "(") (binary_expression "iVar19 == 0" (identifier "iVar19") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c);\n        puVar12[iVar19] = 1;\n        *(undefined4 **)(puVar30 + -0x38) = puVar14;\n        *(undefined1 **)(puVar30 + -0x3c) = puVar16;\n        *(undefined4 **)(puVar30 + -0x40) = puVar7;\n        *(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1;\n        (*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar11 = *(int *)(puVar30 + -0x40);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        if (iVar18 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          goto joined_r0x0007b75c;\n        }\n        iVar6 = iVar28 + -1;\n        puVar7 = (undefined4 *)(iVar11 + iVar31);\n        uVar13 = **(undefined4 **)(puVar30 + -0x44);\n        if (iVar6 != 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          puVar12 = puVar7;\n          goto LAB_0007b70c;\n        }\n        uVar5 = *(undefined4 *)(puVar30 + -0x48);\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n        *puVar7 = uVar13;\n        *(undefined4 *)(puVar30 + -0x70) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }" ({ "{") (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c)" (identifier "UNRECOVERED_JUMPTABLE") (= "=") (pointer_expression "*(code **)(puVar27 + 0x2211c)" (* "*") (cast_expression "(code **)(puVar27 + 0x2211c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar27 + 0x2211c)" (( "(") (binary_expression "puVar27 + 0x2211c" (identifier "puVar27") (+ "+") (number_literal "0x2211c")) () ")"))))) (; ";")) (expression_statement "puVar12[iVar19] = 1;" (assignment_expression "puVar12[iVar19] = 1" (subscript_expression "puVar12[iVar19]" (identifier "puVar12") ([ "[") (identifier "iVar19") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 **)(puVar30 + -0x38) = puVar14;" (assignment_expression "*(undefined4 **)(puVar30 + -0x38) = puVar14" (pointer_expression "*(undefined4 **)(puVar30 + -0x38)" (* "*") (cast_expression "(undefined4 **)(puVar30 + -0x38)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x38)" (( "(") (binary_expression "puVar30 + -0x38" (identifier "puVar30") (+ "+") (number_literal "-0x38")) () ")")))) (= "=") (identifier "puVar14")) (; ";")) (expression_statement "*(undefined1 **)(puVar30 + -0x3c) = puVar16;" (assignment_expression "*(undefined1 **)(puVar30 + -0x3c) = puVar16" (pointer_expression "*(undefined1 **)(puVar30 + -0x3c)" (* "*") (cast_expression "(undefined1 **)(puVar30 + -0x3c)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x3c)" (( "(") (binary_expression "puVar30 + -0x3c" (identifier "puVar30") (+ "+") (number_literal "-0x3c")) () ")")))) (= "=") (identifier "puVar16")) (; ";")) (expression_statement "*(undefined4 **)(puVar30 + -0x40) = puVar7;" (assignment_expression "*(undefined4 **)(puVar30 + -0x40) = puVar7" (pointer_expression "*(undefined4 **)(puVar30 + -0x40)" (* "*") (cast_expression "(undefined4 **)(puVar30 + -0x40)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x40)" (( "(") (binary_expression "puVar30 + -0x40" (identifier "puVar30") (+ "+") (number_literal "-0x40")) () ")")))) (= "=") (identifier "puVar7")) (; ";")) (expression_statement "*(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1;" (assignment_expression "*(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1" (pointer_expression "*(undefined4 **)(puVar30 + -0x70)" (* "*") (cast_expression "(undefined4 **)(puVar30 + -0x70)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x70)" (( "(") (binary_expression "puVar30 + -0x70" (identifier "puVar30") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (binary_expression "puVar12 + iVar19 + 1" (binary_expression "puVar12 + iVar19" (identifier "puVar12") (+ "+") (identifier "iVar19")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0);" (call_expression "(*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" (( "(") (pointer_expression "*UNRECOVERED_JUMPTABLE" (* "*") (identifier "UNRECOVERED_JUMPTABLE")) () ")")) (argument_list "(puVar12,1,piVar23,0)" (( "(") (identifier "puVar12") (, ",") (number_literal "1") (, ",") (identifier "piVar23") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar18 = *(int *)(puVar30 + -0x3c);" (assignment_expression "iVar18 = *(int *)(puVar30 + -0x3c)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(puVar30 + -0x3c)" (* "*") (cast_expression "(int *)(puVar30 + -0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x3c)" (( "(") (binary_expression "puVar30 + -0x3c" (identifier "puVar30") (+ "+") (number_literal "-0x3c")) () ")"))))) (; ";")) (expression_statement "iVar29 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar29 = *(int *)(puVar30 + -0x68)" (identifier "iVar29") (= "=") (pointer_expression "*(int *)(puVar30 + -0x68)" (* "*") (cast_expression "(int *)(puVar30 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x68)" (( "(") (binary_expression "puVar30 + -0x68" (identifier "puVar30") (+ "+") (number_literal "-0x68")) () ")"))))) (; ";")) (expression_statement "iVar11 = *(int *)(puVar30 + -0x40);" (assignment_expression "iVar11 = *(int *)(puVar30 + -0x40)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar30 + -0x40)" (* "*") (cast_expression "(int *)(puVar30 + -0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x40)" (( "(") (binary_expression "puVar30 + -0x40" (identifier "puVar30") (+ "+") (number_literal "-0x40")) () ")"))))) (; ";")) (expression_statement "iVar28 = *(int *)(puVar30 + -0x38);" (assignment_expression "iVar28 = *(int *)(puVar30 + -0x38)" (identifier "iVar28") (= "=") (pointer_expression "*(int *)(puVar30 + -0x38)" (* "*") (cast_expression "(int *)(puVar30 + -0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x38)" (( "(") (binary_expression "puVar30 + -0x38" (identifier "puVar30") (+ "+") (number_literal "-0x38")) () ")"))))) (; ";")) (if_statement "if (iVar18 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          goto joined_r0x0007b75c;\n        }" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          goto joined_r0x0007b75c;\n        }" ({ "{") (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4)" (identifier "UNRECOVERED_JUMPTABLE") (= "=") (pointer_expression "*(code **)(iVar29 + -0x7ac4)" (* "*") (cast_expression "(code **)(iVar29 + -0x7ac4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar29 + -0x7ac4)" (( "(") (binary_expression "iVar29 + -0x7ac4" (identifier "iVar29") (+ "+") (number_literal "-0x7ac4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);" (assignment_expression "*(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48)" (pointer_expression "*(undefined4 *)(puVar30 + -0x70)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x70)" (( "(") (binary_expression "puVar30 + -0x70" (identifier "puVar30") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar30 + -0x48)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x48)" (( "(") (binary_expression "puVar30 + -0x48" (identifier "puVar30") (+ "+") (number_literal "-0x48")) () ")"))))) (; ";")) (expression_statement "(*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);" (call_expression "(*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" (( "(") (pointer_expression "*UNRECOVERED_JUMPTABLE" (* "*") (identifier "UNRECOVERED_JUMPTABLE")) () ")")) (argument_list "(iVar11,0,piVar23,0)" (( "(") (identifier "iVar11") (, ",") (number_literal "0") (, ",") (identifier "piVar23") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar11 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar11 = *(int *)(puVar30 + -0x68)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar30 + -0x68)" (* "*") (cast_expression "(int *)(puVar30 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x68)" (( "(") (binary_expression "puVar30 + -0x68" (identifier "puVar30") (+ "+") (number_literal "-0x68")) () ")"))))) (; ";")) (goto_statement "goto joined_r0x0007b75c;" (goto "goto") (statement_identifier "joined_r0x0007b75c") (; ";")) (} "}"))) (expression_statement "iVar6 = iVar28 + -1;" (assignment_expression "iVar6 = iVar28 + -1" (identifier "iVar6") (= "=") (binary_expression "iVar28 + -1" (identifier "iVar28") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "puVar7 = (undefined4 *)(iVar11 + iVar31);" (assignment_expression "puVar7 = (undefined4 *)(iVar11 + iVar31)" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(iVar11 + iVar31)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + iVar31)" (( "(") (binary_expression "iVar11 + iVar31" (identifier "iVar11") (+ "+") (identifier "iVar31")) () ")")))) (; ";")) (expression_statement "uVar13 = **(undefined4 **)(puVar30 + -0x44);" (assignment_expression "uVar13 = **(undefined4 **)(puVar30 + -0x44)" (identifier "uVar13") (= "=") (pointer_expression "**(undefined4 **)(puVar30 + -0x44)" (* "*") (pointer_expression "*(undefined4 **)(puVar30 + -0x44)" (* "*") (cast_expression "(undefined4 **)(puVar30 + -0x44)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x44)" (( "(") (binary_expression "puVar30 + -0x44" (identifier "puVar30") (+ "+") (number_literal "-0x44")) () ")")))))) (; ";")) (if_statement "if (iVar6 != 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          puVar12 = puVar7;\n          goto LAB_0007b70c;\n        }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          puVar12 = puVar7;\n          goto LAB_0007b70c;\n        }" ({ "{") (expression_statement "puVar26 = *(undefined4 **)(puVar30 + -0x44);" (assignment_expression "puVar26 = *(undefined4 **)(puVar30 + -0x44)" (identifier "puVar26") (= "=") (pointer_expression "*(undefined4 **)(puVar30 + -0x44)" (* "*") (cast_expression "(undefined4 **)(puVar30 + -0x44)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x44)" (( "(") (binary_expression "puVar30 + -0x44" (identifier "puVar30") (+ "+") (number_literal "-0x44")) () ")"))))) (; ";")) (expression_statement "puVar12 = puVar7;" (assignment_expression "puVar12 = puVar7" (identifier "puVar12") (= "=") (identifier "puVar7")) (; ";")) (goto_statement "goto LAB_0007b70c;" (goto "goto") (statement_identifier "LAB_0007b70c") (; ";")) (} "}"))) (expression_statement "uVar5 = *(undefined4 *)(puVar30 + -0x48);" (assignment_expression "uVar5 = *(undefined4 *)(puVar30 + -0x48)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(puVar30 + -0x48)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x48)" (( "(") (binary_expression "puVar30 + -0x48" (identifier "puVar30") (+ "+") (number_literal "-0x48")) () ")"))))) (; ";")) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4)" (identifier "UNRECOVERED_JUMPTABLE") (= "=") (pointer_expression "*(code **)(iVar29 + -0x7ac4)" (* "*") (cast_expression "(code **)(iVar29 + -0x7ac4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar29 + -0x7ac4)" (( "(") (binary_expression "iVar29 + -0x7ac4" (identifier "iVar29") (+ "+") (number_literal "-0x7ac4")) () ")"))))) (; ";")) (expression_statement "*puVar7 = uVar13;" (assignment_expression "*puVar7 = uVar13" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "*(undefined4 *)(puVar30 + -0x70) = uVar5;" (assignment_expression "*(undefined4 *)(puVar30 + -0x70) = uVar5" (pointer_expression "*(undefined4 *)(puVar30 + -0x70)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x70)" (( "(") (binary_expression "puVar30 + -0x70" (identifier "puVar30") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "(*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0);" (call_expression "(*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" (( "(") (pointer_expression "*UNRECOVERED_JUMPTABLE" (* "*") (identifier "UNRECOVERED_JUMPTABLE")) () ")")) (argument_list "(iVar11,iVar18,piVar23,0)" (( "(") (identifier "iVar11") (, ",") (identifier "iVar18") (, ",") (identifier "piVar23") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar11 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar11 = *(int *)(puVar30 + -0x68)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar30 + -0x68)" (* "*") (cast_expression "(int *)(puVar30 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x68)" (( "(") (binary_expression "puVar30 + -0x68" (identifier "puVar30") (+ "+") (number_literal "-0x68")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);\n        *(undefined4 **)(puVar30 + -0x2c) = puVar14;\n        *(undefined1 **)(puVar30 + -0x30) = puVar16;\n        *(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;\n        *(undefined4 **)(puVar30 + -0x38) = puVar7;\n        *(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;\n        uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);\n        uVar5 = *puVar24;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);\n        *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);\n        *(undefined4 *)(puVar30 + -0x3c) = uVar13;\n        **(undefined4 **)(puVar30 + -0x34) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);\n        iVar11 = iVar19 + -1;\n        puVar7 = *(undefined4 **)(puVar30 + -0x3c);\n        iVar28 = *(int *)(puVar30 + -0x68);\n        uVar13 = *(undefined4 *)(puVar30 + -0x38);\n        uVar17 = *(undefined4 *)(puVar30 + -0x30);\n        uVar5 = *puVar7;\n        uVar15 = *(undefined4 *)(puVar30 + -0x2c);\n        if (iVar11 == 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }\n        else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);\n        *(undefined4 *)(puVar30 + -0x38) = uVar15;\n        *(undefined4 *)(puVar30 + -0x3c) = uVar17;\n        *puVar26 = uVar5;\n        iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        if (iVar28 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }\n        else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }\n        iVar28 = *(int *)(puVar30 + -0x40);\n        uVar13 = *puVar26;\n        puVar7 = puVar24;\n        if (iVar28 == 0) {\n          *puVar24 = uVar13;\n        }\n        else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }\n      }" (else "else") (compound_statement "{\n        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);\n        *(undefined4 **)(puVar30 + -0x2c) = puVar14;\n        *(undefined1 **)(puVar30 + -0x30) = puVar16;\n        *(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;\n        *(undefined4 **)(puVar30 + -0x38) = puVar7;\n        *(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;\n        uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);\n        uVar5 = *puVar24;\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);\n        *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);\n        *(undefined4 *)(puVar30 + -0x3c) = uVar13;\n        **(undefined4 **)(puVar30 + -0x34) = uVar5;\n        (*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);\n        iVar11 = iVar19 + -1;\n        puVar7 = *(undefined4 **)(puVar30 + -0x3c);\n        iVar28 = *(int *)(puVar30 + -0x68);\n        uVar13 = *(undefined4 *)(puVar30 + -0x38);\n        uVar17 = *(undefined4 *)(puVar30 + -0x30);\n        uVar5 = *puVar7;\n        uVar15 = *(undefined4 *)(puVar30 + -0x2c);\n        if (iVar11 == 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }\n        else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);\n        *(undefined4 *)(puVar30 + -0x38) = uVar15;\n        *(undefined4 *)(puVar30 + -0x3c) = uVar17;\n        *puVar26 = uVar5;\n        iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);\n        iVar28 = *(int *)(puVar30 + -0x38);\n        iVar29 = *(int *)(puVar30 + -0x68);\n        iVar18 = *(int *)(puVar30 + -0x3c);\n        if (iVar28 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }\n        else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }\n        iVar28 = *(int *)(puVar30 + -0x40);\n        uVar13 = *puVar26;\n        puVar7 = puVar24;\n        if (iVar28 == 0) {\n          *puVar24 = uVar13;\n        }\n        else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }\n      }" ({ "{") (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88)" (identifier "UNRECOVERED_JUMPTABLE") (= "=") (pointer_expression "*(code **)(puVar27 + 0x21e88)" (* "*") (cast_expression "(code **)(puVar27 + 0x21e88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar27 + 0x21e88)" (( "(") (binary_expression "puVar27 + 0x21e88" (identifier "puVar27") (+ "+") (number_literal "0x21e88")) () ")"))))) (; ";")) (expression_statement "*(undefined4 **)(puVar30 + -0x2c) = puVar14;" (assignment_expression "*(undefined4 **)(puVar30 + -0x2c) = puVar14" (pointer_expression "*(undefined4 **)(puVar30 + -0x2c)" (* "*") (cast_expression "(undefined4 **)(puVar30 + -0x2c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x2c)" (( "(") (binary_expression "puVar30 + -0x2c" (identifier "puVar30") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (identifier "puVar14")) (; ";")) (expression_statement "*(undefined1 **)(puVar30 + -0x30) = puVar16;" (assignment_expression "*(undefined1 **)(puVar30 + -0x30) = puVar16" (pointer_expression "*(undefined1 **)(puVar30 + -0x30)" (* "*") (cast_expression "(undefined1 **)(puVar30 + -0x30)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x30)" (( "(") (binary_expression "puVar30 + -0x30" (identifier "puVar30") (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (identifier "puVar16")) (; ";")) (expression_statement "*(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;" (assignment_expression "*(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19" (pointer_expression "*(undefined4 **)(puVar30 + -0x34)" (* "*") (cast_expression "(undefined4 **)(puVar30 + -0x34)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x34)" (( "(") (binary_expression "puVar30 + -0x34" (identifier "puVar30") (+ "+") (number_literal "-0x34")) () ")")))) (= "=") (binary_expression "puVar12 + iVar19" (identifier "puVar12") (+ "+") (identifier "iVar19"))) (; ";")) (expression_statement "*(undefined4 **)(puVar30 + -0x38) = puVar7;" (assignment_expression "*(undefined4 **)(puVar30 + -0x38) = puVar7" (pointer_expression "*(undefined4 **)(puVar30 + -0x38)" (* "*") (cast_expression "(undefined4 **)(puVar30 + -0x38)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x38)" (( "(") (binary_expression "puVar30 + -0x38" (identifier "puVar30") (+ "+") (number_literal "-0x38")) () ")")))) (= "=") (identifier "puVar7")) (; ";")) (expression_statement "*(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;" (assignment_expression "*(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1" (pointer_expression "*(undefined4 **)(puVar30 + -0x3c)" (* "*") (cast_expression "(undefined4 **)(puVar30 + -0x3c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x3c)" (( "(") (binary_expression "puVar30 + -0x3c" (identifier "puVar30") (+ "+") (number_literal "-0x3c")) () ")")))) (= "=") (binary_expression "puVar12 + iVar19 + 1" (binary_expression "puVar12 + iVar19" (identifier "puVar12") (+ "+") (identifier "iVar19")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);" (assignment_expression "uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31)" (identifier "uVar13") (= "=") (call_expression "(*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" (( "(") (pointer_expression "*UNRECOVERED_JUMPTABLE" (* "*") (identifier "UNRECOVERED_JUMPTABLE")) () ")")) (argument_list "(puVar12,0,iVar31)" (( "(") (identifier "puVar12") (, ",") (number_literal "0") (, ",") (identifier "iVar31") () ")")))) (; ";")) (expression_statement "uVar5 = *puVar24;" (assignment_expression "uVar5 = *puVar24" (identifier "uVar5") (= "=") (pointer_expression "*puVar24" (* "*") (identifier "puVar24"))) (; ";")) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4)" (identifier "UNRECOVERED_JUMPTABLE") (= "=") (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4)" (* "*") (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7ac4)" (( "(") (binary_expression "*(int *)(puVar30 + -0x68) + -0x7ac4" (pointer_expression "*(int *)(puVar30 + -0x68)" (* "*") (cast_expression "(int *)(puVar30 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x68)" (( "(") (binary_expression "puVar30 + -0x68" (identifier "puVar30") (+ "+") (number_literal "-0x68")) () ")")))) (+ "+") (number_literal "-0x7ac4")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar30 + -0x40) = iVar19 + -1;" (assignment_expression "*(int *)(puVar30 + -0x40) = iVar19 + -1" (pointer_expression "*(int *)(puVar30 + -0x40)" (* "*") (cast_expression "(int *)(puVar30 + -0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x40)" (( "(") (binary_expression "puVar30 + -0x40" (identifier "puVar30") (+ "+") (number_literal "-0x40")) () ")")))) (= "=") (binary_expression "iVar19 + -1" (identifier "iVar19") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);" (assignment_expression "*(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c)" (pointer_expression "*(undefined4 *)(puVar30 + -0x70)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x70)" (( "(") (binary_expression "puVar30 + -0x70" (identifier "puVar30") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar30 + -0x3c)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x3c)" (( "(") (binary_expression "puVar30 + -0x3c" (identifier "puVar30") (+ "+") (number_literal "-0x3c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar30 + -0x3c) = uVar13;" (assignment_expression "*(undefined4 *)(puVar30 + -0x3c) = uVar13" (pointer_expression "*(undefined4 *)(puVar30 + -0x3c)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x3c)" (( "(") (binary_expression "puVar30 + -0x3c" (identifier "puVar30") (+ "+") (number_literal "-0x3c")) () ")")))) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "**(undefined4 **)(puVar30 + -0x34) = uVar5;" (assignment_expression "**(undefined4 **)(puVar30 + -0x34) = uVar5" (pointer_expression "**(undefined4 **)(puVar30 + -0x34)" (* "*") (pointer_expression "*(undefined4 **)(puVar30 + -0x34)" (* "*") (cast_expression "(undefined4 **)(puVar30 + -0x34)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x34)" (( "(") (binary_expression "puVar30 + -0x34" (identifier "puVar30") (+ "+") (number_literal "-0x34")) () ")"))))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "(*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);" (call_expression "(*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" (( "(") (pointer_expression "*UNRECOVERED_JUMPTABLE" (* "*") (identifier "UNRECOVERED_JUMPTABLE")) () ")")) (argument_list "(uVar13,iVar19 + 1,piVar23,iVar19)" (( "(") (identifier "uVar13") (, ",") (binary_expression "iVar19 + 1" (identifier "iVar19") (+ "+") (number_literal "1")) (, ",") (identifier "piVar23") (, ",") (identifier "iVar19") () ")"))) (; ";")) (expression_statement "iVar11 = iVar19 + -1;" (assignment_expression "iVar11 = iVar19 + -1" (identifier "iVar11") (= "=") (binary_expression "iVar19 + -1" (identifier "iVar19") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "puVar7 = *(undefined4 **)(puVar30 + -0x3c);" (assignment_expression "puVar7 = *(undefined4 **)(puVar30 + -0x3c)" (identifier "puVar7") (= "=") (pointer_expression "*(undefined4 **)(puVar30 + -0x3c)" (* "*") (cast_expression "(undefined4 **)(puVar30 + -0x3c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x3c)" (( "(") (binary_expression "puVar30 + -0x3c" (identifier "puVar30") (+ "+") (number_literal "-0x3c")) () ")"))))) (; ";")) (expression_statement "iVar28 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar28 = *(int *)(puVar30 + -0x68)" (identifier "iVar28") (= "=") (pointer_expression "*(int *)(puVar30 + -0x68)" (* "*") (cast_expression "(int *)(puVar30 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x68)" (( "(") (binary_expression "puVar30 + -0x68" (identifier "puVar30") (+ "+") (number_literal "-0x68")) () ")"))))) (; ";")) (expression_statement "uVar13 = *(undefined4 *)(puVar30 + -0x38);" (assignment_expression "uVar13 = *(undefined4 *)(puVar30 + -0x38)" (identifier "uVar13") (= "=") (pointer_expression "*(undefined4 *)(puVar30 + -0x38)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x38)" (( "(") (binary_expression "puVar30 + -0x38" (identifier "puVar30") (+ "+") (number_literal "-0x38")) () ")"))))) (; ";")) (expression_statement "uVar17 = *(undefined4 *)(puVar30 + -0x30);" (assignment_expression "uVar17 = *(undefined4 *)(puVar30 + -0x30)" (identifier "uVar17") (= "=") (pointer_expression "*(undefined4 *)(puVar30 + -0x30)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x30)" (( "(") (binary_expression "puVar30 + -0x30" (identifier "puVar30") (+ "+") (number_literal "-0x30")) () ")"))))) (; ";")) (expression_statement "uVar5 = *puVar7;" (assignment_expression "uVar5 = *puVar7" (identifier "uVar5") (= "=") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (; ";")) (expression_statement "uVar15 = *(undefined4 *)(puVar30 + -0x2c);" (assignment_expression "uVar15 = *(undefined4 *)(puVar30 + -0x2c)" (identifier "uVar15") (= "=") (pointer_expression "*(undefined4 *)(puVar30 + -0x2c)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x2c)" (( "(") (binary_expression "puVar30 + -0x2c" (identifier "puVar30") (+ "+") (number_literal "-0x2c")) () ")"))))) (; ";")) (if_statement "if (iVar11 == 0) {\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }\n        else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          puVar26 = *(undefined4 **)(puVar30 + -0x54);\n        }" ({ "{") (expression_statement "puVar26 = *(undefined4 **)(puVar30 + -0x54);" (assignment_expression "puVar26 = *(undefined4 **)(puVar30 + -0x54)" (identifier "puVar26") (= "=") (pointer_expression "*(undefined4 **)(puVar30 + -0x54)" (* "*") (cast_expression "(undefined4 **)(puVar30 + -0x54)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x54)" (( "(") (binary_expression "puVar30 + -0x54" (identifier "puVar30") (+ "+") (number_literal "-0x54")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }" (else "else") (compound_statement "{\n          do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);\n        }" ({ "{") (do_statement "do {\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);" (do "do") (compound_statement "{\n            puVar7 = puVar7 + 1;\n            *puVar26 = uVar5;\n            iVar11 = iVar11 + -1;\n            uVar5 = *puVar7;\n            puVar26 = puVar26 + 1;\n          }" ({ "{") (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" (identifier "puVar7") (= "=") (binary_expression "puVar7 + 1" (identifier "puVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar26 = uVar5;" (assignment_expression "*puVar26 = uVar5" (pointer_expression "*puVar26" (* "*") (identifier "puVar26")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "iVar11 = iVar11 + -1;" (assignment_expression "iVar11 = iVar11 + -1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + -1" (identifier "iVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar5 = *puVar7;" (assignment_expression "uVar5 = *puVar7" (identifier "uVar5") (= "=") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (; ";")) (expression_statement "puVar26 = puVar26 + 1;" (assignment_expression "puVar26 = puVar26 + 1" (identifier "puVar26") (= "=") (binary_expression "puVar26 + 1" (identifier "puVar26") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);" (assignment_expression "puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4)" (identifier "puVar26") (= "=") (cast_expression "(undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar30 + -0x54) + iVar31 + -4)" (( "(") (binary_expression "*(int *)(puVar30 + -0x54) + iVar31 + -4" (binary_expression "*(int *)(puVar30 + -0x54) + iVar31" (pointer_expression "*(int *)(puVar30 + -0x54)" (* "*") (cast_expression "(int *)(puVar30 + -0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x54)" (( "(") (binary_expression "puVar30 + -0x54" (identifier "puVar30") (+ "+") (number_literal "-0x54")) () ")")))) (+ "+") (identifier "iVar31")) (+ "+") (number_literal "-4")) () ")")))) (; ";")) (} "}")))) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58)" (identifier "UNRECOVERED_JUMPTABLE") (= "=") (pointer_expression "*(code **)(iVar28 + -0x7d58)" (* "*") (cast_expression "(code **)(iVar28 + -0x7d58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar28 + -0x7d58)" (( "(") (binary_expression "iVar28 + -0x7d58" (identifier "iVar28") (+ "+") (number_literal "-0x7d58")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar30 + -0x38) = uVar15;" (assignment_expression "*(undefined4 *)(puVar30 + -0x38) = uVar15" (pointer_expression "*(undefined4 *)(puVar30 + -0x38)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x38)" (( "(") (binary_expression "puVar30 + -0x38" (identifier "puVar30") (+ "+") (number_literal "-0x38")) () ")")))) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "*(undefined4 *)(puVar30 + -0x3c) = uVar17;" (assignment_expression "*(undefined4 *)(puVar30 + -0x3c) = uVar17" (pointer_expression "*(undefined4 *)(puVar30 + -0x3c)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x3c)" (( "(") (binary_expression "puVar30 + -0x3c" (identifier "puVar30") (+ "+") (number_literal "-0x3c")) () ")")))) (= "=") (identifier "uVar17")) (; ";")) (expression_statement "*puVar26 = uVar5;" (assignment_expression "*puVar26 = uVar5" (pointer_expression "*puVar26" (* "*") (identifier "puVar26")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);" (assignment_expression "iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31)" (identifier "iVar11") (= "=") (call_expression "(*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" (( "(") (pointer_expression "*UNRECOVERED_JUMPTABLE" (* "*") (identifier "UNRECOVERED_JUMPTABLE")) () ")")) (argument_list "(uVar13,0,iVar31)" (( "(") (identifier "uVar13") (, ",") (number_literal "0") (, ",") (identifier "iVar31") () ")")))) (; ";")) (expression_statement "iVar28 = *(int *)(puVar30 + -0x38);" (assignment_expression "iVar28 = *(int *)(puVar30 + -0x38)" (identifier "iVar28") (= "=") (pointer_expression "*(int *)(puVar30 + -0x38)" (* "*") (cast_expression "(int *)(puVar30 + -0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x38)" (( "(") (binary_expression "puVar30 + -0x38" (identifier "puVar30") (+ "+") (number_literal "-0x38")) () ")"))))) (; ";")) (expression_statement "iVar29 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar29 = *(int *)(puVar30 + -0x68)" (identifier "iVar29") (= "=") (pointer_expression "*(int *)(puVar30 + -0x68)" (* "*") (cast_expression "(int *)(puVar30 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x68)" (( "(") (binary_expression "puVar30 + -0x68" (identifier "puVar30") (+ "+") (number_literal "-0x68")) () ")"))))) (; ";")) (expression_statement "iVar18 = *(int *)(puVar30 + -0x3c);" (assignment_expression "iVar18 = *(int *)(puVar30 + -0x3c)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(puVar30 + -0x3c)" (* "*") (cast_expression "(int *)(puVar30 + -0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x3c)" (( "(") (binary_expression "puVar30 + -0x3c" (identifier "puVar30") (+ "+") (number_literal "-0x3c")) () ")"))))) (; ";")) (if_statement "if (iVar28 == 0) {\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }\n        else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }" (if "if") (parenthesized_expression "(iVar28 == 0)" (( "(") (binary_expression "iVar28 == 0" (identifier "iVar28") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);\n          iVar28 = iVar18;\nLAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n        }" ({ "{") (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4)" (identifier "UNRECOVERED_JUMPTABLE") (= "=") (pointer_expression "*(code **)(iVar29 + -0x7ac4)" (* "*") (cast_expression "(code **)(iVar29 + -0x7ac4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar29 + -0x7ac4)" (( "(") (binary_expression "iVar29 + -0x7ac4" (identifier "iVar29") (+ "+") (number_literal "-0x7ac4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);" (assignment_expression "*(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48)" (pointer_expression "*(undefined4 *)(puVar30 + -0x70)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x70)" (( "(") (binary_expression "puVar30 + -0x70" (identifier "puVar30") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar30 + -0x48)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x48)" (( "(") (binary_expression "puVar30 + -0x48" (identifier "puVar30") (+ "+") (number_literal "-0x48")) () ")"))))) (; ";")) (expression_statement "iVar28 = iVar18;" (assignment_expression "iVar28 = iVar18" (identifier "iVar28") (= "=") (identifier "iVar18")) (; ";")) (labeled_statement "LAB_0007bb8c:\n          *(int *)(puVar30 + -0x48) = iVar11;" (statement_identifier "LAB_0007bb8c") (: ":") (expression_statement "*(int *)(puVar30 + -0x48) = iVar11;" (assignment_expression "*(int *)(puVar30 + -0x48) = iVar11" (pointer_expression "*(int *)(puVar30 + -0x48)" (* "*") (cast_expression "(int *)(puVar30 + -0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x48)" (( "(") (binary_expression "puVar30 + -0x48" (identifier "puVar30") (+ "+") (number_literal "-0x48")) () ")")))) (= "=") (identifier "iVar11")) (; ";"))) (expression_statement "(*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);" (call_expression "(*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" (( "(") (pointer_expression "*UNRECOVERED_JUMPTABLE" (* "*") (identifier "UNRECOVERED_JUMPTABLE")) () ")")) (argument_list "(iVar11,iVar18,piVar23,iVar28)" (( "(") (identifier "iVar11") (, ",") (identifier "iVar18") (, ",") (identifier "piVar23") (, ",") (identifier "iVar28") () ")"))) (; ";")) (expression_statement "iVar11 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar11 = *(int *)(puVar30 + -0x68)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar30 + -0x68)" (* "*") (cast_expression "(int *)(puVar30 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x68)" (( "(") (binary_expression "puVar30 + -0x68" (identifier "puVar30") (+ "+") (number_literal "-0x68")) () ")"))))) (; ";")) (expression_statement "puVar26 = *(undefined4 **)(puVar30 + -0x48);" (assignment_expression "puVar26 = *(undefined4 **)(puVar30 + -0x48)" (identifier "puVar26") (= "=") (pointer_expression "*(undefined4 **)(puVar30 + -0x48)" (* "*") (cast_expression "(undefined4 **)(puVar30 + -0x48)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x48)" (( "(") (binary_expression "puVar30 + -0x48" (identifier "puVar30") (+ "+") (number_literal "-0x48")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }" (else "else") (compound_statement "{\n          puVar26 = *(undefined4 **)(puVar30 + -0x44);\n          iVar6 = iVar28 + -1;\n          puVar7 = (undefined4 *)(iVar11 + iVar31);\n          uVar13 = *puVar26;\n          puVar12 = puVar7;\n          if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }\nLAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);\n          uVar5 = *(undefined4 *)(puVar30 + -0x48);\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n          *(int *)(puVar30 + -0x48) = iVar11;\n          *(undefined4 *)(puVar30 + -0x70) = uVar5;\n          puVar12[iVar28 + -1] = uVar13;\n          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);\n          iVar11 = *(int *)(puVar30 + -0x68);\n          if (iVar19 == 0) goto joined_r0x0007b75c;\n          puVar26 = *(undefined4 **)(puVar30 + -0x48);\n          *(int *)(puVar30 + -0x40) = iVar19 + -1;\n        }" ({ "{") (expression_statement "puVar26 = *(undefined4 **)(puVar30 + -0x44);" (assignment_expression "puVar26 = *(undefined4 **)(puVar30 + -0x44)" (identifier "puVar26") (= "=") (pointer_expression "*(undefined4 **)(puVar30 + -0x44)" (* "*") (cast_expression "(undefined4 **)(puVar30 + -0x44)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x44)" (( "(") (binary_expression "puVar30 + -0x44" (identifier "puVar30") (+ "+") (number_literal "-0x44")) () ")"))))) (; ";")) (expression_statement "iVar6 = iVar28 + -1;" (assignment_expression "iVar6 = iVar28 + -1" (identifier "iVar6") (= "=") (binary_expression "iVar28 + -1" (identifier "iVar28") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "puVar7 = (undefined4 *)(iVar11 + iVar31);" (assignment_expression "puVar7 = (undefined4 *)(iVar11 + iVar31)" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(iVar11 + iVar31)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + iVar31)" (( "(") (binary_expression "iVar11 + iVar31" (identifier "iVar11") (+ "+") (identifier "iVar31")) () ")")))) (; ";")) (expression_statement "uVar13 = *puVar26;" (assignment_expression "uVar13 = *puVar26" (identifier "uVar13") (= "=") (pointer_expression "*puVar26" (* "*") (identifier "puVar26"))) (; ";")) (expression_statement "puVar12 = puVar7;" (assignment_expression "puVar12 = puVar7" (identifier "puVar12") (= "=") (identifier "puVar7")) (; ";")) (if_statement "if (iVar6 == 0) {\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar5 = *(undefined4 *)(puVar30 + -0x48);\n            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);\n            *puVar7 = uVar13;\n            *(undefined4 *)(puVar30 + -0x70) = uVar5;\n            iVar28 = iVar19;\n            goto LAB_0007bb8c;\n          }" ({ "{") (expression_statement "uVar5 = *(undefined4 *)(puVar30 + -0x48);" (assignment_expression "uVar5 = *(undefined4 *)(puVar30 + -0x48)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(puVar30 + -0x48)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x48)" (( "(") (binary_expression "puVar30 + -0x48" (identifier "puVar30") (+ "+") (number_literal "-0x48")) () ")"))))) (; ";")) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4)" (identifier "UNRECOVERED_JUMPTABLE") (= "=") (pointer_expression "*(code **)(iVar29 + -0x7ac4)" (* "*") (cast_expression "(code **)(iVar29 + -0x7ac4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar29 + -0x7ac4)" (( "(") (binary_expression "iVar29 + -0x7ac4" (identifier "iVar29") (+ "+") (number_literal "-0x7ac4")) () ")"))))) (; ";")) (expression_statement "*puVar7 = uVar13;" (assignment_expression "*puVar7 = uVar13" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "*(undefined4 *)(puVar30 + -0x70) = uVar5;" (assignment_expression "*(undefined4 *)(puVar30 + -0x70) = uVar5" (pointer_expression "*(undefined4 *)(puVar30 + -0x70)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x70)" (( "(") (binary_expression "puVar30 + -0x70" (identifier "puVar30") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "iVar28 = iVar19;" (assignment_expression "iVar28 = iVar19" (identifier "iVar28") (= "=") (identifier "iVar19")) (; ";")) (goto_statement "goto LAB_0007bb8c;" (goto "goto") (statement_identifier "LAB_0007bb8c") (; ";")) (} "}"))) (labeled_statement "LAB_0007b70c:\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);" (statement_identifier "LAB_0007b70c") (: ":") (do_statement "do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar6 != 0);" (do "do") (compound_statement "{\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar6 = iVar6 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          }" ({ "{") (expression_statement "puVar26 = puVar26 + 1;" (assignment_expression "puVar26 = puVar26 + 1" (identifier "puVar26") (= "=") (binary_expression "puVar26 + 1" (identifier "puVar26") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar7 = uVar13;" (assignment_expression "*puVar7 = uVar13" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + -1" (identifier "iVar6") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar13 = *puVar26;" (assignment_expression "uVar13 = *puVar26" (identifier "uVar13") (= "=") (pointer_expression "*puVar26" (* "*") (identifier "puVar26"))) (; ";")) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" (identifier "puVar7") (= "=") (binary_expression "puVar7 + 1" (identifier "puVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (; ";"))) (expression_statement "uVar5 = *(undefined4 *)(puVar30 + -0x48);" (assignment_expression "uVar5 = *(undefined4 *)(puVar30 + -0x48)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(puVar30 + -0x48)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x48)" (( "(") (binary_expression "puVar30 + -0x48" (identifier "puVar30") (+ "+") (number_literal "-0x48")) () ")"))))) (; ";")) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4)" (identifier "UNRECOVERED_JUMPTABLE") (= "=") (pointer_expression "*(code **)(iVar29 + -0x7ac4)" (* "*") (cast_expression "(code **)(iVar29 + -0x7ac4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar29 + -0x7ac4)" (( "(") (binary_expression "iVar29 + -0x7ac4" (identifier "iVar29") (+ "+") (number_literal "-0x7ac4")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar30 + -0x48) = iVar11;" (assignment_expression "*(int *)(puVar30 + -0x48) = iVar11" (pointer_expression "*(int *)(puVar30 + -0x48)" (* "*") (cast_expression "(int *)(puVar30 + -0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x48)" (( "(") (binary_expression "puVar30 + -0x48" (identifier "puVar30") (+ "+") (number_literal "-0x48")) () ")")))) (= "=") (identifier "iVar11")) (; ";")) (expression_statement "*(undefined4 *)(puVar30 + -0x70) = uVar5;" (assignment_expression "*(undefined4 *)(puVar30 + -0x70) = uVar5" (pointer_expression "*(undefined4 *)(puVar30 + -0x70)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x70)" (( "(") (binary_expression "puVar30 + -0x70" (identifier "puVar30") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "puVar12[iVar28 + -1] = uVar13;" (assignment_expression "puVar12[iVar28 + -1] = uVar13" (subscript_expression "puVar12[iVar28 + -1]" (identifier "puVar12") ([ "[") (binary_expression "iVar28 + -1" (identifier "iVar28") (+ "+") (number_literal "-1")) (] "]")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "(*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);" (call_expression "(*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" (( "(") (pointer_expression "*UNRECOVERED_JUMPTABLE" (* "*") (identifier "UNRECOVERED_JUMPTABLE")) () ")")) (argument_list "(iVar11,iVar18,piVar23,iVar19)" (( "(") (identifier "iVar11") (, ",") (identifier "iVar18") (, ",") (identifier "piVar23") (, ",") (identifier "iVar19") () ")"))) (; ";")) (expression_statement "iVar11 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar11 = *(int *)(puVar30 + -0x68)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar30 + -0x68)" (* "*") (cast_expression "(int *)(puVar30 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x68)" (( "(") (binary_expression "puVar30 + -0x68" (identifier "puVar30") (+ "+") (number_literal "-0x68")) () ")"))))) (; ";")) (if_statement "if (iVar19 == 0) goto joined_r0x0007b75c;" (if "if") (parenthesized_expression "(iVar19 == 0)" (( "(") (binary_expression "iVar19 == 0" (identifier "iVar19") (== "==") (number_literal "0")) () ")")) (goto_statement "goto joined_r0x0007b75c;" (goto "goto") (statement_identifier "joined_r0x0007b75c") (; ";"))) (expression_statement "puVar26 = *(undefined4 **)(puVar30 + -0x48);" (assignment_expression "puVar26 = *(undefined4 **)(puVar30 + -0x48)" (identifier "puVar26") (= "=") (pointer_expression "*(undefined4 **)(puVar30 + -0x48)" (* "*") (cast_expression "(undefined4 **)(puVar30 + -0x48)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x48)" (( "(") (binary_expression "puVar30 + -0x48" (identifier "puVar30") (+ "+") (number_literal "-0x48")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar30 + -0x40) = iVar19 + -1;" (assignment_expression "*(int *)(puVar30 + -0x40) = iVar19 + -1" (pointer_expression "*(int *)(puVar30 + -0x40)" (* "*") (cast_expression "(int *)(puVar30 + -0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x40)" (( "(") (binary_expression "puVar30 + -0x40" (identifier "puVar30") (+ "+") (number_literal "-0x40")) () ")")))) (= "=") (binary_expression "iVar19 + -1" (identifier "iVar19") (+ "+") (number_literal "-1"))) (; ";")) (} "}")))) (expression_statement "iVar28 = *(int *)(puVar30 + -0x40);" (assignment_expression "iVar28 = *(int *)(puVar30 + -0x40)" (identifier "iVar28") (= "=") (pointer_expression "*(int *)(puVar30 + -0x40)" (* "*") (cast_expression "(int *)(puVar30 + -0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x40)" (( "(") (binary_expression "puVar30 + -0x40" (identifier "puVar30") (+ "+") (number_literal "-0x40")) () ")"))))) (; ";")) (expression_statement "uVar13 = *puVar26;" (assignment_expression "uVar13 = *puVar26" (identifier "uVar13") (= "=") (pointer_expression "*puVar26" (* "*") (identifier "puVar26"))) (; ";")) (expression_statement "puVar7 = puVar24;" (assignment_expression "puVar7 = puVar24" (identifier "puVar7") (= "=") (identifier "puVar24")) (; ";")) (if_statement "if (iVar28 == 0) {\n          *puVar24 = uVar13;\n        }\n        else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }" (if "if") (parenthesized_expression "(iVar28 == 0)" (( "(") (binary_expression "iVar28 == 0" (identifier "iVar28") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *puVar24 = uVar13;\n        }" ({ "{") (expression_statement "*puVar24 = uVar13;" (assignment_expression "*puVar24 = uVar13" (pointer_expression "*puVar24" (* "*") (identifier "puVar24")) (= "=") (identifier "uVar13")) (; ";")) (} "}")) (else_clause "else {\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }" (else "else") (compound_statement "{\n          do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);\n          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;\n        }" ({ "{") (do_statement "do {\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          } while (iVar28 != 0);" (do "do") (compound_statement "{\n            puVar26 = puVar26 + 1;\n            *puVar7 = uVar13;\n            iVar28 = iVar28 + -1;\n            uVar13 = *puVar26;\n            puVar7 = puVar7 + 1;\n          }" ({ "{") (expression_statement "puVar26 = puVar26 + 1;" (assignment_expression "puVar26 = puVar26 + 1" (identifier "puVar26") (= "=") (binary_expression "puVar26 + 1" (identifier "puVar26") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar7 = uVar13;" (assignment_expression "*puVar7 = uVar13" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "iVar28 = iVar28 + -1;" (assignment_expression "iVar28 = iVar28 + -1" (identifier "iVar28") (= "=") (binary_expression "iVar28 + -1" (identifier "iVar28") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar13 = *puVar26;" (assignment_expression "uVar13 = *puVar26" (identifier "uVar13") (= "=") (pointer_expression "*puVar26" (* "*") (identifier "puVar26"))) (; ";")) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" (identifier "puVar7") (= "=") (binary_expression "puVar7 + 1" (identifier "puVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar28 != 0)" (( "(") (binary_expression "iVar28 != 0" (identifier "iVar28") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "puVar24[*(int *)(puVar30 + -0x40)] = uVar13;" (assignment_expression "puVar24[*(int *)(puVar30 + -0x40)] = uVar13" (subscript_expression "puVar24[*(int *)(puVar30 + -0x40)]" (identifier "puVar24") ([ "[") (pointer_expression "*(int *)(puVar30 + -0x40)" (* "*") (cast_expression "(int *)(puVar30 + -0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x40)" (( "(") (binary_expression "puVar30 + -0x40" (identifier "puVar30") (+ "+") (number_literal "-0x40")) () ")")))) (] "]")) (= "=") (identifier "uVar13")) (; ";")) (} "}")))) (} "}")))) (labeled_statement "joined_r0x0007b75c:\n      for (; iVar25 != 0; iVar25 = iVar25 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);\n        puVar20 = puVar20 + iVar19;\n        *(int *)(puVar30 + -0x70) = iVar4;\n        uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }" (statement_identifier "joined_r0x0007b75c") (: ":") (for_statement "for (; iVar25 != 0; iVar25 = iVar25 + -1) {\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);\n        puVar20 = puVar20 + iVar19;\n        *(int *)(puVar30 + -0x70) = iVar4;\n        uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }" (for "for") (( "(") (; ";") (binary_expression "iVar25 != 0" (identifier "iVar25") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar25 = iVar25 + -1" (identifier "iVar25") (= "=") (binary_expression "iVar25 + -1" (identifier "iVar25") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);\n        puVar20 = puVar20 + iVar19;\n        *(int *)(puVar30 + -0x70) = iVar4;\n        uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);\n        *(int *)(puVar30 + -0x70) = iVar19;\n        (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);\n        iVar11 = *(int *)(puVar30 + -0x68);\n      }" ({ "{") (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0)" (identifier "UNRECOVERED_JUMPTABLE") (= "=") (pointer_expression "*(code **)(iVar11 + -0x7bd0)" (* "*") (cast_expression "(code **)(iVar11 + -0x7bd0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + -0x7bd0)" (( "(") (binary_expression "iVar11 + -0x7bd0" (identifier "iVar11") (+ "+") (number_literal "-0x7bd0")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar30 + -0x70) = iVar19;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar19" (pointer_expression "*(int *)(puVar30 + -0x70)" (* "*") (cast_expression "(int *)(puVar30 + -0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x70)" (( "(") (binary_expression "puVar30 + -0x70" (identifier "puVar30") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (identifier "iVar19")) (; ";")) (expression_statement "(*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);" (call_expression "(*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" (( "(") (pointer_expression "*UNRECOVERED_JUMPTABLE" (* "*") (identifier "UNRECOVERED_JUMPTABLE")) () ")")) (argument_list "(puVar21,puVar20,iVar19,puVar24)" (( "(") (identifier "puVar21") (, ",") (identifier "puVar20") (, ",") (identifier "iVar19") (, ",") (identifier "puVar24") () ")"))) (; ";")) (expression_statement "puVar20 = puVar20 + iVar19;" (assignment_expression "puVar20 = puVar20 + iVar19" (identifier "puVar20") (= "=") (binary_expression "puVar20 + iVar19" (identifier "puVar20") (+ "+") (identifier "iVar19"))) (; ";")) (expression_statement "*(int *)(puVar30 + -0x70) = iVar4;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar4" (pointer_expression "*(int *)(puVar30 + -0x70)" (* "*") (cast_expression "(int *)(puVar30 + -0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x70)" (( "(") (binary_expression "puVar30 + -0x70" (identifier "puVar30") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);" (assignment_expression "uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19)" (identifier "uVar13") (= "=") (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" (* "*") (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7eb0)" (( "(") (binary_expression "*(int *)(puVar30 + -0x68) + -0x7eb0" (pointer_expression "*(int *)(puVar30 + -0x68)" (* "*") (cast_expression "(int *)(puVar30 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x68)" (( "(") (binary_expression "puVar30 + -0x68" (identifier "puVar30") (+ "+") (number_literal "-0x68")) () ")")))) (+ "+") (number_literal "-0x7eb0")) () ")"))))) () ")")) (argument_list "(puVar20,puVar21,piVar23,iVar19)" (( "(") (identifier "puVar20") (, ",") (identifier "puVar21") (, ",") (identifier "piVar23") (, ",") (identifier "iVar19") () ")")))) (; ";")) (expression_statement "*(int *)(puVar30 + -0x70) = iVar19;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar19" (pointer_expression "*(int *)(puVar30 + -0x70)" (* "*") (cast_expression "(int *)(puVar30 + -0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x70)" (( "(") (binary_expression "puVar30 + -0x70" (identifier "puVar30") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (identifier "iVar19")) (; ";")) (expression_statement "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);" (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" (* "*") (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7a70)" (( "(") (binary_expression "*(int *)(puVar30 + -0x68) + -0x7a70" (pointer_expression "*(int *)(puVar30 + -0x68)" (* "*") (cast_expression "(int *)(puVar30 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x68)" (( "(") (binary_expression "puVar30 + -0x68" (identifier "puVar30") (+ "+") (number_literal "-0x68")) () ")")))) (+ "+") (number_literal "-0x7a70")) () ")"))))) () ")")) (argument_list "(uVar13,puVar20,puVar20,piVar23)" (( "(") (identifier "uVar13") (, ",") (identifier "puVar20") (, ",") (identifier "puVar20") (, ",") (identifier "piVar23") () ")"))) (; ";")) (expression_statement "iVar11 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar11 = *(int *)(puVar30 + -0x68)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar30 + -0x68)" (* "*") (cast_expression "(int *)(puVar30 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x68)" (( "(") (binary_expression "puVar30 + -0x68" (identifier "puVar30") (+ "+") (number_literal "-0x68")) () ")"))))) (; ";")) (} "}")))) (expression_statement "uVar2 = *(uint *)(puVar30 + -0x5c);" (assignment_expression "uVar2 = *(uint *)(puVar30 + -0x5c)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(puVar30 + -0x5c)" (* "*") (cast_expression "(uint *)(puVar30 + -0x5c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x5c)" (( "(") (binary_expression "puVar30 + -0x5c" (identifier "puVar30") (+ "+") (number_literal "-0x5c")) () ")"))))) (; ";")) (if_statement "if (*(uint *)(puVar30 + -0x60) < uVar2) {\n        (**(code **)(iVar11 + -0x7c20))\n                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438);\n        uVar2 = extraout_v1;\n      }" (if "if") (parenthesized_expression "(*(uint *)(puVar30 + -0x60) < uVar2)" (( "(") (binary_expression "*(uint *)(puVar30 + -0x60) < uVar2" (pointer_expression "*(uint *)(puVar30 + -0x60)" (* "*") (cast_expression "(uint *)(puVar30 + -0x60)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x60)" (( "(") (binary_expression "puVar30 + -0x60" (identifier "puVar30") (+ "+") (number_literal "-0x60")) () ")")))) (< "<") (identifier "uVar2")) () ")")) (compound_statement "{\n        (**(code **)(iVar11 + -0x7c20))\n                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438);\n        uVar2 = extraout_v1;\n      }" ({ "{") (expression_statement "(**(code **)(iVar11 + -0x7c20))\n                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438);" (call_expression "(**(code **)(iVar11 + -0x7c20))\n                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438)" (parenthesized_expression "(**(code **)(iVar11 + -0x7c20))" (( "(") (pointer_expression "**(code **)(iVar11 + -0x7c20)" (* "*") (pointer_expression "*(code **)(iVar11 + -0x7c20)" (* "*") (cast_expression "(code **)(iVar11 + -0x7c20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + -0x7c20)" (( "(") (binary_expression "iVar11 + -0x7c20" (identifier "iVar11") (+ "+") (number_literal "-0x7c20")) () ")"))))) () ")")) (argument_list "(*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438)" (( "(") (binary_expression "*(int *)(iVar11 + -0x7fd4) + 0x544c" (pointer_expression "*(int *)(iVar11 + -0x7fd4)" (* "*") (cast_expression "(int *)(iVar11 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + -0x7fd4)" (( "(") (binary_expression "iVar11 + -0x7fd4" (identifier "iVar11") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "0x544c")) (, ",") (number_literal "0x125") (, ",") (binary_expression "*(int *)(iVar11 + -0x7fd4) + 0x5438" (pointer_expression "*(int *)(iVar11 + -0x7fd4)" (* "*") (cast_expression "(int *)(iVar11 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + -0x7fd4)" (( "(") (binary_expression "iVar11 + -0x7fd4" (identifier "iVar11") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "0x5438")) () ")"))) (; ";")) (expression_statement "uVar2 = extraout_v1;" (assignment_expression "uVar2 = extraout_v1" (identifier "uVar2") (= "=") (identifier "extraout_v1")) (; ";")) (} "}"))) (expression_statement "uVar2 = *(int *)(puVar30 + -0x60) - uVar2;" (assignment_expression "uVar2 = *(int *)(puVar30 + -0x60) - uVar2" (identifier "uVar2") (= "=") (binary_expression "*(int *)(puVar30 + -0x60) - uVar2" (pointer_expression "*(int *)(puVar30 + -0x60)" (* "*") (cast_expression "(int *)(puVar30 + -0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x60)" (( "(") (binary_expression "puVar30 + -0x60" (identifier "puVar30") (+ "+") (number_literal "-0x60")) () ")")))) (- "-") (identifier "uVar2"))) (; ";")) (expression_statement "uVar9 = 0x20 - (uVar2 & 0x1f);" (assignment_expression "uVar9 = 0x20 - (uVar2 & 0x1f)" (identifier "uVar9") (= "=") (binary_expression "0x20 - (uVar2 & 0x1f)" (number_literal "0x20") (- "-") (parenthesized_expression "(uVar2 & 0x1f)" (( "(") (binary_expression "uVar2 & 0x1f" (identifier "uVar2") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4);" (assignment_expression "puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4)" (identifier "puVar8") (= "=") (cast_expression "(uint *)(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4)" (( "(") (binary_expression "*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4" (pointer_expression "*(int *)(puVar30 + -0x4c)" (* "*") (cast_expression "(int *)(puVar30 + -0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x4c)" (( "(") (binary_expression "puVar30 + -0x4c" (identifier "puVar30") (+ "+") (number_literal "-0x4c")) () ")")))) (+ "+") (binary_expression "(uVar2 >> 5) * 4" (parenthesized_expression "(uVar2 >> 5)" (( "(") (binary_expression "uVar2 >> 5" (identifier "uVar2") (>> ">>") (number_literal "5")) () ")")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "uVar3 = *puVar8 >> (uVar2 & 0x1f);" (assignment_expression "uVar3 = *puVar8 >> (uVar2 & 0x1f)" (identifier "uVar3") (= "=") (binary_expression "*puVar8 >> (uVar2 & 0x1f)" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (>> ">>") (parenthesized_expression "(uVar2 & 0x1f)" (( "(") (binary_expression "uVar2 & 0x1f" (identifier "uVar2") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (if_statement "if ((int)uVar9 < *(int *)(puVar30 + -0x58)) {\n        uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f));\n      }" (if "if") (parenthesized_expression "((int)uVar9 < *(int *)(puVar30 + -0x58))" (( "(") (binary_expression "(int)uVar9 < *(int *)(puVar30 + -0x58)" (cast_expression "(int)uVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar9")) (< "<") (pointer_expression "*(int *)(puVar30 + -0x58)" (* "*") (cast_expression "(int *)(puVar30 + -0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x58)" (( "(") (binary_expression "puVar30 + -0x58" (identifier "puVar30") (+ "+") (number_literal "-0x58")) () ")"))))) () ")")) (compound_statement "{\n        uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f));\n      }" ({ "{") (expression_statement "uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f));" (assignment_expression "uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f))" (identifier "uVar3") (= "=") (binary_expression "uVar3 + (puVar8[1] << (uVar9 & 0x1f))" (identifier "uVar3") (+ "+") (parenthesized_expression "(puVar8[1] << (uVar9 & 0x1f))" (( "(") (binary_expression "puVar8[1] << (uVar9 & 0x1f)" (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]")) (<< "<<") (parenthesized_expression "(uVar9 & 0x1f)" (( "(") (binary_expression "uVar9 & 0x1f" (identifier "uVar9") (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (} "}"))) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bac);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bac)" (identifier "UNRECOVERED_JUMPTABLE") (= "=") (pointer_expression "*(code **)(iVar11 + -0x7bac)" (* "*") (cast_expression "(code **)(iVar11 + -0x7bac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + -0x7bac)" (( "(") (binary_expression "iVar11 + -0x7bac" (identifier "iVar11") (+ "+") (number_literal "-0x7bac")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar30 + -0x44) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f));" (assignment_expression "*(int *)(puVar30 + -0x44) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f))" (pointer_expression "*(int *)(puVar30 + -0x44)" (* "*") (cast_expression "(int *)(puVar30 + -0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x44)" (( "(") (binary_expression "puVar30 + -0x44" (identifier "puVar30") (+ "+") (number_literal "-0x44")) () ")")))) (= "=") (unary_expression "~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f))" (~ "~") (parenthesized_expression "(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f))" (( "(") (binary_expression "-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)" (number_literal "-1") (<< "<<") (parenthesized_expression "(*(uint *)(puVar30 + -0x58) & 0x1f)" (( "(") (binary_expression "*(uint *)(puVar30 + -0x58) & 0x1f" (pointer_expression "*(uint *)(puVar30 + -0x58)" (* "*") (cast_expression "(uint *)(puVar30 + -0x58)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x58)" (( "(") (binary_expression "puVar30 + -0x58" (identifier "puVar30") (+ "+") (number_literal "-0x58")) () ")")))) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (expression_statement "*(uint *)(puVar30 + -0x70) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)) & uVar3;" (assignment_expression "*(uint *)(puVar30 + -0x70) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)) & uVar3" (pointer_expression "*(uint *)(puVar30 + -0x70)" (* "*") (cast_expression "(uint *)(puVar30 + -0x70)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x70)" (( "(") (binary_expression "puVar30 + -0x70" (identifier "puVar30") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (binary_expression "~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)) & uVar3" (unary_expression "~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f))" (~ "~") (parenthesized_expression "(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f))" (( "(") (binary_expression "-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)" (number_literal "-1") (<< "<<") (parenthesized_expression "(*(uint *)(puVar30 + -0x58) & 0x1f)" (( "(") (binary_expression "*(uint *)(puVar30 + -0x58) & 0x1f" (pointer_expression "*(uint *)(puVar30 + -0x58)" (* "*") (cast_expression "(uint *)(puVar30 + -0x58)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x58)" (( "(") (binary_expression "puVar30 + -0x58" (identifier "puVar30") (+ "+") (number_literal "-0x58")) () ")")))) (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (& "&") (identifier "uVar3"))) (; ";")) (expression_statement "(*UNRECOVERED_JUMPTABLE)\n                (puVar22,*(undefined4 *)(puVar30 + -0x54),iVar19,*(undefined4 *)(puVar30 + -0x50));" (call_expression "(*UNRECOVERED_JUMPTABLE)\n                (puVar22,*(undefined4 *)(puVar30 + -0x54),iVar19,*(undefined4 *)(puVar30 + -0x50))" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" (( "(") (pointer_expression "*UNRECOVERED_JUMPTABLE" (* "*") (identifier "UNRECOVERED_JUMPTABLE")) () ")")) (argument_list "(puVar22,*(undefined4 *)(puVar30 + -0x54),iVar19,*(undefined4 *)(puVar30 + -0x50))" (( "(") (identifier "puVar22") (, ",") (pointer_expression "*(undefined4 *)(puVar30 + -0x54)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x54)" (( "(") (binary_expression "puVar30 + -0x54" (identifier "puVar30") (+ "+") (number_literal "-0x54")) () ")")))) (, ",") (identifier "iVar19") (, ",") (pointer_expression "*(undefined4 *)(puVar30 + -0x50)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x50)" (( "(") (binary_expression "puVar30 + -0x50" (identifier "puVar30") (+ "+") (number_literal "-0x50")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar25 = *(int *)(puVar30 + -0x68)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar30 + -0x68)" (* "*") (cast_expression "(int *)(puVar30 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x68)" (( "(") (binary_expression "puVar30 + -0x68" (identifier "puVar30") (+ "+") (number_literal "-0x68")) () ")"))))) (; ";")) (if_statement "if (uVar2 != 0) {\n        *(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39);\n        do {\n          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n          if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);\n          *(undefined4 *)(puVar30 + -0x70) = uVar13;\n          (*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);\n          *(int *)(puVar30 + -0x70) = iVar4;\n          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n          iVar25 = *(int *)(puVar30 + -0x68);\n          uVar2 = uVar9;\n        } while (uVar9 != 0);\n      }" (if "if") (parenthesized_expression "(uVar2 != 0)" (( "(") (binary_expression "uVar2 != 0" (identifier "uVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        *(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39);\n        do {\n          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n          if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);\n          *(undefined4 *)(puVar30 + -0x70) = uVar13;\n          (*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);\n          *(int *)(puVar30 + -0x70) = iVar4;\n          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n          iVar25 = *(int *)(puVar30 + -0x68);\n          uVar2 = uVar9;\n        } while (uVar9 != 0);\n      }" ({ "{") (expression_statement "*(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39);" (assignment_expression "*(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39)" (pointer_expression "*(uint *)(puVar30 + -0x48)" (* "*") (cast_expression "(uint *)(puVar30 + -0x48)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x48)" (( "(") (binary_expression "puVar30 + -0x48" (identifier "puVar30") (+ "+") (number_literal "-0x48")) () ")")))) (= "=") (call_expression "(uint)(iVar19 < 0x39)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar19 < 0x39)" (( "(") (binary_expression "iVar19 < 0x39" (identifier "iVar19") (< "<") (number_literal "0x39")) () ")")))) (; ";")) (do_statement "do {\n          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n          if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);\n          *(undefined4 *)(puVar30 + -0x70) = uVar13;\n          (*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);\n          *(int *)(puVar30 + -0x70) = iVar4;\n          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n          iVar25 = *(int *)(puVar30 + -0x68);\n          uVar2 = uVar9;\n        } while (uVar9 != 0);" (do "do") (compound_statement "{\n          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n          if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);\n          *(undefined4 *)(puVar30 + -0x70) = uVar13;\n          (*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);\n          *(int *)(puVar30 + -0x70) = iVar4;\n          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);\n          *(int *)(puVar30 + -0x70) = iVar19;\n          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n          iVar25 = *(int *)(puVar30 + -0x68);\n          uVar2 = uVar9;\n        }" ({ "{") (if_statement "if (uVar2 < *(uint *)(puVar30 + -0x5c)) {\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }\n          else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }" (if "if") (parenthesized_expression "(uVar2 < *(uint *)(puVar30 + -0x5c))" (( "(") (binary_expression "uVar2 < *(uint *)(puVar30 + -0x5c)" (identifier "uVar2") (< "<") (pointer_expression "*(uint *)(puVar30 + -0x5c)" (* "*") (cast_expression "(uint *)(puVar30 + -0x5c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x5c)" (( "(") (binary_expression "puVar30 + -0x5c" (identifier "puVar30") (+ "+") (number_literal "-0x5c")) () ")"))))) () ")")) (compound_statement "{\n            uVar9 = 0;\n            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);\n          }" ({ "{") (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);" (assignment_expression "*(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c)" (pointer_expression "*(uint *)(puVar30 + -0x60)" (* "*") (cast_expression "(uint *)(puVar30 + -0x60)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x60)" (( "(") (binary_expression "puVar30 + -0x60" (identifier "puVar30") (+ "+") (number_literal "-0x60")) () ")")))) (= "=") (binary_expression "~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c)" (unary_expression "~(-1 << (uVar2 & 0x1f))" (~ "~") (parenthesized_expression "(-1 << (uVar2 & 0x1f))" (( "(") (binary_expression "-1 << (uVar2 & 0x1f)" (number_literal "-1") (<< "<<") (parenthesized_expression "(uVar2 & 0x1f)" (( "(") (binary_expression "uVar2 & 0x1f" (identifier "uVar2") (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (& "&") (pointer_expression "**(uint **)(puVar30 + -0x4c)" (* "*") (pointer_expression "*(uint **)(puVar30 + -0x4c)" (* "*") (cast_expression "(uint **)(puVar30 + -0x4c)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar30 + -0x4c)" (( "(") (binary_expression "puVar30 + -0x4c" (identifier "puVar30") (+ "+") (number_literal "-0x4c")) () ")"))))))) (; ";")) (} "}")) (else_clause "else {\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }" (else "else") (compound_statement "{\n            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);\n            uVar2 = 0x20 - (uVar9 & 0x1f);\n            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);\n            uVar3 = *puVar8 >> (uVar9 & 0x1f);\n            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }\n            uVar2 = *(uint *)(puVar30 + -0x58);\n            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;\n          }" ({ "{") (expression_statement "uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);" (assignment_expression "uVar9 = uVar2 - *(int *)(puVar30 + -0x5c)" (identifier "uVar9") (= "=") (binary_expression "uVar2 - *(int *)(puVar30 + -0x5c)" (identifier "uVar2") (- "-") (pointer_expression "*(int *)(puVar30 + -0x5c)" (* "*") (cast_expression "(int *)(puVar30 + -0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x5c)" (( "(") (binary_expression "puVar30 + -0x5c" (identifier "puVar30") (+ "+") (number_literal "-0x5c")) () ")")))))) (; ";")) (expression_statement "uVar2 = 0x20 - (uVar9 & 0x1f);" (assignment_expression "uVar2 = 0x20 - (uVar9 & 0x1f)" (identifier "uVar2") (= "=") (binary_expression "0x20 - (uVar9 & 0x1f)" (number_literal "0x20") (- "-") (parenthesized_expression "(uVar9 & 0x1f)" (( "(") (binary_expression "uVar9 & 0x1f" (identifier "uVar9") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);" (assignment_expression "puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4)" (identifier "puVar8") (= "=") (cast_expression "(uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4)" (( "(") (binary_expression "*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4" (pointer_expression "*(int *)(puVar30 + -0x4c)" (* "*") (cast_expression "(int *)(puVar30 + -0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x4c)" (( "(") (binary_expression "puVar30 + -0x4c" (identifier "puVar30") (+ "+") (number_literal "-0x4c")) () ")")))) (+ "+") (binary_expression "(uVar9 >> 5) * 4" (parenthesized_expression "(uVar9 >> 5)" (( "(") (binary_expression "uVar9 >> 5" (identifier "uVar9") (>> ">>") (number_literal "5")) () ")")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "uVar3 = *puVar8 >> (uVar9 & 0x1f);" (assignment_expression "uVar3 = *puVar8 >> (uVar9 & 0x1f)" (identifier "uVar3") (= "=") (binary_expression "*puVar8 >> (uVar9 & 0x1f)" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (>> ">>") (parenthesized_expression "(uVar9 & 0x1f)" (( "(") (binary_expression "uVar9 & 0x1f" (identifier "uVar9") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (if_statement "if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }" (if "if") (parenthesized_expression "((int)uVar2 < *(int *)(puVar30 + -0x58))" (( "(") (binary_expression "(int)uVar2 < *(int *)(puVar30 + -0x58)" (cast_expression "(int)uVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar2")) (< "<") (pointer_expression "*(int *)(puVar30 + -0x58)" (* "*") (cast_expression "(int *)(puVar30 + -0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x58)" (( "(") (binary_expression "puVar30 + -0x58" (identifier "puVar30") (+ "+") (number_literal "-0x58")) () ")"))))) () ")")) (compound_statement "{\n              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));\n            }" ({ "{") (expression_statement "uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));" (assignment_expression "uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f))" (identifier "uVar3") (= "=") (binary_expression "uVar3 + (puVar8[1] << (uVar2 & 0x1f))" (identifier "uVar3") (+ "+") (parenthesized_expression "(puVar8[1] << (uVar2 & 0x1f))" (( "(") (binary_expression "puVar8[1] << (uVar2 & 0x1f)" (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]")) (<< "<<") (parenthesized_expression "(uVar2 & 0x1f)" (( "(") (binary_expression "uVar2 & 0x1f" (identifier "uVar2") (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (} "}"))) (expression_statement "uVar2 = *(uint *)(puVar30 + -0x58);" (assignment_expression "uVar2 = *(uint *)(puVar30 + -0x58)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(puVar30 + -0x58)" (* "*") (cast_expression "(uint *)(puVar30 + -0x58)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x58)" (( "(") (binary_expression "puVar30 + -0x58" (identifier "puVar30") (+ "+") (number_literal "-0x58")) () ")"))))) (; ";")) (expression_statement "*(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;" (assignment_expression "*(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3" (pointer_expression "*(uint *)(puVar30 + -0x60)" (* "*") (cast_expression "(uint *)(puVar30 + -0x60)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x60)" (( "(") (binary_expression "puVar30 + -0x60" (identifier "puVar30") (+ "+") (number_literal "-0x60")) () ")")))) (= "=") (binary_expression "*(uint *)(puVar30 + -0x44) & uVar3" (pointer_expression "*(uint *)(puVar30 + -0x44)" (* "*") (cast_expression "(uint *)(puVar30 + -0x44)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x44)" (( "(") (binary_expression "puVar30 + -0x44" (identifier "puVar30") (+ "+") (number_literal "-0x44")) () ")")))) (& "&") (identifier "uVar3"))) (; ";")) (} "}")))) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc)" (identifier "UNRECOVERED_JUMPTABLE") (= "=") (pointer_expression "*(code **)(iVar25 + -0x7adc)" (* "*") (cast_expression "(code **)(iVar25 + -0x7adc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x7adc)" (( "(") (binary_expression "iVar25 + -0x7adc" (identifier "iVar25") (+ "+") (number_literal "-0x7adc")) () ")"))))) (; ";")) (if_statement "if (*(int *)(puVar30 + -0x48) == 0) {\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }\n          else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }" (if "if") (parenthesized_expression "(*(int *)(puVar30 + -0x48) == 0)" (( "(") (binary_expression "*(int *)(puVar30 + -0x48) == 0" (pointer_expression "*(int *)(puVar30 + -0x48)" (* "*") (cast_expression "(int *)(puVar30 + -0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x48)" (( "(") (binary_expression "puVar30 + -0x48" (identifier "puVar30") (+ "+") (number_literal "-0x48")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }" ({ "{") (do_statement "do {\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            } while (uVar2 != 0);" (do "do") (compound_statement "{\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n            }" ({ "{") (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0)" (identifier "UNRECOVERED_JUMPTABLE") (= "=") (pointer_expression "*(code **)(iVar25 + -0x7bd0)" (* "*") (cast_expression "(code **)(iVar25 + -0x7bd0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x7bd0)" (( "(") (binary_expression "iVar25 + -0x7bd0" (identifier "iVar25") (+ "+") (number_literal "-0x7bd0")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar30 + -0x70) = iVar19;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar19" (pointer_expression "*(int *)(puVar30 + -0x70)" (* "*") (cast_expression "(int *)(puVar30 + -0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x70)" (( "(") (binary_expression "puVar30 + -0x70" (identifier "puVar30") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (identifier "iVar19")) (; ";")) (expression_statement "(*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);" (call_expression "(*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" (( "(") (pointer_expression "*UNRECOVERED_JUMPTABLE" (* "*") (identifier "UNRECOVERED_JUMPTABLE")) () ")")) (argument_list "(puVar21,puVar22,iVar19,puVar22)" (( "(") (identifier "puVar21") (, ",") (identifier "puVar22") (, ",") (identifier "iVar19") (, ",") (identifier "puVar22") () ")"))) (; ";")) (expression_statement "*(int *)(puVar30 + -0x70) = iVar4;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar4" (pointer_expression "*(int *)(puVar30 + -0x70)" (* "*") (cast_expression "(int *)(puVar30 + -0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x70)" (( "(") (binary_expression "puVar30 + -0x70" (identifier "puVar30") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "uVar2 = uVar2 - 1;" (assignment_expression "uVar2 = uVar2 - 1" (identifier "uVar2") (= "=") (binary_expression "uVar2 - 1" (identifier "uVar2") (- "-") (number_literal "1"))) (; ";")) (expression_statement "uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);" (assignment_expression "uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19)" (identifier "uVar13") (= "=") (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" (* "*") (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7eb0)" (( "(") (binary_expression "*(int *)(puVar30 + -0x68) + -0x7eb0" (pointer_expression "*(int *)(puVar30 + -0x68)" (* "*") (cast_expression "(int *)(puVar30 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x68)" (( "(") (binary_expression "puVar30 + -0x68" (identifier "puVar30") (+ "+") (number_literal "-0x68")) () ")")))) (+ "+") (number_literal "-0x7eb0")) () ")"))))) () ")")) (argument_list "(puVar22,puVar21,piVar23,iVar19)" (( "(") (identifier "puVar22") (, ",") (identifier "puVar21") (, ",") (identifier "piVar23") (, ",") (identifier "iVar19") () ")")))) (; ";")) (expression_statement "*(int *)(puVar30 + -0x70) = iVar19;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar19" (pointer_expression "*(int *)(puVar30 + -0x70)" (* "*") (cast_expression "(int *)(puVar30 + -0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x70)" (( "(") (binary_expression "puVar30 + -0x70" (identifier "puVar30") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (identifier "iVar19")) (; ";")) (expression_statement "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);" (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" (* "*") (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7a70)" (( "(") (binary_expression "*(int *)(puVar30 + -0x68) + -0x7a70" (pointer_expression "*(int *)(puVar30 + -0x68)" (* "*") (cast_expression "(int *)(puVar30 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x68)" (( "(") (binary_expression "puVar30 + -0x68" (identifier "puVar30") (+ "+") (number_literal "-0x68")) () ")")))) (+ "+") (number_literal "-0x7a70")) () ")"))))) () ")")) (argument_list "(uVar13,puVar22,puVar22,piVar23)" (( "(") (identifier "uVar13") (, ",") (identifier "puVar22") (, ",") (identifier "puVar22") (, ",") (identifier "piVar23") () ")"))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar25 = *(int *)(puVar30 + -0x68)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar30 + -0x68)" (* "*") (cast_expression "(int *)(puVar30 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x68)" (( "(") (binary_expression "puVar30 + -0x68" (identifier "puVar30") (+ "+") (number_literal "-0x68")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar2 != 0)" (( "(") (binary_expression "uVar2 != 0" (identifier "uVar2") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "uVar13 = *(undefined4 *)(puVar30 + -0x60);" (assignment_expression "uVar13 = *(undefined4 *)(puVar30 + -0x60)" (identifier "uVar13") (= "=") (pointer_expression "*(undefined4 *)(puVar30 + -0x60)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x60)" (( "(") (binary_expression "puVar30 + -0x60" (identifier "puVar30") (+ "+") (number_literal "-0x60")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }" (else "else") (compound_statement "{\n            while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }\n            uVar13 = *(undefined4 *)(puVar30 + -0x60);\n          }" ({ "{") (while_statement "while( true ) {\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar4;\n              uVar2 = uVar2 - 1;\n              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);\n              *(int *)(puVar30 + -0x70) = iVar19;\n              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);\n              iVar25 = *(int *)(puVar30 + -0x68);\n              if (uVar2 == 0) break;\n              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);\n            }" ({ "{") (expression_statement "(*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);" (call_expression "(*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" (( "(") (pointer_expression "*UNRECOVERED_JUMPTABLE" (* "*") (identifier "UNRECOVERED_JUMPTABLE")) () ")")) (argument_list "(puVar21,puVar22,iVar19)" (( "(") (identifier "puVar21") (, ",") (identifier "puVar22") (, ",") (identifier "iVar19") () ")"))) (; ";")) (expression_statement "*(int *)(puVar30 + -0x70) = iVar4;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar4" (pointer_expression "*(int *)(puVar30 + -0x70)" (* "*") (cast_expression "(int *)(puVar30 + -0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x70)" (( "(") (binary_expression "puVar30 + -0x70" (identifier "puVar30") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "uVar2 = uVar2 - 1;" (assignment_expression "uVar2 = uVar2 - 1" (identifier "uVar2") (= "=") (binary_expression "uVar2 - 1" (identifier "uVar2") (- "-") (number_literal "1"))) (; ";")) (expression_statement "uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19);" (assignment_expression "uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19)" (identifier "uVar13") (= "=") (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                                 (puVar22,puVar21,piVar23,iVar19)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" (* "*") (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7eb0)" (( "(") (binary_expression "*(int *)(puVar30 + -0x68) + -0x7eb0" (pointer_expression "*(int *)(puVar30 + -0x68)" (* "*") (cast_expression "(int *)(puVar30 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x68)" (( "(") (binary_expression "puVar30 + -0x68" (identifier "puVar30") (+ "+") (number_literal "-0x68")) () ")")))) (+ "+") (number_literal "-0x7eb0")) () ")"))))) () ")")) (argument_list "(puVar22,puVar21,piVar23,iVar19)" (( "(") (identifier "puVar22") (, ",") (identifier "puVar21") (, ",") (identifier "piVar23") (, ",") (identifier "iVar19") () ")")))) (; ";")) (expression_statement "*(int *)(puVar30 + -0x70) = iVar19;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar19" (pointer_expression "*(int *)(puVar30 + -0x70)" (* "*") (cast_expression "(int *)(puVar30 + -0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x70)" (( "(") (binary_expression "puVar30 + -0x70" (identifier "puVar30") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (identifier "iVar19")) (; ";")) (expression_statement "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);" (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" (* "*") (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7a70)" (( "(") (binary_expression "*(int *)(puVar30 + -0x68) + -0x7a70" (pointer_expression "*(int *)(puVar30 + -0x68)" (* "*") (cast_expression "(int *)(puVar30 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x68)" (( "(") (binary_expression "puVar30 + -0x68" (identifier "puVar30") (+ "+") (number_literal "-0x68")) () ")")))) (+ "+") (number_literal "-0x7a70")) () ")"))))) () ")")) (argument_list "(uVar13,puVar22,puVar22,piVar23)" (( "(") (identifier "uVar13") (, ",") (identifier "puVar22") (, ",") (identifier "puVar22") (, ",") (identifier "piVar23") () ")"))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar25 = *(int *)(puVar30 + -0x68)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar30 + -0x68)" (* "*") (cast_expression "(int *)(puVar30 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x68)" (( "(") (binary_expression "puVar30 + -0x68" (identifier "puVar30") (+ "+") (number_literal "-0x68")) () ")"))))) (; ";")) (if_statement "if (uVar2 == 0) break;" (if "if") (parenthesized_expression "(uVar2 == 0)" (( "(") (binary_expression "uVar2 == 0" (identifier "uVar2") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc)" (identifier "UNRECOVERED_JUMPTABLE") (= "=") (pointer_expression "*(code **)(iVar25 + -0x7adc)" (* "*") (cast_expression "(code **)(iVar25 + -0x7adc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x7adc)" (( "(") (binary_expression "iVar25 + -0x7adc" (identifier "iVar25") (+ "+") (number_literal "-0x7adc")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar13 = *(undefined4 *)(puVar30 + -0x60);" (assignment_expression "uVar13 = *(undefined4 *)(puVar30 + -0x60)" (identifier "uVar13") (= "=") (pointer_expression "*(undefined4 *)(puVar30 + -0x60)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x60)" (( "(") (binary_expression "puVar30 + -0x60" (identifier "puVar30") (+ "+") (number_literal "-0x60")) () ")"))))) (; ";")) (} "}")))) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac)" (identifier "UNRECOVERED_JUMPTABLE") (= "=") (pointer_expression "*(code **)(iVar25 + -0x7bac)" (* "*") (cast_expression "(code **)(iVar25 + -0x7bac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x7bac)" (( "(") (binary_expression "iVar25 + -0x7bac" (identifier "iVar25") (+ "+") (number_literal "-0x7bac")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar30 + -0x70) = uVar13;" (assignment_expression "*(undefined4 *)(puVar30 + -0x70) = uVar13" (pointer_expression "*(undefined4 *)(puVar30 + -0x70)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x70)" (( "(") (binary_expression "puVar30 + -0x70" (identifier "puVar30") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "(*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50));" (call_expression "(*UNRECOVERED_JUMPTABLE)\n                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50))" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" (( "(") (pointer_expression "*UNRECOVERED_JUMPTABLE" (* "*") (identifier "UNRECOVERED_JUMPTABLE")) () ")")) (argument_list "(puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,\n                     *(undefined4 *)(puVar30 + -0x50))" (( "(") (binary_expression "puVar21 + iVar19 * 2" (identifier "puVar21") (+ "+") (binary_expression "iVar19 * 2" (identifier "iVar19") (* "*") (number_literal "2"))) (, ",") (pointer_expression "*(undefined4 *)(puVar30 + -0x54)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x54)" (( "(") (binary_expression "puVar30 + -0x54" (identifier "puVar30") (+ "+") (number_literal "-0x54")) () ")")))) (, ",") (identifier "iVar19") (, ",") (pointer_expression "*(undefined4 *)(puVar30 + -0x50)" (* "*") (cast_expression "(undefined4 *)(puVar30 + -0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x50)" (( "(") (binary_expression "puVar30 + -0x50" (identifier "puVar30") (+ "+") (number_literal "-0x50")) () ")")))) () ")"))) (; ";")) (expression_statement "*(int *)(puVar30 + -0x70) = iVar19;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar19" (pointer_expression "*(int *)(puVar30 + -0x70)" (* "*") (cast_expression "(int *)(puVar30 + -0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x70)" (( "(") (binary_expression "puVar30 + -0x70" (identifier "puVar30") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (identifier "iVar19")) (; ";")) (expression_statement "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);" (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))\n                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0)" (* "*") (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7bd0)" (( "(") (binary_expression "*(int *)(puVar30 + -0x68) + -0x7bd0" (pointer_expression "*(int *)(puVar30 + -0x68)" (* "*") (cast_expression "(int *)(puVar30 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x68)" (( "(") (binary_expression "puVar30 + -0x68" (identifier "puVar30") (+ "+") (number_literal "-0x68")) () ")")))) (+ "+") (number_literal "-0x7bd0")) () ")"))))) () ")")) (argument_list "(puVar21,puVar22,iVar19,puVar21 + iVar19 * 2)" (( "(") (identifier "puVar21") (, ",") (identifier "puVar22") (, ",") (identifier "iVar19") (, ",") (binary_expression "puVar21 + iVar19 * 2" (identifier "puVar21") (+ "+") (binary_expression "iVar19 * 2" (identifier "iVar19") (* "*") (number_literal "2"))) () ")"))) (; ";")) (expression_statement "*(int *)(puVar30 + -0x70) = iVar4;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar4" (pointer_expression "*(int *)(puVar30 + -0x70)" (* "*") (cast_expression "(int *)(puVar30 + -0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x70)" (( "(") (binary_expression "puVar30 + -0x70" (identifier "puVar30") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19);" (assignment_expression "uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19)" (identifier "uVar13") (= "=") (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))\n                             (puVar22,puVar21,piVar23,iVar19)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" (* "*") (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7eb0)" (( "(") (binary_expression "*(int *)(puVar30 + -0x68) + -0x7eb0" (pointer_expression "*(int *)(puVar30 + -0x68)" (* "*") (cast_expression "(int *)(puVar30 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x68)" (( "(") (binary_expression "puVar30 + -0x68" (identifier "puVar30") (+ "+") (number_literal "-0x68")) () ")")))) (+ "+") (number_literal "-0x7eb0")) () ")"))))) () ")")) (argument_list "(puVar22,puVar21,piVar23,iVar19)" (( "(") (identifier "puVar22") (, ",") (identifier "puVar21") (, ",") (identifier "piVar23") (, ",") (identifier "iVar19") () ")")))) (; ";")) (expression_statement "*(int *)(puVar30 + -0x70) = iVar19;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar19" (pointer_expression "*(int *)(puVar30 + -0x70)" (* "*") (cast_expression "(int *)(puVar30 + -0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x70)" (( "(") (binary_expression "puVar30 + -0x70" (identifier "puVar30") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (identifier "iVar19")) (; ";")) (expression_statement "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);" (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" (* "*") (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7a70)" (( "(") (binary_expression "*(int *)(puVar30 + -0x68) + -0x7a70" (pointer_expression "*(int *)(puVar30 + -0x68)" (* "*") (cast_expression "(int *)(puVar30 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x68)" (( "(") (binary_expression "puVar30 + -0x68" (identifier "puVar30") (+ "+") (number_literal "-0x68")) () ")")))) (+ "+") (number_literal "-0x7a70")) () ")"))))) () ")")) (argument_list "(uVar13,puVar22,puVar22,piVar23)" (( "(") (identifier "uVar13") (, ",") (identifier "puVar22") (, ",") (identifier "puVar22") (, ",") (identifier "piVar23") () ")"))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar30 + -0x68);" (assignment_expression "iVar25 = *(int *)(puVar30 + -0x68)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar30 + -0x68)" (* "*") (cast_expression "(int *)(puVar30 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x68)" (( "(") (binary_expression "puVar30 + -0x68" (identifier "puVar30") (+ "+") (number_literal "-0x68")) () ")"))))) (; ";")) (expression_statement "uVar2 = uVar9;" (assignment_expression "uVar2 = uVar9" (identifier "uVar2") (= "=") (identifier "uVar9")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar9 != 0)" (( "(") (binary_expression "uVar9 != 0" (identifier "uVar9") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7eb0);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7eb0)" (identifier "UNRECOVERED_JUMPTABLE") (= "=") (pointer_expression "*(code **)(iVar25 + -0x7eb0)" (* "*") (cast_expression "(code **)(iVar25 + -0x7eb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x7eb0)" (( "(") (binary_expression "iVar25 + -0x7eb0" (identifier "iVar25") (+ "+") (number_literal "-0x7eb0")) () ")"))))) (; ";")) (if_statement "if (iVar19 != 0) {\n        iVar11 = iVar19 + -1;\n        uVar13 = *puVar22;\n        puVar20 = puVar21;\n        puVar26 = puVar22;\n        if (iVar11 != 0) {\n          do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar20 = puVar21 + iVar19 + -1;\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58);\n        *puVar20 = uVar13;\n        (*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0);\n      }" (if "if") (parenthesized_expression "(iVar19 != 0)" (( "(") (binary_expression "iVar19 != 0" (identifier "iVar19") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar11 = iVar19 + -1;\n        uVar13 = *puVar22;\n        puVar20 = puVar21;\n        puVar26 = puVar22;\n        if (iVar11 != 0) {\n          do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar20 = puVar21 + iVar19 + -1;\n        }\n        UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58);\n        *puVar20 = uVar13;\n        (*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31);\n        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0);\n      }" ({ "{") (expression_statement "iVar11 = iVar19 + -1;" (assignment_expression "iVar11 = iVar19 + -1" (identifier "iVar11") (= "=") (binary_expression "iVar19 + -1" (identifier "iVar19") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar13 = *puVar22;" (assignment_expression "uVar13 = *puVar22" (identifier "uVar13") (= "=") (pointer_expression "*puVar22" (* "*") (identifier "puVar22"))) (; ";")) (expression_statement "puVar20 = puVar21;" (assignment_expression "puVar20 = puVar21" (identifier "puVar20") (= "=") (identifier "puVar21")) (; ";")) (expression_statement "puVar26 = puVar22;" (assignment_expression "puVar26 = puVar22" (identifier "puVar26") (= "=") (identifier "puVar22")) (; ";")) (if_statement "if (iVar11 != 0) {\n          do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar20 = puVar21 + iVar19 + -1;\n        }" (if "if") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);\n          puVar20 = puVar21 + iVar19 + -1;\n        }" ({ "{") (do_statement "do {\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          } while (iVar11 != 0);" (do "do") (compound_statement "{\n            *puVar20 = uVar13;\n            iVar11 = iVar11 + -1;\n            uVar13 = puVar26[1];\n            puVar20 = puVar20 + 1;\n            puVar26 = puVar26 + 1;\n          }" ({ "{") (expression_statement "*puVar20 = uVar13;" (assignment_expression "*puVar20 = uVar13" (pointer_expression "*puVar20" (* "*") (identifier "puVar20")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "iVar11 = iVar11 + -1;" (assignment_expression "iVar11 = iVar11 + -1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + -1" (identifier "iVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar13 = puVar26[1];" (assignment_expression "uVar13 = puVar26[1]" (identifier "uVar13") (= "=") (subscript_expression "puVar26[1]" (identifier "puVar26") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar20 = puVar20 + 1;" (assignment_expression "puVar20 = puVar20 + 1" (identifier "puVar20") (= "=") (binary_expression "puVar20 + 1" (identifier "puVar20") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar26 = puVar26 + 1;" (assignment_expression "puVar26 = puVar26 + 1" (identifier "puVar26") (= "=") (binary_expression "puVar26 + 1" (identifier "puVar26") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "puVar20 = puVar21 + iVar19 + -1;" (assignment_expression "puVar20 = puVar21 + iVar19 + -1" (identifier "puVar20") (= "=") (binary_expression "puVar21 + iVar19 + -1" (binary_expression "puVar21 + iVar19" (identifier "puVar21") (+ "+") (identifier "iVar19")) (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58)" (identifier "UNRECOVERED_JUMPTABLE") (= "=") (pointer_expression "*(code **)(iVar25 + -0x7d58)" (* "*") (cast_expression "(code **)(iVar25 + -0x7d58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x7d58)" (( "(") (binary_expression "iVar25 + -0x7d58" (identifier "iVar25") (+ "+") (number_literal "-0x7d58")) () ")"))))) (; ";")) (expression_statement "*puVar20 = uVar13;" (assignment_expression "*puVar20 = uVar13" (pointer_expression "*puVar20" (* "*") (identifier "puVar20")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "(*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31);" (call_expression "(*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" (( "(") (pointer_expression "*UNRECOVERED_JUMPTABLE" (* "*") (identifier "UNRECOVERED_JUMPTABLE")) () ")")) (argument_list "(puVar21 + iVar19,0,iVar31)" (( "(") (binary_expression "puVar21 + iVar19" (identifier "puVar21") (+ "+") (identifier "iVar19")) (, ",") (number_literal "0") (, ",") (identifier "iVar31") () ")"))) (; ";")) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" (identifier "UNRECOVERED_JUMPTABLE") (= "=") (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" (* "*") (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7eb0)" (( "(") (binary_expression "*(int *)(puVar30 + -0x68) + -0x7eb0" (pointer_expression "*(int *)(puVar30 + -0x68)" (* "*") (cast_expression "(int *)(puVar30 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x68)" (( "(") (binary_expression "puVar30 + -0x68" (identifier "puVar30") (+ "+") (number_literal "-0x68")) () ")")))) (+ "+") (number_literal "-0x7eb0")) () ")"))))) (; ";")) (} "}"))) (expression_statement "*(int *)(puVar30 + -0x70) = iVar4;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar4" (pointer_expression "*(int *)(puVar30 + -0x70)" (* "*") (cast_expression "(int *)(puVar30 + -0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x70)" (( "(") (binary_expression "puVar30 + -0x70" (identifier "puVar30") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar22,puVar21,piVar23,iVar19);" (assignment_expression "uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar22,puVar21,piVar23,iVar19)" (identifier "uVar13") (= "=") (call_expression "(*UNRECOVERED_JUMPTABLE)(puVar22,puVar21,piVar23,iVar19)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" (( "(") (pointer_expression "*UNRECOVERED_JUMPTABLE" (* "*") (identifier "UNRECOVERED_JUMPTABLE")) () ")")) (argument_list "(puVar22,puVar21,piVar23,iVar19)" (( "(") (identifier "puVar22") (, ",") (identifier "puVar21") (, ",") (identifier "piVar23") (, ",") (identifier "iVar19") () ")")))) (; ";")) (expression_statement "*(int *)(puVar30 + -0x70) = iVar19;" (assignment_expression "*(int *)(puVar30 + -0x70) = iVar19" (pointer_expression "*(int *)(puVar30 + -0x70)" (* "*") (cast_expression "(int *)(puVar30 + -0x70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x70)" (( "(") (binary_expression "puVar30 + -0x70" (identifier "puVar30") (+ "+") (number_literal "-0x70")) () ")")))) (= "=") (identifier "iVar19")) (; ";")) (expression_statement "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);" (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" (* "*") (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7a70)" (( "(") (binary_expression "*(int *)(puVar30 + -0x68) + -0x7a70" (pointer_expression "*(int *)(puVar30 + -0x68)" (* "*") (cast_expression "(int *)(puVar30 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x68)" (( "(") (binary_expression "puVar30 + -0x68" (identifier "puVar30") (+ "+") (number_literal "-0x68")) () ")")))) (+ "+") (number_literal "-0x7a70")) () ")"))))) () ")")) (argument_list "(uVar13,puVar22,puVar22,piVar23)" (( "(") (identifier "uVar13") (, ",") (identifier "puVar22") (, ",") (identifier "puVar22") (, ",") (identifier "piVar23") () ")"))) (; ";")) (expression_statement "iVar25 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))(puVar21,puVar22,piVar23,iVar19);" (assignment_expression "iVar25 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))(puVar21,puVar22,piVar23,iVar19)" (identifier "iVar25") (= "=") (call_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))(puVar21,puVar22,piVar23,iVar19)" (parenthesized_expression "(**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c)" (* "*") (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7b2c)" (( "(") (binary_expression "*(int *)(puVar30 + -0x68) + -0x7b2c" (pointer_expression "*(int *)(puVar30 + -0x68)" (* "*") (cast_expression "(int *)(puVar30 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x68)" (( "(") (binary_expression "puVar30 + -0x68" (identifier "puVar30") (+ "+") (number_literal "-0x68")) () ")")))) (+ "+") (number_literal "-0x7b2c")) () ")"))))) () ")")) (argument_list "(puVar21,puVar22,piVar23,iVar19)" (( "(") (identifier "puVar21") (, ",") (identifier "puVar22") (, ",") (identifier "piVar23") (, ",") (identifier "iVar19") () ")")))) (; ";")) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7a70);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" (identifier "UNRECOVERED_JUMPTABLE") (= "=") (pointer_expression "*(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" (* "*") (cast_expression "(code **)(*(int *)(puVar30 + -0x68) + -0x7a70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar30 + -0x68) + -0x7a70)" (( "(") (binary_expression "*(int *)(puVar30 + -0x68) + -0x7a70" (pointer_expression "*(int *)(puVar30 + -0x68)" (* "*") (cast_expression "(int *)(puVar30 + -0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + -0x68)" (( "(") (binary_expression "puVar30 + -0x68" (identifier "puVar30") (+ "+") (number_literal "-0x68")) () ")")))) (+ "+") (number_literal "-0x7a70")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar30 + 0x10) = iVar19;" (assignment_expression "*(int *)(puVar30 + 0x10) = iVar19" (pointer_expression "*(int *)(puVar30 + 0x10)" (* "*") (cast_expression "(int *)(puVar30 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + 0x10)" (( "(") (binary_expression "puVar30 + 0x10" (identifier "puVar30") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "iVar19")) (; ";")) (expression_statement "(*UNRECOVERED_JUMPTABLE)(iVar25 == 0,puVar22,puVar22,piVar23);" (call_expression "(*UNRECOVERED_JUMPTABLE)(iVar25 == 0,puVar22,puVar22,piVar23)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" (( "(") (pointer_expression "*UNRECOVERED_JUMPTABLE" (* "*") (identifier "UNRECOVERED_JUMPTABLE")) () ")")) (argument_list "(iVar25 == 0,puVar22,puVar22,piVar23)" (( "(") (binary_expression "iVar25 == 0" (identifier "iVar25") (== "==") (number_literal "0")) (, ",") (identifier "puVar22") (, ",") (identifier "puVar22") (, ",") (identifier "piVar23") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "puVar22 = (undefined4 *)((int)puVar7 + -1);" (assignment_expression "puVar22 = (undefined4 *)((int)puVar7 + -1)" (identifier "puVar22") (= "=") (cast_expression "(undefined4 *)((int)puVar7 + -1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 + -1)" (( "(") (binary_expression "(int)puVar7 + -1" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (if_statement "if ((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) == 0) goto LAB_0007afb0;" (if "if") (parenthesized_expression "((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) == 0)" (( "(") (binary_expression "(param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) == 0" (parenthesized_expression "(param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1)" (( "(") (binary_expression "param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1" (binary_expression "param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f)" (subscript_expression "param_3[(uint)puVar22 >> 5]" (identifier "param_3") ([ "[") (binary_expression "(uint)puVar22 >> 5" (cast_expression "(uint)puVar22" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar22")) (>> ">>") (number_literal "5")) (] "]")) (>> ">>") (parenthesized_expression "((uint)puVar22 & 0x1f)" (( "(") (binary_expression "(uint)puVar22 & 0x1f" (cast_expression "(uint)puVar22" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar22")) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0007afb0;" (goto "goto") (statement_identifier "LAB_0007afb0") (; ";"))) (labeled_statement "LAB_0007b010:\n    if (puVar7 < local_44) {\n      uVar3 = ~(-1 << ((uint)puVar7 & 0x1f)) & *param_3;\n      uVar9 = 0;\n      if ((uVar3 & 0xff) == 0) goto LAB_0007b270;\nLAB_0007b040:\n      uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2;\n    }\n    else {\n      uVar9 = (int)puVar7 - (int)local_44;\n      uVar2 = 0x20 - (uVar9 & 0x1f);\n      uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f);\n      if ((int)uVar2 < (int)local_44) {\n        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));\n      }\n      uVar3 = uVar3 & local_4c;\n      puVar7 = local_44;\n      if ((uVar3 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar2 = uVar3 >> 8;\n      iVar19 = 0x1e;\n      if (uVar2 != 0) {\n        iVar19 = 6;\n      }\n      uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19;\n    }" (statement_identifier "LAB_0007b010") (: ":") (if_statement "if (puVar7 < local_44) {\n      uVar3 = ~(-1 << ((uint)puVar7 & 0x1f)) & *param_3;\n      uVar9 = 0;\n      if ((uVar3 & 0xff) == 0) goto LAB_0007b270;\nLAB_0007b040:\n      uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2;\n    }\n    else {\n      uVar9 = (int)puVar7 - (int)local_44;\n      uVar2 = 0x20 - (uVar9 & 0x1f);\n      uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f);\n      if ((int)uVar2 < (int)local_44) {\n        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));\n      }\n      uVar3 = uVar3 & local_4c;\n      puVar7 = local_44;\n      if ((uVar3 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar2 = uVar3 >> 8;\n      iVar19 = 0x1e;\n      if (uVar2 != 0) {\n        iVar19 = 6;\n      }\n      uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19;\n    }" (if "if") (parenthesized_expression "(puVar7 < local_44)" (( "(") (binary_expression "puVar7 < local_44" (identifier "puVar7") (< "<") (identifier "local_44")) () ")")) (compound_statement "{\n      uVar3 = ~(-1 << ((uint)puVar7 & 0x1f)) & *param_3;\n      uVar9 = 0;\n      if ((uVar3 & 0xff) == 0) goto LAB_0007b270;\nLAB_0007b040:\n      uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2;\n    }" ({ "{") (expression_statement "uVar3 = ~(-1 << ((uint)puVar7 & 0x1f)) & *param_3;" (assignment_expression "uVar3 = ~(-1 << ((uint)puVar7 & 0x1f)) & *param_3" (identifier "uVar3") (= "=") (binary_expression "~(-1 << ((uint)puVar7 & 0x1f)) & *param_3" (unary_expression "~(-1 << ((uint)puVar7 & 0x1f))" (~ "~") (parenthesized_expression "(-1 << ((uint)puVar7 & 0x1f))" (( "(") (binary_expression "-1 << ((uint)puVar7 & 0x1f)" (number_literal "-1") (<< "<<") (parenthesized_expression "((uint)puVar7 & 0x1f)" (( "(") (binary_expression "(uint)puVar7 & 0x1f" (cast_expression "(uint)puVar7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar7")) (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (& "&") (pointer_expression "*param_3" (* "*") (identifier "param_3")))) (; ";")) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((uVar3 & 0xff) == 0) goto LAB_0007b270;" (if "if") (parenthesized_expression "((uVar3 & 0xff) == 0)" (( "(") (binary_expression "(uVar3 & 0xff) == 0" (parenthesized_expression "(uVar3 & 0xff)" (( "(") (binary_expression "uVar3 & 0xff" (identifier "uVar3") (& "&") (number_literal "0xff")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0007b270;" (goto "goto") (statement_identifier "LAB_0007b270") (; ";"))) (labeled_statement "LAB_0007b040:\n      uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2;" (statement_identifier "LAB_0007b040") (: ":") (expression_statement "uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2;" (assignment_expression "uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2" (identifier "uVar2") (= "=") (binary_expression "(byte)puVar27[-uVar3 & uVar3] - 2" (cast_expression "(byte)puVar27[-uVar3 & uVar3]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "puVar27[-uVar3 & uVar3]" (identifier "puVar27") ([ "[") (binary_expression "-uVar3 & uVar3" (unary_expression "-uVar3" (- "-") (identifier "uVar3")) (& "&") (identifier "uVar3")) (] "]"))) (- "-") (number_literal "2"))) (; ";"))) (} "}")) (else_clause "else {\n      uVar9 = (int)puVar7 - (int)local_44;\n      uVar2 = 0x20 - (uVar9 & 0x1f);\n      uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f);\n      if ((int)uVar2 < (int)local_44) {\n        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));\n      }\n      uVar3 = uVar3 & local_4c;\n      puVar7 = local_44;\n      if ((uVar3 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar2 = uVar3 >> 8;\n      iVar19 = 0x1e;\n      if (uVar2 != 0) {\n        iVar19 = 6;\n      }\n      uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19;\n    }" (else "else") (compound_statement "{\n      uVar9 = (int)puVar7 - (int)local_44;\n      uVar2 = 0x20 - (uVar9 & 0x1f);\n      uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f);\n      if ((int)uVar2 < (int)local_44) {\n        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));\n      }\n      uVar3 = uVar3 & local_4c;\n      puVar7 = local_44;\n      if ((uVar3 & 0xff) != 0) goto LAB_0007b040;\nLAB_0007b270:\n      uVar2 = uVar3 >> 8;\n      iVar19 = 0x1e;\n      if (uVar2 != 0) {\n        iVar19 = 6;\n      }\n      uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19;\n    }" ({ "{") (expression_statement "uVar9 = (int)puVar7 - (int)local_44;" (assignment_expression "uVar9 = (int)puVar7 - (int)local_44" (identifier "uVar9") (= "=") (binary_expression "(int)puVar7 - (int)local_44" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (- "-") (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")))) (; ";")) (expression_statement "uVar2 = 0x20 - (uVar9 & 0x1f);" (assignment_expression "uVar2 = 0x20 - (uVar9 & 0x1f)" (identifier "uVar2") (= "=") (binary_expression "0x20 - (uVar9 & 0x1f)" (number_literal "0x20") (- "-") (parenthesized_expression "(uVar9 & 0x1f)" (( "(") (binary_expression "uVar9 & 0x1f" (identifier "uVar9") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f);" (assignment_expression "uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f)" (identifier "uVar3") (= "=") (binary_expression "param_3[uVar9 >> 5] >> (uVar9 & 0x1f)" (subscript_expression "param_3[uVar9 >> 5]" (identifier "param_3") ([ "[") (binary_expression "uVar9 >> 5" (identifier "uVar9") (>> ">>") (number_literal "5")) (] "]")) (>> ">>") (parenthesized_expression "(uVar9 & 0x1f)" (( "(") (binary_expression "uVar9 & 0x1f" (identifier "uVar9") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (if_statement "if ((int)uVar2 < (int)local_44) {\n        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));\n      }" (if "if") (parenthesized_expression "((int)uVar2 < (int)local_44)" (( "(") (binary_expression "(int)uVar2 < (int)local_44" (cast_expression "(int)uVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar2")) (< "<") (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44"))) () ")")) (compound_statement "{\n        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));\n      }" ({ "{") (expression_statement "uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));" (assignment_expression "uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f))" (identifier "uVar3") (= "=") (binary_expression "uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f))" (identifier "uVar3") (+ "+") (parenthesized_expression "((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f))" (( "(") (binary_expression "(param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f)" (subscript_expression "(param_3 + (uVar9 >> 5))[1]" (parenthesized_expression "(param_3 + (uVar9 >> 5))" (( "(") (binary_expression "param_3 + (uVar9 >> 5)" (identifier "param_3") (+ "+") (parenthesized_expression "(uVar9 >> 5)" (( "(") (binary_expression "uVar9 >> 5" (identifier "uVar9") (>> ">>") (number_literal "5")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]")) (<< "<<") (parenthesized_expression "(uVar2 & 0x1f)" (( "(") (binary_expression "uVar2 & 0x1f" (identifier "uVar2") (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (} "}"))) (expression_statement "uVar3 = uVar3 & local_4c;" (assignment_expression "uVar3 = uVar3 & local_4c" (identifier "uVar3") (= "=") (binary_expression "uVar3 & local_4c" (identifier "uVar3") (& "&") (identifier "local_4c"))) (; ";")) (expression_statement "puVar7 = local_44;" (assignment_expression "puVar7 = local_44" (identifier "puVar7") (= "=") (identifier "local_44")) (; ";")) (if_statement "if ((uVar3 & 0xff) != 0) goto LAB_0007b040;" (if "if") (parenthesized_expression "((uVar3 & 0xff) != 0)" (( "(") (binary_expression "(uVar3 & 0xff) != 0" (parenthesized_expression "(uVar3 & 0xff)" (( "(") (binary_expression "uVar3 & 0xff" (identifier "uVar3") (& "&") (number_literal "0xff")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0007b040;" (goto "goto") (statement_identifier "LAB_0007b040") (; ";"))) (labeled_statement "LAB_0007b270:\n      uVar2 = uVar3 >> 8;" (statement_identifier "LAB_0007b270") (: ":") (expression_statement "uVar2 = uVar3 >> 8;" (assignment_expression "uVar2 = uVar3 >> 8" (identifier "uVar2") (= "=") (binary_expression "uVar3 >> 8" (identifier "uVar3") (>> ">>") (number_literal "8"))) (; ";"))) (expression_statement "iVar19 = 0x1e;" (assignment_expression "iVar19 = 0x1e" (identifier "iVar19") (= "=") (number_literal "0x1e")) (; ";")) (if_statement "if (uVar2 != 0) {\n        iVar19 = 6;\n      }" (if "if") (parenthesized_expression "(uVar2 != 0)" (( "(") (binary_expression "uVar2 != 0" (identifier "uVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar19 = 6;\n      }" ({ "{") (expression_statement "iVar19 = 6;" (assignment_expression "iVar19 = 6" (identifier "iVar19") (= "=") (number_literal "6")) (; ";")) (} "}"))) (expression_statement "uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19;" (assignment_expression "uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19" (identifier "uVar2") (= "=") (binary_expression "(uint)(byte)puVar27[-uVar2 & uVar2] + iVar19" (cast_expression "(uint)(byte)puVar27[-uVar2 & uVar2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)puVar27[-uVar2 & uVar2]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "puVar27[-uVar2 & uVar2]" (identifier "puVar27") ([ "[") (binary_expression "-uVar2 & uVar2" (unary_expression "-uVar2" (- "-") (identifier "uVar2")) (& "&") (identifier "uVar2")) (] "]")))) (+ "+") (identifier "iVar19"))) (; ";")) (} "}"))))) (expression_statement "param_2 = (undefined4 *)((int)puVar7 - uVar2);" (assignment_expression "param_2 = (undefined4 *)((int)puVar7 - uVar2)" (identifier "param_2") (= "=") (cast_expression "(undefined4 *)((int)puVar7 - uVar2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 - uVar2)" (( "(") (binary_expression "(int)puVar7 - uVar2" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (- "-") (identifier "uVar2")) () ")")))) (; ";")) (expression_statement "puVar7 = param_2;" (assignment_expression "puVar7 = param_2" (identifier "puVar7") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (1 < (int)param_2) {\n      do {\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n        puVar20 = (undefined4 *)((int)puVar7 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5);\n        puVar7 = puVar20;\n      } while (1 < (int)puVar20);\n      param_2 = (undefined4 *)((uint)param_2 & 1);\n    }" (if "if") (parenthesized_expression "(1 < (int)param_2)" (( "(") (binary_expression "1 < (int)param_2" (number_literal "1") (< "<") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")")) (compound_statement "{\n      do {\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n        puVar20 = (undefined4 *)((int)puVar7 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5);\n        puVar7 = puVar20;\n      } while (1 < (int)puVar20);\n      param_2 = (undefined4 *)((uint)param_2 & 1);\n    }" ({ "{") (do_statement "do {\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n        puVar20 = (undefined4 *)((int)puVar7 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5);\n        puVar7 = puVar20;\n      } while (1 < (int)puVar20);" (do "do") (compound_statement "{\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n        puVar20 = (undefined4 *)((int)puVar7 + -2);\n        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5);\n        puVar7 = puVar20;\n      }" ({ "{") (expression_statement "(*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);" (call_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5)" (parenthesized_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)" (( "(") (pointer_expression "*(code *)PTR___gmpn_sqrlo_0009d354" (* "*") (cast_expression "(code *)PTR___gmpn_sqrlo_0009d354" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_sqrlo_0009d354"))) () ")")) (argument_list "(param_6,param_1,param_5)" (( "(") (identifier "param_6") (, ",") (identifier "param_1") (, ",") (identifier "param_5") () ")"))) (; ";")) (expression_statement "puVar20 = (undefined4 *)((int)puVar7 + -2);" (assignment_expression "puVar20 = (undefined4 *)((int)puVar7 + -2)" (identifier "puVar20") (= "=") (cast_expression "(undefined4 *)((int)puVar7 + -2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 + -2)" (( "(") (binary_expression "(int)puVar7 + -2" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (number_literal "-2")) () ")")))) (; ";")) (expression_statement "(*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5);" (call_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5)" (parenthesized_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)" (( "(") (pointer_expression "*(code *)PTR___gmpn_sqrlo_0009d354" (* "*") (cast_expression "(code *)PTR___gmpn_sqrlo_0009d354" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_sqrlo_0009d354"))) () ")")) (argument_list "(param_1,param_6,param_5)" (( "(") (identifier "param_1") (, ",") (identifier "param_6") (, ",") (identifier "param_5") () ")"))) (; ";")) (expression_statement "puVar7 = puVar20;" (assignment_expression "puVar7 = puVar20" (identifier "puVar7") (= "=") (identifier "puVar20")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(1 < (int)puVar20)" (( "(") (binary_expression "1 < (int)puVar20" (number_literal "1") (< "<") (cast_expression "(int)puVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar20"))) () ")")) (; ";")) (expression_statement "param_2 = (undefined4 *)((uint)param_2 & 1);" (assignment_expression "param_2 = (undefined4 *)((uint)param_2 & 1)" (identifier "param_2") (= "=") (cast_expression "(undefined4 *)((uint)param_2 & 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)param_2 & 1)" (( "(") (binary_expression "(uint)param_2 & 1" (cast_expression "(uint)param_2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_2")) (& "&") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (if_statement "if (param_2 == (undefined4 *)0x0) {\n      if (param_5 != (undefined4 *)0x0) {\n        uVar13 = *param_1;\n        puVar7 = param_6;\n        if (local_3c != (undefined1 *)0x0) {\n          puVar16 = local_3c;\n          puVar22 = param_6;\n          puVar12 = param_1 + 1;\n          do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);\n        }\n        *puVar7 = uVar13;\n      }\n    }\n    else {\n      (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n    }" (if "if") (parenthesized_expression "(param_2 == (undefined4 *)0x0)" (( "(") (binary_expression "param_2 == (undefined4 *)0x0" (identifier "param_2") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      if (param_5 != (undefined4 *)0x0) {\n        uVar13 = *param_1;\n        puVar7 = param_6;\n        if (local_3c != (undefined1 *)0x0) {\n          puVar16 = local_3c;\n          puVar22 = param_6;\n          puVar12 = param_1 + 1;\n          do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);\n        }\n        *puVar7 = uVar13;\n      }\n    }" ({ "{") (if_statement "if (param_5 != (undefined4 *)0x0) {\n        uVar13 = *param_1;\n        puVar7 = param_6;\n        if (local_3c != (undefined1 *)0x0) {\n          puVar16 = local_3c;\n          puVar22 = param_6;\n          puVar12 = param_1 + 1;\n          do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);\n        }\n        *puVar7 = uVar13;\n      }" (if "if") (parenthesized_expression "(param_5 != (undefined4 *)0x0)" (( "(") (binary_expression "param_5 != (undefined4 *)0x0" (identifier "param_5") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar13 = *param_1;\n        puVar7 = param_6;\n        if (local_3c != (undefined1 *)0x0) {\n          puVar16 = local_3c;\n          puVar22 = param_6;\n          puVar12 = param_1 + 1;\n          do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);\n        }\n        *puVar7 = uVar13;\n      }" ({ "{") (expression_statement "uVar13 = *param_1;" (assignment_expression "uVar13 = *param_1" (identifier "uVar13") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "puVar7 = param_6;" (assignment_expression "puVar7 = param_6" (identifier "puVar7") (= "=") (identifier "param_6")) (; ";")) (if_statement "if (local_3c != (undefined1 *)0x0) {\n          puVar16 = local_3c;\n          puVar22 = param_6;\n          puVar12 = param_1 + 1;\n          do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);\n        }" (if "if") (parenthesized_expression "(local_3c != (undefined1 *)0x0)" (( "(") (binary_expression "local_3c != (undefined1 *)0x0" (identifier "local_3c") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          puVar16 = local_3c;\n          puVar22 = param_6;\n          puVar12 = param_1 + 1;\n          do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);\n        }" ({ "{") (expression_statement "puVar16 = local_3c;" (assignment_expression "puVar16 = local_3c" (identifier "puVar16") (= "=") (identifier "local_3c")) (; ";")) (expression_statement "puVar22 = param_6;" (assignment_expression "puVar22 = param_6" (identifier "puVar22") (= "=") (identifier "param_6")) (; ";")) (expression_statement "puVar12 = param_1 + 1;" (assignment_expression "puVar12 = param_1 + 1" (identifier "puVar12") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (do_statement "do {\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          } while (puVar16 != (undefined1 *)0x0);" (do "do") (compound_statement "{\n            *puVar22 = uVar13;\n            puVar16 = puVar16 + -1;\n            uVar13 = *puVar12;\n            puVar7 = param_6 + (int)((int)param_5 + -1);\n            puVar22 = puVar22 + 1;\n            puVar12 = puVar12 + 1;\n          }" ({ "{") (expression_statement "*puVar22 = uVar13;" (assignment_expression "*puVar22 = uVar13" (pointer_expression "*puVar22" (* "*") (identifier "puVar22")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "puVar16 = puVar16 + -1;" (assignment_expression "puVar16 = puVar16 + -1" (identifier "puVar16") (= "=") (binary_expression "puVar16 + -1" (identifier "puVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar13 = *puVar12;" (assignment_expression "uVar13 = *puVar12" (identifier "uVar13") (= "=") (pointer_expression "*puVar12" (* "*") (identifier "puVar12"))) (; ";")) (expression_statement "puVar7 = param_6 + (int)((int)param_5 + -1);" (assignment_expression "puVar7 = param_6 + (int)((int)param_5 + -1)" (identifier "puVar7") (= "=") (binary_expression "param_6 + (int)((int)param_5 + -1)" (identifier "param_6") (+ "+") (cast_expression "(int)((int)param_5 + -1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)param_5 + -1)" (( "(") (binary_expression "(int)param_5 + -1" (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (+ "+") (number_literal "-1")) () ")"))))) (; ";")) (expression_statement "puVar22 = puVar22 + 1;" (assignment_expression "puVar22 = puVar22 + 1" (identifier "puVar22") (= "=") (binary_expression "puVar22 + 1" (identifier "puVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar12 = puVar12 + 1;" (assignment_expression "puVar12 = puVar12 + 1" (identifier "puVar12") (= "=") (binary_expression "puVar12 + 1" (identifier "puVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar16 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar16 != (undefined1 *)0x0" (identifier "puVar16") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (expression_statement "*puVar7 = uVar13;" (assignment_expression "*puVar7 = uVar13" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (identifier "uVar13")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n    }" (else "else") (compound_statement "{\n      (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);\n    }" ({ "{") (expression_statement "(*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);" (call_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5)" (parenthesized_expression "(*(code *)PTR___gmpn_sqrlo_0009d354)" (( "(") (pointer_expression "*(code *)PTR___gmpn_sqrlo_0009d354" (* "*") (cast_expression "(code *)PTR___gmpn_sqrlo_0009d354" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_sqrlo_0009d354"))) () ")")) (argument_list "(param_6,param_1,param_5)" (( "(") (identifier "param_6") (, ",") (identifier "param_1") (, ",") (identifier "param_5") () ")"))) (; ";")) (} "}")))) (expression_statement "puVar14 = (undefined4 *)(((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25 + (int)puVar26);" (assignment_expression "puVar14 = (undefined4 *)(((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25 + (int)puVar26)" (identifier "puVar14") (= "=") (cast_expression "(undefined4 *)(((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25 + (int)puVar26)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25 + (int)puVar26)" (( "(") (binary_expression "((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25 + (int)puVar26" (binary_expression "((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25" (parenthesized_expression "((uVar3 >> (uVar2 & 0x1f)) >> 1)" (( "(") (binary_expression "(uVar3 >> (uVar2 & 0x1f)) >> 1" (parenthesized_expression "(uVar3 >> (uVar2 & 0x1f))" (( "(") (binary_expression "uVar3 >> (uVar2 & 0x1f)" (identifier "uVar3") (>> ">>") (parenthesized_expression "(uVar2 & 0x1f)" (( "(") (binary_expression "uVar2 & 0x1f" (identifier "uVar2") (& "&") (number_literal "0x1f")) () ")"))) () ")")) (>> ">>") (number_literal "1")) () ")")) (* "*") (identifier "iVar25")) (+ "+") (cast_expression "(int)puVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar26"))) () ")")))) (; ";")) (expression_statement "puVar12 = param_6;" (assignment_expression "puVar12 = param_6" (identifier "puVar12") (= "=") (identifier "param_6")) (; ";")) (expression_statement "param_4 = param_5;" (assignment_expression "param_4 = param_5" (identifier "param_4") (= "=") (identifier "param_5")) (; ";")) (expression_statement "(*(code *)PTR___gmpn_mullo_n_0009d234)(param_1);" (call_expression "(*(code *)PTR___gmpn_mullo_n_0009d234)(param_1)" (parenthesized_expression "(*(code *)PTR___gmpn_mullo_n_0009d234)" (( "(") (pointer_expression "*(code *)PTR___gmpn_mullo_n_0009d234" (* "*") (cast_expression "(code *)PTR___gmpn_mullo_n_0009d234" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_mullo_n_0009d234"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "puVar7 = (undefined4 *)(uVar2 + uVar9);" (assignment_expression "puVar7 = (undefined4 *)(uVar2 + uVar9)" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(uVar2 + uVar9)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar2 + uVar9)" (( "(") (binary_expression "uVar2 + uVar9" (identifier "uVar2") (+ "+") (identifier "uVar9")) () ")")))) (; ";")) (expression_statement "puVar22 = local_30;" (assignment_expression "puVar22 = local_30" (identifier "puVar22") (= "=") (identifier "local_30")) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (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: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (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: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (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: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) 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: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) 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: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal)) right: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (identifier))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal)) right: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (identifier))))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (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: (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: (pointer_expression argument: (identifier)) right: (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (identifier)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (for_statement condition: (binary_expression left: (identifier) right: (number_literal)) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (unary_expression argument: (parenthesized_expression (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) right: (pointer_expression argument: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) index: (number_literal)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (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: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (binary_expression left: (unary_expression argument: (identifier)) right: (identifier))))) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (binary_expression left: (unary_expression argument: (identifier)) right: (identifier)))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) alternative: (else_clause (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (for_statement initializer: (assignment_expression left: (identifier) right: (identifier)) condition: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (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: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) 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: (pointer_expression argument: (identifier)) right: (identifier))))) (do_statement body: (compound_statement (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 (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (number_literal) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) 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: (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: (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: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal) (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (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: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal) (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (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)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal) (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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (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)))))) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (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)) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (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: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (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))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier) (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: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (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: (pointer_expression argument: (identifier)) right: (identifier)))) alternative: (else_clause (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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))))))))) (labeled_statement label: (statement_identifier) (for_statement condition: (binary_expression left: (identifier) right: (number_literal)) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (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: (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: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (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: (unary_expression argument: (parenthesized_expression (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (unary_expression argument: (parenthesized_expression (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) right: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (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))))) (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (unary_expression argument: (parenthesized_expression (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (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)))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (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: (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: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (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)))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (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: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (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: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) (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))))) (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier)) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (number_literal) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier) (identifier)))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (unary_expression argument: (parenthesized_expression (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (binary_expression left: (unary_expression argument: (identifier)) right: (identifier)))) right: (number_literal)))))) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (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: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) index: (number_literal)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (binary_expression left: (unary_expression argument: (identifier)) right: (identifier))))) right: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (number_literal) 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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) 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))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (true))))))

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

{
  undefined *puVar1;
  uint uVar2;
  uint uVar3;
  int iVar4;
  undefined4 uVar5;
  int iVar6;
  undefined4 *puVar7;
  uint extraout_v1;
  uint *puVar8;
  uint uVar9;
  undefined4 *puVar10;
  int iVar11;
  undefined4 *puVar12;
  undefined4 uVar13;
  undefined4 *puVar14;
  undefined4 uVar15;
  undefined1 *puVar16;
  undefined4 uVar17;
  int iVar18;
  int iVar19;
  undefined4 *puVar20;
  undefined4 *puVar21;
  undefined4 *puVar22;
  int *piVar23;
  undefined4 *puVar24;
  int iVar25;
  undefined4 *puVar26;
  undefined *puVar27;
  code *UNRECOVERED_JUMPTABLE;
  int iVar28;
  int iVar29;
  undefined1 *puVar30;
  int iVar31;
  undefined1 auStack_70 [16];
  uint local_4c;
  undefined4 *local_44;
  undefined1 *local_3c;
  undefined4 *local_38;
  undefined4 *local_30;
  int local_2c;
  
  puVar1 = PTR___stack_chk_guard_0009d540;
  puVar27 = PTR___gmpn_clz_tab_0009d18c;
  puVar30 = auStack_70;
  puVar16 = auStack_70;
  local_2c = *(int *)PTR___stack_chk_guard_0009d540;
  uVar2 = param_3[(int)((int)param_4 + -1)];
  local_30 = (undefined4 *)0x0;
  if (uVar2 < 0x10000) {
    iVar19 = 9;
    if (uVar2 < 0x100) {
      iVar19 = 1;
    }
    puVar20 = (undefined4 *)
              ((int)param_4 * 0x20 + -0x21 + iVar19 +
              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);
  }
  else {
    iVar19 = 0x19;
    if (uVar2 < 0x1000000) {
      iVar19 = 0x11;
    }
    puVar20 = (undefined4 *)
              ((int)param_4 * 0x20 + -0x21 + iVar19 +
              (uint)(byte)PTR___gmpn_clz_tab_0009d18c[uVar2 >> iVar19]);
  }
  if (puVar20 < &DAT_00000008) {
    local_4c = 1;
    local_38 = (undefined4 *)0x1;
    uVar2 = (int)param_5 << 2;
    iVar19 = 0;
    local_44 = local_38;
  }
  else {
    if (puVar20 < (undefined4 *)0x1a) {
      local_44 = (undefined4 *)0x2;
      iVar19 = 1;
    }
    else if (puVar20 < (undefined4 *)0x52) {
      local_44 = (undefined4 *)0x3;
      iVar19 = 2;
    }
    else if (puVar20 < (undefined4 *)0xf2) {
      local_44 = (undefined4 *)&DAT_00000004;
      iVar19 = 3;
    }
    else if (puVar20 < (undefined4 *)0x2a2) {
      local_44 = (undefined4 *)&DAT_00000005;
      iVar19 = 4;
    }
    else if (puVar20 < (undefined4 *)0x702) {
      local_44 = (undefined4 *)&DAT_00000006;
      iVar19 = 5;
    }
    else if (puVar20 < (undefined4 *)0x1202) {
      local_44 = (undefined4 *)0x7;
      iVar19 = 6;
    }
    else {
      iVar19 = 9;
      if (puVar20 < (undefined4 *)0x2d02) {
        local_44 = (undefined4 *)&DAT_00000008;
        iVar19 = 7;
      }
      else {
        local_44 = (undefined4 *)&DAT_0000000a;
        if (puVar20 < (undefined4 *)0x6e02) {
          local_44 = (undefined4 *)&DAT_00000009;
          iVar19 = 8;
        }
      }
    }
    uVar2 = ((int)param_5 << iVar19) << 2;
    local_4c = ~(-1 << (int)local_44);
    iVar19 = (1 << iVar19) + -1;
  }
  if (uVar2 < 0x7f01) {
    iVar25 = -(uVar2 + 7 & 0xfffffff8);
    puVar16 = auStack_70 + iVar25;
    puVar30 = auStack_70 + iVar25;
    puVar26 = (undefined4 *)(&stack0xffffffa0 + iVar25);
  }
  else {
    puVar26 = (undefined4 *)(*(code *)PTR___gmp_tmp_reentrant_alloc_0009d2f0)(&local_30);
  }
  if (param_5 == (undefined4 *)0x0) {
    local_3c = (undefined1 *)0xffffffff;
    puVar30 = puVar16;
  }
  else {
    local_3c = (undefined1 *)((int)param_5 + -1);
    uVar13 = *param_2;
    if (local_3c == (undefined1 *)0x0) {
      *puVar26 = uVar13;
    }
    else {
      puVar16 = local_3c;
      puVar7 = puVar26;
      puVar22 = param_2 + 1;
      do {
        *puVar7 = uVar13;
        puVar16 = puVar16 + -1;
        uVar13 = *puVar22;
        puVar7 = puVar7 + 1;
        puVar22 = puVar22 + 1;
      } while (puVar16 != (undefined1 *)0x0);
      puVar26[(int)((int)param_5 + -1)] = uVar13;
    }
  }
  (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_2,param_5);
  iVar25 = (int)param_5 * 4;
  puVar7 = puVar26;
  for (; iVar19 != 0; iVar19 = iVar19 + -1) {
    param_2 = puVar7 + (int)param_5;
    param_4 = param_5;
    (*(code *)PTR___gmpn_mullo_n_0009d234)(param_2,puVar7,param_6);
    puVar7 = param_2;
  }
  uVar2 = (int)puVar20 - (int)local_44;
  if (puVar20 < local_44) {
    uVar3 = ~(-1 << ((uint)puVar20 & 0x1f)) & *param_3;
  }
  else {
    uVar9 = 0x20 - (uVar2 & 0x1f);
    param_4 = (undefined4 *)(uint)((int)uVar9 < (int)local_44);
    uVar3 = param_3[uVar2 >> 5] >> (uVar2 & 0x1f);
    if (param_4 != (undefined4 *)0x0) {
      uVar3 = uVar3 + ((param_3 + (uVar2 >> 5))[1] << (uVar9 & 0x1f));
    }
    uVar3 = uVar3 & local_4c;
  }
  if ((uVar3 & 0xff) == 0) {
    uVar9 = uVar3 >> 8;
    param_4 = (undefined4 *)&DAT_00000006;
    iVar19 = 0x1e;
    if (uVar9 != 0) {
      iVar19 = 6;
    }
    uVar9 = (uint)(byte)puVar27[-uVar9 & uVar9] + iVar19;
  }
  else {
    uVar9 = (byte)puVar27[-uVar3 & uVar3] - 2;
  }
  puVar7 = (undefined4 *)(uVar9 + uVar2);
  if (param_5 != (undefined4 *)0x0) {
    param_4 = (undefined4 *)(((uVar3 >> (uVar9 & 0x1f)) >> 1) * iVar25);
    puVar12 = (undefined4 *)((int)param_4 + (int)puVar26);
    uVar13 = *puVar12;
    puVar16 = local_3c;
    puVar22 = param_1;
    if (local_3c == (undefined1 *)0x0) {
      *param_1 = uVar13;
    }
    else {
      do {
        puVar12 = puVar12 + 1;
        *puVar22 = uVar13;
        puVar16 = puVar16 + -1;
        uVar13 = *puVar12;
        puVar22 = puVar22 + 1;
      } while (puVar16 != (undefined1 *)0x0);
      param_1[(int)((int)param_5 + -1)] = uVar13;
    }
  }
  puVar22 = (undefined4 *)((int)puVar7 + -1);
  if ((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) != 0) goto LAB_0007b010;
LAB_0007afb0:
  puVar12 = param_1;
  puVar14 = param_5;
  (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6);
  puVar7 = puVar22;
  puVar22 = local_30;
  if (param_5 != (undefined4 *)0x0) {
    puVar12 = (undefined4 *)*param_6;
    puVar21 = param_1;
    puVar24 = param_1;
    puVar10 = param_6;
    for (puVar16 = local_3c; puVar16 != (undefined1 *)0x0; puVar16 = puVar16 + -1) {
      puVar10 = puVar10 + 1;
      *puVar24 = puVar12;
      puVar12 = (undefined4 *)*puVar10;
      puVar21 = param_1 + (int)((int)param_5 + -1);
      puVar24 = puVar24 + 1;
    }
    *puVar21 = puVar12;
  }
  do {
    local_30 = puVar22;
    if (puVar7 == (undefined4 *)0x0) {
      if (puVar22 != (undefined4 *)0x0) {
        (*(code *)PTR___gmp_tmp_reentrant_free_0009d618)();
      }
      if (local_2c == *(int *)puVar1) {
        return;
      }
      uVar13 = 0x7b45c;
      puVar27 = PTR___stack_chk_fail_0009d4d0;
      (*(code *)PTR___stack_chk_fail_0009d4d0)();
      uVar2 = *(uint *)(puVar30 + 0x10);
      *(undefined4 **)(puVar30 + -0x24) = param_5;
      *(undefined **)(puVar30 + -0x68) = puVar27 + 0x29be0;
      *(undefined4 *)(puVar30 + -0x18) = 0;
      *(undefined4 **)(puVar30 + -0x28) = puVar20;
      *(undefined4 *)(puVar30 + -4) = uVar13;
      *(undefined1 **)(puVar30 + -8) = auStack_70;
      *(int *)(puVar30 + -0xc) = iVar25;
      *(uint **)(puVar30 + -0x10) = param_3;
      *(undefined4 **)(puVar30 + -0x14) = param_2;
      *(undefined4 **)(puVar30 + -0x1c) = param_1;
      *(undefined4 **)(puVar30 + -0x20) = param_6;
      *(uint *)(puVar30 + -0x60) = uVar2;
      *(undefined4 **)(puVar30 + -0x44) = puVar12;
      *(undefined4 **)(puVar30 + -0x4c) = param_4;
      piVar23 = *(int **)(puVar30 + 0x14);
      iVar19 = *(int *)(puVar30 + 0x18);
      *(undefined4 *)(puVar30 + -0x54) = *(undefined4 *)(puVar30 + 0x1c);
      if (uVar2 < 3) {
        iVar25 = 0;
        *(undefined4 *)(puVar30 + -0x5c) = 1;
        *(undefined4 *)(puVar30 + -0x50) = 2;
        iVar4 = 1;
        *(undefined4 *)(puVar30 + -0x58) = 1;
      }
      else {
        if (uVar2 < 0x22) {
          *(undefined4 *)(puVar30 + -0x58) = 2;
          iVar4 = 2;
        }
        else if (uVar2 < 0x61) {
          *(undefined4 *)(puVar30 + -0x58) = 3;
          iVar4 = 3;
        }
        else if (uVar2 < 0x30d) {
          *(undefined4 *)(puVar30 + -0x58) = 4;
          iVar4 = 4;
        }
        else {
          iVar4 = 6;
          if (uVar2 < 0xab6) {
            iVar4 = 5;
          }
          *(int *)(puVar30 + -0x58) = iVar4;
        }
        *(int *)(puVar30 + -0x5c) = iVar4;
        *(int *)(puVar30 + -0x50) = 1 << iVar4;
        iVar25 = (1 << iVar4) + -2;
      }
      iVar11 = *piVar23;
      iVar31 = iVar19 * 4;
      puVar26 = *(undefined4 **)(puVar30 + -0x54);
      puVar16 = (undefined1 *)(iVar19 + (int)puVar14);
      puVar24 = puVar26 + iVar19;
      uVar2 = (uint)*(byte *)(*(int *)(puVar27 + 0x21ea4) + ((uint)(iVar11 << 0x18) >> 0x19));
      puVar7 = puVar24 + iVar19;
      puVar12 = puVar26 + iVar19 + 1;
      *(undefined4 **)(puVar30 + -0x48) = puVar7 + (int)puVar16;
      puVar21 = puVar26 + (iVar19 << iVar4);
      *puVar24 = 1;
      iVar4 = uVar2 * 2 - uVar2 * uVar2 * iVar11;
      iVar4 = iVar4 * iVar4 * iVar11 + iVar4 * -2;
      puVar20 = puVar24;
      if (iVar19 == 0) {
        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x2211c);
        puVar12[iVar19] = 1;
        *(undefined4 **)(puVar30 + -0x38) = puVar14;
        *(undefined1 **)(puVar30 + -0x3c) = puVar16;
        *(undefined4 **)(puVar30 + -0x40) = puVar7;
        *(undefined4 **)(puVar30 + -0x70) = puVar12 + iVar19 + 1;
        (*UNRECOVERED_JUMPTABLE)(puVar12,1,piVar23,0);
        iVar18 = *(int *)(puVar30 + -0x3c);
        iVar29 = *(int *)(puVar30 + -0x68);
        iVar11 = *(int *)(puVar30 + -0x40);
        iVar28 = *(int *)(puVar30 + -0x38);
        if (iVar18 == 0) {
          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);
          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);
          (*UNRECOVERED_JUMPTABLE)(iVar11,0,piVar23,0);
          iVar11 = *(int *)(puVar30 + -0x68);
          goto joined_r0x0007b75c;
        }
        iVar6 = iVar28 + -1;
        puVar7 = (undefined4 *)(iVar11 + iVar31);
        uVar13 = **(undefined4 **)(puVar30 + -0x44);
        if (iVar6 != 0) {
          puVar26 = *(undefined4 **)(puVar30 + -0x44);
          puVar12 = puVar7;
          goto LAB_0007b70c;
        }
        uVar5 = *(undefined4 *)(puVar30 + -0x48);
        UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);
        *puVar7 = uVar13;
        *(undefined4 *)(puVar30 + -0x70) = uVar5;
        (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,0);
        iVar11 = *(int *)(puVar30 + -0x68);
      }
      else {
        UNRECOVERED_JUMPTABLE = *(code **)(puVar27 + 0x21e88);
        *(undefined4 **)(puVar30 + -0x2c) = puVar14;
        *(undefined1 **)(puVar30 + -0x30) = puVar16;
        *(undefined4 **)(puVar30 + -0x34) = puVar12 + iVar19;
        *(undefined4 **)(puVar30 + -0x38) = puVar7;
        *(undefined4 **)(puVar30 + -0x3c) = puVar12 + iVar19 + 1;
        uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar12,0,iVar31);
        uVar5 = *puVar24;
        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7ac4);
        *(int *)(puVar30 + -0x40) = iVar19 + -1;
        *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x3c);
        *(undefined4 *)(puVar30 + -0x3c) = uVar13;
        **(undefined4 **)(puVar30 + -0x34) = uVar5;
        (*UNRECOVERED_JUMPTABLE)(uVar13,iVar19 + 1,piVar23,iVar19);
        iVar11 = iVar19 + -1;
        puVar7 = *(undefined4 **)(puVar30 + -0x3c);
        iVar28 = *(int *)(puVar30 + -0x68);
        uVar13 = *(undefined4 *)(puVar30 + -0x38);
        uVar17 = *(undefined4 *)(puVar30 + -0x30);
        uVar5 = *puVar7;
        uVar15 = *(undefined4 *)(puVar30 + -0x2c);
        if (iVar11 == 0) {
          puVar26 = *(undefined4 **)(puVar30 + -0x54);
        }
        else {
          do {
            puVar7 = puVar7 + 1;
            *puVar26 = uVar5;
            iVar11 = iVar11 + -1;
            uVar5 = *puVar7;
            puVar26 = puVar26 + 1;
          } while (iVar11 != 0);
          puVar26 = (undefined4 *)(*(int *)(puVar30 + -0x54) + iVar31 + -4);
        }
        UNRECOVERED_JUMPTABLE = *(code **)(iVar28 + -0x7d58);
        *(undefined4 *)(puVar30 + -0x38) = uVar15;
        *(undefined4 *)(puVar30 + -0x3c) = uVar17;
        *puVar26 = uVar5;
        iVar11 = (*UNRECOVERED_JUMPTABLE)(uVar13,0,iVar31);
        iVar28 = *(int *)(puVar30 + -0x38);
        iVar29 = *(int *)(puVar30 + -0x68);
        iVar18 = *(int *)(puVar30 + -0x3c);
        if (iVar28 == 0) {
          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);
          *(undefined4 *)(puVar30 + -0x70) = *(undefined4 *)(puVar30 + -0x48);
          iVar28 = iVar18;
LAB_0007bb8c:
          *(int *)(puVar30 + -0x48) = iVar11;
          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar28);
          iVar11 = *(int *)(puVar30 + -0x68);
          puVar26 = *(undefined4 **)(puVar30 + -0x48);
        }
        else {
          puVar26 = *(undefined4 **)(puVar30 + -0x44);
          iVar6 = iVar28 + -1;
          puVar7 = (undefined4 *)(iVar11 + iVar31);
          uVar13 = *puVar26;
          puVar12 = puVar7;
          if (iVar6 == 0) {
            uVar5 = *(undefined4 *)(puVar30 + -0x48);
            UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);
            *puVar7 = uVar13;
            *(undefined4 *)(puVar30 + -0x70) = uVar5;
            iVar28 = iVar19;
            goto LAB_0007bb8c;
          }
LAB_0007b70c:
          do {
            puVar26 = puVar26 + 1;
            *puVar7 = uVar13;
            iVar6 = iVar6 + -1;
            uVar13 = *puVar26;
            puVar7 = puVar7 + 1;
          } while (iVar6 != 0);
          uVar5 = *(undefined4 *)(puVar30 + -0x48);
          UNRECOVERED_JUMPTABLE = *(code **)(iVar29 + -0x7ac4);
          *(int *)(puVar30 + -0x48) = iVar11;
          *(undefined4 *)(puVar30 + -0x70) = uVar5;
          puVar12[iVar28 + -1] = uVar13;
          (*UNRECOVERED_JUMPTABLE)(iVar11,iVar18,piVar23,iVar19);
          iVar11 = *(int *)(puVar30 + -0x68);
          if (iVar19 == 0) goto joined_r0x0007b75c;
          puVar26 = *(undefined4 **)(puVar30 + -0x48);
          *(int *)(puVar30 + -0x40) = iVar19 + -1;
        }
        iVar28 = *(int *)(puVar30 + -0x40);
        uVar13 = *puVar26;
        puVar7 = puVar24;
        if (iVar28 == 0) {
          *puVar24 = uVar13;
        }
        else {
          do {
            puVar26 = puVar26 + 1;
            *puVar7 = uVar13;
            iVar28 = iVar28 + -1;
            uVar13 = *puVar26;
            puVar7 = puVar7 + 1;
          } while (iVar28 != 0);
          puVar24[*(int *)(puVar30 + -0x40)] = uVar13;
        }
      }
joined_r0x0007b75c:
      for (; iVar25 != 0; iVar25 = iVar25 + -1) {
        UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bd0);
        *(int *)(puVar30 + -0x70) = iVar19;
        (*UNRECOVERED_JUMPTABLE)(puVar21,puVar20,iVar19,puVar24);
        puVar20 = puVar20 + iVar19;
        *(int *)(puVar30 + -0x70) = iVar4;
        uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))(puVar20,puVar21,piVar23,iVar19);
        *(int *)(puVar30 + -0x70) = iVar19;
        (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar20,puVar20,piVar23);
        iVar11 = *(int *)(puVar30 + -0x68);
      }
      uVar2 = *(uint *)(puVar30 + -0x5c);
      if (*(uint *)(puVar30 + -0x60) < uVar2) {
        (**(code **)(iVar11 + -0x7c20))
                  (*(int *)(iVar11 + -0x7fd4) + 0x544c,0x125,*(int *)(iVar11 + -0x7fd4) + 0x5438);
        uVar2 = extraout_v1;
      }
      uVar2 = *(int *)(puVar30 + -0x60) - uVar2;
      uVar9 = 0x20 - (uVar2 & 0x1f);
      puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar2 >> 5) * 4);
      uVar3 = *puVar8 >> (uVar2 & 0x1f);
      if ((int)uVar9 < *(int *)(puVar30 + -0x58)) {
        uVar3 = uVar3 + (puVar8[1] << (uVar9 & 0x1f));
      }
      UNRECOVERED_JUMPTABLE = *(code **)(iVar11 + -0x7bac);
      *(int *)(puVar30 + -0x44) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f));
      *(uint *)(puVar30 + -0x70) = ~(-1 << (*(uint *)(puVar30 + -0x58) & 0x1f)) & uVar3;
      (*UNRECOVERED_JUMPTABLE)
                (puVar22,*(undefined4 *)(puVar30 + -0x54),iVar19,*(undefined4 *)(puVar30 + -0x50));
      iVar25 = *(int *)(puVar30 + -0x68);
      if (uVar2 != 0) {
        *(uint *)(puVar30 + -0x48) = (uint)(iVar19 < 0x39);
        do {
          if (uVar2 < *(uint *)(puVar30 + -0x5c)) {
            uVar9 = 0;
            *(uint *)(puVar30 + -0x60) = ~(-1 << (uVar2 & 0x1f)) & **(uint **)(puVar30 + -0x4c);
          }
          else {
            uVar9 = uVar2 - *(int *)(puVar30 + -0x5c);
            uVar2 = 0x20 - (uVar9 & 0x1f);
            puVar8 = (uint *)(*(int *)(puVar30 + -0x4c) + (uVar9 >> 5) * 4);
            uVar3 = *puVar8 >> (uVar9 & 0x1f);
            if ((int)uVar2 < *(int *)(puVar30 + -0x58)) {
              uVar3 = uVar3 + (puVar8[1] << (uVar2 & 0x1f));
            }
            uVar2 = *(uint *)(puVar30 + -0x58);
            *(uint *)(puVar30 + -0x60) = *(uint *)(puVar30 + -0x44) & uVar3;
          }
          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);
          if (*(int *)(puVar30 + -0x48) == 0) {
            do {
              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bd0);
              *(int *)(puVar30 + -0x70) = iVar19;
              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19,puVar22);
              *(int *)(puVar30 + -0x70) = iVar4;
              uVar2 = uVar2 - 1;
              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))
                                 (puVar22,puVar21,piVar23,iVar19);
              *(int *)(puVar30 + -0x70) = iVar19;
              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);
              iVar25 = *(int *)(puVar30 + -0x68);
            } while (uVar2 != 0);
            uVar13 = *(undefined4 *)(puVar30 + -0x60);
          }
          else {
            while( true ) {
              (*UNRECOVERED_JUMPTABLE)(puVar21,puVar22,iVar19);
              *(int *)(puVar30 + -0x70) = iVar4;
              uVar2 = uVar2 - 1;
              uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))
                                 (puVar22,puVar21,piVar23,iVar19);
              *(int *)(puVar30 + -0x70) = iVar19;
              (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);
              iVar25 = *(int *)(puVar30 + -0x68);
              if (uVar2 == 0) break;
              UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7adc);
            }
            uVar13 = *(undefined4 *)(puVar30 + -0x60);
          }
          UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7bac);
          *(undefined4 *)(puVar30 + -0x70) = uVar13;
          (*UNRECOVERED_JUMPTABLE)
                    (puVar21 + iVar19 * 2,*(undefined4 *)(puVar30 + -0x54),iVar19,
                     *(undefined4 *)(puVar30 + -0x50));
          *(int *)(puVar30 + -0x70) = iVar19;
          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7bd0))
                    (puVar21,puVar22,iVar19,puVar21 + iVar19 * 2);
          *(int *)(puVar30 + -0x70) = iVar4;
          uVar13 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0))
                             (puVar22,puVar21,piVar23,iVar19);
          *(int *)(puVar30 + -0x70) = iVar19;
          (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);
          iVar25 = *(int *)(puVar30 + -0x68);
          uVar2 = uVar9;
        } while (uVar9 != 0);
      }
      UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7eb0);
      if (iVar19 != 0) {
        iVar11 = iVar19 + -1;
        uVar13 = *puVar22;
        puVar20 = puVar21;
        puVar26 = puVar22;
        if (iVar11 != 0) {
          do {
            *puVar20 = uVar13;
            iVar11 = iVar11 + -1;
            uVar13 = puVar26[1];
            puVar20 = puVar20 + 1;
            puVar26 = puVar26 + 1;
          } while (iVar11 != 0);
          puVar20 = puVar21 + iVar19 + -1;
        }
        UNRECOVERED_JUMPTABLE = *(code **)(iVar25 + -0x7d58);
        *puVar20 = uVar13;
        (*UNRECOVERED_JUMPTABLE)(puVar21 + iVar19,0,iVar31);
        UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7eb0);
      }
      *(int *)(puVar30 + -0x70) = iVar4;
      uVar13 = (*UNRECOVERED_JUMPTABLE)(puVar22,puVar21,piVar23,iVar19);
      *(int *)(puVar30 + -0x70) = iVar19;
      (**(code **)(*(int *)(puVar30 + -0x68) + -0x7a70))(uVar13,puVar22,puVar22,piVar23);
      iVar25 = (**(code **)(*(int *)(puVar30 + -0x68) + -0x7b2c))(puVar21,puVar22,piVar23,iVar19);
      UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar30 + -0x68) + -0x7a70);
      *(int *)(puVar30 + 0x10) = iVar19;
                    /* WARNING: Could not recover jumptable at 0x0007bab0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      (*UNRECOVERED_JUMPTABLE)(iVar25 == 0,puVar22,puVar22,piVar23);
      return;
    }
    puVar22 = (undefined4 *)((int)puVar7 + -1);
    if ((param_3[(uint)puVar22 >> 5] >> ((uint)puVar22 & 0x1f) & 1) == 0) goto LAB_0007afb0;
LAB_0007b010:
    if (puVar7 < local_44) {
      uVar3 = ~(-1 << ((uint)puVar7 & 0x1f)) & *param_3;
      uVar9 = 0;
      if ((uVar3 & 0xff) == 0) goto LAB_0007b270;
LAB_0007b040:
      uVar2 = (byte)puVar27[-uVar3 & uVar3] - 2;
    }
    else {
      uVar9 = (int)puVar7 - (int)local_44;
      uVar2 = 0x20 - (uVar9 & 0x1f);
      uVar3 = param_3[uVar9 >> 5] >> (uVar9 & 0x1f);
      if ((int)uVar2 < (int)local_44) {
        uVar3 = uVar3 + ((param_3 + (uVar9 >> 5))[1] << (uVar2 & 0x1f));
      }
      uVar3 = uVar3 & local_4c;
      puVar7 = local_44;
      if ((uVar3 & 0xff) != 0) goto LAB_0007b040;
LAB_0007b270:
      uVar2 = uVar3 >> 8;
      iVar19 = 0x1e;
      if (uVar2 != 0) {
        iVar19 = 6;
      }
      uVar2 = (uint)(byte)puVar27[-uVar2 & uVar2] + iVar19;
    }
    param_2 = (undefined4 *)((int)puVar7 - uVar2);
    puVar7 = param_2;
    if (1 < (int)param_2) {
      do {
        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);
        puVar20 = (undefined4 *)((int)puVar7 + -2);
        (*(code *)PTR___gmpn_sqrlo_0009d354)(param_1,param_6,param_5);
        puVar7 = puVar20;
      } while (1 < (int)puVar20);
      param_2 = (undefined4 *)((uint)param_2 & 1);
    }
    if (param_2 == (undefined4 *)0x0) {
      if (param_5 != (undefined4 *)0x0) {
        uVar13 = *param_1;
        puVar7 = param_6;
        if (local_3c != (undefined1 *)0x0) {
          puVar16 = local_3c;
          puVar22 = param_6;
          puVar12 = param_1 + 1;
          do {
            *puVar22 = uVar13;
            puVar16 = puVar16 + -1;
            uVar13 = *puVar12;
            puVar7 = param_6 + (int)((int)param_5 + -1);
            puVar22 = puVar22 + 1;
            puVar12 = puVar12 + 1;
          } while (puVar16 != (undefined1 *)0x0);
        }
        *puVar7 = uVar13;
      }
    }
    else {
      (*(code *)PTR___gmpn_sqrlo_0009d354)(param_6,param_1,param_5);
    }
    puVar14 = (undefined4 *)(((uVar3 >> (uVar2 & 0x1f)) >> 1) * iVar25 + (int)puVar26);
    puVar12 = param_6;
    param_4 = param_5;
    (*(code *)PTR___gmpn_mullo_n_0009d234)(param_1);
    puVar7 = (undefined4 *)(uVar2 + uVar9);
    puVar22 = local_30;
  } while( true );
}

