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

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

{
  byte bVar1;
  code *pcVar2;
  mpf_ptr p_Var3;
  undefined **ppuVar4;
  byte *pbVar5;
  undefined *puVar6;
  undefined *puVar7;
  int iVar8;
  ushort *puVar9;
  undefined *puVar10;
  mp_limb_t mVar11;
  ushort **ppuVar12;
  ushort **ppuVar13;
  uint uVar14;
  int iVar15;
  byte **ppbVar16;
  byte **ppbVar17;
  uint uVar18;
  void *pvVar19;
  void *pvVar20;
  int in_GS_OFFSET;
  bool bVar21;
  ushort *puStack_70;
  byte *local_6c;
  int local_68;
  uint local_64;
  mpf_ptr local_60;
  ushort **local_5c;
  undefined *local_58;
  undefined *local_54;
  ushort **local_50;
  undefined *local_4c;
  ushort **local_48;
  undefined **local_44;
  ushort **local_40;
  undefined *local_3c;
  ushort **local_38;
  ushort **local_34;
  undefined *local_30;
  tmp_reentrant_t *__tmp_marker;
  int local_20;
  
  local_60 = x;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  local_44 = &_GLOBAL_OFFSET_TABLE_;
  local_40 = (ushort **)nl_langinfo(0x10000);
  local_44 = &_GLOBAL_OFFSET_TABLE_;
  local_3c = (undefined *)strlen((char *)local_40);
  ppbVar16 = &local_6c;
  uVar18 = (uint)(byte)*str;
  puStack_70 = (ushort *)0x1d265;
  local_34 = __ctype_b_loc();
  local_38 = (ushort **)*local_34;
  bVar1 = *(byte *)((int)local_38 + uVar18 * 2 + 1);
  while ((bVar1 & 0x20) != 0) {
    str = (char *)((byte *)str + 1);
    uVar18 = (uint)(byte)*str;
    bVar1 = *(byte *)((int)local_38 + uVar18 * 2 + 1);
  }
  bVar21 = uVar18 == 0x2d;
  if (bVar21) {
    uVar18 = (uint)((byte *)str)[1];
    str = (char *)((byte *)str + 1);
  }
  local_64 = (uint)bVar21;
  if (base == 0) {
    local_68 = 10;
    base = 10;
    local_54 = local_44[-0x5c];
LAB_0001d6ea:
    if ((int)(uint)(byte)local_54[uVar18] < base) goto LAB_0001d337;
LAB_0001d2e4:
    if (local_3c == (undefined *)0x0) {
LAB_0001d320:
      ppbVar17 = &local_6c;
      if ((int)(uint)(byte)local_54[((byte *)str)[(int)local_3c]] < base) goto LAB_0001d337;
    }
    else {
      ppbVar17 = &local_6c;
      if (*(byte *)local_40 == *str) {
        ppuVar13 = local_40;
        pbVar5 = (byte *)str;
        do {
          pbVar5 = pbVar5 + 1;
          ppuVar13 = (ushort **)((int)ppuVar13 + 1);
          if ((byte *)str + (int)local_3c == pbVar5) goto LAB_0001d320;
          ppbVar17 = &local_6c;
        } while (*pbVar5 == *(byte *)ppuVar13);
      }
    }
LAB_0001d770:
    puVar6 = (undefined *)0xffffffff;
    goto LAB_0001d775;
  }
  local_68 = base;
  if (base < 0) {
    base = -base;
    local_68 = 10;
    if (base < 0x25) goto LAB_0001d748;
  }
  else if (base < 0x25) {
LAB_0001d748:
    local_54 = local_44[-0x5c];
    goto LAB_0001d6ea;
  }
  ppbVar17 = &local_6c;
  if (0x3e < base) goto LAB_0001d770;
  local_54 = local_44[-0x5c] + 0xd0;
  if (base <= (int)(uint)(byte)local_54[uVar18]) goto LAB_0001d2e4;
LAB_0001d337:
  puVar6 = (undefined *)strlen(str);
  local_30 = puVar6;
  puVar7 = puVar6 + -1;
  if (puVar7 == (undefined *)0x0) {
    ppbVar16 = (byte **)&stack0xffffff84;
    __tmp_marker = (tmp_reentrant_t *)0x0;
    local_6c = (byte *)0x0;
    local_30 = (undefined *)0x1;
    local_5c = &puStack_70;
LAB_0001d3c5:
    local_50 = (ushort **)0x0;
    puVar6 = (undefined *)0x0;
    local_48 = local_5c;
    local_58 = local_3c + -1;
    do {
      while( true ) {
        local_34 = (ushort **)(uint)(byte)*str;
        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;
LAB_0001d3e0:
        str = (char *)((byte *)str + 1);
        puVar6 = puVar6 + 1;
        if (local_30 <= puVar6) goto LAB_0001d470;
      }
      if (local_3c != (undefined *)0x0) {
        if (*str == *(byte *)local_40) {
          local_4c = puVar6;
          ppuVar13 = local_40;
          pbVar5 = (byte *)str;
          do {
            pbVar5 = pbVar5 + 1;
            ppuVar13 = (ushort **)((int)ppuVar13 + 1);
            if (pbVar5 == (byte *)str + (int)local_3c) goto LAB_0001d443;
          } while (*pbVar5 == *(byte *)ppuVar13);
        }
        if ((int)(uint)(byte)local_54[(int)local_34] < base) {
          *(undefined *)local_48 = local_54[(int)local_34];
          local_48 = (ushort **)((int)local_48 + 1);
          goto LAB_0001d3e0;
        }
        goto LAB_0001d756;
      }
LAB_0001d443:
      if (local_50 != (ushort **)0x0) goto LAB_0001d756;
      str = (char *)((byte *)str + (int)(local_58 + 1));
      puVar6 = puVar6 + (int)local_58 + 1;
      local_50 = local_48;
    } while (puVar6 < local_30);
LAB_0001d470:
    local_30 = (undefined *)((int)local_48 - (int)local_5c);
    ppbVar17 = ppbVar16;
  }
  else {
    bVar1 = ((byte *)str)[(int)(puVar6 + -1)];
    if (bVar1 == 0x40) {
      local_30 = puVar7;
LAB_0001d729:
      local_6c = (byte *)str + (int)puVar6;
    }
    else {
      if (base < 0xb) {
        do {
          puVar10 = puVar7;
          if ((bVar1 & 0xdf) == 0x45) {
            local_30 = puVar10;
            puVar6 = puVar10 + 1;
            goto LAB_0001d729;
          }
          puVar7 = puVar10 + -1;
          if (puVar7 == (undefined *)0x0) goto LAB_0001d38c;
          bVar1 = ((byte *)str)[(int)(puVar10 + -1)];
        } while (bVar1 != 0x40);
        local_30 = puVar7;
        puVar6 = puVar10;
        goto LAB_0001d729;
      }
      for (puVar10 = puVar6 + -2; puVar10 != (undefined *)0x0; puVar10 = puVar10 + -1) {
        if (((byte *)str)[(int)(puVar7 + -1)] == 0x40) {
          local_30 = puVar10;
          puVar6 = puVar7;
          goto LAB_0001d729;
        }
        puVar7 = puVar10;
      }
LAB_0001d38c:
      local_6c = (byte *)0x0;
      puVar6 = puVar6 + 1;
    }
    __tmp_marker = (tmp_reentrant_t *)0x0;
    if ((undefined *)0x7f00 < puVar6) {
      local_5c = (ushort **)__gmp_tmp_reentrant_alloc(&__tmp_marker,(size_t)puVar6);
      local_38 = (ushort **)*local_34;
      goto LAB_0001d3c5;
    }
    iVar15 = -((uint)(puVar6 + 0x1b) & 0xfffffff0);
    ppbVar16 = (byte **)((int)&local_6c + iVar15);
    ppbVar17 = (byte **)((int)&local_6c + iVar15);
    local_5c = (ushort **)((int)&local_60 + iVar15);
    if (local_30 != (undefined *)0x0) goto LAB_0001d3c5;
    local_48 = (ushort **)((int)&local_60 + iVar15);
    local_50 = (ushort **)0x0;
  }
  ppuVar13 = (ushort **)local_60->_mp_prec;
  uVar14 = (uint)((ulonglong)*(uint *)(local_44[-0x56] + base * 0x14 + 8) * ZEXT48(local_30) >> 0x20
                 ) & 0x1ffffffc;
  uVar18 = uVar14 + 8;
  if (uVar18 < 0x7f01) {
    iVar15 = -(uVar14 + 0x23 & 0xfffffff0);
    local_40 = (ushort **)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);
    ppbVar17 = (byte **)((int)ppbVar17 + iVar15);
  }
  else {
    *(uint *)((int)ppbVar17 + -0xc) = uVar18;
    *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;
    *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dabe;
    local_40 = (ushort **)
               __gmp_tmp_reentrant_alloc
                         (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),
                          *(size_t *)((int)ppbVar17 + -0xc));
  }
  *(int *)((int)ppbVar17 + -4) = base;
  *(undefined **)((int)ppbVar17 + -8) = local_30;
  *(ushort ***)((int)ppbVar17 + -0xc) = local_5c;
  *(ushort ***)((int)ppbVar17 + -0x10) = local_40;
  *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d4cf;
  puVar6 = (undefined *)
           __gmpn_set_str(*(mp_ptr *)((int)ppbVar17 + -0x10),*(uchar **)((int)ppbVar17 + -0xc),
                          *(size_t *)((int)ppbVar17 + -8),*(int *)((int)ppbVar17 + -4));
  ppuVar4 = local_44;
  p_Var3 = local_60;
  if (puVar6 == (undefined *)0x0) {
    local_60->_mp_size = 0;
    local_60->_mp_exp = 0;
    if (__tmp_marker != (tmp_reentrant_t *)0x0) {
      local_30 = puVar6;
      *(tmp_reentrant_t **)((int)ppbVar17 + -0x10) = __tmp_marker;
      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dadb;
      __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar17 + -0x10));
      puVar6 = local_30;
      goto LAB_0001d775;
    }
LAB_0001d7d0:
    puVar6 = (undefined *)0x0;
  }
  else {
    local_3c = (undefined *)((int)ppuVar13 + 1);
    if ((int)local_3c < (int)puVar6) {
      local_58 = local_3c;
      local_5c = (ushort **)(puVar6 + -(int)local_3c);
      local_40 = local_40 + (int)(puVar6 + -(int)local_3c);
      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;
LAB_0001d4fd:
      bVar1 = *local_6c;
      local_30 = (undefined *)(uint)(bVar1 == 0x2d);
      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);
      uVar18 = (uint)(byte)local_54[*pbVar5];
      ppbVar16 = ppbVar17;
      if (local_68 <= (int)uVar18) {
LAB_0001d756:
        ppbVar17 = ppbVar16;
        if (__tmp_marker != (tmp_reentrant_t *)0x0) {
          *(tmp_reentrant_t **)((int)ppbVar16 + -0x10) = __tmp_marker;
          *(undefined4 *)((int)ppbVar16 + -0x14) = 0x1d769;
          __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar16 + -0x10));
        }
        goto LAB_0001d770;
      }
      local_34 = (ushort **)(pbVar5 + 2);
      uVar14 = (uint)(byte)local_54[pbVar5[1]];
      if ((int)uVar14 < local_68) {
        local_38 = ppuVar13;
        local_34 = (ushort **)-(int)local_30;
        ppuVar12 = (ushort **)(pbVar5 + 2);
        do {
          uVar18 = uVar18 * local_68 + uVar14;
          uVar14 = (uint)(byte)local_54[*(byte *)ppuVar12];
          ppuVar12 = (ushort **)((int)ppuVar12 + 1);
        } while ((int)uVar14 < local_68);
      }
      local_54 = local_30 + (uVar18 ^ (uint)-(int)local_30);
      if (local_50 != (ushort **)0x0) {
LAB_0001d589:
        local_54 = local_54 + -((int)local_48 - (int)local_50);
      }
      if (local_54 == (undefined *)0x0) goto LAB_0001d804;
      uVar18 = ((int)ppuVar13 + 2U) * 8;
      local_68 = (int)ppuVar13 + 2U;
      if (uVar18 < 0x7f01) {
        uVar18 = uVar18 + 0x1b & 0xfffffff0;
        local_50 = (ushort **)((uint)((int)ppbVar17 + (0xf - uVar18)) & 0xfffffff0);
        ppuVar13 = (ushort **)((uint)((int)ppbVar17 + uVar18 * -2 + 0xf) & 0xfffffff0);
        ppbVar17 = (byte **)((int)ppbVar17 + uVar18 * -2);
      }
      else {
        *(uint *)((int)ppbVar17 + -0xc) = uVar18;
        *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;
        *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db57;
        local_50 = (ushort **)
                   __gmp_tmp_reentrant_alloc
                             (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),
                              *(size_t *)((int)ppbVar17 + -0xc));
        *(uint *)((int)ppbVar17 + -0xc) = uVar18;
        *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;
        *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db66;
        ppuVar13 = (ushort **)
                   __gmp_tmp_reentrant_alloc
                             (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),
                              *(size_t *)((int)ppbVar17 + -0xc));
      }
      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));
      *local_50 = (ushort *)base;
      uVar18 = 0x1f;
      if (local_48 != (ushort **)0x0) {
        for (; (uint)local_48 >> uVar18 == 0; uVar18 = uVar18 - 1) {
        }
      }
      uVar18 = 0x1e - (uVar18 ^ 0x1f);
      if (uVar18 == 0xffffffff) {
        iVar15 = 0;
        local_30 = (undefined *)0x0;
        puVar6 = (undefined *)0x1;
        local_4c = local_44[-0x9b];
        ppuVar12 = local_50;
      }
      else {
        local_34 = local_50;
        puVar6 = (undefined *)0x1;
        iVar8 = 0;
        local_30 = (undefined *)0x0;
        local_4c = local_44[-0x9b];
        while( true ) {
          ppuVar12 = local_34;
          local_38 = ppuVar13;
          *(undefined **)((int)ppbVar17 + -8) = puVar6;
          *(ushort ***)((int)ppbVar17 + -0xc) = ppuVar12 + iVar8;
          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13;
          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d69f;
          __gmpn_sqr(*(mp_ptr *)((int)ppbVar17 + -0x10),*(mp_srcptr *)((int)ppbVar17 + -0xc),
                     *(mp_size_t *)((int)ppbVar17 + -8));
          local_30 = (undefined *)((int)local_30 * 2);
          puVar6 = (undefined *)
                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));
          if ((int)local_3c < (int)puVar6) {
            iVar8 = (int)puVar6 - (int)local_3c;
            local_30 = local_30 + iVar8;
            iVar15 = iVar8 * 4;
            puVar6 = local_3c;
          }
          else {
            iVar15 = 0;
            iVar8 = 0;
          }
          if (((uint)local_48 >> (uVar18 & 0x1f) & 1) != 0) {
            *(int *)((int)ppbVar17 + -4) = base;
            puVar7 = local_4c;
            *(undefined **)((int)ppbVar17 + -8) = puVar6;
            *(int *)((int)ppbVar17 + -0xc) = iVar15 + (int)local_38;
            *(ushort ***)((int)ppbVar17 + -0x10) = local_38;
            pcVar2 = *(code **)(puVar7 + 100);
            *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d65b;
            puVar9 = (ushort *)(*pcVar2)();
            local_38[(int)puVar6] = puVar9;
            iVar15 = 0;
            puVar6 = puVar6 + (puVar9 != (ushort *)0x0);
            iVar8 = 0;
          }
          ppuVar13 = local_34;
          uVar18 = uVar18 - 1;
          ppuVar12 = local_38;
          if (uVar18 == 0xffffffff) break;
          local_34 = local_38;
        }
      }
      puVar7 = local_4c;
      if ((int)local_3c < (int)puVar6) {
        local_30 = local_30 + ((int)puVar6 - (int)local_3c);
        ppuVar12 = ppuVar12 + ((int)puVar6 - (int)local_3c);
        puVar6 = local_3c;
      }
      *(undefined **)((int)ppbVar17 + -8) = puVar6;
      *(int *)((int)ppbVar17 + -0xc) = (int)ppuVar12 + iVar15;
      *(ushort ***)((int)ppbVar17 + -0x10) = local_50;
      pcVar2 = *(code **)(puVar7 + 0x28);
      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d87c;
      (*pcVar2)();
      if ((int)local_54 < 0) {
        if ((int)local_58 < (int)puVar6) {
          uVar18 = (int)puVar6 * 4 + 4;
          if (uVar18 < 0x7f01) {
            iVar15 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);
            local_34 = (ushort **)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);
            ppbVar17 = (byte **)((int)ppbVar17 + iVar15);
          }
          else {
            *(uint *)((int)ppbVar17 + -0xc) = uVar18;
            *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;
            *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dbbc;
            local_34 = (ushort **)
                       __gmp_tmp_reentrant_alloc
                                 (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),
                                  *(size_t *)((int)ppbVar17 + -0xc));
          }
          ppuVar12 = (ushort **)(puVar6 + -(int)local_58);
          local_38 = ppuVar12;
          *(int *)((int)ppbVar17 + -8) = (int)ppuVar12 * 4;
          *(undefined4 *)((int)ppbVar17 + -0xc) = 0;
          *(ushort ***)((int)ppbVar17 + -0x10) = local_34;
          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9a1;
          memset(*(void **)((int)ppbVar17 + -0x10),*(int *)((int)ppbVar17 + -0xc),
                 *(size_t *)((int)ppbVar17 + -8));
          ppuVar13 = local_34;
          puVar7 = local_4c;
          *(undefined **)((int)ppbVar17 + -8) = local_58;
          *(ushort ***)((int)ppbVar17 + -0xc) = local_40;
          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13 + (int)ppuVar12;
          pcVar2 = *(code **)(puVar7 + 0x28);
          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9b6;
          (*pcVar2)();
          local_58 = puVar6;
          local_5c = (ushort **)((int)local_5c - (int)local_38);
          local_40 = local_34;
        }
        ppuVar13 = local_50;
        puVar9 = local_50[(int)(puVar6 + -1)];
        if (-1 < (int)puVar9) {
          uVar18 = 0x1f;
          if (puVar9 != (ushort *)0x0) {
            for (; (uint)puVar9 >> uVar18 == 0; uVar18 = uVar18 - 1) {
            }
          }
          *(uint *)((int)ppbVar17 + -4) = uVar18 ^ 0x1f;
          *(undefined **)((int)ppbVar17 + -8) = puVar6;
          *(ushort ***)((int)ppbVar17 + -0xc) = ppuVar13;
          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13;
          pcVar2 = *(code **)(local_4c + 0x38);
          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9e3;
          (*pcVar2)();
          ppuVar13 = local_40;
          puVar10 = local_4c;
          *(uint *)((int)ppbVar17 + -0x14) = uVar18 ^ 0x1f;
          puVar7 = local_58;
          *(undefined **)((int)ppbVar17 + -0x18) = local_58;
          *(ushort ***)((int)ppbVar17 + -0x1c) = ppuVar13;
          *(ushort ***)((int)ppbVar17 + -0x20) = ppuVar13;
          pcVar2 = *(code **)(puVar10 + 0x38);
          *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1d9f3;
          puVar9 = (ushort *)(*pcVar2)();
          if (puVar9 != (ushort *)0x0) {
            ppuVar13[(int)puVar7] = puVar9;
            local_58 = puVar7 + 1;
          }
        }
        local_34 = (ushort **)(local_68 * 4);
        if (local_34 < (ushort **)0x7f01) {
          iVar15 = -((int)local_34 + 0x1bU & 0xfffffff0);
          pvVar20 = (void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);
          ppbVar17 = (byte **)((int)ppbVar17 + iVar15);
        }
        else {
          *(ushort ***)((int)ppbVar17 + -0xc) = local_34;
          *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;
          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dba2;
          pvVar20 = __gmp_tmp_reentrant_alloc
                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),
                               *(size_t *)((int)ppbVar17 + -0xc));
        }
        puVar7 = local_58;
        *(undefined **)((int)ppbVar17 + -0xc) = puVar6;
        *(ushort ***)((int)ppbVar17 + -0x10) = local_50;
        *(undefined **)((int)ppbVar17 + -0x14) = puVar7;
        puVar10 = local_3c;
        ppuVar13 = (ushort **)(puVar7 + -(int)puVar6);
        *(ushort ***)((int)ppbVar17 + -0x18) = local_40;
        local_38 = ppuVar13;
        *(int *)((int)ppbVar17 + -0x1c) = (int)puVar10 - (int)ppuVar13;
        *(void **)((int)ppbVar17 + -0x20) = pvVar20;
        *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1da4a;
        mVar11 = __gmpn_divrem(*(mp_ptr *)((int)ppbVar17 + -0x20),
                               *(mp_size_t *)((int)ppbVar17 + -0x1c),
                               *(mp_ptr *)((int)ppbVar17 + -0x18),
                               *(mp_size_t *)((int)ppbVar17 + -0x14),
                               *(mp_srcptr *)((int)ppbVar17 + -0x10),
                               *(mp_size_t *)((int)ppbVar17 + -0xc));
        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (mVar11 - (int)local_30));
        pvVar19 = pvVar20;
        puVar7 = local_3c;
        if (mVar11 != 0) {
          pvVar19 = (void *)((int)pvVar20 + 4);
          *(mp_limb_t *)((int)pvVar20 + -4 + (int)local_34) = mVar11;
        }
      }
      else {
        local_38 = (ushort **)((int)(local_58 + (int)puVar6) * 4);
        local_34 = (ushort **)(local_58 + (int)puVar6);
        if (local_38 < (ushort **)0x7f01) {
          iVar15 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);
          pvVar19 = (void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);
          ppbVar17 = (byte **)((int)ppbVar17 + iVar15);
        }
        else {
          *(ushort ***)((int)ppbVar17 + -0xc) = local_38;
          *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;
          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db83;
          pvVar19 = __gmp_tmp_reentrant_alloc
                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),
                               *(size_t *)((int)ppbVar17 + -0xc));
        }
        if ((int)local_58 < (int)puVar6) {
          *(undefined **)((int)ppbVar17 + -0x10) = local_58;
          *(ushort ***)((int)ppbVar17 + -0x14) = local_40;
          *(undefined **)((int)ppbVar17 + -0x18) = puVar6;
          *(ushort ***)((int)ppbVar17 + -0x1c) = local_50;
        }
        else {
          *(undefined **)((int)ppbVar17 + -0x10) = puVar6;
          *(ushort ***)((int)ppbVar17 + -0x14) = local_50;
          *(undefined **)((int)ppbVar17 + -0x18) = local_58;
          *(ushort ***)((int)ppbVar17 + -0x1c) = local_40;
        }
        *(void **)((int)ppbVar17 + -0x20) = pvVar19;
        *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1d8d6;
        __gmpn_mul(*(mp_ptr *)((int)ppbVar17 + -0x20),*(mp_srcptr *)((int)ppbVar17 + -0x1c),
                   *(mp_size_t *)((int)ppbVar17 + -0x18),*(mp_srcptr *)((int)ppbVar17 + -0x14),
                   *(mp_size_t *)((int)ppbVar17 + -0x10));
        puVar7 = (undefined *)
                 ((int)local_34 - (uint)(*(int *)((int)pvVar19 + -4 + (int)local_38) == 0));
        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar7));
        if ((int)local_3c < (int)puVar7) {
          pvVar19 = (void *)((int)pvVar19 + ((int)puVar7 - (int)local_3c) * 4);
          puVar7 = local_3c;
        }
      }
      local_3c = puVar7;
      puVar10 = local_3c;
      p_Var3 = local_60;
      *(undefined **)((int)ppbVar17 + -8) = local_3c;
      *(void **)((int)ppbVar17 + -0xc) = pvVar19;
      puVar7 = local_4c;
      *(mp_limb_t **)((int)ppbVar17 + -0x10) = p_Var3->_mp_d;
      pcVar2 = *(code **)(puVar7 + 0x28);
      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d91c;
      (*pcVar2)();
      puVar7 = (undefined *)-(int)puVar10;
      if (local_64 == 0) {
        puVar7 = puVar10;
      }
      local_60->_mp_exp = (mp_exp_t)puVar6;
      local_60->_mp_size = (int)puVar7;
      if (__tmp_marker == (tmp_reentrant_t *)0x0) {
        puVar6 = (undefined *)0x0;
        goto LAB_0001d775;
      }
    }
    else {
      local_58 = puVar6;
      local_5c = (ushort **)0x0;
      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;
LAB_0001d7f2:
      local_54 = (undefined *)0x0;
      if (local_50 != (ushort **)0x0) goto LAB_0001d589;
LAB_0001d804:
      puVar7 = local_58;
      local_30 = puVar6;
      *(undefined **)((int)ppbVar17 + -8) = local_58;
      puVar6 = ppuVar4[-0x9b];
      *(ushort ***)((int)ppbVar17 + -0xc) = local_40;
      *(mp_limb_t **)((int)ppbVar17 + -0x10) = p_Var3->_mp_d;
      pcVar2 = *(code **)(puVar6 + 0x28);
      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d823;
      (*pcVar2)();
      puVar6 = (undefined *)-(int)puVar7;
      if (local_64 == 0) {
        puVar6 = puVar7;
      }
      p_Var3->_mp_exp = (mp_exp_t)local_30;
      p_Var3->_mp_size = (int)puVar6;
      if (__tmp_marker == (tmp_reentrant_t *)0x0) goto LAB_0001d7d0;
    }
    *(tmp_reentrant_t **)((int)ppbVar17 + -0x10) = __tmp_marker;
    *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d84e;
    __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar17 + -0x10));
    puVar6 = (undefined *)0x0;
  }
LAB_0001d775:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return (int)puVar6;
  }
                    /* WARNING: Subroutine does not return */
  *(undefined4 *)((int)ppbVar17 + -4) = 0x1dbcb;
  __stack_chk_fail_local();
}



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

undefined * __gmpf_set_str(uint *param_1,byte *param_2,ushort *param_3)

{
  byte bVar1;
  code *pcVar2;
  uint *puVar3;
  undefined **ppuVar4;
  byte *pbVar5;
  undefined *puVar6;
  int iVar7;
  ushort *puVar8;
  undefined *puVar9;
  ushort **ppuVar10;
  ushort **ppuVar11;
  uint uVar12;
  int iVar13;
  byte **ppbVar14;
  byte **ppbVar15;
  uint uVar16;
  undefined *puVar17;
  int in_GS_OFFSET;
  bool bVar18;
  ushort *puStack_70;
  byte *local_6c;
  ushort *local_68;
  uint local_64;
  uint *local_60;
  ushort **local_5c;
  undefined *local_58;
  undefined *local_54;
  ushort **local_50;
  undefined *local_4c;
  ushort **local_48;
  undefined **local_44;
  ushort **local_40;
  undefined *local_3c;
  ushort **local_38;
  ushort **local_34;
  undefined *local_30;
  int local_24;
  int local_20;
  
  local_60 = param_1;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  local_44 = &__DT_PLTGOT;
  local_40 = (ushort **)nl_langinfo(0x10000);
  local_44 = &__DT_PLTGOT;
  local_3c = (undefined *)strlen((char *)local_40);
  ppbVar14 = &local_6c;
  uVar16 = (uint)*param_2;
  puStack_70 = (ushort *)0x1d265;
  local_34 = __ctype_b_loc();
  local_38 = (ushort **)*local_34;
  bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1);
  while ((bVar1 & 0x20) != 0) {
    param_2 = param_2 + 1;
    uVar16 = (uint)*param_2;
    bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1);
  }
  bVar18 = uVar16 == 0x2d;
  if (bVar18) {
    uVar16 = (uint)param_2[1];
    param_2 = param_2 + 1;
  }
  local_64 = (uint)bVar18;
  if (param_3 == (ushort *)0x0) {
    local_68 = (ushort *)0xa;
    param_3 = (ushort *)0xa;
    local_54 = local_44[-0x5c];
LAB_0001d6ea:
    if ((int)(uint)(byte)local_54[uVar16] < (int)param_3) goto LAB_0001d337;
LAB_0001d2e4:
    if (local_3c == (undefined *)0x0) {
LAB_0001d320:
      ppbVar15 = &local_6c;
      if ((int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3) goto LAB_0001d337;
    }
    else {
      ppbVar15 = &local_6c;
      if (*(byte *)local_40 == *param_2) {
        ppuVar11 = local_40;
        pbVar5 = param_2;
        do {
          pbVar5 = pbVar5 + 1;
          ppuVar11 = (ushort **)((int)ppuVar11 + 1);
          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;
          ppbVar15 = &local_6c;
        } while (*pbVar5 == *(byte *)ppuVar11);
      }
    }
LAB_0001d770:
    puVar6 = (undefined *)0xffffffff;
    goto LAB_0001d775;
  }
  local_68 = param_3;
  if ((int)param_3 < 0) {
    param_3 = (ushort *)-(int)param_3;
    local_68 = (ushort *)0xa;
    if ((int)param_3 < 0x25) goto LAB_0001d748;
  }
  else if ((int)param_3 < 0x25) {
LAB_0001d748:
    local_54 = local_44[-0x5c];
    goto LAB_0001d6ea;
  }
  ppbVar15 = &local_6c;
  if (0x3e < (int)param_3) goto LAB_0001d770;
  local_54 = local_44[-0x5c] + 0xd0;
  if ((int)param_3 <= (int)(uint)(byte)local_54[uVar16]) goto LAB_0001d2e4;
LAB_0001d337:
  puVar6 = (undefined *)strlen((char *)param_2);
  local_30 = puVar6 + -1;
  if (local_30 == (undefined *)0x0) {
    ppbVar14 = (byte **)&stack0xffffff84;
    local_24 = 0;
    local_6c = (byte *)0x0;
    local_5c = &puStack_70;
    local_30 = (undefined *)0x1;
LAB_0001d3c5:
    local_50 = (ushort **)0x0;
    puVar6 = (undefined *)0x0;
    local_48 = local_5c;
    local_58 = local_3c + -1;
    do {
      while( true ) {
        local_34 = (ushort **)(uint)*param_2;
        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;
LAB_0001d3e0:
        param_2 = param_2 + 1;
        puVar6 = puVar6 + 1;
        if (local_30 <= puVar6) goto LAB_0001d470;
      }
      if (local_3c != (undefined *)0x0) {
        if (*param_2 == *(byte *)local_40) {
          ppuVar11 = local_40;
          pbVar5 = param_2;
          do {
            pbVar5 = pbVar5 + 1;
            ppuVar11 = (ushort **)((int)ppuVar11 + 1);
            local_4c = puVar6;
            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;
          } while (*pbVar5 == *(byte *)ppuVar11);
        }
        if ((int)(uint)(byte)local_54[(int)local_34] < (int)param_3) {
          *(undefined *)local_48 = local_54[(int)local_34];
          local_48 = (ushort **)((int)local_48 + 1);
          goto LAB_0001d3e0;
        }
        goto LAB_0001d756;
      }
LAB_0001d443:
      if (local_50 != (ushort **)0x0) goto LAB_0001d756;
      local_50 = local_48;
      param_2 = param_2 + (int)(local_58 + 1);
      puVar6 = puVar6 + (int)local_58 + 1;
    } while (puVar6 < local_30);
LAB_0001d470:
    local_30 = (undefined *)((int)local_48 - (int)local_5c);
    ppbVar15 = ppbVar14;
  }
  else {
    bVar1 = param_2[(int)(puVar6 + -1)];
    puVar17 = puVar6;
    if (bVar1 == 0x40) {
LAB_0001d729:
      local_6c = param_2 + (int)puVar17;
    }
    else {
      if ((int)param_3 < 0xb) {
        do {
          puVar9 = local_30;
          if ((bVar1 & 0xdf) == 0x45) {
            puVar17 = puVar9 + 1;
            local_30 = puVar9;
            break;
          }
          local_30 = puVar9 + -1;
          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;
          bVar1 = param_2[(int)(puVar9 + -1)];
          puVar17 = puVar9;
        } while (bVar1 != 0x40);
        goto LAB_0001d729;
      }
      puVar17 = local_30;
      for (local_30 = puVar6 + -2; local_30 != (undefined *)0x0; local_30 = local_30 + -1) {
        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;
        puVar17 = local_30;
      }
LAB_0001d38c:
      local_6c = (byte *)0x0;
      puVar17 = puVar6 + 1;
      local_30 = puVar6;
    }
    local_24 = 0;
    if ((undefined *)0x7f00 < puVar17) {
      local_5c = (ushort **)__gmp_tmp_reentrant_alloc();
      local_38 = (ushort **)*local_34;
      goto LAB_0001d3c5;
    }
    iVar13 = -((uint)(puVar17 + 0x1b) & 0xfffffff0);
    ppbVar14 = (byte **)((int)&local_6c + iVar13);
    ppbVar15 = (byte **)((int)&local_6c + iVar13);
    local_5c = (ushort **)((int)&local_60 + iVar13);
    if (local_30 != (undefined *)0x0) goto LAB_0001d3c5;
    local_50 = (ushort **)0x0;
    local_48 = local_5c;
  }
  ppuVar11 = (ushort **)*local_60;
  uVar12 = (uint)((ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8) * ZEXT48(local_30)
                 >> 0x20) & 0x1ffffffc;
  uVar16 = uVar12 + 8;
  if (uVar16 < 0x7f01) {
    iVar13 = -(uVar12 + 0x23 & 0xfffffff0);
    local_40 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);
    ppbVar15 = (byte **)((int)ppbVar15 + iVar13);
  }
  else {
    *(uint *)((int)ppbVar15 + -0xc) = uVar16;
    *(int **)((int)ppbVar15 + -0x10) = &local_24;
    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dabe;
    local_40 = (ushort **)__gmp_tmp_reentrant_alloc();
  }
  *(ushort **)((int)ppbVar15 + -4) = param_3;
  *(undefined **)((int)ppbVar15 + -8) = local_30;
  *(ushort ***)((int)ppbVar15 + -0xc) = local_5c;
  *(ushort ***)((int)ppbVar15 + -0x10) = local_40;
  *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d4cf;
  puVar6 = (undefined *)__gmpn_set_str();
  ppuVar4 = local_44;
  puVar3 = local_60;
  if (puVar6 == (undefined *)0x0) {
    local_60[1] = 0;
    local_60[2] = 0;
    if (local_24 != 0) {
      local_30 = puVar6;
      *(int *)((int)ppbVar15 + -0x10) = local_24;
      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dadb;
      __gmp_tmp_reentrant_free();
      puVar6 = local_30;
      goto LAB_0001d775;
    }
LAB_0001d7d0:
    puVar6 = (undefined *)0x0;
  }
  else {
    local_3c = (undefined *)((int)ppuVar11 + 1);
    if ((int)local_3c < (int)puVar6) {
      local_5c = (ushort **)(puVar6 + -(int)local_3c);
      local_40 = local_40 + (int)local_5c;
      local_58 = local_3c;
      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;
LAB_0001d4fd:
      bVar1 = *local_6c;
      local_30 = (undefined *)(uint)(bVar1 == 0x2d);
      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);
      uVar16 = (uint)(byte)local_54[*pbVar5];
      ppbVar14 = ppbVar15;
      if ((int)local_68 <= (int)uVar16) {
LAB_0001d756:
        ppbVar15 = ppbVar14;
        if (local_24 != 0) {
          *(int *)((int)ppbVar14 + -0x10) = local_24;
          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;
          __gmp_tmp_reentrant_free();
        }
        goto LAB_0001d770;
      }
      bVar1 = local_54[pbVar5[1]];
      local_34 = (ushort **)(pbVar5 + 2);
      ppuVar10 = (ushort **)(pbVar5 + 2);
      while ((int)(uint)bVar1 < (int)local_68) {
        uVar16 = uVar16 * (int)local_68 + (uint)bVar1;
        bVar1 = local_54[*(byte *)ppuVar10];
        local_34 = (ushort **)-(int)local_30;
        ppuVar10 = (ushort **)((int)ppuVar10 + 1);
        local_38 = ppuVar11;
      }
      local_54 = local_30 + (uVar16 ^ (uint)-(int)local_30);
      if (local_50 != (ushort **)0x0) {
LAB_0001d589:
        local_54 = local_54 + -((int)local_48 - (int)local_50);
      }
      if (local_54 == (undefined *)0x0) goto LAB_0001d804;
      local_68 = (ushort *)((int)ppuVar11 + 2);
      uVar16 = (int)local_68 * 8;
      if (uVar16 < 0x7f01) {
        uVar16 = uVar16 + 0x1b & 0xfffffff0;
        local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);
        ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);
        ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);
      }
      else {
        *(uint *)((int)ppbVar15 + -0xc) = uVar16;
        *(int **)((int)ppbVar15 + -0x10) = &local_24;
        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;
        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();
        *(uint *)((int)ppbVar15 + -0xc) = uVar16;
        *(int **)((int)ppbVar15 + -0x10) = &local_24;
        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;
        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();
      }
      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));
      *local_50 = param_3;
      uVar16 = 0x1f;
      if (local_48 != (ushort **)0x0) {
        for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {
        }
      }
      uVar16 = 0x1e - (uVar16 ^ 0x1f);
      if (uVar16 == 0xffffffff) {
        iVar13 = 0;
        local_30 = (undefined *)0x0;
        puVar6 = (undefined *)0x1;
        local_4c = local_44[-0x9b];
        ppuVar10 = local_50;
      }
      else {
        local_34 = local_50;
        puVar6 = (undefined *)0x1;
        iVar7 = 0;
        local_30 = (undefined *)0x0;
        local_4c = local_44[-0x9b];
        while( true ) {
          ppuVar10 = local_34;
          local_38 = ppuVar11;
          *(undefined **)((int)ppbVar15 + -8) = puVar6;
          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;
          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;
          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;
          __gmpn_sqr();
          local_30 = (undefined *)((int)local_30 * 2);
          puVar6 = (undefined *)
                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));
          if ((int)local_3c < (int)puVar6) {
            iVar7 = (int)puVar6 - (int)local_3c;
            local_30 = local_30 + iVar7;
            iVar13 = iVar7 * 4;
            puVar6 = local_3c;
          }
          else {
            iVar13 = 0;
            iVar7 = 0;
          }
          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {
            *(ushort **)((int)ppbVar15 + -4) = param_3;
            puVar17 = local_4c;
            *(undefined **)((int)ppbVar15 + -8) = puVar6;
            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;
            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;
            pcVar2 = *(code **)(puVar17 + 100);
            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;
            puVar8 = (ushort *)(*pcVar2)();
            local_38[(int)puVar6] = puVar8;
            iVar13 = 0;
            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);
            iVar7 = 0;
          }
          ppuVar11 = local_34;
          uVar16 = uVar16 - 1;
          ppuVar10 = local_38;
          if (uVar16 == 0xffffffff) break;
          local_34 = local_38;
        }
      }
      puVar17 = local_4c;
      if ((int)local_3c < (int)puVar6) {
        local_30 = local_30 + ((int)puVar6 - (int)local_3c);
        ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);
        puVar6 = local_3c;
      }
      *(undefined **)((int)ppbVar15 + -8) = puVar6;
      *(int *)((int)ppbVar15 + -0xc) = (int)ppuVar10 + iVar13;
      *(ushort ***)((int)ppbVar15 + -0x10) = local_50;
      pcVar2 = *(code **)(puVar17 + 0x28);
      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d87c;
      (*pcVar2)();
      if ((int)local_54 < 0) {
        if ((int)local_58 < (int)puVar6) {
          uVar16 = (int)puVar6 * 4 + 4;
          if (uVar16 < 0x7f01) {
            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);
            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);
            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);
          }
          else {
            *(uint *)((int)ppbVar15 + -0xc) = uVar16;
            *(int **)((int)ppbVar15 + -0x10) = &local_24;
            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;
            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();
          }
          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);
          local_38 = ppuVar10;
          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;
          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;
          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;
          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;
          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),
                 *(size_t *)((int)ppbVar15 + -8));
          ppuVar11 = local_34;
          puVar17 = local_4c;
          *(undefined **)((int)ppbVar15 + -8) = local_58;
          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;
          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;
          pcVar2 = *(code **)(puVar17 + 0x28);
          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;
          (*pcVar2)();
          local_5c = (ushort **)((int)local_5c - (int)local_38);
          local_40 = local_34;
          local_58 = puVar6;
        }
        ppuVar11 = local_50;
        puVar8 = local_50[(int)(puVar6 + -1)];
        if (-1 < (int)puVar8) {
          uVar16 = 0x1f;
          if (puVar8 != (ushort *)0x0) {
            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {
            }
          }
          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;
          *(undefined **)((int)ppbVar15 + -8) = puVar6;
          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;
          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;
          pcVar2 = *(code **)(local_4c + 0x38);
          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;
          (*pcVar2)();
          ppuVar11 = local_40;
          puVar9 = local_4c;
          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;
          puVar17 = local_58;
          *(undefined **)((int)ppbVar15 + -0x18) = local_58;
          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;
          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;
          pcVar2 = *(code **)(puVar9 + 0x38);
          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;
          puVar8 = (ushort *)(*pcVar2)();
          if (puVar8 != (ushort *)0x0) {
            ppuVar11[(int)puVar17] = puVar8;
            local_58 = puVar17 + 1;
          }
        }
        local_34 = (ushort **)((int)local_68 * 4);
        if (local_34 < (ushort **)0x7f01) {
          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);
          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;
          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);
        }
        else {
          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;
          *(int **)((int)ppbVar15 + -0x10) = &local_24;
          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;
          uVar16 = __gmp_tmp_reentrant_alloc();
        }
        puVar17 = local_58;
        *(undefined **)((int)ppbVar15 + -0xc) = puVar6;
        *(ushort ***)((int)ppbVar15 + -0x10) = local_50;
        *(undefined **)((int)ppbVar15 + -0x14) = puVar17;
        puVar9 = local_3c;
        ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);
        *(ushort ***)((int)ppbVar15 + -0x18) = local_40;
        local_38 = ppuVar11;
        *(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;
        *(uint *)((int)ppbVar15 + -0x20) = uVar16;
        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;
        iVar13 = __gmpn_divrem();
        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));
        uVar12 = uVar16;
        puVar17 = local_3c;
        if (iVar13 != 0) {
          uVar12 = uVar16 + 4;
          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;
        }
      }
      else {
        local_34 = (ushort **)(local_58 + (int)puVar6);
        local_38 = (ushort **)((int)local_34 * 4);
        if (local_38 < (ushort **)0x7f01) {
          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);
          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;
          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);
        }
        else {
          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;
          *(int **)((int)ppbVar15 + -0x10) = &local_24;
          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;
          uVar12 = __gmp_tmp_reentrant_alloc();
        }
        if ((int)local_58 < (int)puVar6) {
          *(undefined **)((int)ppbVar15 + -0x10) = local_58;
          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;
          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;
          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;
        }
        else {
          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;
          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;
          *(undefined **)((int)ppbVar15 + -0x18) = local_58;
          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;
        }
        *(uint *)((int)ppbVar15 + -0x20) = uVar12;
        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;
        __gmpn_mul();
        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))
        ;
        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));
        if ((int)local_3c < (int)puVar17) {
          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;
          puVar17 = local_3c;
        }
      }
      local_3c = puVar17;
      puVar9 = local_3c;
      puVar3 = local_60;
      *(undefined **)((int)ppbVar15 + -8) = local_3c;
      *(uint *)((int)ppbVar15 + -0xc) = uVar12;
      puVar17 = local_4c;
      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];
      pcVar2 = *(code **)(puVar17 + 0x28);
      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d91c;
      (*pcVar2)();
      puVar17 = (undefined *)-(int)puVar9;
      if (local_64 == 0) {
        puVar17 = puVar9;
      }
      local_60[2] = (uint)puVar6;
      local_60[1] = (uint)puVar17;
      if (local_24 == 0) {
        puVar6 = (undefined *)0x0;
        goto LAB_0001d775;
      }
    }
    else {
      local_5c = (ushort **)0x0;
      local_58 = puVar6;
      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;
LAB_0001d7f2:
      local_54 = (undefined *)0x0;
      if (local_50 != (ushort **)0x0) goto LAB_0001d589;
LAB_0001d804:
      puVar17 = local_58;
      local_30 = puVar6;
      *(undefined **)((int)ppbVar15 + -8) = local_58;
      puVar6 = ppuVar4[-0x9b];
      *(ushort ***)((int)ppbVar15 + -0xc) = local_40;
      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];
      pcVar2 = *(code **)(puVar6 + 0x28);
      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823;
      (*pcVar2)();
      puVar6 = (undefined *)-(int)puVar17;
      if (local_64 == 0) {
        puVar6 = puVar17;
      }
      puVar3[2] = (uint)local_30;
      puVar3[1] = (uint)puVar6;
      if (local_24 == 0) goto LAB_0001d7d0;
    }
    *(int *)((int)ppbVar15 + -0x10) = local_24;
    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d84e;
    __gmp_tmp_reentrant_free();
    puVar6 = (undefined *)0x0;
  }
LAB_0001d775:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return puVar6;
  }
                    /* WARNING: Subroutine does not return */
  *(undefined4 *)((int)ppbVar15 + -4) = 0x1dbcb;
  FUN_0007ebe0();
}


CALL 0x0001c5b1
ADD EAX,0x80deb
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
MOV EBX,EAX
SUB ESP,0x68
MOV EDI,dword ptr [EBP + 0x8]
MOV dword ptr [EBP + -0x40],EAX
MOV dword ptr [EBP + -0x5c],EDI
MOV EDI,dword ptr [EBP + 0xc]
MOV ESI,dword ptr GS:[0x14]
MOV dword ptr [EBP + -0x1c],ESI
XOR ESI,ESI
PUSH 0x10000
MOV ESI,EAX
CALL 0x0001bde0
MOV dword ptr [EBP + -0x40],ESI
MOV dword ptr [ESP],EAX
MOV dword ptr [EBP + -0x3c],EAX
CALL 0x0001b9a0
ADD ESP,0x10
MOVZX ESI,byte ptr [EDI]
MOV dword ptr [EBP + -0x38],EAX
CALL 0x0001c2d0
MOV dword ptr [EBP + -0x30],EAX
MOV EAX,dword ptr [EAX]
MOV dword ptr [EBP + -0x34],EAX
TEST byte ptr [EAX + ESI*0x2 + 0x1],0x20
JZ 0x0001d285
LEA ESI,[ESI]
ADD EDI,0x1
MOVZX ESI,byte ptr [EDI]
TEST byte ptr [EAX + ESI*0x2 + 0x1],0x20
JNZ 0x0001d278
MOV dword ptr [EBP + -0x60],0x0
CMP ESI,0x2d
JNZ 0x0001d29f
MOV dword ptr [EBP + -0x60],0x1
MOVZX ESI,byte ptr [EDI + 0x1]
ADD EDI,0x1
MOV EBX,dword ptr [EBP + 0x10]
TEST EBX,EBX
JZ 0x0001d6d0
MOV EAX,dword ptr [EBP + 0x10]
MOV dword ptr [EBP + -0x64],EAX
JS 0x0001d734
CMP dword ptr [EBP + 0x10],0x24
JLE 0x0001d748
CMP dword ptr [EBP + 0x10],0x3e
JG 0x0001d770
MOV EAX,dword ptr [EBP + -0x40]
MOV EAX,dword ptr [EAX + 0xfffffe90]
ADD EAX,0xd0
MOV dword ptr [EBP + -0x50],EAX
MOVZX EAX,byte ptr [EAX + ESI*0x1]
CMP EAX,dword ptr [EBP + 0x10]
JL 0x0001d337
MOV ESI,dword ptr [EBP + -0x38]
TEST ESI,ESI
JZ 0x0001d320
MOV EDX,dword ptr [EBP + -0x3c]
MOVZX EAX,byte ptr [EDI]
CMP byte ptr [EDX],AL
JNZ 0x0001d770
LEA EAX,[EDI + 0x1]
ADD EDX,0x1
ADD ESI,EDI
JMP 0x0001d31c
MOVZX EBX,byte ptr [EAX]
MOVZX ECX,byte ptr [EDX]
ADD EAX,0x1
ADD EDX,0x1
CMP BL,CL
JNZ 0x0001d770
CMP ESI,EAX
JNZ 0x0001d308
MOV EAX,dword ptr [EBP + -0x38]
MOV ESI,dword ptr [EBP + -0x50]
MOVZX EAX,byte ptr [EDI + EAX*0x1]
MOVZX EAX,byte ptr [ESI + EAX*0x1]
CMP EAX,dword ptr [EBP + 0x10]
JGE 0x0001d770
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x40]
PUSH EDI
CALL 0x0001b9a0
ADD ESP,0x10
MOV EDX,EAX
MOV dword ptr [EBP + -0x2c],EAX
MOV ESI,EAX
SUB EAX,0x1
JZ 0x0001daf0
MOVZX ECX,byte ptr [EDI + EDX*0x1 + -0x1]
CMP CL,0x40
JZ 0x0001dae6
CMP dword ptr [EBP + 0x10],0xa
JLE 0x0001d71b
MOV EDX,EAX
SUB EDX,0x1
JZ 0x0001d38c
LEA ESI,[ESI]
CMP byte ptr [EDI + EAX*0x1 + -0x1],0x40
JZ 0x0001d952
MOV EAX,EDX
MOV EDX,EAX
SUB EDX,0x1
JNZ 0x0001d378
MOV dword ptr [EBP + -0x68],0x0
LEA EAX,[ESI + 0x1]
MOV dword ptr [EBP + -0x20],0x0
CMP EAX,0x7f00
JA 0x0001da72
ADD EAX,0x1b
MOV ECX,dword ptr [EBP + -0x2c]
AND EAX,0xfffffff0
SUB ESP,EAX
LEA EAX,[ESP + 0xf]
AND EAX,0xfffffff0
MOV dword ptr [EBP + -0x58],EAX
TEST ECX,ECX
JZ 0x0001db17
MOV EAX,dword ptr [EBP + -0x58]
MOV dword ptr [EBP + -0x4c],0x0
XOR ESI,ESI
MOV dword ptr [EBP + -0x44],EAX
MOV EAX,dword ptr [EBP + -0x38]
SUB EAX,0x1
MOV dword ptr [EBP + -0x54],EAX
JMP 0x0001d3ef
ADD EDI,0x1
ADD ESI,0x1
CMP dword ptr [EBP + -0x2c],ESI
JBE 0x0001d470
MOVZX ECX,byte ptr [EDI]
MOV EBX,dword ptr [EBP + -0x34]
MOV dword ptr [EBP + -0x30],ECX
TEST byte ptr [EBX + ECX*0x2 + 0x1],0x20
JNZ 0x0001d3e0
MOV EDX,dword ptr [EBP + -0x38]
TEST EDX,EDX
JZ 0x0001d443
MOV EBX,dword ptr [EBP + -0x3c]
CMP CL,byte ptr [EBX]
JNZ 0x0001d793
MOV EDX,EBX
MOV EBX,dword ptr [EBP + -0x38]
MOV dword ptr [EBP + -0x48],ESI
LEA EAX,[EDI + 0x1]
ADD EDX,0x1
ADD EBX,EDI
MOV ESI,EBX
JMP 0x0001d43c
MOVZX EBX,byte ptr [EAX]
MOVZX ECX,byte ptr [EDX]
ADD EAX,0x1
ADD EDX,0x1
CMP BL,CL
JNZ 0x0001d790
CMP EAX,ESI
JNZ 0x0001d428
MOV ESI,dword ptr [EBP + -0x48]
MOV EBX,dword ptr [EBP + -0x4c]
TEST EBX,EBX
JNZ 0x0001d756
MOV EAX,dword ptr [EBP + -0x54]
ADD EDI,EAX
ADD ESI,EAX
MOV EAX,dword ptr [EBP + -0x44]
ADD EDI,0x1
ADD ESI,0x1
MOV dword ptr [EBP + -0x4c],EAX
CMP dword ptr [EBP + -0x2c],ESI
JA 0x0001d3ef
LEA ESI,[ESI]
LEA ESI,[ESI]
MOV EAX,dword ptr [EBP + -0x44]
SUB EAX,dword ptr [EBP + -0x58]
MOV dword ptr [EBP + -0x2c],EAX
MOV EAX,dword ptr [EBP + -0x5c]
MOV EDI,dword ptr [EBP + -0x40]
MOV ESI,dword ptr [EAX]
MOV EAX,dword ptr [EBP + 0x10]
LEA EAX,[EAX + EAX*0x4]
SHL EAX,0x2
ADD EAX,dword ptr [EDI + 0xfffffea8]
MOV EAX,dword ptr [EAX + 0x8]
MUL dword ptr [EBP + -0x2c]
AND EDX,0x1ffffffc
LEA EAX,[EDX + 0x8]
CMP EAX,0x7f00
JA 0x0001daaf
ADD EAX,0x1b
MOV EBX,EDI
AND EAX,0xfffffff0
SUB ESP,EAX
LEA EAX,[ESP + 0xf]
AND EAX,0xfffffff0
MOV dword ptr [EBP + -0x3c],EAX
PUSH dword ptr [EBP + 0x10]
PUSH dword ptr [EBP + -0x2c]
PUSH dword ptr [EBP + -0x58]
PUSH dword ptr [EBP + -0x3c]
CALL 0x0001b1b0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0001d7b4
LEA EDI,[ESI + 0x1]
MOV dword ptr [EBP + -0x38],EDI
CMP EDI,EAX
JL 0x0001d7d4
MOV ECX,dword ptr [EBP + -0x68]
MOV dword ptr [EBP + -0x54],EAX
MOV dword ptr [EBP + -0x58],0x0
TEST ECX,ECX
JZ 0x0001d7f2
MOV ECX,dword ptr [EBP + -0x68]
XOR EBX,EBX
MOVZX EDX,byte ptr [ECX]
CMP EDX,0x2d
SETZ BL
MOV dword ptr [EBP + -0x2c],EBX
NEG EBX
CMP EDX,0x2b
SETZ DL
MOV EDI,EBX
MOVZX EDX,DL
NEG EDX
OR EDX,EBX
MOV EBX,dword ptr [EBP + -0x50]
SUB ECX,EDX
MOVZX EDX,byte ptr [ECX]
MOVZX EDX,byte ptr [EBX + EDX*0x1]
CMP dword ptr [EBP + -0x64],EDX
JLE 0x0001d756
LEA EBX,[ECX + 0x2]
MOVZX ECX,byte ptr [ECX + 0x1]
MOV dword ptr [EBP + -0x30],EBX
MOV EBX,dword ptr [EBP + -0x50]
MOVZX ECX,byte ptr [EBX + ECX*0x1]
MOV EBX,dword ptr [EBP + -0x64]
CMP EBX,ECX
JLE 0x0001d57a
MOV dword ptr [EBP + -0x34],ESI
MOV ESI,EBX
MOV EBX,dword ptr [EBP + -0x30]
MOV dword ptr [EBP + -0x30],EDI
MOV EDI,dword ptr [EBP + -0x50]
LEA ESI,[ESI]
IMUL EDX,ESI
ADD EBX,0x1
ADD EDX,ECX
MOVZX ECX,byte ptr [EBX + -0x1]
MOVZX ECX,byte ptr [EDI + ECX*0x1]
CMP ESI,ECX
JG 0x0001d560
MOV ESI,dword ptr [EBP + -0x34]
MOV EDI,dword ptr [EBP + -0x30]
XOR EDX,EDI
MOV EDI,dword ptr [EBP + -0x4c]
ADD EDX,dword ptr [EBP + -0x2c]
MOV dword ptr [EBP + -0x50],EDX
TEST EDI,EDI
JZ 0x0001d592
MOV EDX,dword ptr [EBP + -0x44]
SUB EDX,dword ptr [EBP + -0x4c]
SUB dword ptr [EBP + -0x50],EDX
MOV EBX,dword ptr [EBP + -0x50]
TEST EBX,EBX
JZ 0x0001d804
LEA EAX,[ESI + 0x2]
LEA ESI,[EAX*0x8 + 0x0]
MOV dword ptr [EBP + -0x64],EAX
CMP ESI,0x7f00
JA 0x0001db47
LEA EAX,[ESI + 0x1b]
SHR EAX,0x4
SHL EAX,0x4
SUB ESP,EAX
LEA EDX,[ESP + 0xf]
SUB ESP,EAX
AND EDX,0xfffffff0
MOV dword ptr [EBP + -0x4c],EDX
LEA EDX,[ESP + 0xf]
MOV EDI,EDX
AND EDI,0xfffffff0
MOV ESI,dword ptr [EBP + -0x50]
MOV EDX,dword ptr [EBP + -0x4c]
MOV ECX,0x1e
MOV EAX,ESI
SAR EAX,0x1f
XOR ESI,EAX
SUB ESI,EAX
MOV EAX,dword ptr [EBP + 0x10]
MOV dword ptr [EBP + -0x44],ESI
MOV dword ptr [EDX],EAX
BSR EAX,ESI
XOR EAX,0x1f
SUB ECX,EAX
CMP ECX,-0x1
JZ 0x0001db26
MOV dword ptr [EBP + -0x30],EDX
MOV EDX,dword ptr [EBP + -0x40]
MOV ESI,0x1
XOR EAX,EAX
MOV dword ptr [EBP + -0x2c],0x0
MOV EDX,dword ptr [EDX + 0xfffffd94]
MOV dword ptr [EBP + -0x48],EDX
MOV EDX,EDI
MOV EDI,ECX
JMP 0x0001d686
MOV EAX,ESI
MOV ESI,ECX
SUB EAX,ECX
ADD EBX,EAX
MOV dword ptr [EBP + -0x2c],EBX
LEA EBX,[EAX*0x4 + 0x0]
MOV ECX,dword ptr [EBP + -0x44]
BT ECX,EDI
JNC 0x0001d672
ADD EBX,EDX
PUSH dword ptr [EBP + 0x10]
MOV EAX,dword ptr [EBP + -0x48]
PUSH ESI
PUSH EBX
PUSH EDX
MOV dword ptr [EBP + -0x34],EDX
CALL dword ptr [EAX + 0x64]
MOV EDX,dword ptr [EBP + -0x34]
ADD ESP,0x10
TEST EAX,EAX
MOV dword ptr [EDX + ESI*0x4],EAX
SETNZ AL
XOR EBX,EBX
MOVZX EAX,AL
ADD ESI,EAX
XOR EAX,EAX
SUB EDI,0x1
CMP EDI,-0x1
JZ 0x0001d858
MOV EBX,dword ptr [EBP + -0x30]
MOV dword ptr [EBP + -0x30],EDX
MOV EDX,EBX
MOV EBX,dword ptr [EBP + -0x30]
SUB ESP,0x4
MOV dword ptr [EBP + -0x34],EDX
PUSH ESI
ADD ESI,ESI
LEA EAX,[EBX + EAX*0x4]
MOV EBX,dword ptr [EBP + -0x40]
PUSH EAX
PUSH EDX
CALL 0x0001b8f0
MOV EDX,dword ptr [EBP + -0x34]
XOR EAX,EAX
ADD ESP,0x10
MOV ECX,dword ptr [EDX + ESI*0x4 + -0x4]
TEST ECX,ECX
MOV ECX,dword ptr [EBP + -0x38]
SETZ AL
SHL dword ptr [EBP + -0x2c],0x1
MOV EBX,dword ptr [EBP + -0x2c]
SUB ESI,EAX
CMP ECX,ESI
JL 0x0001d630
XOR EBX,EBX
XOR EAX,EAX
JMP 0x0001d642
MOV EAX,dword ptr [EBP + -0x40]
MOV dword ptr [EBP + -0x64],0xa
MOV dword ptr [EBP + 0x10],0xa
MOV EAX,dword ptr [EAX + 0xfffffe90]
MOV dword ptr [EBP + -0x50],EAX
MOVZX EAX,byte ptr [EAX + ESI*0x1]
CMP EAX,dword ptr [EBP + 0x10]
JL 0x0001d337
JMP 0x0001d2e4
MOV EBX,EAX
SUB EBX,0x1
JZ 0x0001d38c
MOVZX ECX,byte ptr [EDI + EAX*0x1 + -0x1]
CMP CL,0x40
JZ 0x0001d94a
MOV EAX,EBX
AND ECX,0xffffffdf
CMP ECX,0x45
JNZ 0x0001d700
MOV dword ptr [EBP + -0x2c],EAX
ADD EAX,0x1
LEA ESI,[EDI + EAX*0x1]
MOV dword ptr [EBP + -0x68],ESI
JMP 0x0001d396
NEG dword ptr [EBP + 0x10]
CMP dword ptr [EBP + 0x10],0x24
MOV dword ptr [EBP + -0x64],0xa
JG 0x0001d2c0
MOV EAX,dword ptr [EBP + -0x40]
MOV EAX,dword ptr [EAX + 0xfffffe90]
MOV dword ptr [EBP + -0x50],EAX
JMP 0x0001d6ea
MOV EAX,dword ptr [EBP + -0x20]
TEST EAX,EAX
JZ 0x0001d770
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x40]
PUSH EAX
CALL 0x0001b050
ADD ESP,0x10
LEA ESI,[ESI]
MOV EAX,0xffffffff
MOV EDI,dword ptr [EBP + -0x1c]
XOR EDI,dword ptr GS:[0x14]
JNZ 0x0001dbc6
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV ESI,dword ptr [EBP + -0x48]
MOV EAX,dword ptr [EBP + -0x50]
MOV EDX,dword ptr [EBP + -0x30]
MOVZX EDX,byte ptr [EAX + EDX*0x1]
MOV EAX,EDX
CMP dword ptr [EBP + 0x10],EDX
JLE 0x0001d756
MOV EDX,dword ptr [EBP + -0x44]
MOV byte ptr [EDX],AL
LEA EAX,[EDX + 0x1]
MOV dword ptr [EBP + -0x44],EAX
JMP 0x0001d3e0
MOV EDI,dword ptr [EBP + -0x5c]
MOV EDX,dword ptr [EBP + -0x20]
MOV dword ptr [EDI + 0x4],0x0
MOV dword ptr [EDI + 0x8],0x0
TEST EDX,EDX
JNZ 0x0001dacc
XOR EAX,EAX
JMP 0x0001d775
MOV EBX,dword ptr [EBP + -0x3c]
MOV EDX,EAX
MOV ECX,dword ptr [EBP + -0x68]
MOV dword ptr [EBP + -0x54],EDI
SUB EDX,EDI
MOV dword ptr [EBP + -0x58],EDX
LEA EDX,[EBX + EDX*0x4]
MOV dword ptr [EBP + -0x3c],EDX
TEST ECX,ECX
JNZ 0x0001d4fd
MOV EDX,dword ptr [EBP + -0x4c]
MOV dword ptr [EBP + -0x50],0x0
TEST EDX,EDX
JNZ 0x0001d589
MOV EDI,dword ptr [EBP + -0x54]
MOV ESI,dword ptr [EBP + -0x5c]
MOV dword ptr [EBP + -0x2c],EAX
SUB ESP,0x4
MOV EAX,dword ptr [EBP + -0x40]
PUSH EDI
MOV EDX,dword ptr [EAX + 0xfffffd94]
PUSH dword ptr [EBP + -0x3c]
PUSH dword ptr [ESI + 0xc]
CALL dword ptr [EDX + 0x28]
MOV ECX,dword ptr [EBP + -0x60]
MOV EDX,EDI
MOV EAX,dword ptr [EBP + -0x2c]
NEG EDX
ADD ESP,0x10
TEST ECX,ECX
CMOVZ EDX,EDI
MOV dword ptr [ESI + 0x8],EAX
MOV EAX,dword ptr [EBP + -0x20]
MOV dword ptr [ESI + 0x4],EDX
TEST EAX,EAX
JZ 0x0001d7d0
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x40]
PUSH EAX
CALL 0x0001b050
ADD ESP,0x10
XOR EAX,EAX
JMP 0x0001d775
MOV EDI,EDX
MOV EAX,dword ptr [EBP + -0x38]
CMP EAX,ESI
JGE 0x0001d86b
SUB ESI,EAX
ADD dword ptr [EBP + -0x2c],ESI
LEA EDI,[EDI + ESI*0x4]
MOV ESI,EAX
SUB ESP,0x4
LEA EDX,[EDI + EBX*0x1]
MOV EAX,dword ptr [EBP + -0x48]
PUSH ESI
PUSH EDX
PUSH dword ptr [EBP + -0x4c]
CALL dword ptr [EAX + 0x28]
MOV EBX,dword ptr [EBP + -0x50]
ADD ESP,0x10
TEST EBX,EBX
JS 0x0001d95a
MOV EAX,dword ptr [EBP + -0x54]
ADD EAX,ESI
LEA EDX,[EAX*0x4 + 0x0]
MOV dword ptr [EBP + -0x30],EAX
CMP EDX,0x7f00
JA 0x0001db70
LEA EAX,[EDX + 0x1b]
AND EAX,0xfffffff0
SUB ESP,EAX
LEA EDI,[ESP + 0xf]
AND EDI,0xfffffff0
MOV EAX,dword ptr [EBP + -0x54]
MOV dword ptr [EBP + -0x34],EDX
CMP EAX,ESI
JGE 0x0001da95
SUB ESP,0xc
PUSH EAX
PUSH dword ptr [EBP + -0x3c]
PUSH ESI
PUSH dword ptr [EBP + -0x4c]
MOV EBX,dword ptr [EBP + -0x40]
PUSH EDI
CALL 0x0001bbe0
MOV EDX,dword ptr [EBP + -0x34]
XOR EAX,EAX
ADD ESP,0x20
MOV ESI,dword ptr [EBP + -0x30]
MOV EBX,dword ptr [EBP + -0x2c]
MOV ECX,dword ptr [EDI + EDX*0x1 + -0x4]
TEST ECX,ECX
MOV ECX,dword ptr [EBP + -0x58]
SETZ AL
SUB ESI,EAX
ADD ECX,ESI
MOV EAX,ESI
MOV ESI,dword ptr [EBP + -0x38]
ADD EBX,ECX
CMP ESI,EAX
JGE 0x0001daa7
SUB EAX,ESI
LEA EDI,[EDI + EAX*0x4]
MOV ESI,dword ptr [EBP + -0x38]
SUB ESP,0x4
MOV EAX,dword ptr [EBP + -0x5c]
PUSH ESI
PUSH EDI
MOV EDI,dword ptr [EBP + -0x48]
PUSH dword ptr [EAX + 0xc]
CALL dword ptr [EDI + 0x28]
MOV EAX,ESI
MOV EDX,dword ptr [EBP + -0x60]
MOV EDI,ESI
NEG EAX
MOV ESI,EAX
ADD ESP,0x10
TEST EDX,EDX
MOV EAX,dword ptr [EBP + -0x5c]
CMOVZ ESI,EDI
MOV dword ptr [EAX + 0x8],EBX
MOV dword ptr [EAX + 0x4],ESI
MOV EAX,dword ptr [EBP + -0x20]
TEST EAX,EAX
JNZ 0x0001d842
XOR EAX,EAX
JMP 0x0001d775
MOV dword ptr [EBP + -0x2c],EBX
JMP 0x0001d729
MOV dword ptr [EBP + -0x2c],EDX
JMP 0x0001d729
CMP dword ptr [EBP + -0x54],ESI
JGE 0x0001d9c8
LEA EAX,[ESI*0x4 + 0x4]
CMP EAX,0x7f00
JA 0x0001dbac
ADD EAX,0x1b
AND EAX,0xfffffff0
SUB ESP,EAX
LEA EDX,[ESP + 0xf]
AND EDX,0xfffffff0
MOV ECX,ESI
SUB ECX,dword ptr [EBP + -0x54]
SUB ESP,0x4
MOV EBX,dword ptr [EBP + -0x40]
LEA EDI,[ECX*0x4 + 0x0]
MOV dword ptr [EBP + -0x34],ECX
PUSH EDI
PUSH 0x0
PUSH EDX
MOV dword ptr [EBP + -0x30],EDX
CALL 0x0001bb20
MOV EDX,dword ptr [EBP + -0x30]
MOV EAX,dword ptr [EBP + -0x48]
ADD ESP,0xc
PUSH dword ptr [EBP + -0x54]
ADD EDI,EDX
PUSH dword ptr [EBP + -0x3c]
PUSH EDI
CALL dword ptr [EAX + 0x28]
MOV EDX,dword ptr [EBP + -0x30]
MOV ECX,dword ptr [EBP + -0x34]
MOV dword ptr [EBP + -0x54],ESI
SUB dword ptr [EBP + -0x58],ECX
MOV dword ptr [EBP + -0x3c],EDX
ADD ESP,0x10
MOV EAX,dword ptr [EBP + -0x4c]
MOV EBX,dword ptr [EAX + ESI*0x4 + -0x4]
TEST EBX,EBX
JS 0x0001da03
BSR EBX,EBX
XOR EBX,0x1f
PUSH EBX
PUSH ESI
PUSH EAX
PUSH EAX
MOV EAX,dword ptr [EBP + -0x48]
CALL dword ptr [EAX + 0x38]
MOV EDI,dword ptr [EBP + -0x3c]
MOV EAX,dword ptr [EBP + -0x48]
PUSH EBX
MOV EBX,dword ptr [EBP + -0x54]
PUSH EBX
PUSH EDI
PUSH EDI
CALL dword ptr [EAX + 0x38]
ADD ESP,0x20
TEST EAX,EAX
JZ 0x0001da03
MOV dword ptr [EDI + EBX*0x4],EAX
LEA EAX,[EBX + 0x1]
MOV dword ptr [EBP + -0x54],EAX
MOV EAX,dword ptr [EBP + -0x64]
SHL EAX,0x2
MOV dword ptr [EBP + -0x30],EAX
CMP EAX,0x7f00
JA 0x0001db90
ADD EAX,0x1b
AND EAX,0xfffffff0
SUB ESP,EAX
LEA EDI,[ESP + 0xf]
AND EDI,0xfffffff0
MOV EAX,dword ptr [EBP + -0x54]
SUB ESP,0x8
MOV EBX,dword ptr [EBP + -0x40]
PUSH ESI
MOV EDX,EAX
PUSH dword ptr [EBP + -0x4c]
PUSH EAX
SUB EDX,ESI
MOV EAX,dword ptr [EBP + -0x38]
PUSH dword ptr [EBP + -0x3c]
MOV dword ptr [EBP + -0x34],EDX
SUB EAX,EDX
PUSH EAX
PUSH EDI
CALL 0x0001c210
MOV EDX,dword ptr [EBP + -0x34]
MOV ECX,dword ptr [EBP + -0x58]
ADD ESP,0x20
SUB ECX,dword ptr [EBP + -0x2c]
ADD EDX,ECX
LEA EBX,[EDX + EAX*0x1]
TEST EAX,EAX
JZ 0x0001d908
MOV ESI,dword ptr [EBP + -0x30]
ADD EDI,0x4
MOV dword ptr [EDI + ESI*0x1 + -0x8],EAX
JMP 0x0001d908
SUB ESP,0x8
MOV EBX,dword ptr [EBP + -0x40]
PUSH EAX
LEA EAX,[EBP + -0x20]
PUSH EAX
CALL 0x0001bb00
ADD ESP,0x10
MOV dword ptr [EBP + -0x58],EAX
MOV EAX,dword ptr [EBP + -0x30]
MOV EAX,dword ptr [EAX]
MOV dword ptr [EBP + -0x34],EAX
JMP 0x0001d3c5
SUB ESP,0xc
PUSH ESI
PUSH dword ptr [EBP + -0x4c]
PUSH dword ptr [EBP + -0x54]
PUSH dword ptr [EBP + -0x3c]
JMP 0x0001d8cd
MOV dword ptr [EBP + -0x38],EAX
JMP 0x0001d908
SUB ESP,0x8
MOV EBX,EDI
PUSH EAX
LEA EAX,[EBP + -0x20]
PUSH EAX
CALL 0x0001bb00
ADD ESP,0x10
MOV EBX,dword ptr [EBP + -0x40]
MOV dword ptr [EBP + -0x3c],EAX
JMP 0x0001d4be
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x40]
MOV dword ptr [EBP + -0x2c],EAX
PUSH EDX
CALL 0x0001b050
ADD ESP,0x10
MOV EAX,dword ptr [EBP + -0x2c]
JMP 0x0001d775
MOV dword ptr [EBP + -0x2c],EAX
MOV EAX,ESI
JMP 0x0001d729
SUB ESP,0x10
MOV dword ptr [EBP + -0x20],0x0
LEA EAX,[ESP + 0xf]
MOV dword ptr [EBP + -0x68],0x0
AND EAX,0xfffffff0
MOV dword ptr [EBP + -0x2c],0x1
MOV dword ptr [EBP + -0x58],EAX
JMP 0x0001d3c5
MOV dword ptr [EBP + -0x44],EAX
MOV dword ptr [EBP + -0x4c],0x0
JMP 0x0001d479
MOV EAX,dword ptr [EBP + -0x40]
MOV EDI,EDX
XOR EBX,EBX
MOV dword ptr [EBP + -0x2c],0x0
MOV ESI,0x1
MOV EAX,dword ptr [EAX + 0xfffffd94]
MOV dword ptr [EBP + -0x48],EAX
JMP 0x0001d85a
SUB ESP,0x8
LEA EDI,[EBP + -0x20]
MOV EBX,dword ptr [EBP + -0x40]
PUSH ESI
PUSH EDI
CALL 0x0001bb00
POP EBX
MOV EBX,dword ptr [EBP + -0x40]
MOV dword ptr [EBP + -0x4c],EAX
POP EAX
PUSH ESI
PUSH EDI
CALL 0x0001bb00
ADD ESP,0x10
MOV EDI,EAX
JMP 0x0001d5d6
SUB ESP,0x8
LEA EAX,[EBP + -0x20]
MOV EBX,dword ptr [EBP + -0x40]
MOV dword ptr [EBP + -0x34],EDX
PUSH EDX
PUSH EAX
CALL 0x0001bb00
ADD ESP,0x10
MOV EDX,dword ptr [EBP + -0x34]
MOV EDI,EAX
JMP 0x0001d8b4
SUB ESP,0x8
LEA EAX,[EBP + -0x20]
PUSH dword ptr [EBP + -0x30]
MOV EBX,dword ptr [EBP + -0x40]
PUSH EAX
CALL 0x0001bb00
ADD ESP,0x10
MOV EDI,EAX
JMP 0x0001da26
SUB ESP,0x8
MOV EBX,dword ptr [EBP + -0x40]
PUSH EAX
LEA EAX,[EBP + -0x20]
PUSH EAX
CALL 0x0001bb00
ADD ESP,0x10
MOV EDX,EAX
JMP 0x0001d980
CALL 0x0007ebe0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nundefined * __gmpf_set_str(uint *param_1,byte *param_2,ushort *param_3)\n\n{\n  byte bVar1;\n  code *pcVar2;\n  uint *puVar3;\n  undefined **ppuVar4;\n  byte *pbVar5;\n  undefined *puVar6;\n  int iVar7;\n  ushort *puVar8;\n  undefined *puVar9;\n  ushort **ppuVar10;\n  ushort **ppuVar11;\n  uint uVar12;\n  int iVar13;\n  byte **ppbVar14;\n  byte **ppbVar15;\n  uint uVar16;\n  undefined *puVar17;\n  int in_GS_OFFSET;\n  bool bVar18;\n  ushort *puStack_70;\n  byte *local_6c;\n  ushort *local_68;\n  uint local_64;\n  uint *local_60;\n  ushort **local_5c;\n  undefined *local_58;\n  undefined *local_54;\n  ushort **local_50;\n  undefined *local_4c;\n  ushort **local_48;\n  undefined **local_44;\n  ushort **local_40;\n  undefined *local_3c;\n  ushort **local_38;\n  ushort **local_34;\n  undefined *local_30;\n  int local_24;\n  int local_20;\n  \n  local_60 = param_1;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_44 = &__DT_PLTGOT;\n  local_40 = (ushort **)nl_langinfo(0x10000);\n  local_44 = &__DT_PLTGOT;\n  local_3c = (undefined *)strlen((char *)local_40);\n  ppbVar14 = &local_6c;\n  uVar16 = (uint)*param_2;\n  puStack_70 = (ushort *)0x1d265;\n  local_34 = __ctype_b_loc();\n  local_38 = (ushort **)*local_34;\n  bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1);\n  while ((bVar1 & 0x20) != 0) {\n    param_2 = param_2 + 1;\n    uVar16 = (uint)*param_2;\n    bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1);\n  }\n  bVar18 = uVar16 == 0x2d;\n  if (bVar18) {\n    uVar16 = (uint)param_2[1];\n    param_2 = param_2 + 1;\n  }\n  local_64 = (uint)bVar18;\n  if (param_3 == (ushort *)0x0) {\n    local_68 = (ushort *)0xa;\n    param_3 = (ushort *)0xa;\n    local_54 = local_44[-0x5c];\nLAB_0001d6ea:\n    if ((int)(uint)(byte)local_54[uVar16] < (int)param_3) goto LAB_0001d337;\nLAB_0001d2e4:\n    if (local_3c == (undefined *)0x0) {\nLAB_0001d320:\n      ppbVar15 = &local_6c;\n      if ((int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3) goto LAB_0001d337;\n    }\n    else {\n      ppbVar15 = &local_6c;\n      if (*(byte *)local_40 == *param_2) {\n        ppuVar11 = local_40;\n        pbVar5 = param_2;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);\n      }\n    }\nLAB_0001d770:\n    puVar6 = (undefined *)0xffffffff;\n    goto LAB_0001d775;\n  }\n  local_68 = param_3;\n  if ((int)param_3 < 0) {\n    param_3 = (ushort *)-(int)param_3;\n    local_68 = (ushort *)0xa;\n    if ((int)param_3 < 0x25) goto LAB_0001d748;\n  }\n  else if ((int)param_3 < 0x25) {\nLAB_0001d748:\n    local_54 = local_44[-0x5c];\n    goto LAB_0001d6ea;\n  }\n  ppbVar15 = &local_6c;\n  if (0x3e < (int)param_3) goto LAB_0001d770;\n  local_54 = local_44[-0x5c] + 0xd0;\n  if ((int)param_3 <= (int)(uint)(byte)local_54[uVar16]) goto LAB_0001d2e4;\nLAB_0001d337:\n  puVar6 = (undefined *)strlen((char *)param_2);\n  local_30 = puVar6 + -1;\n  if (local_30 == (undefined *)0x0) {\n    ppbVar14 = (byte **)&stack0xffffff84;\n    local_24 = 0;\n    local_6c = (byte *)0x0;\n    local_5c = &puStack_70;\n    local_30 = (undefined *)0x1;\nLAB_0001d3c5:\n    local_50 = (ushort **)0x0;\n    puVar6 = (undefined *)0x0;\n    local_48 = local_5c;\n    local_58 = local_3c + -1;\n    do {\n      while( true ) {\n        local_34 = (ushort **)(uint)*param_2;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        param_2 = param_2 + 1;\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }\n      if (local_3c != (undefined *)0x0) {\n        if (*param_2 == *(byte *)local_40) {\n          ppuVar11 = local_40;\n          pbVar5 = param_2;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < (int)param_3) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }\nLAB_0001d443:\n      if (local_50 != (ushort **)0x0) goto LAB_0001d756;\n      local_50 = local_48;\n      param_2 = param_2 + (int)(local_58 + 1);\n      puVar6 = puVar6 + (int)local_58 + 1;\n    } while (puVar6 < local_30);\nLAB_0001d470:\n    local_30 = (undefined *)((int)local_48 - (int)local_5c);\n    ppbVar15 = ppbVar14;\n  }\n  else {\n    bVar1 = param_2[(int)(puVar6 + -1)];\n    puVar17 = puVar6;\n    if (bVar1 == 0x40) {\nLAB_0001d729:\n      local_6c = param_2 + (int)puVar17;\n    }\n    else {\n      if ((int)param_3 < 0xb) {\n        do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);\n        goto LAB_0001d729;\n      }\n      puVar17 = local_30;\n      for (local_30 = puVar6 + -2; local_30 != (undefined *)0x0; local_30 = local_30 + -1) {\n        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;\n        puVar17 = local_30;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar17 = puVar6 + 1;\n      local_30 = puVar6;\n    }\n    local_24 = 0;\n    if ((undefined *)0x7f00 < puVar17) {\n      local_5c = (ushort **)__gmp_tmp_reentrant_alloc();\n      local_38 = (ushort **)*local_34;\n      goto LAB_0001d3c5;\n    }\n    iVar13 = -((uint)(puVar17 + 0x1b) & 0xfffffff0);\n    ppbVar14 = (byte **)((int)&local_6c + iVar13);\n    ppbVar15 = (byte **)((int)&local_6c + iVar13);\n    local_5c = (ushort **)((int)&local_60 + iVar13);\n    if (local_30 != (undefined *)0x0) goto LAB_0001d3c5;\n    local_50 = (ushort **)0x0;\n    local_48 = local_5c;\n  }\n  ppuVar11 = (ushort **)*local_60;\n  uVar12 = (uint)((ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8) * ZEXT48(local_30)\n                 >> 0x20) & 0x1ffffffc;\n  uVar16 = uVar12 + 8;\n  if (uVar16 < 0x7f01) {\n    iVar13 = -(uVar12 + 0x23 & 0xfffffff0);\n    local_40 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n    ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n  }\n  else {\n    *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n    *(int **)((int)ppbVar15 + -0x10) = &local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dabe;\n    local_40 = (ushort **)__gmp_tmp_reentrant_alloc();\n  }\n  *(ushort **)((int)ppbVar15 + -4) = param_3;\n  *(undefined **)((int)ppbVar15 + -8) = local_30;\n  *(ushort ***)((int)ppbVar15 + -0xc) = local_5c;\n  *(ushort ***)((int)ppbVar15 + -0x10) = local_40;\n  *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d4cf;\n  puVar6 = (undefined *)__gmpn_set_str();\n  ppuVar4 = local_44;\n  puVar3 = local_60;\n  if (puVar6 == (undefined *)0x0) {\n    local_60[1] = 0;\n    local_60[2] = 0;\n    if (local_24 != 0) {\n      local_30 = puVar6;\n      *(int *)((int)ppbVar15 + -0x10) = local_24;\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dadb;\n      __gmp_tmp_reentrant_free();\n      puVar6 = local_30;\n      goto LAB_0001d775;\n    }\nLAB_0001d7d0:\n    puVar6 = (undefined *)0x0;\n  }\n  else {\n    local_3c = (undefined *)((int)ppuVar11 + 1);\n    if ((int)local_3c < (int)puVar6) {\n      local_5c = (ushort **)(puVar6 + -(int)local_3c);\n      local_40 = local_40 + (int)local_5c;\n      local_58 = local_3c;\n      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;\nLAB_0001d4fd:\n      bVar1 = *local_6c;\n      local_30 = (undefined *)(uint)(bVar1 == 0x2d);\n      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);\n      uVar16 = (uint)(byte)local_54[*pbVar5];\n      ppbVar14 = ppbVar15;\n      if ((int)local_68 <= (int)uVar16) {\nLAB_0001d756:\n        ppbVar15 = ppbVar14;\n        if (local_24 != 0) {\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }\n        goto LAB_0001d770;\n      }\n      bVar1 = local_54[pbVar5[1]];\n      local_34 = (ushort **)(pbVar5 + 2);\n      ppuVar10 = (ushort **)(pbVar5 + 2);\n      while ((int)(uint)bVar1 < (int)local_68) {\n        uVar16 = uVar16 * (int)local_68 + (uint)bVar1;\n        bVar1 = local_54[*(byte *)ppuVar10];\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar10 = (ushort **)((int)ppuVar10 + 1);\n        local_38 = ppuVar11;\n      }\n      local_54 = local_30 + (uVar16 ^ (uint)-(int)local_30);\n      if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }\n      if (local_54 == (undefined *)0x0) goto LAB_0001d804;\n      local_68 = (ushort *)((int)ppuVar11 + 2);\n      uVar16 = (int)local_68 * 8;\n      if (uVar16 < 0x7f01) {\n        uVar16 = uVar16 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);\n        ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);\n        ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;\n        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;\n        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();\n      }\n      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));\n      *local_50 = param_3;\n      uVar16 = 0x1f;\n      if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n        }\n      }\n      uVar16 = 0x1e - (uVar16 ^ 0x1f);\n      if (uVar16 == 0xffffffff) {\n        iVar13 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar10 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar7 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }\n      puVar17 = local_4c;\n      if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }\n      *(undefined **)((int)ppbVar15 + -8) = puVar6;\n      *(int *)((int)ppbVar15 + -0xc) = (int)ppuVar10 + iVar13;\n      *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d87c;\n      (*pcVar2)();\n      if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }\n        ppuVar11 = local_50;\n        puVar8 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar8) {\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }\n        local_34 = (ushort **)((int)local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }\n        puVar17 = local_58;\n        *(undefined **)((int)ppbVar15 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar15 + -0x14) = puVar17;\n        puVar9 = local_3c;\n        ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar15 + -0x18) = local_40;\n        local_38 = ppuVar11;\n        *(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;\n        *(uint *)((int)ppbVar15 + -0x20) = uVar16;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;\n        iVar13 = __gmpn_divrem();\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));\n        uVar12 = uVar16;\n        puVar17 = local_3c;\n        if (iVar13 != 0) {\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }\n      }\n      else {\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        local_38 = (ushort **)((int)local_34 * 4);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }\n        *(uint *)((int)ppbVar15 + -0x20) = uVar12;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;\n        __gmpn_mul();\n        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));\n        if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }\n      }\n      local_3c = puVar17;\n      puVar9 = local_3c;\n      puVar3 = local_60;\n      *(undefined **)((int)ppbVar15 + -8) = local_3c;\n      *(uint *)((int)ppbVar15 + -0xc) = uVar12;\n      puVar17 = local_4c;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d91c;\n      (*pcVar2)();\n      puVar17 = (undefined *)-(int)puVar9;\n      if (local_64 == 0) {\n        puVar17 = puVar9;\n      }\n      local_60[2] = (uint)puVar6;\n      local_60[1] = (uint)puVar17;\n      if (local_24 == 0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }\n    }\n    else {\n      local_5c = (ushort **)0x0;\n      local_58 = puVar6;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar17 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar15 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar17;\n      if (local_64 == 0) {\n        puVar6 = puVar17;\n      }\n      puVar3[2] = (uint)local_30;\n      puVar3[1] = (uint)puVar6;\n      if (local_24 == 0) goto LAB_0001d7d0;\n    }\n    *(int *)((int)ppbVar15 + -0x10) = local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d84e;\n    __gmp_tmp_reentrant_free();\n    puVar6 = (undefined *)0x0;\n  }\nLAB_0001d775:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)((int)ppbVar15 + -4) = 0x1dbcb;\n  FUN_0007ebe0();\n}\n\n" comment (function_definition "undefined * __gmpf_set_str(uint *param_1,byte *param_2,ushort *param_3)\n\n{\n  byte bVar1;\n  code *pcVar2;\n  uint *puVar3;\n  undefined **ppuVar4;\n  byte *pbVar5;\n  undefined *puVar6;\n  int iVar7;\n  ushort *puVar8;\n  undefined *puVar9;\n  ushort **ppuVar10;\n  ushort **ppuVar11;\n  uint uVar12;\n  int iVar13;\n  byte **ppbVar14;\n  byte **ppbVar15;\n  uint uVar16;\n  undefined *puVar17;\n  int in_GS_OFFSET;\n  bool bVar18;\n  ushort *puStack_70;\n  byte *local_6c;\n  ushort *local_68;\n  uint local_64;\n  uint *local_60;\n  ushort **local_5c;\n  undefined *local_58;\n  undefined *local_54;\n  ushort **local_50;\n  undefined *local_4c;\n  ushort **local_48;\n  undefined **local_44;\n  ushort **local_40;\n  undefined *local_3c;\n  ushort **local_38;\n  ushort **local_34;\n  undefined *local_30;\n  int local_24;\n  int local_20;\n  \n  local_60 = param_1;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_44 = &__DT_PLTGOT;\n  local_40 = (ushort **)nl_langinfo(0x10000);\n  local_44 = &__DT_PLTGOT;\n  local_3c = (undefined *)strlen((char *)local_40);\n  ppbVar14 = &local_6c;\n  uVar16 = (uint)*param_2;\n  puStack_70 = (ushort *)0x1d265;\n  local_34 = __ctype_b_loc();\n  local_38 = (ushort **)*local_34;\n  bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1);\n  while ((bVar1 & 0x20) != 0) {\n    param_2 = param_2 + 1;\n    uVar16 = (uint)*param_2;\n    bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1);\n  }\n  bVar18 = uVar16 == 0x2d;\n  if (bVar18) {\n    uVar16 = (uint)param_2[1];\n    param_2 = param_2 + 1;\n  }\n  local_64 = (uint)bVar18;\n  if (param_3 == (ushort *)0x0) {\n    local_68 = (ushort *)0xa;\n    param_3 = (ushort *)0xa;\n    local_54 = local_44[-0x5c];\nLAB_0001d6ea:\n    if ((int)(uint)(byte)local_54[uVar16] < (int)param_3) goto LAB_0001d337;\nLAB_0001d2e4:\n    if (local_3c == (undefined *)0x0) {\nLAB_0001d320:\n      ppbVar15 = &local_6c;\n      if ((int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3) goto LAB_0001d337;\n    }\n    else {\n      ppbVar15 = &local_6c;\n      if (*(byte *)local_40 == *param_2) {\n        ppuVar11 = local_40;\n        pbVar5 = param_2;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);\n      }\n    }\nLAB_0001d770:\n    puVar6 = (undefined *)0xffffffff;\n    goto LAB_0001d775;\n  }\n  local_68 = param_3;\n  if ((int)param_3 < 0) {\n    param_3 = (ushort *)-(int)param_3;\n    local_68 = (ushort *)0xa;\n    if ((int)param_3 < 0x25) goto LAB_0001d748;\n  }\n  else if ((int)param_3 < 0x25) {\nLAB_0001d748:\n    local_54 = local_44[-0x5c];\n    goto LAB_0001d6ea;\n  }\n  ppbVar15 = &local_6c;\n  if (0x3e < (int)param_3) goto LAB_0001d770;\n  local_54 = local_44[-0x5c] + 0xd0;\n  if ((int)param_3 <= (int)(uint)(byte)local_54[uVar16]) goto LAB_0001d2e4;\nLAB_0001d337:\n  puVar6 = (undefined *)strlen((char *)param_2);\n  local_30 = puVar6 + -1;\n  if (local_30 == (undefined *)0x0) {\n    ppbVar14 = (byte **)&stack0xffffff84;\n    local_24 = 0;\n    local_6c = (byte *)0x0;\n    local_5c = &puStack_70;\n    local_30 = (undefined *)0x1;\nLAB_0001d3c5:\n    local_50 = (ushort **)0x0;\n    puVar6 = (undefined *)0x0;\n    local_48 = local_5c;\n    local_58 = local_3c + -1;\n    do {\n      while( true ) {\n        local_34 = (ushort **)(uint)*param_2;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        param_2 = param_2 + 1;\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }\n      if (local_3c != (undefined *)0x0) {\n        if (*param_2 == *(byte *)local_40) {\n          ppuVar11 = local_40;\n          pbVar5 = param_2;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < (int)param_3) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }\nLAB_0001d443:\n      if (local_50 != (ushort **)0x0) goto LAB_0001d756;\n      local_50 = local_48;\n      param_2 = param_2 + (int)(local_58 + 1);\n      puVar6 = puVar6 + (int)local_58 + 1;\n    } while (puVar6 < local_30);\nLAB_0001d470:\n    local_30 = (undefined *)((int)local_48 - (int)local_5c);\n    ppbVar15 = ppbVar14;\n  }\n  else {\n    bVar1 = param_2[(int)(puVar6 + -1)];\n    puVar17 = puVar6;\n    if (bVar1 == 0x40) {\nLAB_0001d729:\n      local_6c = param_2 + (int)puVar17;\n    }\n    else {\n      if ((int)param_3 < 0xb) {\n        do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);\n        goto LAB_0001d729;\n      }\n      puVar17 = local_30;\n      for (local_30 = puVar6 + -2; local_30 != (undefined *)0x0; local_30 = local_30 + -1) {\n        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;\n        puVar17 = local_30;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar17 = puVar6 + 1;\n      local_30 = puVar6;\n    }\n    local_24 = 0;\n    if ((undefined *)0x7f00 < puVar17) {\n      local_5c = (ushort **)__gmp_tmp_reentrant_alloc();\n      local_38 = (ushort **)*local_34;\n      goto LAB_0001d3c5;\n    }\n    iVar13 = -((uint)(puVar17 + 0x1b) & 0xfffffff0);\n    ppbVar14 = (byte **)((int)&local_6c + iVar13);\n    ppbVar15 = (byte **)((int)&local_6c + iVar13);\n    local_5c = (ushort **)((int)&local_60 + iVar13);\n    if (local_30 != (undefined *)0x0) goto LAB_0001d3c5;\n    local_50 = (ushort **)0x0;\n    local_48 = local_5c;\n  }\n  ppuVar11 = (ushort **)*local_60;\n  uVar12 = (uint)((ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8) * ZEXT48(local_30)\n                 >> 0x20) & 0x1ffffffc;\n  uVar16 = uVar12 + 8;\n  if (uVar16 < 0x7f01) {\n    iVar13 = -(uVar12 + 0x23 & 0xfffffff0);\n    local_40 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n    ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n  }\n  else {\n    *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n    *(int **)((int)ppbVar15 + -0x10) = &local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dabe;\n    local_40 = (ushort **)__gmp_tmp_reentrant_alloc();\n  }\n  *(ushort **)((int)ppbVar15 + -4) = param_3;\n  *(undefined **)((int)ppbVar15 + -8) = local_30;\n  *(ushort ***)((int)ppbVar15 + -0xc) = local_5c;\n  *(ushort ***)((int)ppbVar15 + -0x10) = local_40;\n  *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d4cf;\n  puVar6 = (undefined *)__gmpn_set_str();\n  ppuVar4 = local_44;\n  puVar3 = local_60;\n  if (puVar6 == (undefined *)0x0) {\n    local_60[1] = 0;\n    local_60[2] = 0;\n    if (local_24 != 0) {\n      local_30 = puVar6;\n      *(int *)((int)ppbVar15 + -0x10) = local_24;\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dadb;\n      __gmp_tmp_reentrant_free();\n      puVar6 = local_30;\n      goto LAB_0001d775;\n    }\nLAB_0001d7d0:\n    puVar6 = (undefined *)0x0;\n  }\n  else {\n    local_3c = (undefined *)((int)ppuVar11 + 1);\n    if ((int)local_3c < (int)puVar6) {\n      local_5c = (ushort **)(puVar6 + -(int)local_3c);\n      local_40 = local_40 + (int)local_5c;\n      local_58 = local_3c;\n      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;\nLAB_0001d4fd:\n      bVar1 = *local_6c;\n      local_30 = (undefined *)(uint)(bVar1 == 0x2d);\n      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);\n      uVar16 = (uint)(byte)local_54[*pbVar5];\n      ppbVar14 = ppbVar15;\n      if ((int)local_68 <= (int)uVar16) {\nLAB_0001d756:\n        ppbVar15 = ppbVar14;\n        if (local_24 != 0) {\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }\n        goto LAB_0001d770;\n      }\n      bVar1 = local_54[pbVar5[1]];\n      local_34 = (ushort **)(pbVar5 + 2);\n      ppuVar10 = (ushort **)(pbVar5 + 2);\n      while ((int)(uint)bVar1 < (int)local_68) {\n        uVar16 = uVar16 * (int)local_68 + (uint)bVar1;\n        bVar1 = local_54[*(byte *)ppuVar10];\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar10 = (ushort **)((int)ppuVar10 + 1);\n        local_38 = ppuVar11;\n      }\n      local_54 = local_30 + (uVar16 ^ (uint)-(int)local_30);\n      if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }\n      if (local_54 == (undefined *)0x0) goto LAB_0001d804;\n      local_68 = (ushort *)((int)ppuVar11 + 2);\n      uVar16 = (int)local_68 * 8;\n      if (uVar16 < 0x7f01) {\n        uVar16 = uVar16 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);\n        ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);\n        ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;\n        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;\n        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();\n      }\n      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));\n      *local_50 = param_3;\n      uVar16 = 0x1f;\n      if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n        }\n      }\n      uVar16 = 0x1e - (uVar16 ^ 0x1f);\n      if (uVar16 == 0xffffffff) {\n        iVar13 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar10 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar7 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }\n      puVar17 = local_4c;\n      if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }\n      *(undefined **)((int)ppbVar15 + -8) = puVar6;\n      *(int *)((int)ppbVar15 + -0xc) = (int)ppuVar10 + iVar13;\n      *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d87c;\n      (*pcVar2)();\n      if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }\n        ppuVar11 = local_50;\n        puVar8 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar8) {\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }\n        local_34 = (ushort **)((int)local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }\n        puVar17 = local_58;\n        *(undefined **)((int)ppbVar15 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar15 + -0x14) = puVar17;\n        puVar9 = local_3c;\n        ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar15 + -0x18) = local_40;\n        local_38 = ppuVar11;\n        *(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;\n        *(uint *)((int)ppbVar15 + -0x20) = uVar16;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;\n        iVar13 = __gmpn_divrem();\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));\n        uVar12 = uVar16;\n        puVar17 = local_3c;\n        if (iVar13 != 0) {\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }\n      }\n      else {\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        local_38 = (ushort **)((int)local_34 * 4);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }\n        *(uint *)((int)ppbVar15 + -0x20) = uVar12;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;\n        __gmpn_mul();\n        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));\n        if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }\n      }\n      local_3c = puVar17;\n      puVar9 = local_3c;\n      puVar3 = local_60;\n      *(undefined **)((int)ppbVar15 + -8) = local_3c;\n      *(uint *)((int)ppbVar15 + -0xc) = uVar12;\n      puVar17 = local_4c;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d91c;\n      (*pcVar2)();\n      puVar17 = (undefined *)-(int)puVar9;\n      if (local_64 == 0) {\n        puVar17 = puVar9;\n      }\n      local_60[2] = (uint)puVar6;\n      local_60[1] = (uint)puVar17;\n      if (local_24 == 0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }\n    }\n    else {\n      local_5c = (ushort **)0x0;\n      local_58 = puVar6;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar17 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar15 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar17;\n      if (local_64 == 0) {\n        puVar6 = puVar17;\n      }\n      puVar3[2] = (uint)local_30;\n      puVar3[1] = (uint)puVar6;\n      if (local_24 == 0) goto LAB_0001d7d0;\n    }\n    *(int *)((int)ppbVar15 + -0x10) = local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d84e;\n    __gmp_tmp_reentrant_free();\n    puVar6 = (undefined *)0x0;\n  }\nLAB_0001d775:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)((int)ppbVar15 + -4) = 0x1dbcb;\n  FUN_0007ebe0();\n}" type_identifier (pointer_declarator "* __gmpf_set_str(uint *param_1,byte *param_2,ushort *param_3)" * (function_declarator "__gmpf_set_str(uint *param_1,byte *param_2,ushort *param_3)" identifier (parameter_list "(uint *param_1,byte *param_2,ushort *param_3)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "ushort *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) )))) (compound_statement "{\n  byte bVar1;\n  code *pcVar2;\n  uint *puVar3;\n  undefined **ppuVar4;\n  byte *pbVar5;\n  undefined *puVar6;\n  int iVar7;\n  ushort *puVar8;\n  undefined *puVar9;\n  ushort **ppuVar10;\n  ushort **ppuVar11;\n  uint uVar12;\n  int iVar13;\n  byte **ppbVar14;\n  byte **ppbVar15;\n  uint uVar16;\n  undefined *puVar17;\n  int in_GS_OFFSET;\n  bool bVar18;\n  ushort *puStack_70;\n  byte *local_6c;\n  ushort *local_68;\n  uint local_64;\n  uint *local_60;\n  ushort **local_5c;\n  undefined *local_58;\n  undefined *local_54;\n  ushort **local_50;\n  undefined *local_4c;\n  ushort **local_48;\n  undefined **local_44;\n  ushort **local_40;\n  undefined *local_3c;\n  ushort **local_38;\n  ushort **local_34;\n  undefined *local_30;\n  int local_24;\n  int local_20;\n  \n  local_60 = param_1;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_44 = &__DT_PLTGOT;\n  local_40 = (ushort **)nl_langinfo(0x10000);\n  local_44 = &__DT_PLTGOT;\n  local_3c = (undefined *)strlen((char *)local_40);\n  ppbVar14 = &local_6c;\n  uVar16 = (uint)*param_2;\n  puStack_70 = (ushort *)0x1d265;\n  local_34 = __ctype_b_loc();\n  local_38 = (ushort **)*local_34;\n  bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1);\n  while ((bVar1 & 0x20) != 0) {\n    param_2 = param_2 + 1;\n    uVar16 = (uint)*param_2;\n    bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1);\n  }\n  bVar18 = uVar16 == 0x2d;\n  if (bVar18) {\n    uVar16 = (uint)param_2[1];\n    param_2 = param_2 + 1;\n  }\n  local_64 = (uint)bVar18;\n  if (param_3 == (ushort *)0x0) {\n    local_68 = (ushort *)0xa;\n    param_3 = (ushort *)0xa;\n    local_54 = local_44[-0x5c];\nLAB_0001d6ea:\n    if ((int)(uint)(byte)local_54[uVar16] < (int)param_3) goto LAB_0001d337;\nLAB_0001d2e4:\n    if (local_3c == (undefined *)0x0) {\nLAB_0001d320:\n      ppbVar15 = &local_6c;\n      if ((int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3) goto LAB_0001d337;\n    }\n    else {\n      ppbVar15 = &local_6c;\n      if (*(byte *)local_40 == *param_2) {\n        ppuVar11 = local_40;\n        pbVar5 = param_2;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);\n      }\n    }\nLAB_0001d770:\n    puVar6 = (undefined *)0xffffffff;\n    goto LAB_0001d775;\n  }\n  local_68 = param_3;\n  if ((int)param_3 < 0) {\n    param_3 = (ushort *)-(int)param_3;\n    local_68 = (ushort *)0xa;\n    if ((int)param_3 < 0x25) goto LAB_0001d748;\n  }\n  else if ((int)param_3 < 0x25) {\nLAB_0001d748:\n    local_54 = local_44[-0x5c];\n    goto LAB_0001d6ea;\n  }\n  ppbVar15 = &local_6c;\n  if (0x3e < (int)param_3) goto LAB_0001d770;\n  local_54 = local_44[-0x5c] + 0xd0;\n  if ((int)param_3 <= (int)(uint)(byte)local_54[uVar16]) goto LAB_0001d2e4;\nLAB_0001d337:\n  puVar6 = (undefined *)strlen((char *)param_2);\n  local_30 = puVar6 + -1;\n  if (local_30 == (undefined *)0x0) {\n    ppbVar14 = (byte **)&stack0xffffff84;\n    local_24 = 0;\n    local_6c = (byte *)0x0;\n    local_5c = &puStack_70;\n    local_30 = (undefined *)0x1;\nLAB_0001d3c5:\n    local_50 = (ushort **)0x0;\n    puVar6 = (undefined *)0x0;\n    local_48 = local_5c;\n    local_58 = local_3c + -1;\n    do {\n      while( true ) {\n        local_34 = (ushort **)(uint)*param_2;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        param_2 = param_2 + 1;\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }\n      if (local_3c != (undefined *)0x0) {\n        if (*param_2 == *(byte *)local_40) {\n          ppuVar11 = local_40;\n          pbVar5 = param_2;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < (int)param_3) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }\nLAB_0001d443:\n      if (local_50 != (ushort **)0x0) goto LAB_0001d756;\n      local_50 = local_48;\n      param_2 = param_2 + (int)(local_58 + 1);\n      puVar6 = puVar6 + (int)local_58 + 1;\n    } while (puVar6 < local_30);\nLAB_0001d470:\n    local_30 = (undefined *)((int)local_48 - (int)local_5c);\n    ppbVar15 = ppbVar14;\n  }\n  else {\n    bVar1 = param_2[(int)(puVar6 + -1)];\n    puVar17 = puVar6;\n    if (bVar1 == 0x40) {\nLAB_0001d729:\n      local_6c = param_2 + (int)puVar17;\n    }\n    else {\n      if ((int)param_3 < 0xb) {\n        do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);\n        goto LAB_0001d729;\n      }\n      puVar17 = local_30;\n      for (local_30 = puVar6 + -2; local_30 != (undefined *)0x0; local_30 = local_30 + -1) {\n        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;\n        puVar17 = local_30;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar17 = puVar6 + 1;\n      local_30 = puVar6;\n    }\n    local_24 = 0;\n    if ((undefined *)0x7f00 < puVar17) {\n      local_5c = (ushort **)__gmp_tmp_reentrant_alloc();\n      local_38 = (ushort **)*local_34;\n      goto LAB_0001d3c5;\n    }\n    iVar13 = -((uint)(puVar17 + 0x1b) & 0xfffffff0);\n    ppbVar14 = (byte **)((int)&local_6c + iVar13);\n    ppbVar15 = (byte **)((int)&local_6c + iVar13);\n    local_5c = (ushort **)((int)&local_60 + iVar13);\n    if (local_30 != (undefined *)0x0) goto LAB_0001d3c5;\n    local_50 = (ushort **)0x0;\n    local_48 = local_5c;\n  }\n  ppuVar11 = (ushort **)*local_60;\n  uVar12 = (uint)((ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8) * ZEXT48(local_30)\n                 >> 0x20) & 0x1ffffffc;\n  uVar16 = uVar12 + 8;\n  if (uVar16 < 0x7f01) {\n    iVar13 = -(uVar12 + 0x23 & 0xfffffff0);\n    local_40 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n    ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n  }\n  else {\n    *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n    *(int **)((int)ppbVar15 + -0x10) = &local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dabe;\n    local_40 = (ushort **)__gmp_tmp_reentrant_alloc();\n  }\n  *(ushort **)((int)ppbVar15 + -4) = param_3;\n  *(undefined **)((int)ppbVar15 + -8) = local_30;\n  *(ushort ***)((int)ppbVar15 + -0xc) = local_5c;\n  *(ushort ***)((int)ppbVar15 + -0x10) = local_40;\n  *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d4cf;\n  puVar6 = (undefined *)__gmpn_set_str();\n  ppuVar4 = local_44;\n  puVar3 = local_60;\n  if (puVar6 == (undefined *)0x0) {\n    local_60[1] = 0;\n    local_60[2] = 0;\n    if (local_24 != 0) {\n      local_30 = puVar6;\n      *(int *)((int)ppbVar15 + -0x10) = local_24;\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dadb;\n      __gmp_tmp_reentrant_free();\n      puVar6 = local_30;\n      goto LAB_0001d775;\n    }\nLAB_0001d7d0:\n    puVar6 = (undefined *)0x0;\n  }\n  else {\n    local_3c = (undefined *)((int)ppuVar11 + 1);\n    if ((int)local_3c < (int)puVar6) {\n      local_5c = (ushort **)(puVar6 + -(int)local_3c);\n      local_40 = local_40 + (int)local_5c;\n      local_58 = local_3c;\n      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;\nLAB_0001d4fd:\n      bVar1 = *local_6c;\n      local_30 = (undefined *)(uint)(bVar1 == 0x2d);\n      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);\n      uVar16 = (uint)(byte)local_54[*pbVar5];\n      ppbVar14 = ppbVar15;\n      if ((int)local_68 <= (int)uVar16) {\nLAB_0001d756:\n        ppbVar15 = ppbVar14;\n        if (local_24 != 0) {\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }\n        goto LAB_0001d770;\n      }\n      bVar1 = local_54[pbVar5[1]];\n      local_34 = (ushort **)(pbVar5 + 2);\n      ppuVar10 = (ushort **)(pbVar5 + 2);\n      while ((int)(uint)bVar1 < (int)local_68) {\n        uVar16 = uVar16 * (int)local_68 + (uint)bVar1;\n        bVar1 = local_54[*(byte *)ppuVar10];\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar10 = (ushort **)((int)ppuVar10 + 1);\n        local_38 = ppuVar11;\n      }\n      local_54 = local_30 + (uVar16 ^ (uint)-(int)local_30);\n      if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }\n      if (local_54 == (undefined *)0x0) goto LAB_0001d804;\n      local_68 = (ushort *)((int)ppuVar11 + 2);\n      uVar16 = (int)local_68 * 8;\n      if (uVar16 < 0x7f01) {\n        uVar16 = uVar16 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);\n        ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);\n        ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;\n        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;\n        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();\n      }\n      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));\n      *local_50 = param_3;\n      uVar16 = 0x1f;\n      if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n        }\n      }\n      uVar16 = 0x1e - (uVar16 ^ 0x1f);\n      if (uVar16 == 0xffffffff) {\n        iVar13 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar10 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar7 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }\n      puVar17 = local_4c;\n      if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }\n      *(undefined **)((int)ppbVar15 + -8) = puVar6;\n      *(int *)((int)ppbVar15 + -0xc) = (int)ppuVar10 + iVar13;\n      *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d87c;\n      (*pcVar2)();\n      if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }\n        ppuVar11 = local_50;\n        puVar8 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar8) {\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }\n        local_34 = (ushort **)((int)local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }\n        puVar17 = local_58;\n        *(undefined **)((int)ppbVar15 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar15 + -0x14) = puVar17;\n        puVar9 = local_3c;\n        ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar15 + -0x18) = local_40;\n        local_38 = ppuVar11;\n        *(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;\n        *(uint *)((int)ppbVar15 + -0x20) = uVar16;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;\n        iVar13 = __gmpn_divrem();\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));\n        uVar12 = uVar16;\n        puVar17 = local_3c;\n        if (iVar13 != 0) {\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }\n      }\n      else {\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        local_38 = (ushort **)((int)local_34 * 4);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }\n        *(uint *)((int)ppbVar15 + -0x20) = uVar12;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;\n        __gmpn_mul();\n        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));\n        if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }\n      }\n      local_3c = puVar17;\n      puVar9 = local_3c;\n      puVar3 = local_60;\n      *(undefined **)((int)ppbVar15 + -8) = local_3c;\n      *(uint *)((int)ppbVar15 + -0xc) = uVar12;\n      puVar17 = local_4c;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d91c;\n      (*pcVar2)();\n      puVar17 = (undefined *)-(int)puVar9;\n      if (local_64 == 0) {\n        puVar17 = puVar9;\n      }\n      local_60[2] = (uint)puVar6;\n      local_60[1] = (uint)puVar17;\n      if (local_24 == 0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }\n    }\n    else {\n      local_5c = (ushort **)0x0;\n      local_58 = puVar6;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar17 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar15 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar17;\n      if (local_64 == 0) {\n        puVar6 = puVar17;\n      }\n      puVar3[2] = (uint)local_30;\n      puVar3[1] = (uint)puVar6;\n      if (local_24 == 0) goto LAB_0001d7d0;\n    }\n    *(int *)((int)ppbVar15 + -0x10) = local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d84e;\n    __gmp_tmp_reentrant_free();\n    puVar6 = (undefined *)0x0;\n  }\nLAB_0001d775:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)((int)ppbVar15 + -4) = 0x1dbcb;\n  FUN_0007ebe0();\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "code *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "uint *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined **ppuVar4;" type_identifier (pointer_declarator "**ppuVar4" * (pointer_declarator "*ppuVar4" * identifier)) ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "ushort *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "ushort **ppuVar10;" type_identifier (pointer_declarator "**ppuVar10" * (pointer_declarator "*ppuVar10" * identifier)) ;) (declaration "ushort **ppuVar11;" type_identifier (pointer_declarator "**ppuVar11" * (pointer_declarator "*ppuVar11" * identifier)) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "byte **ppbVar14;" type_identifier (pointer_declarator "**ppbVar14" * (pointer_declarator "*ppbVar14" * identifier)) ;) (declaration "byte **ppbVar15;" type_identifier (pointer_declarator "**ppbVar15" * (pointer_declarator "*ppbVar15" * identifier)) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "undefined *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "ushort *puStack_70;" type_identifier (pointer_declarator "*puStack_70" * identifier) ;) (declaration "byte *local_6c;" type_identifier (pointer_declarator "*local_6c" * identifier) ;) (declaration "ushort *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "uint local_64;" type_identifier identifier ;) (declaration "uint *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "ushort **local_5c;" type_identifier (pointer_declarator "**local_5c" * (pointer_declarator "*local_5c" * identifier)) ;) (declaration "undefined *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "undefined *local_54;" type_identifier (pointer_declarator "*local_54" * identifier) ;) (declaration "ushort **local_50;" type_identifier (pointer_declarator "**local_50" * (pointer_declarator "*local_50" * identifier)) ;) (declaration "undefined *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "ushort **local_48;" type_identifier (pointer_declarator "**local_48" * (pointer_declarator "*local_48" * identifier)) ;) (declaration "undefined **local_44;" type_identifier (pointer_declarator "**local_44" * (pointer_declarator "*local_44" * identifier)) ;) (declaration "ushort **local_40;" type_identifier (pointer_declarator "**local_40" * (pointer_declarator "*local_40" * identifier)) ;) (declaration "undefined *local_3c;" type_identifier (pointer_declarator "*local_3c" * identifier) ;) (declaration "ushort **local_38;" type_identifier (pointer_declarator "**local_38" * (pointer_declarator "*local_38" * identifier)) ;) (declaration "ushort **local_34;" type_identifier (pointer_declarator "**local_34" * (pointer_declarator "*local_34" * identifier)) ;) (declaration "undefined *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "local_60 = param_1;" (assignment_expression "local_60 = param_1" identifier = identifier) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_44 = &__DT_PLTGOT;" (assignment_expression "local_44 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "local_40 = (ushort **)nl_langinfo(0x10000);" (assignment_expression "local_40 = (ushort **)nl_langinfo(0x10000)" identifier = (cast_expression "(ushort **)nl_langinfo(0x10000)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "nl_langinfo(0x10000)" identifier (argument_list "(0x10000)" ( number_literal ))))) ;) (expression_statement "local_44 = &__DT_PLTGOT;" (assignment_expression "local_44 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "local_3c = (undefined *)strlen((char *)local_40);" (assignment_expression "local_3c = (undefined *)strlen((char *)local_40)" identifier = (cast_expression "(undefined *)strlen((char *)local_40)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "strlen((char *)local_40)" identifier (argument_list "((char *)local_40)" ( (cast_expression "(char *)local_40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))))) ;) (expression_statement "ppbVar14 = &local_6c;" (assignment_expression "ppbVar14 = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;) (expression_statement "uVar16 = (uint)*param_2;" (assignment_expression "uVar16 = (uint)*param_2" identifier = (binary_expression "(uint)*param_2" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puStack_70 = (ushort *)0x1d265;" (assignment_expression "puStack_70 = (ushort *)0x1d265" identifier = (cast_expression "(ushort *)0x1d265" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_34 = __ctype_b_loc();" (assignment_expression "local_34 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_38 = (ushort **)*local_34;" (assignment_expression "local_38 = (ushort **)*local_34" identifier = (cast_expression "(ushort **)*local_34" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*local_34" * identifier))) ;) (expression_statement "bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1);" (assignment_expression "bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1)" identifier = (pointer_expression "*(byte *)((int)local_38 + uVar16 * 2 + 1)" * (cast_expression "(byte *)((int)local_38 + uVar16 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + uVar16 * 2 + 1)" ( (binary_expression "(int)local_38 + uVar16 * 2 + 1" (binary_expression "(int)local_38 + uVar16 * 2" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar16 * 2" identifier * number_literal)) + number_literal) ))))) ;) (while_statement "while ((bVar1 & 0x20) != 0) {\n    param_2 = param_2 + 1;\n    uVar16 = (uint)*param_2;\n    bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1);\n  }" while (parenthesized_expression "((bVar1 & 0x20) != 0)" ( (binary_expression "(bVar1 & 0x20) != 0" (parenthesized_expression "(bVar1 & 0x20)" ( (binary_expression "bVar1 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    param_2 = param_2 + 1;\n    uVar16 = (uint)*param_2;\n    bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1);\n  }" { (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "uVar16 = (uint)*param_2;" (assignment_expression "uVar16 = (uint)*param_2" identifier = (binary_expression "(uint)*param_2" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1);" (assignment_expression "bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1)" identifier = (pointer_expression "*(byte *)((int)local_38 + uVar16 * 2 + 1)" * (cast_expression "(byte *)((int)local_38 + uVar16 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + uVar16 * 2 + 1)" ( (binary_expression "(int)local_38 + uVar16 * 2 + 1" (binary_expression "(int)local_38 + uVar16 * 2" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar16 * 2" identifier * number_literal)) + number_literal) ))))) ;) })) (expression_statement "bVar18 = uVar16 == 0x2d;" (assignment_expression "bVar18 = uVar16 == 0x2d" identifier = (binary_expression "uVar16 == 0x2d" identifier == number_literal)) ;) (if_statement "if (bVar18) {\n    uVar16 = (uint)param_2[1];\n    param_2 = param_2 + 1;\n  }" if (parenthesized_expression "(bVar18)" ( identifier )) (compound_statement "{\n    uVar16 = (uint)param_2[1];\n    param_2 = param_2 + 1;\n  }" { (expression_statement "uVar16 = (uint)param_2[1];" (assignment_expression "uVar16 = (uint)param_2[1]" identifier = (cast_expression "(uint)param_2[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[1]" identifier [ number_literal ]))) ;) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) })) (expression_statement "local_64 = (uint)bVar18;" (assignment_expression "local_64 = (uint)bVar18" identifier = (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (param_3 == (ushort *)0x0) {\n    local_68 = (ushort *)0xa;\n    param_3 = (ushort *)0xa;\n    local_54 = local_44[-0x5c];\nLAB_0001d6ea:\n    if ((int)(uint)(byte)local_54[uVar16] < (int)param_3) goto LAB_0001d337;\nLAB_0001d2e4:\n    if (local_3c == (undefined *)0x0) {\nLAB_0001d320:\n      ppbVar15 = &local_6c;\n      if ((int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3) goto LAB_0001d337;\n    }\n    else {\n      ppbVar15 = &local_6c;\n      if (*(byte *)local_40 == *param_2) {\n        ppuVar11 = local_40;\n        pbVar5 = param_2;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);\n      }\n    }\nLAB_0001d770:\n    puVar6 = (undefined *)0xffffffff;\n    goto LAB_0001d775;\n  }" if (parenthesized_expression "(param_3 == (ushort *)0x0)" ( (binary_expression "param_3 == (ushort *)0x0" identifier == (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_68 = (ushort *)0xa;\n    param_3 = (ushort *)0xa;\n    local_54 = local_44[-0x5c];\nLAB_0001d6ea:\n    if ((int)(uint)(byte)local_54[uVar16] < (int)param_3) goto LAB_0001d337;\nLAB_0001d2e4:\n    if (local_3c == (undefined *)0x0) {\nLAB_0001d320:\n      ppbVar15 = &local_6c;\n      if ((int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3) goto LAB_0001d337;\n    }\n    else {\n      ppbVar15 = &local_6c;\n      if (*(byte *)local_40 == *param_2) {\n        ppuVar11 = local_40;\n        pbVar5 = param_2;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);\n      }\n    }\nLAB_0001d770:\n    puVar6 = (undefined *)0xffffffff;\n    goto LAB_0001d775;\n  }" { (expression_statement "local_68 = (ushort *)0xa;" (assignment_expression "local_68 = (ushort *)0xa" identifier = (cast_expression "(ushort *)0xa" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_3 = (ushort *)0xa;" (assignment_expression "param_3 = (ushort *)0xa" identifier = (cast_expression "(ushort *)0xa" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_54 = local_44[-0x5c];" (assignment_expression "local_54 = local_44[-0x5c]" identifier = (subscript_expression "local_44[-0x5c]" identifier [ number_literal ])) ;) (labeled_statement "LAB_0001d6ea:\n    if ((int)(uint)(byte)local_54[uVar16] < (int)param_3) goto LAB_0001d337;" statement_identifier : (if_statement "if ((int)(uint)(byte)local_54[uVar16] < (int)param_3) goto LAB_0001d337;" if (parenthesized_expression "((int)(uint)(byte)local_54[uVar16] < (int)param_3)" ( (binary_expression "(int)(uint)(byte)local_54[uVar16] < (int)param_3" (cast_expression "(int)(uint)(byte)local_54[uVar16]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)(byte)local_54[uVar16]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_54[uVar16]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_54[uVar16]" identifier [ identifier ])))) < (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0001d337;" goto statement_identifier ;))) (labeled_statement "LAB_0001d2e4:\n    if (local_3c == (undefined *)0x0) {\nLAB_0001d320:\n      ppbVar15 = &local_6c;\n      if ((int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3) goto LAB_0001d337;\n    }\n    else {\n      ppbVar15 = &local_6c;\n      if (*(byte *)local_40 == *param_2) {\n        ppuVar11 = local_40;\n        pbVar5 = param_2;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);\n      }\n    }" statement_identifier : (if_statement "if (local_3c == (undefined *)0x0) {\nLAB_0001d320:\n      ppbVar15 = &local_6c;\n      if ((int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3) goto LAB_0001d337;\n    }\n    else {\n      ppbVar15 = &local_6c;\n      if (*(byte *)local_40 == *param_2) {\n        ppuVar11 = local_40;\n        pbVar5 = param_2;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);\n      }\n    }" if (parenthesized_expression "(local_3c == (undefined *)0x0)" ( (binary_expression "local_3c == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0001d320:\n      ppbVar15 = &local_6c;\n      if ((int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3) goto LAB_0001d337;\n    }" { (labeled_statement "LAB_0001d320:\n      ppbVar15 = &local_6c;" statement_identifier : (expression_statement "ppbVar15 = &local_6c;" (assignment_expression "ppbVar15 = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;)) (if_statement "if ((int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3) goto LAB_0001d337;" if (parenthesized_expression "((int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3)" ( (binary_expression "(int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3" (cast_expression "(int)(uint)(byte)local_54[param_2[(int)local_3c]]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)(byte)local_54[param_2[(int)local_3c]]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_54[param_2[(int)local_3c]]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_54[param_2[(int)local_3c]]" identifier [ (subscript_expression "param_2[(int)local_3c]" identifier [ (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) ]) ])))) < (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0001d337;" goto statement_identifier ;)) }) (else_clause "else {\n      ppbVar15 = &local_6c;\n      if (*(byte *)local_40 == *param_2) {\n        ppuVar11 = local_40;\n        pbVar5 = param_2;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);\n      }\n    }" else (compound_statement "{\n      ppbVar15 = &local_6c;\n      if (*(byte *)local_40 == *param_2) {\n        ppuVar11 = local_40;\n        pbVar5 = param_2;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);\n      }\n    }" { (expression_statement "ppbVar15 = &local_6c;" (assignment_expression "ppbVar15 = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;) (if_statement "if (*(byte *)local_40 == *param_2) {\n        ppuVar11 = local_40;\n        pbVar5 = param_2;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);\n      }" if (parenthesized_expression "(*(byte *)local_40 == *param_2)" ( (binary_expression "*(byte *)local_40 == *param_2" (pointer_expression "*(byte *)local_40" * (cast_expression "(byte *)local_40" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*param_2" * identifier)) )) (compound_statement "{\n        ppuVar11 = local_40;\n        pbVar5 = param_2;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);\n      }" { (expression_statement "ppuVar11 = local_40;" (assignment_expression "ppuVar11 = local_40" identifier = identifier) ;) (expression_statement "pbVar5 = param_2;" (assignment_expression "pbVar5 = param_2" identifier = identifier) ;) (do_statement "do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);" do (compound_statement "{\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        }" { (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ;) (expression_statement "ppuVar11 = (ushort **)((int)ppuVar11 + 1);" (assignment_expression "ppuVar11 = (ushort **)((int)ppuVar11 + 1)" identifier = (cast_expression "(ushort **)((int)ppuVar11 + 1)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar11 + 1)" ( (binary_expression "(int)ppuVar11 + 1" (cast_expression "(int)ppuVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;" if (parenthesized_expression "(param_2 + (int)local_3c == pbVar5)" ( (binary_expression "param_2 + (int)local_3c == pbVar5" (binary_expression "param_2 + (int)local_3c" identifier + (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier)) == identifier) )) (goto_statement "goto LAB_0001d320;" goto statement_identifier ;)) (expression_statement "ppbVar15 = &local_6c;" (assignment_expression "ppbVar15 = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;) }) while (parenthesized_expression "(*pbVar5 == *(byte *)ppuVar11)" ( (binary_expression "*pbVar5 == *(byte *)ppuVar11" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*(byte *)ppuVar11" * (cast_expression "(byte *)ppuVar11" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) ;) })) })))) (labeled_statement "LAB_0001d770:\n    puVar6 = (undefined *)0xffffffff;" statement_identifier : (expression_statement "puVar6 = (undefined *)0xffffffff;" (assignment_expression "puVar6 = (undefined *)0xffffffff" identifier = (cast_expression "(undefined *)0xffffffff" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (goto_statement "goto LAB_0001d775;" goto statement_identifier ;) })) (expression_statement "local_68 = param_3;" (assignment_expression "local_68 = param_3" identifier = identifier) ;) (if_statement "if ((int)param_3 < 0) {\n    param_3 = (ushort *)-(int)param_3;\n    local_68 = (ushort *)0xa;\n    if ((int)param_3 < 0x25) goto LAB_0001d748;\n  }\n  else if ((int)param_3 < 0x25) {\nLAB_0001d748:\n    local_54 = local_44[-0x5c];\n    goto LAB_0001d6ea;\n  }" if (parenthesized_expression "((int)param_3 < 0)" ( (binary_expression "(int)param_3 < 0" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    param_3 = (ushort *)-(int)param_3;\n    local_68 = (ushort *)0xa;\n    if ((int)param_3 < 0x25) goto LAB_0001d748;\n  }" { (expression_statement "param_3 = (ushort *)-(int)param_3;" (assignment_expression "param_3 = (ushort *)-(int)param_3" identifier = (cast_expression "(ushort *)-(int)param_3" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)param_3" - (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "local_68 = (ushort *)0xa;" (assignment_expression "local_68 = (ushort *)0xa" identifier = (cast_expression "(ushort *)0xa" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((int)param_3 < 0x25) goto LAB_0001d748;" if (parenthesized_expression "((int)param_3 < 0x25)" ( (binary_expression "(int)param_3 < 0x25" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0001d748;" goto statement_identifier ;)) }) (else_clause "else if ((int)param_3 < 0x25) {\nLAB_0001d748:\n    local_54 = local_44[-0x5c];\n    goto LAB_0001d6ea;\n  }" else (if_statement "if ((int)param_3 < 0x25) {\nLAB_0001d748:\n    local_54 = local_44[-0x5c];\n    goto LAB_0001d6ea;\n  }" if (parenthesized_expression "((int)param_3 < 0x25)" ( (binary_expression "(int)param_3 < 0x25" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\nLAB_0001d748:\n    local_54 = local_44[-0x5c];\n    goto LAB_0001d6ea;\n  }" { (labeled_statement "LAB_0001d748:\n    local_54 = local_44[-0x5c];" statement_identifier : (expression_statement "local_54 = local_44[-0x5c];" (assignment_expression "local_54 = local_44[-0x5c]" identifier = (subscript_expression "local_44[-0x5c]" identifier [ number_literal ])) ;)) (goto_statement "goto LAB_0001d6ea;" goto statement_identifier ;) })))) (expression_statement "ppbVar15 = &local_6c;" (assignment_expression "ppbVar15 = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;) (if_statement "if (0x3e < (int)param_3) goto LAB_0001d770;" if (parenthesized_expression "(0x3e < (int)param_3)" ( (binary_expression "0x3e < (int)param_3" number_literal < (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0001d770;" goto statement_identifier ;)) (expression_statement "local_54 = local_44[-0x5c] + 0xd0;" (assignment_expression "local_54 = local_44[-0x5c] + 0xd0" identifier = (binary_expression "local_44[-0x5c] + 0xd0" (subscript_expression "local_44[-0x5c]" identifier [ number_literal ]) + number_literal)) ;) (if_statement "if ((int)param_3 <= (int)(uint)(byte)local_54[uVar16]) goto LAB_0001d2e4;" if (parenthesized_expression "((int)param_3 <= (int)(uint)(byte)local_54[uVar16])" ( (binary_expression "(int)param_3 <= (int)(uint)(byte)local_54[uVar16]" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(uint)(byte)local_54[uVar16]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)(byte)local_54[uVar16]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_54[uVar16]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_54[uVar16]" identifier [ identifier ]))))) )) (goto_statement "goto LAB_0001d2e4;" goto statement_identifier ;)) (labeled_statement "LAB_0001d337:\n  puVar6 = (undefined *)strlen((char *)param_2);" statement_identifier : (expression_statement "puVar6 = (undefined *)strlen((char *)param_2);" (assignment_expression "puVar6 = (undefined *)strlen((char *)param_2)" identifier = (cast_expression "(undefined *)strlen((char *)param_2)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "strlen((char *)param_2)" identifier (argument_list "((char *)param_2)" ( (cast_expression "(char *)param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))))) ;)) (expression_statement "local_30 = puVar6 + -1;" (assignment_expression "local_30 = puVar6 + -1" identifier = (binary_expression "puVar6 + -1" identifier + number_literal)) ;) (if_statement "if (local_30 == (undefined *)0x0) {\n    ppbVar14 = (byte **)&stack0xffffff84;\n    local_24 = 0;\n    local_6c = (byte *)0x0;\n    local_5c = &puStack_70;\n    local_30 = (undefined *)0x1;\nLAB_0001d3c5:\n    local_50 = (ushort **)0x0;\n    puVar6 = (undefined *)0x0;\n    local_48 = local_5c;\n    local_58 = local_3c + -1;\n    do {\n      while( true ) {\n        local_34 = (ushort **)(uint)*param_2;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        param_2 = param_2 + 1;\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }\n      if (local_3c != (undefined *)0x0) {\n        if (*param_2 == *(byte *)local_40) {\n          ppuVar11 = local_40;\n          pbVar5 = param_2;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < (int)param_3) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }\nLAB_0001d443:\n      if (local_50 != (ushort **)0x0) goto LAB_0001d756;\n      local_50 = local_48;\n      param_2 = param_2 + (int)(local_58 + 1);\n      puVar6 = puVar6 + (int)local_58 + 1;\n    } while (puVar6 < local_30);\nLAB_0001d470:\n    local_30 = (undefined *)((int)local_48 - (int)local_5c);\n    ppbVar15 = ppbVar14;\n  }\n  else {\n    bVar1 = param_2[(int)(puVar6 + -1)];\n    puVar17 = puVar6;\n    if (bVar1 == 0x40) {\nLAB_0001d729:\n      local_6c = param_2 + (int)puVar17;\n    }\n    else {\n      if ((int)param_3 < 0xb) {\n        do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);\n        goto LAB_0001d729;\n      }\n      puVar17 = local_30;\n      for (local_30 = puVar6 + -2; local_30 != (undefined *)0x0; local_30 = local_30 + -1) {\n        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;\n        puVar17 = local_30;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar17 = puVar6 + 1;\n      local_30 = puVar6;\n    }\n    local_24 = 0;\n    if ((undefined *)0x7f00 < puVar17) {\n      local_5c = (ushort **)__gmp_tmp_reentrant_alloc();\n      local_38 = (ushort **)*local_34;\n      goto LAB_0001d3c5;\n    }\n    iVar13 = -((uint)(puVar17 + 0x1b) & 0xfffffff0);\n    ppbVar14 = (byte **)((int)&local_6c + iVar13);\n    ppbVar15 = (byte **)((int)&local_6c + iVar13);\n    local_5c = (ushort **)((int)&local_60 + iVar13);\n    if (local_30 != (undefined *)0x0) goto LAB_0001d3c5;\n    local_50 = (ushort **)0x0;\n    local_48 = local_5c;\n  }" if (parenthesized_expression "(local_30 == (undefined *)0x0)" ( (binary_expression "local_30 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    ppbVar14 = (byte **)&stack0xffffff84;\n    local_24 = 0;\n    local_6c = (byte *)0x0;\n    local_5c = &puStack_70;\n    local_30 = (undefined *)0x1;\nLAB_0001d3c5:\n    local_50 = (ushort **)0x0;\n    puVar6 = (undefined *)0x0;\n    local_48 = local_5c;\n    local_58 = local_3c + -1;\n    do {\n      while( true ) {\n        local_34 = (ushort **)(uint)*param_2;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        param_2 = param_2 + 1;\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }\n      if (local_3c != (undefined *)0x0) {\n        if (*param_2 == *(byte *)local_40) {\n          ppuVar11 = local_40;\n          pbVar5 = param_2;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < (int)param_3) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }\nLAB_0001d443:\n      if (local_50 != (ushort **)0x0) goto LAB_0001d756;\n      local_50 = local_48;\n      param_2 = param_2 + (int)(local_58 + 1);\n      puVar6 = puVar6 + (int)local_58 + 1;\n    } while (puVar6 < local_30);\nLAB_0001d470:\n    local_30 = (undefined *)((int)local_48 - (int)local_5c);\n    ppbVar15 = ppbVar14;\n  }" { (expression_statement "ppbVar14 = (byte **)&stack0xffffff84;" (assignment_expression "ppbVar14 = (byte **)&stack0xffffff84" identifier = (cast_expression "(byte **)&stack0xffffff84" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&stack0xffffff84" & identifier))) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "local_6c = (byte *)0x0;" (assignment_expression "local_6c = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_5c = &puStack_70;" (assignment_expression "local_5c = &puStack_70" identifier = (pointer_expression "&puStack_70" & identifier)) ;) (expression_statement "local_30 = (undefined *)0x1;" (assignment_expression "local_30 = (undefined *)0x1" identifier = (cast_expression "(undefined *)0x1" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0001d3c5:\n    local_50 = (ushort **)0x0;" statement_identifier : (expression_statement "local_50 = (ushort **)0x0;" (assignment_expression "local_50 = (ushort **)0x0" identifier = (cast_expression "(ushort **)0x0" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;)) (expression_statement "puVar6 = (undefined *)0x0;" (assignment_expression "puVar6 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_48 = local_5c;" (assignment_expression "local_48 = local_5c" identifier = identifier) ;) (expression_statement "local_58 = local_3c + -1;" (assignment_expression "local_58 = local_3c + -1" identifier = (binary_expression "local_3c + -1" identifier + number_literal)) ;) (do_statement "do {\n      while( true ) {\n        local_34 = (ushort **)(uint)*param_2;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        param_2 = param_2 + 1;\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }\n      if (local_3c != (undefined *)0x0) {\n        if (*param_2 == *(byte *)local_40) {\n          ppuVar11 = local_40;\n          pbVar5 = param_2;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < (int)param_3) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }\nLAB_0001d443:\n      if (local_50 != (ushort **)0x0) goto LAB_0001d756;\n      local_50 = local_48;\n      param_2 = param_2 + (int)(local_58 + 1);\n      puVar6 = puVar6 + (int)local_58 + 1;\n    } while (puVar6 < local_30);" do (compound_statement "{\n      while( true ) {\n        local_34 = (ushort **)(uint)*param_2;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        param_2 = param_2 + 1;\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }\n      if (local_3c != (undefined *)0x0) {\n        if (*param_2 == *(byte *)local_40) {\n          ppuVar11 = local_40;\n          pbVar5 = param_2;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < (int)param_3) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }\nLAB_0001d443:\n      if (local_50 != (ushort **)0x0) goto LAB_0001d756;\n      local_50 = local_48;\n      param_2 = param_2 + (int)(local_58 + 1);\n      puVar6 = puVar6 + (int)local_58 + 1;\n    }" { (while_statement "while( true ) {\n        local_34 = (ushort **)(uint)*param_2;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        param_2 = param_2 + 1;\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        local_34 = (ushort **)(uint)*param_2;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        param_2 = param_2 + 1;\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }" { (expression_statement "local_34 = (ushort **)(uint)*param_2;" (assignment_expression "local_34 = (ushort **)(uint)*param_2" identifier = (binary_expression "(ushort **)(uint)*param_2" (cast_expression "(ushort **)(uint)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (if_statement "if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;" if (parenthesized_expression "((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0)" ( (binary_expression "(*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20)" ( (binary_expression "*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20" (pointer_expression "*(byte *)((int)local_38 + (int)local_34 * 2 + 1)" * (cast_expression "(byte *)((int)local_38 + (int)local_34 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + (int)local_34 * 2 + 1)" ( (binary_expression "(int)local_38 + (int)local_34 * 2 + 1" (binary_expression "(int)local_38 + (int)local_34 * 2" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_34 * 2" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0001d3e0:\n        param_2 = param_2 + 1;" statement_identifier : (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;)) (expression_statement "puVar6 = puVar6 + 1;" (assignment_expression "puVar6 = puVar6 + 1" identifier = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) (if_statement "if (local_30 <= puVar6) goto LAB_0001d470;" if (parenthesized_expression "(local_30 <= puVar6)" ( (binary_expression "local_30 <= puVar6" identifier <= identifier) )) (goto_statement "goto LAB_0001d470;" goto statement_identifier ;)) })) (if_statement "if (local_3c != (undefined *)0x0) {\n        if (*param_2 == *(byte *)local_40) {\n          ppuVar11 = local_40;\n          pbVar5 = param_2;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < (int)param_3) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }" if (parenthesized_expression "(local_3c != (undefined *)0x0)" ( (binary_expression "local_3c != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (*param_2 == *(byte *)local_40) {\n          ppuVar11 = local_40;\n          pbVar5 = param_2;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < (int)param_3) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }" { (if_statement "if (*param_2 == *(byte *)local_40) {\n          ppuVar11 = local_40;\n          pbVar5 = param_2;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);\n        }" if (parenthesized_expression "(*param_2 == *(byte *)local_40)" ( (binary_expression "*param_2 == *(byte *)local_40" (pointer_expression "*param_2" * identifier) == (pointer_expression "*(byte *)local_40" * (cast_expression "(byte *)local_40" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n          ppuVar11 = local_40;\n          pbVar5 = param_2;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);\n        }" { (expression_statement "ppuVar11 = local_40;" (assignment_expression "ppuVar11 = local_40" identifier = identifier) ;) (expression_statement "pbVar5 = param_2;" (assignment_expression "pbVar5 = param_2" identifier = identifier) ;) (do_statement "do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);" do (compound_statement "{\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          }" { (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ;) (expression_statement "ppuVar11 = (ushort **)((int)ppuVar11 + 1);" (assignment_expression "ppuVar11 = (ushort **)((int)ppuVar11 + 1)" identifier = (cast_expression "(ushort **)((int)ppuVar11 + 1)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar11 + 1)" ( (binary_expression "(int)ppuVar11 + 1" (cast_expression "(int)ppuVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_4c = puVar6;" (assignment_expression "local_4c = puVar6" identifier = identifier) ;) (if_statement "if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;" if (parenthesized_expression "(pbVar5 == param_2 + (int)local_3c)" ( (binary_expression "pbVar5 == param_2 + (int)local_3c" identifier == (binary_expression "param_2 + (int)local_3c" identifier + (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier))) )) (goto_statement "goto LAB_0001d443;" goto statement_identifier ;)) }) while (parenthesized_expression "(*pbVar5 == *(byte *)ppuVar11)" ( (binary_expression "*pbVar5 == *(byte *)ppuVar11" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*(byte *)ppuVar11" * (cast_expression "(byte *)ppuVar11" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) ;) })) (if_statement "if ((int)(uint)(byte)local_54[(int)local_34] < (int)param_3) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }" if (parenthesized_expression "((int)(uint)(byte)local_54[(int)local_34] < (int)param_3)" ( (binary_expression "(int)(uint)(byte)local_54[(int)local_34] < (int)param_3" (cast_expression "(int)(uint)(byte)local_54[(int)local_34]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)(byte)local_54[(int)local_34]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_54[(int)local_34]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_54[(int)local_34]" identifier [ (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) ])))) < (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }" { (expression_statement "*(undefined *)local_48 = local_54[(int)local_34];" (assignment_expression "*(undefined *)local_48 = local_54[(int)local_34]" (pointer_expression "*(undefined *)local_48" * (cast_expression "(undefined *)local_48" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (subscript_expression "local_54[(int)local_34]" identifier [ (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) (expression_statement "local_48 = (ushort **)((int)local_48 + 1);" (assignment_expression "local_48 = (ushort **)((int)local_48 + 1)" identifier = (cast_expression "(ushort **)((int)local_48 + 1)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_48 + 1)" ( (binary_expression "(int)local_48 + 1" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (goto_statement "goto LAB_0001d3e0;" goto statement_identifier ;) })) (goto_statement "goto LAB_0001d756;" goto statement_identifier ;) })) (labeled_statement "LAB_0001d443:\n      if (local_50 != (ushort **)0x0) goto LAB_0001d756;" statement_identifier : (if_statement "if (local_50 != (ushort **)0x0) goto LAB_0001d756;" if (parenthesized_expression "(local_50 != (ushort **)0x0)" ( (binary_expression "local_50 != (ushort **)0x0" identifier != (cast_expression "(ushort **)0x0" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_0001d756;" goto statement_identifier ;))) (expression_statement "local_50 = local_48;" (assignment_expression "local_50 = local_48" identifier = identifier) ;) (expression_statement "param_2 = param_2 + (int)(local_58 + 1);" (assignment_expression "param_2 = param_2 + (int)(local_58 + 1)" identifier = (binary_expression "param_2 + (int)(local_58 + 1)" identifier + (cast_expression "(int)(local_58 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_58 + 1)" ( (binary_expression "local_58 + 1" identifier + number_literal) ))))) ;) (expression_statement "puVar6 = puVar6 + (int)local_58 + 1;" (assignment_expression "puVar6 = puVar6 + (int)local_58 + 1" identifier = (binary_expression "puVar6 + (int)local_58 + 1" (binary_expression "puVar6 + (int)local_58" identifier + (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal)) ;) }) while (parenthesized_expression "(puVar6 < local_30)" ( (binary_expression "puVar6 < local_30" identifier < identifier) )) ;) (labeled_statement "LAB_0001d470:\n    local_30 = (undefined *)((int)local_48 - (int)local_5c);" statement_identifier : (expression_statement "local_30 = (undefined *)((int)local_48 - (int)local_5c);" (assignment_expression "local_30 = (undefined *)((int)local_48 - (int)local_5c)" identifier = (cast_expression "(undefined *)((int)local_48 - (int)local_5c)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_48 - (int)local_5c)" ( (binary_expression "(int)local_48 - (int)local_5c" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "ppbVar15 = ppbVar14;" (assignment_expression "ppbVar15 = ppbVar14" identifier = identifier) ;) }) (else_clause "else {\n    bVar1 = param_2[(int)(puVar6 + -1)];\n    puVar17 = puVar6;\n    if (bVar1 == 0x40) {\nLAB_0001d729:\n      local_6c = param_2 + (int)puVar17;\n    }\n    else {\n      if ((int)param_3 < 0xb) {\n        do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);\n        goto LAB_0001d729;\n      }\n      puVar17 = local_30;\n      for (local_30 = puVar6 + -2; local_30 != (undefined *)0x0; local_30 = local_30 + -1) {\n        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;\n        puVar17 = local_30;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar17 = puVar6 + 1;\n      local_30 = puVar6;\n    }\n    local_24 = 0;\n    if ((undefined *)0x7f00 < puVar17) {\n      local_5c = (ushort **)__gmp_tmp_reentrant_alloc();\n      local_38 = (ushort **)*local_34;\n      goto LAB_0001d3c5;\n    }\n    iVar13 = -((uint)(puVar17 + 0x1b) & 0xfffffff0);\n    ppbVar14 = (byte **)((int)&local_6c + iVar13);\n    ppbVar15 = (byte **)((int)&local_6c + iVar13);\n    local_5c = (ushort **)((int)&local_60 + iVar13);\n    if (local_30 != (undefined *)0x0) goto LAB_0001d3c5;\n    local_50 = (ushort **)0x0;\n    local_48 = local_5c;\n  }" else (compound_statement "{\n    bVar1 = param_2[(int)(puVar6 + -1)];\n    puVar17 = puVar6;\n    if (bVar1 == 0x40) {\nLAB_0001d729:\n      local_6c = param_2 + (int)puVar17;\n    }\n    else {\n      if ((int)param_3 < 0xb) {\n        do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);\n        goto LAB_0001d729;\n      }\n      puVar17 = local_30;\n      for (local_30 = puVar6 + -2; local_30 != (undefined *)0x0; local_30 = local_30 + -1) {\n        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;\n        puVar17 = local_30;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar17 = puVar6 + 1;\n      local_30 = puVar6;\n    }\n    local_24 = 0;\n    if ((undefined *)0x7f00 < puVar17) {\n      local_5c = (ushort **)__gmp_tmp_reentrant_alloc();\n      local_38 = (ushort **)*local_34;\n      goto LAB_0001d3c5;\n    }\n    iVar13 = -((uint)(puVar17 + 0x1b) & 0xfffffff0);\n    ppbVar14 = (byte **)((int)&local_6c + iVar13);\n    ppbVar15 = (byte **)((int)&local_6c + iVar13);\n    local_5c = (ushort **)((int)&local_60 + iVar13);\n    if (local_30 != (undefined *)0x0) goto LAB_0001d3c5;\n    local_50 = (ushort **)0x0;\n    local_48 = local_5c;\n  }" { (expression_statement "bVar1 = param_2[(int)(puVar6 + -1)];" (assignment_expression "bVar1 = param_2[(int)(puVar6 + -1)]" identifier = (subscript_expression "param_2[(int)(puVar6 + -1)]" identifier [ (cast_expression "(int)(puVar6 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar6 + -1)" ( (binary_expression "puVar6 + -1" identifier + number_literal) ))) ])) ;) (expression_statement "puVar17 = puVar6;" (assignment_expression "puVar17 = puVar6" identifier = identifier) ;) (if_statement "if (bVar1 == 0x40) {\nLAB_0001d729:\n      local_6c = param_2 + (int)puVar17;\n    }\n    else {\n      if ((int)param_3 < 0xb) {\n        do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);\n        goto LAB_0001d729;\n      }\n      puVar17 = local_30;\n      for (local_30 = puVar6 + -2; local_30 != (undefined *)0x0; local_30 = local_30 + -1) {\n        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;\n        puVar17 = local_30;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar17 = puVar6 + 1;\n      local_30 = puVar6;\n    }" if (parenthesized_expression "(bVar1 == 0x40)" ( (binary_expression "bVar1 == 0x40" identifier == number_literal) )) (compound_statement "{\nLAB_0001d729:\n      local_6c = param_2 + (int)puVar17;\n    }" { (labeled_statement "LAB_0001d729:\n      local_6c = param_2 + (int)puVar17;" statement_identifier : (expression_statement "local_6c = param_2 + (int)puVar17;" (assignment_expression "local_6c = param_2 + (int)puVar17" identifier = (binary_expression "param_2 + (int)puVar17" identifier + (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) }) (else_clause "else {\n      if ((int)param_3 < 0xb) {\n        do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);\n        goto LAB_0001d729;\n      }\n      puVar17 = local_30;\n      for (local_30 = puVar6 + -2; local_30 != (undefined *)0x0; local_30 = local_30 + -1) {\n        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;\n        puVar17 = local_30;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar17 = puVar6 + 1;\n      local_30 = puVar6;\n    }" else (compound_statement "{\n      if ((int)param_3 < 0xb) {\n        do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);\n        goto LAB_0001d729;\n      }\n      puVar17 = local_30;\n      for (local_30 = puVar6 + -2; local_30 != (undefined *)0x0; local_30 = local_30 + -1) {\n        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;\n        puVar17 = local_30;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar17 = puVar6 + 1;\n      local_30 = puVar6;\n    }" { (if_statement "if ((int)param_3 < 0xb) {\n        do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);\n        goto LAB_0001d729;\n      }" if (parenthesized_expression "((int)param_3 < 0xb)" ( (binary_expression "(int)param_3 < 0xb" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);\n        goto LAB_0001d729;\n      }" { (do_statement "do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);" do (compound_statement "{\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        }" { (expression_statement "puVar9 = local_30;" (assignment_expression "puVar9 = local_30" identifier = identifier) ;) (if_statement "if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }" if (parenthesized_expression "((bVar1 & 0xdf) == 0x45)" ( (binary_expression "(bVar1 & 0xdf) == 0x45" (parenthesized_expression "(bVar1 & 0xdf)" ( (binary_expression "bVar1 & 0xdf" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }" { (expression_statement "puVar17 = puVar9 + 1;" (assignment_expression "puVar17 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (expression_statement "local_30 = puVar9;" (assignment_expression "local_30 = puVar9" identifier = identifier) ;) (break_statement "break;" break ;) })) (expression_statement "local_30 = puVar9 + -1;" (assignment_expression "local_30 = puVar9 + -1" identifier = (binary_expression "puVar9 + -1" identifier + number_literal)) ;) (if_statement "if (local_30 == (undefined *)0x0) goto LAB_0001d38c;" if (parenthesized_expression "(local_30 == (undefined *)0x0)" ( (binary_expression "local_30 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001d38c;" goto statement_identifier ;)) (expression_statement "bVar1 = param_2[(int)(puVar9 + -1)];" (assignment_expression "bVar1 = param_2[(int)(puVar9 + -1)]" identifier = (subscript_expression "param_2[(int)(puVar9 + -1)]" identifier [ (cast_expression "(int)(puVar9 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar9 + -1)" ( (binary_expression "puVar9 + -1" identifier + number_literal) ))) ])) ;) (expression_statement "puVar17 = puVar9;" (assignment_expression "puVar17 = puVar9" identifier = identifier) ;) }) while (parenthesized_expression "(bVar1 != 0x40)" ( (binary_expression "bVar1 != 0x40" identifier != number_literal) )) ;) (goto_statement "goto LAB_0001d729;" goto statement_identifier ;) })) (expression_statement "puVar17 = local_30;" (assignment_expression "puVar17 = local_30" identifier = identifier) ;) (for_statement "for (local_30 = puVar6 + -2; local_30 != (undefined *)0x0; local_30 = local_30 + -1) {\n        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;\n        puVar17 = local_30;\n      }" for ( (assignment_expression "local_30 = puVar6 + -2" identifier = (binary_expression "puVar6 + -2" identifier + number_literal)) ; (binary_expression "local_30 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "local_30 = local_30 + -1" identifier = (binary_expression "local_30 + -1" identifier + number_literal)) ) (compound_statement "{\n        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;\n        puVar17 = local_30;\n      }" { (if_statement "if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;" if (parenthesized_expression "(param_2[(int)(puVar17 + -1)] == 0x40)" ( (binary_expression "param_2[(int)(puVar17 + -1)] == 0x40" (subscript_expression "param_2[(int)(puVar17 + -1)]" identifier [ (cast_expression "(int)(puVar17 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar17 + -1)" ( (binary_expression "puVar17 + -1" identifier + number_literal) ))) ]) == number_literal) )) (goto_statement "goto LAB_0001d729;" goto statement_identifier ;)) (expression_statement "puVar17 = local_30;" (assignment_expression "puVar17 = local_30" identifier = identifier) ;) })) (labeled_statement "LAB_0001d38c:\n      local_6c = (byte *)0x0;" statement_identifier : (expression_statement "local_6c = (byte *)0x0;" (assignment_expression "local_6c = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "puVar17 = puVar6 + 1;" (assignment_expression "puVar17 = puVar6 + 1" identifier = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) (expression_statement "local_30 = puVar6;" (assignment_expression "local_30 = puVar6" identifier = identifier) ;) }))) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (if_statement "if ((undefined *)0x7f00 < puVar17) {\n      local_5c = (ushort **)__gmp_tmp_reentrant_alloc();\n      local_38 = (ushort **)*local_34;\n      goto LAB_0001d3c5;\n    }" if (parenthesized_expression "((undefined *)0x7f00 < puVar17)" ( (binary_expression "(undefined *)0x7f00 < puVar17" (cast_expression "(undefined *)0x7f00" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n      local_5c = (ushort **)__gmp_tmp_reentrant_alloc();\n      local_38 = (ushort **)*local_34;\n      goto LAB_0001d3c5;\n    }" { (expression_statement "local_5c = (ushort **)__gmp_tmp_reentrant_alloc();" (assignment_expression "local_5c = (ushort **)__gmp_tmp_reentrant_alloc()" identifier = (cast_expression "(ushort **)__gmp_tmp_reentrant_alloc()" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "__gmp_tmp_reentrant_alloc()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_38 = (ushort **)*local_34;" (assignment_expression "local_38 = (ushort **)*local_34" identifier = (cast_expression "(ushort **)*local_34" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*local_34" * identifier))) ;) (goto_statement "goto LAB_0001d3c5;" goto statement_identifier ;) })) (expression_statement "iVar13 = -((uint)(puVar17 + 0x1b) & 0xfffffff0);" (assignment_expression "iVar13 = -((uint)(puVar17 + 0x1b) & 0xfffffff0)" identifier = (unary_expression "-((uint)(puVar17 + 0x1b) & 0xfffffff0)" - (parenthesized_expression "((uint)(puVar17 + 0x1b) & 0xfffffff0)" ( (binary_expression "(uint)(puVar17 + 0x1b) & 0xfffffff0" (call_expression "(uint)(puVar17 + 0x1b)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar17 + 0x1b)" ( (binary_expression "puVar17 + 0x1b" identifier + number_literal) ))) & number_literal) )))) ;) (expression_statement "ppbVar14 = (byte **)((int)&local_6c + iVar13);" (assignment_expression "ppbVar14 = (byte **)((int)&local_6c + iVar13)" identifier = (cast_expression "(byte **)((int)&local_6c + iVar13)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&local_6c + iVar13)" ( (binary_expression "(int)&local_6c + iVar13" (cast_expression "(int)&local_6c" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_6c" & identifier)) + identifier) )))) ;) (expression_statement "ppbVar15 = (byte **)((int)&local_6c + iVar13);" (assignment_expression "ppbVar15 = (byte **)((int)&local_6c + iVar13)" identifier = (cast_expression "(byte **)((int)&local_6c + iVar13)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&local_6c + iVar13)" ( (binary_expression "(int)&local_6c + iVar13" (cast_expression "(int)&local_6c" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_6c" & identifier)) + identifier) )))) ;) (expression_statement "local_5c = (ushort **)((int)&local_60 + iVar13);" (assignment_expression "local_5c = (ushort **)((int)&local_60 + iVar13)" identifier = (cast_expression "(ushort **)((int)&local_60 + iVar13)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&local_60 + iVar13)" ( (binary_expression "(int)&local_60 + iVar13" (cast_expression "(int)&local_60" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_60" & identifier)) + identifier) )))) ;) (if_statement "if (local_30 != (undefined *)0x0) goto LAB_0001d3c5;" if (parenthesized_expression "(local_30 != (undefined *)0x0)" ( (binary_expression "local_30 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001d3c5;" goto statement_identifier ;)) (expression_statement "local_50 = (ushort **)0x0;" (assignment_expression "local_50 = (ushort **)0x0" identifier = (cast_expression "(ushort **)0x0" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "local_48 = local_5c;" (assignment_expression "local_48 = local_5c" identifier = identifier) ;) }))) (expression_statement "ppuVar11 = (ushort **)*local_60;" (assignment_expression "ppuVar11 = (ushort **)*local_60" identifier = (cast_expression "(ushort **)*local_60" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*local_60" * identifier))) ;) (expression_statement "uVar12 = (uint)((ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8) * ZEXT48(local_30)\n                 >> 0x20) & 0x1ffffffc;" (assignment_expression "uVar12 = (uint)((ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8) * ZEXT48(local_30)\n                 >> 0x20) & 0x1ffffffc" identifier = (binary_expression "(uint)((ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8) * ZEXT48(local_30)\n                 >> 0x20) & 0x1ffffffc" (call_expression "(uint)((ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8) * ZEXT48(local_30)\n                 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8) * ZEXT48(local_30)\n                 >> 0x20)" ( (binary_expression "(ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8) * ZEXT48(local_30)\n                 >> 0x20" (binary_expression "(ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8) * ZEXT48(local_30)" (binary_expression "(ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_44[-0x56] + (int)param_3 * 0x14 + 8)" ( (binary_expression "local_44[-0x56] + (int)param_3 * 0x14 + 8" (binary_expression "local_44[-0x56] + (int)param_3 * 0x14" (subscript_expression "local_44[-0x56]" identifier [ number_literal ]) + (binary_expression "(int)param_3 * 0x14" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) * (call_expression "ZEXT48(local_30)" identifier (argument_list "(local_30)" ( identifier )))) >> number_literal) ))) & number_literal)) ;) (expression_statement "uVar16 = uVar12 + 8;" (assignment_expression "uVar16 = uVar12 + 8" identifier = (binary_expression "uVar12 + 8" identifier + number_literal)) ;) (if_statement "if (uVar16 < 0x7f01) {\n    iVar13 = -(uVar12 + 0x23 & 0xfffffff0);\n    local_40 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n    ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n  }\n  else {\n    *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n    *(int **)((int)ppbVar15 + -0x10) = &local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dabe;\n    local_40 = (ushort **)__gmp_tmp_reentrant_alloc();\n  }" if (parenthesized_expression "(uVar16 < 0x7f01)" ( (binary_expression "uVar16 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n    iVar13 = -(uVar12 + 0x23 & 0xfffffff0);\n    local_40 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n    ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n  }" { (expression_statement "iVar13 = -(uVar12 + 0x23 & 0xfffffff0);" (assignment_expression "iVar13 = -(uVar12 + 0x23 & 0xfffffff0)" identifier = (unary_expression "-(uVar12 + 0x23 & 0xfffffff0)" - (parenthesized_expression "(uVar12 + 0x23 & 0xfffffff0)" ( (binary_expression "uVar12 + 0x23 & 0xfffffff0" (binary_expression "uVar12 + 0x23" identifier + number_literal) & number_literal) )))) ;) (expression_statement "local_40 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);" (assignment_expression "local_40 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0)" identifier = (cast_expression "(ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0)" ( (binary_expression "(uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0" (call_expression "(uint)((int)ppbVar15 + iVar13 + 0xf)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppbVar15 + iVar13 + 0xf)" ( (binary_expression "(int)ppbVar15 + iVar13 + 0xf" (binary_expression "(int)ppbVar15 + iVar13" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))) & number_literal) )))) ;) (expression_statement "ppbVar15 = (byte **)((int)ppbVar15 + iVar13);" (assignment_expression "ppbVar15 = (byte **)((int)ppbVar15 + iVar13)" identifier = (cast_expression "(byte **)((int)ppbVar15 + iVar13)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + iVar13)" ( (binary_expression "(int)ppbVar15 + iVar13" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n    *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n    *(int **)((int)ppbVar15 + -0x10) = &local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dabe;\n    local_40 = (ushort **)__gmp_tmp_reentrant_alloc();\n  }" else (compound_statement "{\n    *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n    *(int **)((int)ppbVar15 + -0x10) = &local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dabe;\n    local_40 = (ushort **)__gmp_tmp_reentrant_alloc();\n  }" { (expression_statement "*(uint *)((int)ppbVar15 + -0xc) = uVar16;" (assignment_expression "*(uint *)((int)ppbVar15 + -0xc) = uVar16" (pointer_expression "*(uint *)((int)ppbVar15 + -0xc)" * (cast_expression "(uint *)((int)ppbVar15 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)ppbVar15 + -0x10) = &local_24;" (assignment_expression "*(int **)((int)ppbVar15 + -0x10) = &local_24" (pointer_expression "*(int **)((int)ppbVar15 + -0x10)" * (cast_expression "(int **)((int)ppbVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_24" & identifier)) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dabe;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dabe" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_40 = (ushort **)__gmp_tmp_reentrant_alloc();" (assignment_expression "local_40 = (ushort **)__gmp_tmp_reentrant_alloc()" identifier = (cast_expression "(ushort **)__gmp_tmp_reentrant_alloc()" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "__gmp_tmp_reentrant_alloc()" identifier (argument_list "()" ( ))))) ;) }))) (expression_statement "*(ushort **)((int)ppbVar15 + -4) = param_3;" (assignment_expression "*(ushort **)((int)ppbVar15 + -4) = param_3" (pointer_expression "*(ushort **)((int)ppbVar15 + -4)" * (cast_expression "(ushort **)((int)ppbVar15 + -4)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -4)" ( (binary_expression "(int)ppbVar15 + -4" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar15 + -8) = local_30;" (assignment_expression "*(undefined **)((int)ppbVar15 + -8) = local_30" (pointer_expression "*(undefined **)((int)ppbVar15 + -8)" * (cast_expression "(undefined **)((int)ppbVar15 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -8)" ( (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0xc) = local_5c;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0xc) = local_5c" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0xc)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0xc)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x10) = local_40;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x10) = local_40" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x10)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0x10)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d4cf;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d4cf" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "puVar6 = (undefined *)__gmpn_set_str();" (assignment_expression "puVar6 = (undefined *)__gmpn_set_str()" identifier = (cast_expression "(undefined *)__gmpn_set_str()" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__gmpn_set_str()" identifier (argument_list "()" ( ))))) ;) (expression_statement "ppuVar4 = local_44;" (assignment_expression "ppuVar4 = local_44" identifier = identifier) ;) (expression_statement "puVar3 = local_60;" (assignment_expression "puVar3 = local_60" identifier = identifier) ;) (if_statement "if (puVar6 == (undefined *)0x0) {\n    local_60[1] = 0;\n    local_60[2] = 0;\n    if (local_24 != 0) {\n      local_30 = puVar6;\n      *(int *)((int)ppbVar15 + -0x10) = local_24;\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dadb;\n      __gmp_tmp_reentrant_free();\n      puVar6 = local_30;\n      goto LAB_0001d775;\n    }\nLAB_0001d7d0:\n    puVar6 = (undefined *)0x0;\n  }\n  else {\n    local_3c = (undefined *)((int)ppuVar11 + 1);\n    if ((int)local_3c < (int)puVar6) {\n      local_5c = (ushort **)(puVar6 + -(int)local_3c);\n      local_40 = local_40 + (int)local_5c;\n      local_58 = local_3c;\n      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;\nLAB_0001d4fd:\n      bVar1 = *local_6c;\n      local_30 = (undefined *)(uint)(bVar1 == 0x2d);\n      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);\n      uVar16 = (uint)(byte)local_54[*pbVar5];\n      ppbVar14 = ppbVar15;\n      if ((int)local_68 <= (int)uVar16) {\nLAB_0001d756:\n        ppbVar15 = ppbVar14;\n        if (local_24 != 0) {\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }\n        goto LAB_0001d770;\n      }\n      bVar1 = local_54[pbVar5[1]];\n      local_34 = (ushort **)(pbVar5 + 2);\n      ppuVar10 = (ushort **)(pbVar5 + 2);\n      while ((int)(uint)bVar1 < (int)local_68) {\n        uVar16 = uVar16 * (int)local_68 + (uint)bVar1;\n        bVar1 = local_54[*(byte *)ppuVar10];\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar10 = (ushort **)((int)ppuVar10 + 1);\n        local_38 = ppuVar11;\n      }\n      local_54 = local_30 + (uVar16 ^ (uint)-(int)local_30);\n      if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }\n      if (local_54 == (undefined *)0x0) goto LAB_0001d804;\n      local_68 = (ushort *)((int)ppuVar11 + 2);\n      uVar16 = (int)local_68 * 8;\n      if (uVar16 < 0x7f01) {\n        uVar16 = uVar16 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);\n        ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);\n        ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;\n        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;\n        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();\n      }\n      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));\n      *local_50 = param_3;\n      uVar16 = 0x1f;\n      if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n        }\n      }\n      uVar16 = 0x1e - (uVar16 ^ 0x1f);\n      if (uVar16 == 0xffffffff) {\n        iVar13 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar10 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar7 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }\n      puVar17 = local_4c;\n      if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }\n      *(undefined **)((int)ppbVar15 + -8) = puVar6;\n      *(int *)((int)ppbVar15 + -0xc) = (int)ppuVar10 + iVar13;\n      *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d87c;\n      (*pcVar2)();\n      if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }\n        ppuVar11 = local_50;\n        puVar8 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar8) {\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }\n        local_34 = (ushort **)((int)local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }\n        puVar17 = local_58;\n        *(undefined **)((int)ppbVar15 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar15 + -0x14) = puVar17;\n        puVar9 = local_3c;\n        ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar15 + -0x18) = local_40;\n        local_38 = ppuVar11;\n        *(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;\n        *(uint *)((int)ppbVar15 + -0x20) = uVar16;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;\n        iVar13 = __gmpn_divrem();\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));\n        uVar12 = uVar16;\n        puVar17 = local_3c;\n        if (iVar13 != 0) {\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }\n      }\n      else {\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        local_38 = (ushort **)((int)local_34 * 4);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }\n        *(uint *)((int)ppbVar15 + -0x20) = uVar12;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;\n        __gmpn_mul();\n        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));\n        if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }\n      }\n      local_3c = puVar17;\n      puVar9 = local_3c;\n      puVar3 = local_60;\n      *(undefined **)((int)ppbVar15 + -8) = local_3c;\n      *(uint *)((int)ppbVar15 + -0xc) = uVar12;\n      puVar17 = local_4c;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d91c;\n      (*pcVar2)();\n      puVar17 = (undefined *)-(int)puVar9;\n      if (local_64 == 0) {\n        puVar17 = puVar9;\n      }\n      local_60[2] = (uint)puVar6;\n      local_60[1] = (uint)puVar17;\n      if (local_24 == 0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }\n    }\n    else {\n      local_5c = (ushort **)0x0;\n      local_58 = puVar6;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar17 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar15 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar17;\n      if (local_64 == 0) {\n        puVar6 = puVar17;\n      }\n      puVar3[2] = (uint)local_30;\n      puVar3[1] = (uint)puVar6;\n      if (local_24 == 0) goto LAB_0001d7d0;\n    }\n    *(int *)((int)ppbVar15 + -0x10) = local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d84e;\n    __gmp_tmp_reentrant_free();\n    puVar6 = (undefined *)0x0;\n  }" if (parenthesized_expression "(puVar6 == (undefined *)0x0)" ( (binary_expression "puVar6 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_60[1] = 0;\n    local_60[2] = 0;\n    if (local_24 != 0) {\n      local_30 = puVar6;\n      *(int *)((int)ppbVar15 + -0x10) = local_24;\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dadb;\n      __gmp_tmp_reentrant_free();\n      puVar6 = local_30;\n      goto LAB_0001d775;\n    }\nLAB_0001d7d0:\n    puVar6 = (undefined *)0x0;\n  }" { (expression_statement "local_60[1] = 0;" (assignment_expression "local_60[1] = 0" (subscript_expression "local_60[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_60[2] = 0;" (assignment_expression "local_60[2] = 0" (subscript_expression "local_60[2]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (local_24 != 0) {\n      local_30 = puVar6;\n      *(int *)((int)ppbVar15 + -0x10) = local_24;\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dadb;\n      __gmp_tmp_reentrant_free();\n      puVar6 = local_30;\n      goto LAB_0001d775;\n    }" if (parenthesized_expression "(local_24 != 0)" ( (binary_expression "local_24 != 0" identifier != number_literal) )) (compound_statement "{\n      local_30 = puVar6;\n      *(int *)((int)ppbVar15 + -0x10) = local_24;\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dadb;\n      __gmp_tmp_reentrant_free();\n      puVar6 = local_30;\n      goto LAB_0001d775;\n    }" { (expression_statement "local_30 = puVar6;" (assignment_expression "local_30 = puVar6" identifier = identifier) ;) (expression_statement "*(int *)((int)ppbVar15 + -0x10) = local_24;" (assignment_expression "*(int *)((int)ppbVar15 + -0x10) = local_24" (pointer_expression "*(int *)((int)ppbVar15 + -0x10)" * (cast_expression "(int *)((int)ppbVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dadb;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dadb" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "__gmp_tmp_reentrant_free();" (call_expression "__gmp_tmp_reentrant_free()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar6 = local_30;" (assignment_expression "puVar6 = local_30" identifier = identifier) ;) (goto_statement "goto LAB_0001d775;" goto statement_identifier ;) })) (labeled_statement "LAB_0001d7d0:\n    puVar6 = (undefined *)0x0;" statement_identifier : (expression_statement "puVar6 = (undefined *)0x0;" (assignment_expression "puVar6 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }) (else_clause "else {\n    local_3c = (undefined *)((int)ppuVar11 + 1);\n    if ((int)local_3c < (int)puVar6) {\n      local_5c = (ushort **)(puVar6 + -(int)local_3c);\n      local_40 = local_40 + (int)local_5c;\n      local_58 = local_3c;\n      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;\nLAB_0001d4fd:\n      bVar1 = *local_6c;\n      local_30 = (undefined *)(uint)(bVar1 == 0x2d);\n      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);\n      uVar16 = (uint)(byte)local_54[*pbVar5];\n      ppbVar14 = ppbVar15;\n      if ((int)local_68 <= (int)uVar16) {\nLAB_0001d756:\n        ppbVar15 = ppbVar14;\n        if (local_24 != 0) {\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }\n        goto LAB_0001d770;\n      }\n      bVar1 = local_54[pbVar5[1]];\n      local_34 = (ushort **)(pbVar5 + 2);\n      ppuVar10 = (ushort **)(pbVar5 + 2);\n      while ((int)(uint)bVar1 < (int)local_68) {\n        uVar16 = uVar16 * (int)local_68 + (uint)bVar1;\n        bVar1 = local_54[*(byte *)ppuVar10];\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar10 = (ushort **)((int)ppuVar10 + 1);\n        local_38 = ppuVar11;\n      }\n      local_54 = local_30 + (uVar16 ^ (uint)-(int)local_30);\n      if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }\n      if (local_54 == (undefined *)0x0) goto LAB_0001d804;\n      local_68 = (ushort *)((int)ppuVar11 + 2);\n      uVar16 = (int)local_68 * 8;\n      if (uVar16 < 0x7f01) {\n        uVar16 = uVar16 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);\n        ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);\n        ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;\n        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;\n        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();\n      }\n      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));\n      *local_50 = param_3;\n      uVar16 = 0x1f;\n      if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n        }\n      }\n      uVar16 = 0x1e - (uVar16 ^ 0x1f);\n      if (uVar16 == 0xffffffff) {\n        iVar13 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar10 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar7 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }\n      puVar17 = local_4c;\n      if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }\n      *(undefined **)((int)ppbVar15 + -8) = puVar6;\n      *(int *)((int)ppbVar15 + -0xc) = (int)ppuVar10 + iVar13;\n      *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d87c;\n      (*pcVar2)();\n      if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }\n        ppuVar11 = local_50;\n        puVar8 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar8) {\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }\n        local_34 = (ushort **)((int)local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }\n        puVar17 = local_58;\n        *(undefined **)((int)ppbVar15 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar15 + -0x14) = puVar17;\n        puVar9 = local_3c;\n        ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar15 + -0x18) = local_40;\n        local_38 = ppuVar11;\n        *(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;\n        *(uint *)((int)ppbVar15 + -0x20) = uVar16;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;\n        iVar13 = __gmpn_divrem();\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));\n        uVar12 = uVar16;\n        puVar17 = local_3c;\n        if (iVar13 != 0) {\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }\n      }\n      else {\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        local_38 = (ushort **)((int)local_34 * 4);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }\n        *(uint *)((int)ppbVar15 + -0x20) = uVar12;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;\n        __gmpn_mul();\n        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));\n        if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }\n      }\n      local_3c = puVar17;\n      puVar9 = local_3c;\n      puVar3 = local_60;\n      *(undefined **)((int)ppbVar15 + -8) = local_3c;\n      *(uint *)((int)ppbVar15 + -0xc) = uVar12;\n      puVar17 = local_4c;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d91c;\n      (*pcVar2)();\n      puVar17 = (undefined *)-(int)puVar9;\n      if (local_64 == 0) {\n        puVar17 = puVar9;\n      }\n      local_60[2] = (uint)puVar6;\n      local_60[1] = (uint)puVar17;\n      if (local_24 == 0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }\n    }\n    else {\n      local_5c = (ushort **)0x0;\n      local_58 = puVar6;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar17 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar15 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar17;\n      if (local_64 == 0) {\n        puVar6 = puVar17;\n      }\n      puVar3[2] = (uint)local_30;\n      puVar3[1] = (uint)puVar6;\n      if (local_24 == 0) goto LAB_0001d7d0;\n    }\n    *(int *)((int)ppbVar15 + -0x10) = local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d84e;\n    __gmp_tmp_reentrant_free();\n    puVar6 = (undefined *)0x0;\n  }" else (compound_statement "{\n    local_3c = (undefined *)((int)ppuVar11 + 1);\n    if ((int)local_3c < (int)puVar6) {\n      local_5c = (ushort **)(puVar6 + -(int)local_3c);\n      local_40 = local_40 + (int)local_5c;\n      local_58 = local_3c;\n      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;\nLAB_0001d4fd:\n      bVar1 = *local_6c;\n      local_30 = (undefined *)(uint)(bVar1 == 0x2d);\n      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);\n      uVar16 = (uint)(byte)local_54[*pbVar5];\n      ppbVar14 = ppbVar15;\n      if ((int)local_68 <= (int)uVar16) {\nLAB_0001d756:\n        ppbVar15 = ppbVar14;\n        if (local_24 != 0) {\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }\n        goto LAB_0001d770;\n      }\n      bVar1 = local_54[pbVar5[1]];\n      local_34 = (ushort **)(pbVar5 + 2);\n      ppuVar10 = (ushort **)(pbVar5 + 2);\n      while ((int)(uint)bVar1 < (int)local_68) {\n        uVar16 = uVar16 * (int)local_68 + (uint)bVar1;\n        bVar1 = local_54[*(byte *)ppuVar10];\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar10 = (ushort **)((int)ppuVar10 + 1);\n        local_38 = ppuVar11;\n      }\n      local_54 = local_30 + (uVar16 ^ (uint)-(int)local_30);\n      if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }\n      if (local_54 == (undefined *)0x0) goto LAB_0001d804;\n      local_68 = (ushort *)((int)ppuVar11 + 2);\n      uVar16 = (int)local_68 * 8;\n      if (uVar16 < 0x7f01) {\n        uVar16 = uVar16 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);\n        ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);\n        ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;\n        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;\n        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();\n      }\n      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));\n      *local_50 = param_3;\n      uVar16 = 0x1f;\n      if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n        }\n      }\n      uVar16 = 0x1e - (uVar16 ^ 0x1f);\n      if (uVar16 == 0xffffffff) {\n        iVar13 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar10 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar7 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }\n      puVar17 = local_4c;\n      if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }\n      *(undefined **)((int)ppbVar15 + -8) = puVar6;\n      *(int *)((int)ppbVar15 + -0xc) = (int)ppuVar10 + iVar13;\n      *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d87c;\n      (*pcVar2)();\n      if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }\n        ppuVar11 = local_50;\n        puVar8 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar8) {\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }\n        local_34 = (ushort **)((int)local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }\n        puVar17 = local_58;\n        *(undefined **)((int)ppbVar15 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar15 + -0x14) = puVar17;\n        puVar9 = local_3c;\n        ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar15 + -0x18) = local_40;\n        local_38 = ppuVar11;\n        *(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;\n        *(uint *)((int)ppbVar15 + -0x20) = uVar16;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;\n        iVar13 = __gmpn_divrem();\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));\n        uVar12 = uVar16;\n        puVar17 = local_3c;\n        if (iVar13 != 0) {\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }\n      }\n      else {\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        local_38 = (ushort **)((int)local_34 * 4);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }\n        *(uint *)((int)ppbVar15 + -0x20) = uVar12;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;\n        __gmpn_mul();\n        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));\n        if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }\n      }\n      local_3c = puVar17;\n      puVar9 = local_3c;\n      puVar3 = local_60;\n      *(undefined **)((int)ppbVar15 + -8) = local_3c;\n      *(uint *)((int)ppbVar15 + -0xc) = uVar12;\n      puVar17 = local_4c;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d91c;\n      (*pcVar2)();\n      puVar17 = (undefined *)-(int)puVar9;\n      if (local_64 == 0) {\n        puVar17 = puVar9;\n      }\n      local_60[2] = (uint)puVar6;\n      local_60[1] = (uint)puVar17;\n      if (local_24 == 0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }\n    }\n    else {\n      local_5c = (ushort **)0x0;\n      local_58 = puVar6;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar17 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar15 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar17;\n      if (local_64 == 0) {\n        puVar6 = puVar17;\n      }\n      puVar3[2] = (uint)local_30;\n      puVar3[1] = (uint)puVar6;\n      if (local_24 == 0) goto LAB_0001d7d0;\n    }\n    *(int *)((int)ppbVar15 + -0x10) = local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d84e;\n    __gmp_tmp_reentrant_free();\n    puVar6 = (undefined *)0x0;\n  }" { (expression_statement "local_3c = (undefined *)((int)ppuVar11 + 1);" (assignment_expression "local_3c = (undefined *)((int)ppuVar11 + 1)" identifier = (cast_expression "(undefined *)((int)ppuVar11 + 1)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar11 + 1)" ( (binary_expression "(int)ppuVar11 + 1" (cast_expression "(int)ppuVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((int)local_3c < (int)puVar6) {\n      local_5c = (ushort **)(puVar6 + -(int)local_3c);\n      local_40 = local_40 + (int)local_5c;\n      local_58 = local_3c;\n      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;\nLAB_0001d4fd:\n      bVar1 = *local_6c;\n      local_30 = (undefined *)(uint)(bVar1 == 0x2d);\n      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);\n      uVar16 = (uint)(byte)local_54[*pbVar5];\n      ppbVar14 = ppbVar15;\n      if ((int)local_68 <= (int)uVar16) {\nLAB_0001d756:\n        ppbVar15 = ppbVar14;\n        if (local_24 != 0) {\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }\n        goto LAB_0001d770;\n      }\n      bVar1 = local_54[pbVar5[1]];\n      local_34 = (ushort **)(pbVar5 + 2);\n      ppuVar10 = (ushort **)(pbVar5 + 2);\n      while ((int)(uint)bVar1 < (int)local_68) {\n        uVar16 = uVar16 * (int)local_68 + (uint)bVar1;\n        bVar1 = local_54[*(byte *)ppuVar10];\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar10 = (ushort **)((int)ppuVar10 + 1);\n        local_38 = ppuVar11;\n      }\n      local_54 = local_30 + (uVar16 ^ (uint)-(int)local_30);\n      if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }\n      if (local_54 == (undefined *)0x0) goto LAB_0001d804;\n      local_68 = (ushort *)((int)ppuVar11 + 2);\n      uVar16 = (int)local_68 * 8;\n      if (uVar16 < 0x7f01) {\n        uVar16 = uVar16 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);\n        ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);\n        ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;\n        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;\n        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();\n      }\n      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));\n      *local_50 = param_3;\n      uVar16 = 0x1f;\n      if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n        }\n      }\n      uVar16 = 0x1e - (uVar16 ^ 0x1f);\n      if (uVar16 == 0xffffffff) {\n        iVar13 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar10 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar7 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }\n      puVar17 = local_4c;\n      if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }\n      *(undefined **)((int)ppbVar15 + -8) = puVar6;\n      *(int *)((int)ppbVar15 + -0xc) = (int)ppuVar10 + iVar13;\n      *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d87c;\n      (*pcVar2)();\n      if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }\n        ppuVar11 = local_50;\n        puVar8 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar8) {\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }\n        local_34 = (ushort **)((int)local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }\n        puVar17 = local_58;\n        *(undefined **)((int)ppbVar15 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar15 + -0x14) = puVar17;\n        puVar9 = local_3c;\n        ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar15 + -0x18) = local_40;\n        local_38 = ppuVar11;\n        *(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;\n        *(uint *)((int)ppbVar15 + -0x20) = uVar16;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;\n        iVar13 = __gmpn_divrem();\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));\n        uVar12 = uVar16;\n        puVar17 = local_3c;\n        if (iVar13 != 0) {\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }\n      }\n      else {\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        local_38 = (ushort **)((int)local_34 * 4);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }\n        *(uint *)((int)ppbVar15 + -0x20) = uVar12;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;\n        __gmpn_mul();\n        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));\n        if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }\n      }\n      local_3c = puVar17;\n      puVar9 = local_3c;\n      puVar3 = local_60;\n      *(undefined **)((int)ppbVar15 + -8) = local_3c;\n      *(uint *)((int)ppbVar15 + -0xc) = uVar12;\n      puVar17 = local_4c;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d91c;\n      (*pcVar2)();\n      puVar17 = (undefined *)-(int)puVar9;\n      if (local_64 == 0) {\n        puVar17 = puVar9;\n      }\n      local_60[2] = (uint)puVar6;\n      local_60[1] = (uint)puVar17;\n      if (local_24 == 0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }\n    }\n    else {\n      local_5c = (ushort **)0x0;\n      local_58 = puVar6;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar17 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar15 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar17;\n      if (local_64 == 0) {\n        puVar6 = puVar17;\n      }\n      puVar3[2] = (uint)local_30;\n      puVar3[1] = (uint)puVar6;\n      if (local_24 == 0) goto LAB_0001d7d0;\n    }" if (parenthesized_expression "((int)local_3c < (int)puVar6)" ( (binary_expression "(int)local_3c < (int)puVar6" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      local_5c = (ushort **)(puVar6 + -(int)local_3c);\n      local_40 = local_40 + (int)local_5c;\n      local_58 = local_3c;\n      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;\nLAB_0001d4fd:\n      bVar1 = *local_6c;\n      local_30 = (undefined *)(uint)(bVar1 == 0x2d);\n      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);\n      uVar16 = (uint)(byte)local_54[*pbVar5];\n      ppbVar14 = ppbVar15;\n      if ((int)local_68 <= (int)uVar16) {\nLAB_0001d756:\n        ppbVar15 = ppbVar14;\n        if (local_24 != 0) {\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }\n        goto LAB_0001d770;\n      }\n      bVar1 = local_54[pbVar5[1]];\n      local_34 = (ushort **)(pbVar5 + 2);\n      ppuVar10 = (ushort **)(pbVar5 + 2);\n      while ((int)(uint)bVar1 < (int)local_68) {\n        uVar16 = uVar16 * (int)local_68 + (uint)bVar1;\n        bVar1 = local_54[*(byte *)ppuVar10];\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar10 = (ushort **)((int)ppuVar10 + 1);\n        local_38 = ppuVar11;\n      }\n      local_54 = local_30 + (uVar16 ^ (uint)-(int)local_30);\n      if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }\n      if (local_54 == (undefined *)0x0) goto LAB_0001d804;\n      local_68 = (ushort *)((int)ppuVar11 + 2);\n      uVar16 = (int)local_68 * 8;\n      if (uVar16 < 0x7f01) {\n        uVar16 = uVar16 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);\n        ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);\n        ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;\n        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;\n        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();\n      }\n      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));\n      *local_50 = param_3;\n      uVar16 = 0x1f;\n      if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n        }\n      }\n      uVar16 = 0x1e - (uVar16 ^ 0x1f);\n      if (uVar16 == 0xffffffff) {\n        iVar13 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar10 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar7 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }\n      puVar17 = local_4c;\n      if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }\n      *(undefined **)((int)ppbVar15 + -8) = puVar6;\n      *(int *)((int)ppbVar15 + -0xc) = (int)ppuVar10 + iVar13;\n      *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d87c;\n      (*pcVar2)();\n      if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }\n        ppuVar11 = local_50;\n        puVar8 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar8) {\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }\n        local_34 = (ushort **)((int)local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }\n        puVar17 = local_58;\n        *(undefined **)((int)ppbVar15 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar15 + -0x14) = puVar17;\n        puVar9 = local_3c;\n        ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar15 + -0x18) = local_40;\n        local_38 = ppuVar11;\n        *(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;\n        *(uint *)((int)ppbVar15 + -0x20) = uVar16;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;\n        iVar13 = __gmpn_divrem();\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));\n        uVar12 = uVar16;\n        puVar17 = local_3c;\n        if (iVar13 != 0) {\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }\n      }\n      else {\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        local_38 = (ushort **)((int)local_34 * 4);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }\n        *(uint *)((int)ppbVar15 + -0x20) = uVar12;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;\n        __gmpn_mul();\n        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));\n        if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }\n      }\n      local_3c = puVar17;\n      puVar9 = local_3c;\n      puVar3 = local_60;\n      *(undefined **)((int)ppbVar15 + -8) = local_3c;\n      *(uint *)((int)ppbVar15 + -0xc) = uVar12;\n      puVar17 = local_4c;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d91c;\n      (*pcVar2)();\n      puVar17 = (undefined *)-(int)puVar9;\n      if (local_64 == 0) {\n        puVar17 = puVar9;\n      }\n      local_60[2] = (uint)puVar6;\n      local_60[1] = (uint)puVar17;\n      if (local_24 == 0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }\n    }" { (expression_statement "local_5c = (ushort **)(puVar6 + -(int)local_3c);" (assignment_expression "local_5c = (ushort **)(puVar6 + -(int)local_3c)" identifier = (cast_expression "(ushort **)(puVar6 + -(int)local_3c)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -(int)local_3c)" ( (binary_expression "puVar6 + -(int)local_3c" identifier + (unary_expression "-(int)local_3c" - (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) (expression_statement "local_40 = local_40 + (int)local_5c;" (assignment_expression "local_40 = local_40 + (int)local_5c" identifier = (binary_expression "local_40 + (int)local_5c" identifier + (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_58 = local_3c;" (assignment_expression "local_58 = local_3c" identifier = identifier) ;) (if_statement "if (local_6c == (byte *)0x0) goto LAB_0001d7f2;" if (parenthesized_expression "(local_6c == (byte *)0x0)" ( (binary_expression "local_6c == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001d7f2;" goto statement_identifier ;)) (labeled_statement "LAB_0001d4fd:\n      bVar1 = *local_6c;" statement_identifier : (expression_statement "bVar1 = *local_6c;" (assignment_expression "bVar1 = *local_6c" identifier = (pointer_expression "*local_6c" * identifier)) ;)) (expression_statement "local_30 = (undefined *)(uint)(bVar1 == 0x2d);" (assignment_expression "local_30 = (undefined *)(uint)(bVar1 == 0x2d)" identifier = (cast_expression "(undefined *)(uint)(bVar1 == 0x2d)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(bVar1 == 0x2d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar1 == 0x2d)" ( (binary_expression "bVar1 == 0x2d" identifier == number_literal) ))))) ;) (expression_statement "pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);" (assignment_expression "pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d)" identifier = (binary_expression "local_6c + (bVar1 == 0x2b || bVar1 == 0x2d)" identifier + (parenthesized_expression "(bVar1 == 0x2b || bVar1 == 0x2d)" ( (binary_expression "bVar1 == 0x2b || bVar1 == 0x2d" (binary_expression "bVar1 == 0x2b" identifier == number_literal) || (binary_expression "bVar1 == 0x2d" identifier == number_literal)) )))) ;) (expression_statement "uVar16 = (uint)(byte)local_54[*pbVar5];" (assignment_expression "uVar16 = (uint)(byte)local_54[*pbVar5]" identifier = (cast_expression "(uint)(byte)local_54[*pbVar5]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_54[*pbVar5]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_54[*pbVar5]" identifier [ (pointer_expression "*pbVar5" * identifier) ])))) ;) (expression_statement "ppbVar14 = ppbVar15;" (assignment_expression "ppbVar14 = ppbVar15" identifier = identifier) ;) (if_statement "if ((int)local_68 <= (int)uVar16) {\nLAB_0001d756:\n        ppbVar15 = ppbVar14;\n        if (local_24 != 0) {\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }\n        goto LAB_0001d770;\n      }" if (parenthesized_expression "((int)local_68 <= (int)uVar16)" ( (binary_expression "(int)local_68 <= (int)uVar16" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\nLAB_0001d756:\n        ppbVar15 = ppbVar14;\n        if (local_24 != 0) {\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }\n        goto LAB_0001d770;\n      }" { (labeled_statement "LAB_0001d756:\n        ppbVar15 = ppbVar14;" statement_identifier : (expression_statement "ppbVar15 = ppbVar14;" (assignment_expression "ppbVar15 = ppbVar14" identifier = identifier) ;)) (if_statement "if (local_24 != 0) {\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }" if (parenthesized_expression "(local_24 != 0)" ( (binary_expression "local_24 != 0" identifier != number_literal) )) (compound_statement "{\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }" { (expression_statement "*(int *)((int)ppbVar14 + -0x10) = local_24;" (assignment_expression "*(int *)((int)ppbVar14 + -0x10) = local_24" (pointer_expression "*(int *)((int)ppbVar14 + -0x10)" * (cast_expression "(int *)((int)ppbVar14 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar14 + -0x10)" ( (binary_expression "(int)ppbVar14 + -0x10" (cast_expression "(int)ppbVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;" (assignment_expression "*(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769" (pointer_expression "*(undefined4 *)((int)ppbVar14 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar14 + -0x14)" ( (binary_expression "(int)ppbVar14 + -0x14" (cast_expression "(int)ppbVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "__gmp_tmp_reentrant_free();" (call_expression "__gmp_tmp_reentrant_free()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto LAB_0001d770;" goto statement_identifier ;) })) (expression_statement "bVar1 = local_54[pbVar5[1]];" (assignment_expression "bVar1 = local_54[pbVar5[1]]" identifier = (subscript_expression "local_54[pbVar5[1]]" identifier [ (subscript_expression "pbVar5[1]" identifier [ number_literal ]) ])) ;) (expression_statement "local_34 = (ushort **)(pbVar5 + 2);" (assignment_expression "local_34 = (ushort **)(pbVar5 + 2)" identifier = (cast_expression "(ushort **)(pbVar5 + 2)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar5 + 2)" ( (binary_expression "pbVar5 + 2" identifier + number_literal) )))) ;) (expression_statement "ppuVar10 = (ushort **)(pbVar5 + 2);" (assignment_expression "ppuVar10 = (ushort **)(pbVar5 + 2)" identifier = (cast_expression "(ushort **)(pbVar5 + 2)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar5 + 2)" ( (binary_expression "pbVar5 + 2" identifier + number_literal) )))) ;) (while_statement "while ((int)(uint)bVar1 < (int)local_68) {\n        uVar16 = uVar16 * (int)local_68 + (uint)bVar1;\n        bVar1 = local_54[*(byte *)ppuVar10];\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar10 = (ushort **)((int)ppuVar10 + 1);\n        local_38 = ppuVar11;\n      }" while (parenthesized_expression "((int)(uint)bVar1 < (int)local_68)" ( (binary_expression "(int)(uint)bVar1 < (int)local_68" (cast_expression "(int)(uint)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) < (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar16 = uVar16 * (int)local_68 + (uint)bVar1;\n        bVar1 = local_54[*(byte *)ppuVar10];\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar10 = (ushort **)((int)ppuVar10 + 1);\n        local_38 = ppuVar11;\n      }" { (expression_statement "uVar16 = uVar16 * (int)local_68 + (uint)bVar1;" (assignment_expression "uVar16 = uVar16 * (int)local_68 + (uint)bVar1" identifier = (binary_expression "uVar16 * (int)local_68 + (uint)bVar1" (binary_expression "uVar16 * (int)local_68" identifier * (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier)) + (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "bVar1 = local_54[*(byte *)ppuVar10];" (assignment_expression "bVar1 = local_54[*(byte *)ppuVar10]" identifier = (subscript_expression "local_54[*(byte *)ppuVar10]" identifier [ (pointer_expression "*(byte *)ppuVar10" * (cast_expression "(byte *)ppuVar10" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ])) ;) (expression_statement "local_34 = (ushort **)-(int)local_30;" (assignment_expression "local_34 = (ushort **)-(int)local_30" identifier = (cast_expression "(ushort **)-(int)local_30" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (unary_expression "-(int)local_30" - (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "ppuVar10 = (ushort **)((int)ppuVar10 + 1);" (assignment_expression "ppuVar10 = (ushort **)((int)ppuVar10 + 1)" identifier = (cast_expression "(ushort **)((int)ppuVar10 + 1)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar10 + 1)" ( (binary_expression "(int)ppuVar10 + 1" (cast_expression "(int)ppuVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_38 = ppuVar11;" (assignment_expression "local_38 = ppuVar11" identifier = identifier) ;) })) (expression_statement "local_54 = local_30 + (uVar16 ^ (uint)-(int)local_30);" (assignment_expression "local_54 = local_30 + (uVar16 ^ (uint)-(int)local_30)" identifier = (binary_expression "local_30 + (uVar16 ^ (uint)-(int)local_30)" identifier + (parenthesized_expression "(uVar16 ^ (uint)-(int)local_30)" ( (binary_expression "uVar16 ^ (uint)-(int)local_30" identifier ^ (binary_expression "(uint)-(int)local_30" (parenthesized_expression "(uint)" ( identifier )) - (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) (if_statement "if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }" if (parenthesized_expression "(local_50 != (ushort **)0x0)" ( (binary_expression "local_50 != (ushort **)0x0" identifier != (cast_expression "(ushort **)0x0" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }" { (labeled_statement "LAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);" statement_identifier : (expression_statement "local_54 = local_54 + -((int)local_48 - (int)local_50);" (assignment_expression "local_54 = local_54 + -((int)local_48 - (int)local_50)" identifier = (binary_expression "local_54 + -((int)local_48 - (int)local_50)" identifier + (unary_expression "-((int)local_48 - (int)local_50)" - (parenthesized_expression "((int)local_48 - (int)local_50)" ( (binary_expression "(int)local_48 - (int)local_50" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;)) })) (if_statement "if (local_54 == (undefined *)0x0) goto LAB_0001d804;" if (parenthesized_expression "(local_54 == (undefined *)0x0)" ( (binary_expression "local_54 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001d804;" goto statement_identifier ;)) (expression_statement "local_68 = (ushort *)((int)ppuVar11 + 2);" (assignment_expression "local_68 = (ushort *)((int)ppuVar11 + 2)" identifier = (cast_expression "(ushort *)((int)ppuVar11 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar11 + 2)" ( (binary_expression "(int)ppuVar11 + 2" (cast_expression "(int)ppuVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar16 = (int)local_68 * 8;" (assignment_expression "uVar16 = (int)local_68 * 8" identifier = (binary_expression "(int)local_68 * 8" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (if_statement "if (uVar16 < 0x7f01) {\n        uVar16 = uVar16 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);\n        ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);\n        ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;\n        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;\n        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();\n      }" if (parenthesized_expression "(uVar16 < 0x7f01)" ( (binary_expression "uVar16 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n        uVar16 = uVar16 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);\n        ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);\n        ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);\n      }" { (expression_statement "uVar16 = uVar16 + 0x1b & 0xfffffff0;" (assignment_expression "uVar16 = uVar16 + 0x1b & 0xfffffff0" identifier = (binary_expression "uVar16 + 0x1b & 0xfffffff0" (binary_expression "uVar16 + 0x1b" identifier + number_literal) & number_literal)) ;) (expression_statement "local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);" (assignment_expression "local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0)" identifier = (cast_expression "(ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0)" ( (binary_expression "(uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0" (call_expression "(uint)((int)ppbVar15 + (0xf - uVar16))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppbVar15 + (0xf - uVar16))" ( (binary_expression "(int)ppbVar15 + (0xf - uVar16)" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(0xf - uVar16)" ( (binary_expression "0xf - uVar16" number_literal - identifier) ))) ))) & number_literal) )))) ;) (expression_statement "ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);" (assignment_expression "ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0)" identifier = (cast_expression "(ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0)" ( (binary_expression "(uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0" (call_expression "(uint)((int)ppbVar15 + uVar16 * -2 + 0xf)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppbVar15 + uVar16 * -2 + 0xf)" ( (binary_expression "(int)ppbVar15 + uVar16 * -2 + 0xf" (binary_expression "(int)ppbVar15 + uVar16 * -2" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar16 * -2" identifier * number_literal)) + number_literal) ))) & number_literal) )))) ;) (expression_statement "ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);" (assignment_expression "ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2)" identifier = (cast_expression "(byte **)((int)ppbVar15 + uVar16 * -2)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + uVar16 * -2)" ( (binary_expression "(int)ppbVar15 + uVar16 * -2" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar16 * -2" identifier * number_literal)) )))) ;) }) (else_clause "else {\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;\n        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;\n        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();\n      }" else (compound_statement "{\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;\n        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;\n        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();\n      }" { (expression_statement "*(uint *)((int)ppbVar15 + -0xc) = uVar16;" (assignment_expression "*(uint *)((int)ppbVar15 + -0xc) = uVar16" (pointer_expression "*(uint *)((int)ppbVar15 + -0xc)" * (cast_expression "(uint *)((int)ppbVar15 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)ppbVar15 + -0x10) = &local_24;" (assignment_expression "*(int **)((int)ppbVar15 + -0x10) = &local_24" (pointer_expression "*(int **)((int)ppbVar15 + -0x10)" * (cast_expression "(int **)((int)ppbVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_24" & identifier)) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_50 = (ushort **)__gmp_tmp_reentrant_alloc();" (assignment_expression "local_50 = (ushort **)__gmp_tmp_reentrant_alloc()" identifier = (cast_expression "(ushort **)__gmp_tmp_reentrant_alloc()" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "__gmp_tmp_reentrant_alloc()" identifier (argument_list "()" ( ))))) ;) (expression_statement "*(uint *)((int)ppbVar15 + -0xc) = uVar16;" (assignment_expression "*(uint *)((int)ppbVar15 + -0xc) = uVar16" (pointer_expression "*(uint *)((int)ppbVar15 + -0xc)" * (cast_expression "(uint *)((int)ppbVar15 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)ppbVar15 + -0x10) = &local_24;" (assignment_expression "*(int **)((int)ppbVar15 + -0x10) = &local_24" (pointer_expression "*(int **)((int)ppbVar15 + -0x10)" * (cast_expression "(int **)((int)ppbVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_24" & identifier)) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();" (assignment_expression "ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc()" identifier = (cast_expression "(ushort **)__gmp_tmp_reentrant_alloc()" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "__gmp_tmp_reentrant_alloc()" identifier (argument_list "()" ( ))))) ;) }))) (expression_statement "local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));" (assignment_expression "local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f))" identifier = (cast_expression "(ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f))" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f))" ( (binary_expression "((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f)" (parenthesized_expression "((uint)local_54 ^ (int)local_54 >> 0x1f)" ( (binary_expression "(uint)local_54 ^ (int)local_54 >> 0x1f" (cast_expression "(uint)local_54" ( (type_descriptor "uint" type_identifier) ) identifier) ^ (binary_expression "(int)local_54 >> 0x1f" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) )) - (parenthesized_expression "((int)local_54 >> 0x1f)" ( (binary_expression "(int)local_54 >> 0x1f" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) )))) ;) (expression_statement "*local_50 = param_3;" (assignment_expression "*local_50 = param_3" (pointer_expression "*local_50" * identifier) = identifier) ;) (expression_statement "uVar16 = 0x1f;" (assignment_expression "uVar16 = 0x1f" identifier = number_literal) ;) (if_statement "if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n        }\n      }" if (parenthesized_expression "(local_48 != (ushort **)0x0)" ( (binary_expression "local_48 != (ushort **)0x0" identifier != (cast_expression "(ushort **)0x0" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n        for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n        }\n      }" { (for_statement "for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n        }" for ( ; (binary_expression "(uint)local_48 >> uVar16 == 0" (binary_expression "(uint)local_48 >> uVar16" (cast_expression "(uint)local_48" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) == number_literal) ; (assignment_expression "uVar16 = uVar16 - 1" identifier = (binary_expression "uVar16 - 1" identifier - number_literal)) ) (compound_statement "{\n        }" { })) })) (expression_statement "uVar16 = 0x1e - (uVar16 ^ 0x1f);" (assignment_expression "uVar16 = 0x1e - (uVar16 ^ 0x1f)" identifier = (binary_expression "0x1e - (uVar16 ^ 0x1f)" number_literal - (parenthesized_expression "(uVar16 ^ 0x1f)" ( (binary_expression "uVar16 ^ 0x1f" identifier ^ number_literal) )))) ;) (if_statement "if (uVar16 == 0xffffffff) {\n        iVar13 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar10 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar7 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }" if (parenthesized_expression "(uVar16 == 0xffffffff)" ( (binary_expression "uVar16 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        iVar13 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar10 = local_50;\n      }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "local_30 = (undefined *)0x0;" (assignment_expression "local_30 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar6 = (undefined *)0x1;" (assignment_expression "puVar6 = (undefined *)0x1" identifier = (cast_expression "(undefined *)0x1" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c = local_44[-0x9b];" (assignment_expression "local_4c = local_44[-0x9b]" identifier = (subscript_expression "local_44[-0x9b]" identifier [ number_literal ])) ;) (expression_statement "ppuVar10 = local_50;" (assignment_expression "ppuVar10 = local_50" identifier = identifier) ;) }) (else_clause "else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar7 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }" else (compound_statement "{\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar7 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }" { (expression_statement "local_34 = local_50;" (assignment_expression "local_34 = local_50" identifier = identifier) ;) (expression_statement "puVar6 = (undefined *)0x1;" (assignment_expression "puVar6 = (undefined *)0x1" identifier = (cast_expression "(undefined *)0x1" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "local_30 = (undefined *)0x0;" (assignment_expression "local_30 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c = local_44[-0x9b];" (assignment_expression "local_4c = local_44[-0x9b]" identifier = (subscript_expression "local_44[-0x9b]" identifier [ number_literal ])) ;) (while_statement "while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }" { (expression_statement "ppuVar10 = local_34;" (assignment_expression "ppuVar10 = local_34" identifier = identifier) ;) (expression_statement "local_38 = ppuVar11;" (assignment_expression "local_38 = ppuVar11" identifier = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar15 + -8) = puVar6;" (assignment_expression "*(undefined **)((int)ppbVar15 + -8) = puVar6" (pointer_expression "*(undefined **)((int)ppbVar15 + -8)" * (cast_expression "(undefined **)((int)ppbVar15 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -8)" ( (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0xc)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0xc)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "ppuVar10 + iVar7" identifier + identifier)) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x10)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0x10)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_sqr();" (call_expression "__gmpn_sqr()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_30 = (undefined *)((int)local_30 * 2);" (assignment_expression "local_30 = (undefined *)((int)local_30 * 2)" identifier = (cast_expression "(undefined *)((int)local_30 * 2)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_30 * 2)" ( (binary_expression "(int)local_30 * 2" (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));" (assignment_expression "puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0))" identifier = (cast_expression "(undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0))" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0))" ( (binary_expression "(int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0)" (binary_expression "(int)puVar6 * 2" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) - (call_expression "(uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0)" ( (binary_expression "local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0" (subscript_expression "local_38[(int)puVar6 * 2 + -1]" identifier [ (binary_expression "(int)puVar6 * 2 + -1" (binary_expression "(int)puVar6 * 2" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) == (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )))) )))) ;) (if_statement "if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }" if (parenthesized_expression "((int)local_3c < (int)puVar6)" ( (binary_expression "(int)local_3c < (int)puVar6" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }" { (expression_statement "iVar7 = (int)puVar6 - (int)local_3c;" (assignment_expression "iVar7 = (int)puVar6 - (int)local_3c" identifier = (binary_expression "(int)puVar6 - (int)local_3c" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_30 = local_30 + iVar7;" (assignment_expression "local_30 = local_30 + iVar7" identifier = (binary_expression "local_30 + iVar7" identifier + identifier)) ;) (expression_statement "iVar13 = iVar7 * 4;" (assignment_expression "iVar13 = iVar7 * 4" identifier = (binary_expression "iVar7 * 4" identifier * number_literal)) ;) (expression_statement "puVar6 = local_3c;" (assignment_expression "puVar6 = local_3c" identifier = identifier) ;) }) (else_clause "else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }" else (compound_statement "{\n            iVar13 = 0;\n            iVar7 = 0;\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) }))) (if_statement "if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }" if (parenthesized_expression "(((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0)" ( (binary_expression "((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0" (parenthesized_expression "((uint)local_48 >> (uVar16 & 0x1f) & 1)" ( (binary_expression "(uint)local_48 >> (uVar16 & 0x1f) & 1" (binary_expression "(uint)local_48 >> (uVar16 & 0x1f)" (cast_expression "(uint)local_48" ( (type_descriptor "uint" type_identifier) ) identifier) >> (parenthesized_expression "(uVar16 & 0x1f)" ( (binary_expression "uVar16 & 0x1f" identifier & number_literal) ))) & number_literal) )) != number_literal) )) (compound_statement "{\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }" { (expression_statement "*(ushort **)((int)ppbVar15 + -4) = param_3;" (assignment_expression "*(ushort **)((int)ppbVar15 + -4) = param_3" (pointer_expression "*(ushort **)((int)ppbVar15 + -4)" * (cast_expression "(ushort **)((int)ppbVar15 + -4)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -4)" ( (binary_expression "(int)ppbVar15 + -4" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar17 = local_4c;" (assignment_expression "puVar17 = local_4c" identifier = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar15 + -8) = puVar6;" (assignment_expression "*(undefined **)((int)ppbVar15 + -8) = puVar6" (pointer_expression "*(undefined **)((int)ppbVar15 + -8)" * (cast_expression "(undefined **)((int)ppbVar15 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -8)" ( (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;" (assignment_expression "*(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38" (pointer_expression "*(int *)((int)ppbVar15 + -0xc)" * (cast_expression "(int *)((int)ppbVar15 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "iVar13 + (int)local_38" identifier + (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x10) = local_38;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x10) = local_38" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x10)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0x10)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(puVar17 + 100);" (assignment_expression "pcVar2 = *(code **)(puVar17 + 100)" identifier = (pointer_expression "*(code **)(puVar17 + 100)" * (cast_expression "(code **)(puVar17 + 100)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 100)" ( (binary_expression "puVar17 + 100" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "puVar8 = (ushort *)(*pcVar2)();" (assignment_expression "puVar8 = (ushort *)(*pcVar2)()" identifier = (cast_expression "(ushort *)(*pcVar2)()" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))))) ;) (expression_statement "local_38[(int)puVar6] = puVar8;" (assignment_expression "local_38[(int)puVar6] = puVar8" (subscript_expression "local_38[(int)puVar6]" identifier [ (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) ]) = identifier) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "puVar6 = puVar6 + (puVar8 != (ushort *)0x0);" (assignment_expression "puVar6 = puVar6 + (puVar8 != (ushort *)0x0)" identifier = (binary_expression "puVar6 + (puVar8 != (ushort *)0x0)" identifier + (parenthesized_expression "(puVar8 != (ushort *)0x0)" ( (binary_expression "puVar8 != (ushort *)0x0" identifier != (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )))) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) })) (expression_statement "ppuVar11 = local_34;" (assignment_expression "ppuVar11 = local_34" identifier = identifier) ;) (expression_statement "uVar16 = uVar16 - 1;" (assignment_expression "uVar16 = uVar16 - 1" identifier = (binary_expression "uVar16 - 1" identifier - number_literal)) ;) (expression_statement "ppuVar10 = local_38;" (assignment_expression "ppuVar10 = local_38" identifier = identifier) ;) (if_statement "if (uVar16 == 0xffffffff) break;" if (parenthesized_expression "(uVar16 == 0xffffffff)" ( (binary_expression "uVar16 == 0xffffffff" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "local_34 = local_38;" (assignment_expression "local_34 = local_38" identifier = identifier) ;) })) }))) (expression_statement "puVar17 = local_4c;" (assignment_expression "puVar17 = local_4c" identifier = identifier) ;) (if_statement "if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }" if (parenthesized_expression "((int)local_3c < (int)puVar6)" ( (binary_expression "(int)local_3c < (int)puVar6" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }" { (expression_statement "local_30 = local_30 + ((int)puVar6 - (int)local_3c);" (assignment_expression "local_30 = local_30 + ((int)puVar6 - (int)local_3c)" identifier = (binary_expression "local_30 + ((int)puVar6 - (int)local_3c)" identifier + (parenthesized_expression "((int)puVar6 - (int)local_3c)" ( (binary_expression "(int)puVar6 - (int)local_3c" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);" (assignment_expression "ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c)" identifier = (binary_expression "ppuVar10 + ((int)puVar6 - (int)local_3c)" identifier + (parenthesized_expression "((int)puVar6 - (int)local_3c)" ( (binary_expression "(int)puVar6 - (int)local_3c" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar6 = local_3c;" (assignment_expression "puVar6 = local_3c" identifier = identifier) ;) })) (expression_statement "*(undefined **)((int)ppbVar15 + -8) = puVar6;" (assignment_expression "*(undefined **)((int)ppbVar15 + -8) = puVar6" (pointer_expression "*(undefined **)((int)ppbVar15 + -8)" * (cast_expression "(undefined **)((int)ppbVar15 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -8)" ( (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)ppbVar15 + -0xc) = (int)ppuVar10 + iVar13;" (assignment_expression "*(int *)((int)ppbVar15 + -0xc) = (int)ppuVar10 + iVar13" (pointer_expression "*(int *)((int)ppbVar15 + -0xc)" * (cast_expression "(int *)((int)ppbVar15 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)ppuVar10 + iVar13" (cast_expression "(int)ppuVar10" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x10) = local_50;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x10) = local_50" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x10)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0x10)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(puVar17 + 0x28);" (assignment_expression "pcVar2 = *(code **)(puVar17 + 0x28)" identifier = (pointer_expression "*(code **)(puVar17 + 0x28)" * (cast_expression "(code **)(puVar17 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x28)" ( (binary_expression "puVar17 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d87c;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d87c" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }\n        ppuVar11 = local_50;\n        puVar8 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar8) {\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }\n        local_34 = (ushort **)((int)local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }\n        puVar17 = local_58;\n        *(undefined **)((int)ppbVar15 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar15 + -0x14) = puVar17;\n        puVar9 = local_3c;\n        ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar15 + -0x18) = local_40;\n        local_38 = ppuVar11;\n        *(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;\n        *(uint *)((int)ppbVar15 + -0x20) = uVar16;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;\n        iVar13 = __gmpn_divrem();\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));\n        uVar12 = uVar16;\n        puVar17 = local_3c;\n        if (iVar13 != 0) {\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }\n      }\n      else {\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        local_38 = (ushort **)((int)local_34 * 4);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }\n        *(uint *)((int)ppbVar15 + -0x20) = uVar12;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;\n        __gmpn_mul();\n        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));\n        if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }\n      }" if (parenthesized_expression "((int)local_54 < 0)" ( (binary_expression "(int)local_54 < 0" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        if ((int)local_58 < (int)puVar6) {\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }\n        ppuVar11 = local_50;\n        puVar8 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar8) {\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }\n        local_34 = (ushort **)((int)local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }\n        puVar17 = local_58;\n        *(undefined **)((int)ppbVar15 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar15 + -0x14) = puVar17;\n        puVar9 = local_3c;\n        ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar15 + -0x18) = local_40;\n        local_38 = ppuVar11;\n        *(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;\n        *(uint *)((int)ppbVar15 + -0x20) = uVar16;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;\n        iVar13 = __gmpn_divrem();\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));\n        uVar12 = uVar16;\n        puVar17 = local_3c;\n        if (iVar13 != 0) {\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }\n      }" { (if_statement "if ((int)local_58 < (int)puVar6) {\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }" if (parenthesized_expression "((int)local_58 < (int)puVar6)" ( (binary_expression "(int)local_58 < (int)puVar6" (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }" { (expression_statement "uVar16 = (int)puVar6 * 4 + 4;" (assignment_expression "uVar16 = (int)puVar6 * 4 + 4" identifier = (binary_expression "(int)puVar6 * 4 + 4" (binary_expression "(int)puVar6 * 4" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal)) ;) (if_statement "if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }" if (parenthesized_expression "(uVar16 < 0x7f01)" ( (binary_expression "uVar16 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }" { (expression_statement "iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);" (assignment_expression "iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0)" identifier = (unary_expression "-((int)puVar6 * 4 + 0x1fU & 0xfffffff0)" - (parenthesized_expression "((int)puVar6 * 4 + 0x1fU & 0xfffffff0)" ( (binary_expression "(int)puVar6 * 4 + 0x1fU & 0xfffffff0" (binary_expression "(int)puVar6 * 4 + 0x1fU" (binary_expression "(int)puVar6 * 4" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);" (assignment_expression "local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0)" identifier = (cast_expression "(ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0)" ( (binary_expression "(uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0" (call_expression "(uint)((int)ppbVar15 + iVar13 + 0xf)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppbVar15 + iVar13 + 0xf)" ( (binary_expression "(int)ppbVar15 + iVar13 + 0xf" (binary_expression "(int)ppbVar15 + iVar13" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))) & number_literal) )))) ;) (expression_statement "ppbVar15 = (byte **)((int)ppbVar15 + iVar13);" (assignment_expression "ppbVar15 = (byte **)((int)ppbVar15 + iVar13)" identifier = (cast_expression "(byte **)((int)ppbVar15 + iVar13)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + iVar13)" ( (binary_expression "(int)ppbVar15 + iVar13" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }" else (compound_statement "{\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }" { (expression_statement "*(uint *)((int)ppbVar15 + -0xc) = uVar16;" (assignment_expression "*(uint *)((int)ppbVar15 + -0xc) = uVar16" (pointer_expression "*(uint *)((int)ppbVar15 + -0xc)" * (cast_expression "(uint *)((int)ppbVar15 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)ppbVar15 + -0x10) = &local_24;" (assignment_expression "*(int **)((int)ppbVar15 + -0x10) = &local_24" (pointer_expression "*(int **)((int)ppbVar15 + -0x10)" * (cast_expression "(int **)((int)ppbVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_24" & identifier)) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_34 = (ushort **)__gmp_tmp_reentrant_alloc();" (assignment_expression "local_34 = (ushort **)__gmp_tmp_reentrant_alloc()" identifier = (cast_expression "(ushort **)__gmp_tmp_reentrant_alloc()" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "__gmp_tmp_reentrant_alloc()" identifier (argument_list "()" ( ))))) ;) }))) (expression_statement "ppuVar10 = (ushort **)(puVar6 + -(int)local_58);" (assignment_expression "ppuVar10 = (ushort **)(puVar6 + -(int)local_58)" identifier = (cast_expression "(ushort **)(puVar6 + -(int)local_58)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -(int)local_58)" ( (binary_expression "puVar6 + -(int)local_58" identifier + (unary_expression "-(int)local_58" - (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) (expression_statement "local_38 = ppuVar10;" (assignment_expression "local_38 = ppuVar10" identifier = identifier) ;) (expression_statement "*(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;" (assignment_expression "*(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4" (pointer_expression "*(int *)((int)ppbVar15 + -8)" * (cast_expression "(int *)((int)ppbVar15 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -8)" ( (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)ppuVar10 * 4" (cast_expression "(int)ppuVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0xc) = 0;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0xc) = 0" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0xc)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x10) = local_34;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x10) = local_34" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x10)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0x10)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));" (call_expression "memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8))" identifier (argument_list "(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8))" ( (pointer_expression "*(void **)((int)ppbVar15 + -0x10)" * (cast_expression "(void **)((int)ppbVar15 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)ppbVar15 + -0xc)" * (cast_expression "(int *)((int)ppbVar15 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)ppbVar15 + -8)" * (cast_expression "(size_t *)((int)ppbVar15 + -8)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -8)" ( (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "ppuVar11 = local_34;" (assignment_expression "ppuVar11 = local_34" identifier = identifier) ;) (expression_statement "puVar17 = local_4c;" (assignment_expression "puVar17 = local_4c" identifier = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar15 + -8) = local_58;" (assignment_expression "*(undefined **)((int)ppbVar15 + -8) = local_58" (pointer_expression "*(undefined **)((int)ppbVar15 + -8)" * (cast_expression "(undefined **)((int)ppbVar15 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -8)" ( (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0xc) = local_40;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0xc) = local_40" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0xc)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0xc)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x10)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0x10)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "ppuVar11 + (int)ppuVar10" identifier + (cast_expression "(int)ppuVar10" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar2 = *(code **)(puVar17 + 0x28);" (assignment_expression "pcVar2 = *(code **)(puVar17 + 0x28)" identifier = (pointer_expression "*(code **)(puVar17 + 0x28)" * (cast_expression "(code **)(puVar17 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x28)" ( (binary_expression "puVar17 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "local_5c = (ushort **)((int)local_5c - (int)local_38);" (assignment_expression "local_5c = (ushort **)((int)local_5c - (int)local_38)" identifier = (cast_expression "(ushort **)((int)local_5c - (int)local_38)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_5c - (int)local_38)" ( (binary_expression "(int)local_5c - (int)local_38" (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_40 = local_34;" (assignment_expression "local_40 = local_34" identifier = identifier) ;) (expression_statement "local_58 = puVar6;" (assignment_expression "local_58 = puVar6" identifier = identifier) ;) })) (expression_statement "ppuVar11 = local_50;" (assignment_expression "ppuVar11 = local_50" identifier = identifier) ;) (expression_statement "puVar8 = local_50[(int)(puVar6 + -1)];" (assignment_expression "puVar8 = local_50[(int)(puVar6 + -1)]" identifier = (subscript_expression "local_50[(int)(puVar6 + -1)]" identifier [ (cast_expression "(int)(puVar6 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar6 + -1)" ( (binary_expression "puVar6 + -1" identifier + number_literal) ))) ])) ;) (if_statement "if (-1 < (int)puVar8) {\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }" if (parenthesized_expression "(-1 < (int)puVar8)" ( (binary_expression "-1 < (int)puVar8" number_literal < (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }" { (expression_statement "uVar16 = 0x1f;" (assignment_expression "uVar16 = 0x1f" identifier = number_literal) ;) (if_statement "if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }" if (parenthesized_expression "(puVar8 != (ushort *)0x0)" ( (binary_expression "puVar8 != (ushort *)0x0" identifier != (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }" { (for_statement "for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }" for ( ; (binary_expression "(uint)puVar8 >> uVar16 == 0" (binary_expression "(uint)puVar8 >> uVar16" (cast_expression "(uint)puVar8" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) == number_literal) ; (assignment_expression "uVar16 = uVar16 - 1" identifier = (binary_expression "uVar16 - 1" identifier - number_literal)) ) (compound_statement "{\n            }" { })) })) (expression_statement "*(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;" (assignment_expression "*(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f" (pointer_expression "*(uint *)((int)ppbVar15 + -4)" * (cast_expression "(uint *)((int)ppbVar15 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -4)" ( (binary_expression "(int)ppbVar15 + -4" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "uVar16 ^ 0x1f" identifier ^ number_literal)) ;) (expression_statement "*(undefined **)((int)ppbVar15 + -8) = puVar6;" (assignment_expression "*(undefined **)((int)ppbVar15 + -8) = puVar6" (pointer_expression "*(undefined **)((int)ppbVar15 + -8)" * (cast_expression "(undefined **)((int)ppbVar15 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -8)" ( (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0xc)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0xc)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x10)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0x10)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(local_4c + 0x38);" (assignment_expression "pcVar2 = *(code **)(local_4c + 0x38)" identifier = (pointer_expression "*(code **)(local_4c + 0x38)" * (cast_expression "(code **)(local_4c + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_4c + 0x38)" ( (binary_expression "local_4c + 0x38" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "ppuVar11 = local_40;" (assignment_expression "ppuVar11 = local_40" identifier = identifier) ;) (expression_statement "puVar9 = local_4c;" (assignment_expression "puVar9 = local_4c" identifier = identifier) ;) (expression_statement "*(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;" (assignment_expression "*(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f" (pointer_expression "*(uint *)((int)ppbVar15 + -0x14)" * (cast_expression "(uint *)((int)ppbVar15 + -0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "uVar16 ^ 0x1f" identifier ^ number_literal)) ;) (expression_statement "puVar17 = local_58;" (assignment_expression "puVar17 = local_58" identifier = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar15 + -0x18) = local_58;" (assignment_expression "*(undefined **)((int)ppbVar15 + -0x18) = local_58" (pointer_expression "*(undefined **)((int)ppbVar15 + -0x18)" * (cast_expression "(undefined **)((int)ppbVar15 + -0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -0x18)" ( (binary_expression "(int)ppbVar15 + -0x18" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x1c)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0x1c)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0x1c)" ( (binary_expression "(int)ppbVar15 + -0x1c" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x20)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0x20)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0x20)" ( (binary_expression "(int)ppbVar15 + -0x20" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(puVar9 + 0x38);" (assignment_expression "pcVar2 = *(code **)(puVar9 + 0x38)" identifier = (pointer_expression "*(code **)(puVar9 + 0x38)" * (cast_expression "(code **)(puVar9 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0x38)" ( (binary_expression "puVar9 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x24)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x24)" ( (binary_expression "(int)ppbVar15 + -0x24" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "puVar8 = (ushort *)(*pcVar2)();" (assignment_expression "puVar8 = (ushort *)(*pcVar2)()" identifier = (cast_expression "(ushort *)(*pcVar2)()" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))))) ;) (if_statement "if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }" if (parenthesized_expression "(puVar8 != (ushort *)0x0)" ( (binary_expression "puVar8 != (ushort *)0x0" identifier != (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }" { (expression_statement "ppuVar11[(int)puVar17] = puVar8;" (assignment_expression "ppuVar11[(int)puVar17] = puVar8" (subscript_expression "ppuVar11[(int)puVar17]" identifier [ (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) ]) = identifier) ;) (expression_statement "local_58 = puVar17 + 1;" (assignment_expression "local_58 = puVar17 + 1" identifier = (binary_expression "puVar17 + 1" identifier + number_literal)) ;) })) })) (expression_statement "local_34 = (ushort **)((int)local_68 * 4);" (assignment_expression "local_34 = (ushort **)((int)local_68 * 4)" identifier = (cast_expression "(ushort **)((int)local_68 * 4)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_68 * 4)" ( (binary_expression "(int)local_68 * 4" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if (local_34 < (ushort **)0x7f01) {\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }" if (parenthesized_expression "(local_34 < (ushort **)0x7f01)" ( (binary_expression "local_34 < (ushort **)0x7f01" identifier < (cast_expression "(ushort **)0x7f01" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }" { (expression_statement "iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);" (assignment_expression "iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0)" identifier = (unary_expression "-((int)local_34 + 0x1bU & 0xfffffff0)" - (parenthesized_expression "((int)local_34 + 0x1bU & 0xfffffff0)" ( (binary_expression "(int)local_34 + 0x1bU & 0xfffffff0" (binary_expression "(int)local_34 + 0x1bU" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal) )))) ;) (expression_statement "uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;" (assignment_expression "uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0" identifier = (binary_expression "(uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0" (call_expression "(uint)((int)ppbVar15 + iVar13 + 0xf)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppbVar15 + iVar13 + 0xf)" ( (binary_expression "(int)ppbVar15 + iVar13 + 0xf" (binary_expression "(int)ppbVar15 + iVar13" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))) & number_literal)) ;) (expression_statement "ppbVar15 = (byte **)((int)ppbVar15 + iVar13);" (assignment_expression "ppbVar15 = (byte **)((int)ppbVar15 + iVar13)" identifier = (cast_expression "(byte **)((int)ppbVar15 + iVar13)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + iVar13)" ( (binary_expression "(int)ppbVar15 + iVar13" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }" else (compound_statement "{\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }" { (expression_statement "*(ushort ***)((int)ppbVar15 + -0xc) = local_34;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0xc) = local_34" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0xc)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0xc)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)ppbVar15 + -0x10) = &local_24;" (assignment_expression "*(int **)((int)ppbVar15 + -0x10) = &local_24" (pointer_expression "*(int **)((int)ppbVar15 + -0x10)" * (cast_expression "(int **)((int)ppbVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_24" & identifier)) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar16 = __gmp_tmp_reentrant_alloc();" (assignment_expression "uVar16 = __gmp_tmp_reentrant_alloc()" identifier = (call_expression "__gmp_tmp_reentrant_alloc()" identifier (argument_list "()" ( )))) ;) }))) (expression_statement "puVar17 = local_58;" (assignment_expression "puVar17 = local_58" identifier = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar15 + -0xc) = puVar6;" (assignment_expression "*(undefined **)((int)ppbVar15 + -0xc) = puVar6" (pointer_expression "*(undefined **)((int)ppbVar15 + -0xc)" * (cast_expression "(undefined **)((int)ppbVar15 + -0xc)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x10) = local_50;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x10) = local_50" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x10)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0x10)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar15 + -0x14) = puVar17;" (assignment_expression "*(undefined **)((int)ppbVar15 + -0x14) = puVar17" (pointer_expression "*(undefined **)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined **)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar9 = local_3c;" (assignment_expression "puVar9 = local_3c" identifier = identifier) ;) (expression_statement "ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);" (assignment_expression "ppuVar11 = (ushort **)(puVar17 + -(int)puVar6)" identifier = (cast_expression "(ushort **)(puVar17 + -(int)puVar6)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -(int)puVar6)" ( (binary_expression "puVar17 + -(int)puVar6" identifier + (unary_expression "-(int)puVar6" - (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x18) = local_40;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x18) = local_40" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x18)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0x18)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0x18)" ( (binary_expression "(int)ppbVar15 + -0x18" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_38 = ppuVar11;" (assignment_expression "local_38 = ppuVar11" identifier = identifier) ;) (expression_statement "*(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;" (assignment_expression "*(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11" (pointer_expression "*(int *)((int)ppbVar15 + -0x1c)" * (cast_expression "(int *)((int)ppbVar15 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x1c)" ( (binary_expression "(int)ppbVar15 + -0x1c" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)puVar9 - (int)ppuVar11" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppuVar11" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(uint *)((int)ppbVar15 + -0x20) = uVar16;" (assignment_expression "*(uint *)((int)ppbVar15 + -0x20) = uVar16" (pointer_expression "*(uint *)((int)ppbVar15 + -0x20)" * (cast_expression "(uint *)((int)ppbVar15 + -0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x20)" ( (binary_expression "(int)ppbVar15 + -0x20" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x24)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x24)" ( (binary_expression "(int)ppbVar15 + -0x24" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar13 = __gmpn_divrem();" (assignment_expression "iVar13 = __gmpn_divrem()" identifier = (call_expression "__gmpn_divrem()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));" (assignment_expression "puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30))" identifier = (cast_expression "(undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30))" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + (int)local_5c + (iVar13 - (int)local_30))" ( (binary_expression "(int)local_38 + (int)local_5c + (iVar13 - (int)local_30)" (binary_expression "(int)local_38 + (int)local_5c" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier)) + (parenthesized_expression "(iVar13 - (int)local_30)" ( (binary_expression "iVar13 - (int)local_30" identifier - (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "uVar12 = uVar16;" (assignment_expression "uVar12 = uVar16" identifier = identifier) ;) (expression_statement "puVar17 = local_3c;" (assignment_expression "puVar17 = local_3c" identifier = identifier) ;) (if_statement "if (iVar13 != 0) {\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }" { (expression_statement "uVar12 = uVar16 + 4;" (assignment_expression "uVar12 = uVar16 + 4" identifier = (binary_expression "uVar16 + 4" identifier + number_literal)) ;) (expression_statement "*(int *)((uVar16 - 4) + (int)local_34) = iVar13;" (assignment_expression "*(int *)((uVar16 - 4) + (int)local_34) = iVar13" (pointer_expression "*(int *)((uVar16 - 4) + (int)local_34)" * (cast_expression "(int *)((uVar16 - 4) + (int)local_34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar16 - 4) + (int)local_34)" ( (binary_expression "(uVar16 - 4) + (int)local_34" (parenthesized_expression "(uVar16 - 4)" ( (binary_expression "uVar16 - 4" identifier - number_literal) )) + (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = identifier) ;) })) }) (else_clause "else {\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        local_38 = (ushort **)((int)local_34 * 4);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }\n        *(uint *)((int)ppbVar15 + -0x20) = uVar12;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;\n        __gmpn_mul();\n        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));\n        if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }\n      }" else (compound_statement "{\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        local_38 = (ushort **)((int)local_34 * 4);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }\n        *(uint *)((int)ppbVar15 + -0x20) = uVar12;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;\n        __gmpn_mul();\n        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));\n        if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }\n      }" { (expression_statement "local_34 = (ushort **)(local_58 + (int)puVar6);" (assignment_expression "local_34 = (ushort **)(local_58 + (int)puVar6)" identifier = (cast_expression "(ushort **)(local_58 + (int)puVar6)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_58 + (int)puVar6)" ( (binary_expression "local_58 + (int)puVar6" identifier + (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_38 = (ushort **)((int)local_34 * 4);" (assignment_expression "local_38 = (ushort **)((int)local_34 * 4)" identifier = (cast_expression "(ushort **)((int)local_34 * 4)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_34 * 4)" ( (binary_expression "(int)local_34 * 4" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }" if (parenthesized_expression "(local_38 < (ushort **)0x7f01)" ( (binary_expression "local_38 < (ushort **)0x7f01" identifier < (cast_expression "(ushort **)0x7f01" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }" { (expression_statement "iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);" (assignment_expression "iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0)" identifier = (unary_expression "-((uint)((int)local_38 + 0x1bU) & 0xfffffff0)" - (parenthesized_expression "((uint)((int)local_38 + 0x1bU) & 0xfffffff0)" ( (binary_expression "(uint)((int)local_38 + 0x1bU) & 0xfffffff0" (call_expression "(uint)((int)local_38 + 0x1bU)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_38 + 0x1bU)" ( (binary_expression "(int)local_38 + 0x1bU" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) & number_literal) )))) ;) (expression_statement "uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;" (assignment_expression "uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0" identifier = (binary_expression "(uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0" (call_expression "(uint)((int)ppbVar15 + iVar13 + 0xf)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppbVar15 + iVar13 + 0xf)" ( (binary_expression "(int)ppbVar15 + iVar13 + 0xf" (binary_expression "(int)ppbVar15 + iVar13" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))) & number_literal)) ;) (expression_statement "ppbVar15 = (byte **)((int)ppbVar15 + iVar13);" (assignment_expression "ppbVar15 = (byte **)((int)ppbVar15 + iVar13)" identifier = (cast_expression "(byte **)((int)ppbVar15 + iVar13)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + iVar13)" ( (binary_expression "(int)ppbVar15 + iVar13" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }" else (compound_statement "{\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }" { (expression_statement "*(ushort ***)((int)ppbVar15 + -0xc) = local_38;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0xc) = local_38" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0xc)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0xc)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)ppbVar15 + -0x10) = &local_24;" (assignment_expression "*(int **)((int)ppbVar15 + -0x10) = &local_24" (pointer_expression "*(int **)((int)ppbVar15 + -0x10)" * (cast_expression "(int **)((int)ppbVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_24" & identifier)) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar12 = __gmp_tmp_reentrant_alloc();" (assignment_expression "uVar12 = __gmp_tmp_reentrant_alloc()" identifier = (call_expression "__gmp_tmp_reentrant_alloc()" identifier (argument_list "()" ( )))) ;) }))) (if_statement "if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }" if (parenthesized_expression "((int)local_58 < (int)puVar6)" ( (binary_expression "(int)local_58 < (int)puVar6" (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }" { (expression_statement "*(undefined **)((int)ppbVar15 + -0x10) = local_58;" (assignment_expression "*(undefined **)((int)ppbVar15 + -0x10) = local_58" (pointer_expression "*(undefined **)((int)ppbVar15 + -0x10)" * (cast_expression "(undefined **)((int)ppbVar15 + -0x10)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x14) = local_40;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x14) = local_40" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x14)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0x14)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar15 + -0x18) = puVar6;" (assignment_expression "*(undefined **)((int)ppbVar15 + -0x18) = puVar6" (pointer_expression "*(undefined **)((int)ppbVar15 + -0x18)" * (cast_expression "(undefined **)((int)ppbVar15 + -0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -0x18)" ( (binary_expression "(int)ppbVar15 + -0x18" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x1c) = local_50;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x1c) = local_50" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x1c)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0x1c)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0x1c)" ( (binary_expression "(int)ppbVar15 + -0x1c" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }" else (compound_statement "{\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }" { (expression_statement "*(undefined **)((int)ppbVar15 + -0x10) = puVar6;" (assignment_expression "*(undefined **)((int)ppbVar15 + -0x10) = puVar6" (pointer_expression "*(undefined **)((int)ppbVar15 + -0x10)" * (cast_expression "(undefined **)((int)ppbVar15 + -0x10)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x14) = local_50;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x14) = local_50" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x14)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0x14)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar15 + -0x18) = local_58;" (assignment_expression "*(undefined **)((int)ppbVar15 + -0x18) = local_58" (pointer_expression "*(undefined **)((int)ppbVar15 + -0x18)" * (cast_expression "(undefined **)((int)ppbVar15 + -0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -0x18)" ( (binary_expression "(int)ppbVar15 + -0x18" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x1c) = local_40;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x1c) = local_40" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x1c)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0x1c)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0x1c)" ( (binary_expression "(int)ppbVar15 + -0x1c" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) }))) (expression_statement "*(uint *)((int)ppbVar15 + -0x20) = uVar12;" (assignment_expression "*(uint *)((int)ppbVar15 + -0x20) = uVar12" (pointer_expression "*(uint *)((int)ppbVar15 + -0x20)" * (cast_expression "(uint *)((int)ppbVar15 + -0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x20)" ( (binary_expression "(int)ppbVar15 + -0x20" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x24)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x24)" ( (binary_expression "(int)ppbVar15 + -0x24" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_mul();" (call_expression "__gmpn_mul()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;" (assignment_expression "puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))" identifier = (cast_expression "(undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))" ( (binary_expression "(int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0)" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) - (call_expression "(uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)((uVar12 - 4) + (int)local_38) == 0)" ( (binary_expression "*(int *)((uVar12 - 4) + (int)local_38) == 0" (pointer_expression "*(int *)((uVar12 - 4) + (int)local_38)" * (cast_expression "(int *)((uVar12 - 4) + (int)local_38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar12 - 4) + (int)local_38)" ( (binary_expression "(uVar12 - 4) + (int)local_38" (parenthesized_expression "(uVar12 - 4)" ( (binary_expression "uVar12 - 4" identifier - number_literal) )) + (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier)) )))) == number_literal) )))) )))) ;) (expression_statement "puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));" (assignment_expression "puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17))" identifier = (cast_expression "(undefined *)((int)local_5c + (int)(local_30 + (int)puVar17))" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_5c + (int)(local_30 + (int)puVar17))" ( (binary_expression "(int)local_5c + (int)(local_30 + (int)puVar17)" (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(local_30 + (int)puVar17)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_30 + (int)puVar17)" ( (binary_expression "local_30 + (int)puVar17" identifier + (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )))) ;) (if_statement "if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }" if (parenthesized_expression "((int)local_3c < (int)puVar17)" ( (binary_expression "(int)local_3c < (int)puVar17" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }" { (expression_statement "uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;" (assignment_expression "uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4" identifier = (binary_expression "uVar12 + ((int)puVar17 - (int)local_3c) * 4" identifier + (binary_expression "((int)puVar17 - (int)local_3c) * 4" (parenthesized_expression "((int)puVar17 - (int)local_3c)" ( (binary_expression "(int)puVar17 - (int)local_3c" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal))) ;) (expression_statement "puVar17 = local_3c;" (assignment_expression "puVar17 = local_3c" identifier = identifier) ;) })) }))) (expression_statement "local_3c = puVar17;" (assignment_expression "local_3c = puVar17" identifier = identifier) ;) (expression_statement "puVar9 = local_3c;" (assignment_expression "puVar9 = local_3c" identifier = identifier) ;) (expression_statement "puVar3 = local_60;" (assignment_expression "puVar3 = local_60" identifier = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar15 + -8) = local_3c;" (assignment_expression "*(undefined **)((int)ppbVar15 + -8) = local_3c" (pointer_expression "*(undefined **)((int)ppbVar15 + -8)" * (cast_expression "(undefined **)((int)ppbVar15 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -8)" ( (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)((int)ppbVar15 + -0xc) = uVar12;" (assignment_expression "*(uint *)((int)ppbVar15 + -0xc) = uVar12" (pointer_expression "*(uint *)((int)ppbVar15 + -0xc)" * (cast_expression "(uint *)((int)ppbVar15 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar17 = local_4c;" (assignment_expression "puVar17 = local_4c" identifier = identifier) ;) (expression_statement "*(uint *)((int)ppbVar15 + -0x10) = puVar3[3];" (assignment_expression "*(uint *)((int)ppbVar15 + -0x10) = puVar3[3]" (pointer_expression "*(uint *)((int)ppbVar15 + -0x10)" * (cast_expression "(uint *)((int)ppbVar15 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "puVar3[3]" identifier [ number_literal ])) ;) (expression_statement "pcVar2 = *(code **)(puVar17 + 0x28);" (assignment_expression "pcVar2 = *(code **)(puVar17 + 0x28)" identifier = (pointer_expression "*(code **)(puVar17 + 0x28)" * (cast_expression "(code **)(puVar17 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x28)" ( (binary_expression "puVar17 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d91c;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d91c" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar17 = (undefined *)-(int)puVar9;" (assignment_expression "puVar17 = (undefined *)-(int)puVar9" identifier = (cast_expression "(undefined *)-(int)puVar9" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)puVar9" - (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (if_statement "if (local_64 == 0) {\n        puVar17 = puVar9;\n      }" if (parenthesized_expression "(local_64 == 0)" ( (binary_expression "local_64 == 0" identifier == number_literal) )) (compound_statement "{\n        puVar17 = puVar9;\n      }" { (expression_statement "puVar17 = puVar9;" (assignment_expression "puVar17 = puVar9" identifier = identifier) ;) })) (expression_statement "local_60[2] = (uint)puVar6;" (assignment_expression "local_60[2] = (uint)puVar6" (subscript_expression "local_60[2]" identifier [ number_literal ]) = (cast_expression "(uint)puVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_60[1] = (uint)puVar17;" (assignment_expression "local_60[1] = (uint)puVar17" (subscript_expression "local_60[1]" identifier [ number_literal ]) = (cast_expression "(uint)puVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (local_24 == 0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }" if (parenthesized_expression "(local_24 == 0)" ( (binary_expression "local_24 == 0" identifier == number_literal) )) (compound_statement "{\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }" { (expression_statement "puVar6 = (undefined *)0x0;" (assignment_expression "puVar6 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0001d775;" goto statement_identifier ;) })) }) (else_clause "else {\n      local_5c = (ushort **)0x0;\n      local_58 = puVar6;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar17 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar15 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar17;\n      if (local_64 == 0) {\n        puVar6 = puVar17;\n      }\n      puVar3[2] = (uint)local_30;\n      puVar3[1] = (uint)puVar6;\n      if (local_24 == 0) goto LAB_0001d7d0;\n    }" else (compound_statement "{\n      local_5c = (ushort **)0x0;\n      local_58 = puVar6;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar17 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar15 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar17;\n      if (local_64 == 0) {\n        puVar6 = puVar17;\n      }\n      puVar3[2] = (uint)local_30;\n      puVar3[1] = (uint)puVar6;\n      if (local_24 == 0) goto LAB_0001d7d0;\n    }" { (expression_statement "local_5c = (ushort **)0x0;" (assignment_expression "local_5c = (ushort **)0x0" identifier = (cast_expression "(ushort **)0x0" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "local_58 = puVar6;" (assignment_expression "local_58 = puVar6" identifier = identifier) ;) (if_statement "if (local_6c != (byte *)0x0) goto LAB_0001d4fd;" if (parenthesized_expression "(local_6c != (byte *)0x0)" ( (binary_expression "local_6c != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001d4fd;" goto statement_identifier ;)) (labeled_statement "LAB_0001d7f2:\n      local_54 = (undefined *)0x0;" statement_identifier : (expression_statement "local_54 = (undefined *)0x0;" (assignment_expression "local_54 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (local_50 != (ushort **)0x0) goto LAB_0001d589;" if (parenthesized_expression "(local_50 != (ushort **)0x0)" ( (binary_expression "local_50 != (ushort **)0x0" identifier != (cast_expression "(ushort **)0x0" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_0001d589;" goto statement_identifier ;)) (labeled_statement "LAB_0001d804:\n      puVar17 = local_58;" statement_identifier : (expression_statement "puVar17 = local_58;" (assignment_expression "puVar17 = local_58" identifier = identifier) ;)) (expression_statement "local_30 = puVar6;" (assignment_expression "local_30 = puVar6" identifier = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar15 + -8) = local_58;" (assignment_expression "*(undefined **)((int)ppbVar15 + -8) = local_58" (pointer_expression "*(undefined **)((int)ppbVar15 + -8)" * (cast_expression "(undefined **)((int)ppbVar15 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -8)" ( (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar6 = ppuVar4[-0x9b];" (assignment_expression "puVar6 = ppuVar4[-0x9b]" identifier = (subscript_expression "ppuVar4[-0x9b]" identifier [ number_literal ])) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0xc) = local_40;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0xc) = local_40" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0xc)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0xc)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)((int)ppbVar15 + -0x10) = puVar3[3];" (assignment_expression "*(uint *)((int)ppbVar15 + -0x10) = puVar3[3]" (pointer_expression "*(uint *)((int)ppbVar15 + -0x10)" * (cast_expression "(uint *)((int)ppbVar15 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "puVar3[3]" identifier [ number_literal ])) ;) (expression_statement "pcVar2 = *(code **)(puVar6 + 0x28);" (assignment_expression "pcVar2 = *(code **)(puVar6 + 0x28)" identifier = (pointer_expression "*(code **)(puVar6 + 0x28)" * (cast_expression "(code **)(puVar6 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + 0x28)" ( (binary_expression "puVar6 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar6 = (undefined *)-(int)puVar17;" (assignment_expression "puVar6 = (undefined *)-(int)puVar17" identifier = (cast_expression "(undefined *)-(int)puVar17" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)puVar17" - (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (if_statement "if (local_64 == 0) {\n        puVar6 = puVar17;\n      }" if (parenthesized_expression "(local_64 == 0)" ( (binary_expression "local_64 == 0" identifier == number_literal) )) (compound_statement "{\n        puVar6 = puVar17;\n      }" { (expression_statement "puVar6 = puVar17;" (assignment_expression "puVar6 = puVar17" identifier = identifier) ;) })) (expression_statement "puVar3[2] = (uint)local_30;" (assignment_expression "puVar3[2] = (uint)local_30" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = (cast_expression "(uint)local_30" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar3[1] = (uint)puVar6;" (assignment_expression "puVar3[1] = (uint)puVar6" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = (cast_expression "(uint)puVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (local_24 == 0) goto LAB_0001d7d0;" if (parenthesized_expression "(local_24 == 0)" ( (binary_expression "local_24 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001d7d0;" goto statement_identifier ;)) }))) (expression_statement "*(int *)((int)ppbVar15 + -0x10) = local_24;" (assignment_expression "*(int *)((int)ppbVar15 + -0x10) = local_24" (pointer_expression "*(int *)((int)ppbVar15 + -0x10)" * (cast_expression "(int *)((int)ppbVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d84e;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d84e" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "__gmp_tmp_reentrant_free();" (call_expression "__gmp_tmp_reentrant_free()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar6 = (undefined *)0x0;" (assignment_expression "puVar6 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (labeled_statement "LAB_0001d775:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return puVar6;\n  }" { (return_statement "return puVar6;" return identifier ;) }))) comment (expression_statement "*(undefined4 *)((int)ppbVar15 + -4) = 0x1dbcb;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -4) = 0x1dbcb" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -4)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -4)" ( (binary_expression "(int)ppbVar15 + -4" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0007ebe0();" (call_expression "FUN_0007ebe0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nint __gmpf_set_str(mpf_ptr x,char *str,int base)\n\n{\n  byte bVar1;\n  code *pcVar2;\n  mpf_ptr p_Var3;\n  undefined **ppuVar4;\n  byte *pbVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  int iVar8;\n  ushort *puVar9;\n  undefined *puVar10;\n  mp_limb_t mVar11;\n  ushort **ppuVar12;\n  ushort **ppuVar13;\n  uint uVar14;\n  int iVar15;\n  byte **ppbVar16;\n  byte **ppbVar17;\n  uint uVar18;\n  void *pvVar19;\n  void *pvVar20;\n  int in_GS_OFFSET;\n  bool bVar21;\n  ushort *puStack_70;\n  byte *local_6c;\n  int local_68;\n  uint local_64;\n  mpf_ptr local_60;\n  ushort **local_5c;\n  undefined *local_58;\n  undefined *local_54;\n  ushort **local_50;\n  undefined *local_4c;\n  ushort **local_48;\n  undefined **local_44;\n  ushort **local_40;\n  undefined *local_3c;\n  ushort **local_38;\n  ushort **local_34;\n  undefined *local_30;\n  tmp_reentrant_t *__tmp_marker;\n  int local_20;\n  \n  local_60 = x;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_44 = &_GLOBAL_OFFSET_TABLE_;\n  local_40 = (ushort **)nl_langinfo(0x10000);\n  local_44 = &_GLOBAL_OFFSET_TABLE_;\n  local_3c = (undefined *)strlen((char *)local_40);\n  ppbVar16 = &local_6c;\n  uVar18 = (uint)(byte)*str;\n  puStack_70 = (ushort *)0x1d265;\n  local_34 = __ctype_b_loc();\n  local_38 = (ushort **)*local_34;\n  bVar1 = *(byte *)((int)local_38 + uVar18 * 2 + 1);\n  while ((bVar1 & 0x20) != 0) {\n    str = (char *)((byte *)str + 1);\n    uVar18 = (uint)(byte)*str;\n    bVar1 = *(byte *)((int)local_38 + uVar18 * 2 + 1);\n  }\n  bVar21 = uVar18 == 0x2d;\n  if (bVar21) {\n    uVar18 = (uint)((byte *)str)[1];\n    str = (char *)((byte *)str + 1);\n  }\n  local_64 = (uint)bVar21;\n  if (base == 0) {\n    local_68 = 10;\n    base = 10;\n    local_54 = local_44[-0x5c];\nLAB_0001d6ea:\n    if ((int)(uint)(byte)local_54[uVar18] < base) goto LAB_0001d337;\nLAB_0001d2e4:\n    if (local_3c == (undefined *)0x0) {\nLAB_0001d320:\n      ppbVar17 = &local_6c;\n      if ((int)(uint)(byte)local_54[((byte *)str)[(int)local_3c]] < base) goto LAB_0001d337;\n    }\n    else {\n      ppbVar17 = &local_6c;\n      if (*(byte *)local_40 == *str) {\n        ppuVar13 = local_40;\n        pbVar5 = (byte *)str;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar13 = (ushort **)((int)ppuVar13 + 1);\n          if ((byte *)str + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar17 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar13);\n      }\n    }\nLAB_0001d770:\n    puVar6 = (undefined *)0xffffffff;\n    goto LAB_0001d775;\n  }\n  local_68 = base;\n  if (base < 0) {\n    base = -base;\n    local_68 = 10;\n    if (base < 0x25) goto LAB_0001d748;\n  }\n  else if (base < 0x25) {\nLAB_0001d748:\n    local_54 = local_44[-0x5c];\n    goto LAB_0001d6ea;\n  }\n  ppbVar17 = &local_6c;\n  if (0x3e < base) goto LAB_0001d770;\n  local_54 = local_44[-0x5c] + 0xd0;\n  if (base <= (int)(uint)(byte)local_54[uVar18]) goto LAB_0001d2e4;\nLAB_0001d337:\n  puVar6 = (undefined *)strlen(str);\n  local_30 = puVar6;\n  puVar7 = puVar6 + -1;\n  if (puVar7 == (undefined *)0x0) {\n    ppbVar16 = (byte **)&stack0xffffff84;\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    local_6c = (byte *)0x0;\n    local_30 = (undefined *)0x1;\n    local_5c = &puStack_70;\nLAB_0001d3c5:\n    local_50 = (ushort **)0x0;\n    puVar6 = (undefined *)0x0;\n    local_48 = local_5c;\n    local_58 = local_3c + -1;\n    do {\n      while( true ) {\n        local_34 = (ushort **)(uint)(byte)*str;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        str = (char *)((byte *)str + 1);\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }\n      if (local_3c != (undefined *)0x0) {\n        if (*str == *(byte *)local_40) {\n          local_4c = puVar6;\n          ppuVar13 = local_40;\n          pbVar5 = (byte *)str;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar13 = (ushort **)((int)ppuVar13 + 1);\n            if (pbVar5 == (byte *)str + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar13);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < base) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }\nLAB_0001d443:\n      if (local_50 != (ushort **)0x0) goto LAB_0001d756;\n      str = (char *)((byte *)str + (int)(local_58 + 1));\n      puVar6 = puVar6 + (int)local_58 + 1;\n      local_50 = local_48;\n    } while (puVar6 < local_30);\nLAB_0001d470:\n    local_30 = (undefined *)((int)local_48 - (int)local_5c);\n    ppbVar17 = ppbVar16;\n  }\n  else {\n    bVar1 = ((byte *)str)[(int)(puVar6 + -1)];\n    if (bVar1 == 0x40) {\n      local_30 = puVar7;\nLAB_0001d729:\n      local_6c = (byte *)str + (int)puVar6;\n    }\n    else {\n      if (base < 0xb) {\n        do {\n          puVar10 = puVar7;\n          if ((bVar1 & 0xdf) == 0x45) {\n            local_30 = puVar10;\n            puVar6 = puVar10 + 1;\n            goto LAB_0001d729;\n          }\n          puVar7 = puVar10 + -1;\n          if (puVar7 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = ((byte *)str)[(int)(puVar10 + -1)];\n        } while (bVar1 != 0x40);\n        local_30 = puVar7;\n        puVar6 = puVar10;\n        goto LAB_0001d729;\n      }\n      for (puVar10 = puVar6 + -2; puVar10 != (undefined *)0x0; puVar10 = puVar10 + -1) {\n        if (((byte *)str)[(int)(puVar7 + -1)] == 0x40) {\n          local_30 = puVar10;\n          puVar6 = puVar7;\n          goto LAB_0001d729;\n        }\n        puVar7 = puVar10;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar6 = puVar6 + 1;\n    }\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    if ((undefined *)0x7f00 < puVar6) {\n      local_5c = (ushort **)__gmp_tmp_reentrant_alloc(&__tmp_marker,(size_t)puVar6);\n      local_38 = (ushort **)*local_34;\n      goto LAB_0001d3c5;\n    }\n    iVar15 = -((uint)(puVar6 + 0x1b) & 0xfffffff0);\n    ppbVar16 = (byte **)((int)&local_6c + iVar15);\n    ppbVar17 = (byte **)((int)&local_6c + iVar15);\n    local_5c = (ushort **)((int)&local_60 + iVar15);\n    if (local_30 != (undefined *)0x0) goto LAB_0001d3c5;\n    local_48 = (ushort **)((int)&local_60 + iVar15);\n    local_50 = (ushort **)0x0;\n  }\n  ppuVar13 = (ushort **)local_60->_mp_prec;\n  uVar14 = (uint)((ulonglong)*(uint *)(local_44[-0x56] + base * 0x14 + 8) * ZEXT48(local_30) >> 0x20\n                 ) & 0x1ffffffc;\n  uVar18 = uVar14 + 8;\n  if (uVar18 < 0x7f01) {\n    iVar15 = -(uVar14 + 0x23 & 0xfffffff0);\n    local_40 = (ushort **)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n    ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n  }\n  else {\n    *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n    *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n    *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dabe;\n    local_40 = (ushort **)\n               __gmp_tmp_reentrant_alloc\n                         (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                          *(size_t *)((int)ppbVar17 + -0xc));\n  }\n  *(int *)((int)ppbVar17 + -4) = base;\n  *(undefined **)((int)ppbVar17 + -8) = local_30;\n  *(ushort ***)((int)ppbVar17 + -0xc) = local_5c;\n  *(ushort ***)((int)ppbVar17 + -0x10) = local_40;\n  *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d4cf;\n  puVar6 = (undefined *)\n           __gmpn_set_str(*(mp_ptr *)((int)ppbVar17 + -0x10),*(uchar **)((int)ppbVar17 + -0xc),\n                          *(size_t *)((int)ppbVar17 + -8),*(int *)((int)ppbVar17 + -4));\n  ppuVar4 = local_44;\n  p_Var3 = local_60;\n  if (puVar6 == (undefined *)0x0) {\n    local_60->_mp_size = 0;\n    local_60->_mp_exp = 0;\n    if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n      local_30 = puVar6;\n      *(tmp_reentrant_t **)((int)ppbVar17 + -0x10) = __tmp_marker;\n      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dadb;\n      __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar17 + -0x10));\n      puVar6 = local_30;\n      goto LAB_0001d775;\n    }\nLAB_0001d7d0:\n    puVar6 = (undefined *)0x0;\n  }\n  else {\n    local_3c = (undefined *)((int)ppuVar13 + 1);\n    if ((int)local_3c < (int)puVar6) {\n      local_58 = local_3c;\n      local_5c = (ushort **)(puVar6 + -(int)local_3c);\n      local_40 = local_40 + (int)(puVar6 + -(int)local_3c);\n      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;\nLAB_0001d4fd:\n      bVar1 = *local_6c;\n      local_30 = (undefined *)(uint)(bVar1 == 0x2d);\n      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);\n      uVar18 = (uint)(byte)local_54[*pbVar5];\n      ppbVar16 = ppbVar17;\n      if (local_68 <= (int)uVar18) {\nLAB_0001d756:\n        ppbVar17 = ppbVar16;\n        if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n          *(tmp_reentrant_t **)((int)ppbVar16 + -0x10) = __tmp_marker;\n          *(undefined4 *)((int)ppbVar16 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar16 + -0x10));\n        }\n        goto LAB_0001d770;\n      }\n      local_34 = (ushort **)(pbVar5 + 2);\n      uVar14 = (uint)(byte)local_54[pbVar5[1]];\n      if ((int)uVar14 < local_68) {\n        local_38 = ppuVar13;\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar12 = (ushort **)(pbVar5 + 2);\n        do {\n          uVar18 = uVar18 * local_68 + uVar14;\n          uVar14 = (uint)(byte)local_54[*(byte *)ppuVar12];\n          ppuVar12 = (ushort **)((int)ppuVar12 + 1);\n        } while ((int)uVar14 < local_68);\n      }\n      local_54 = local_30 + (uVar18 ^ (uint)-(int)local_30);\n      if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }\n      if (local_54 == (undefined *)0x0) goto LAB_0001d804;\n      uVar18 = ((int)ppuVar13 + 2U) * 8;\n      local_68 = (int)ppuVar13 + 2U;\n      if (uVar18 < 0x7f01) {\n        uVar18 = uVar18 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar17 + (0xf - uVar18)) & 0xfffffff0);\n        ppuVar13 = (ushort **)((uint)((int)ppbVar17 + uVar18 * -2 + 0xf) & 0xfffffff0);\n        ppbVar17 = (byte **)((int)ppbVar17 + uVar18 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n        *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n        *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db57;\n        local_50 = (ushort **)\n                   __gmp_tmp_reentrant_alloc\n                             (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                              *(size_t *)((int)ppbVar17 + -0xc));\n        *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n        *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n        *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db66;\n        ppuVar13 = (ushort **)\n                   __gmp_tmp_reentrant_alloc\n                             (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                              *(size_t *)((int)ppbVar17 + -0xc));\n      }\n      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));\n      *local_50 = (ushort *)base;\n      uVar18 = 0x1f;\n      if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar18 == 0; uVar18 = uVar18 - 1) {\n        }\n      }\n      uVar18 = 0x1e - (uVar18 ^ 0x1f);\n      if (uVar18 == 0xffffffff) {\n        iVar15 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar12 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar8 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar12 = local_34;\n          local_38 = ppuVar13;\n          *(undefined **)((int)ppbVar17 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0xc) = ppuVar12 + iVar8;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d69f;\n          __gmpn_sqr(*(mp_ptr *)((int)ppbVar17 + -0x10),*(mp_srcptr *)((int)ppbVar17 + -0xc),\n                     *(mp_size_t *)((int)ppbVar17 + -8));\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar8 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar8;\n            iVar15 = iVar8 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar15 = 0;\n            iVar8 = 0;\n          }\n          if (((uint)local_48 >> (uVar18 & 0x1f) & 1) != 0) {\n            *(int *)((int)ppbVar17 + -4) = base;\n            puVar7 = local_4c;\n            *(undefined **)((int)ppbVar17 + -8) = puVar6;\n            *(int *)((int)ppbVar17 + -0xc) = iVar15 + (int)local_38;\n            *(ushort ***)((int)ppbVar17 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar7 + 100);\n            *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d65b;\n            puVar9 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar9;\n            iVar15 = 0;\n            puVar6 = puVar6 + (puVar9 != (ushort *)0x0);\n            iVar8 = 0;\n          }\n          ppuVar13 = local_34;\n          uVar18 = uVar18 - 1;\n          ppuVar12 = local_38;\n          if (uVar18 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }\n      puVar7 = local_4c;\n      if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar12 = ppuVar12 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }\n      *(undefined **)((int)ppbVar17 + -8) = puVar6;\n      *(int *)((int)ppbVar17 + -0xc) = (int)ppuVar12 + iVar15;\n      *(ushort ***)((int)ppbVar17 + -0x10) = local_50;\n      pcVar2 = *(code **)(puVar7 + 0x28);\n      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d87c;\n      (*pcVar2)();\n      if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar18 = (int)puVar6 * 4 + 4;\n          if (uVar18 < 0x7f01) {\n            iVar15 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n            ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n          }\n          else {\n            *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n            *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n            *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)\n                       __gmp_tmp_reentrant_alloc\n                                 (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                                  *(size_t *)((int)ppbVar17 + -0xc));\n          }\n          ppuVar12 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar12;\n          *(int *)((int)ppbVar17 + -8) = (int)ppuVar12 * 4;\n          *(undefined4 *)((int)ppbVar17 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar17 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar17 + -0x10),*(int *)((int)ppbVar17 + -0xc),\n                 *(size_t *)((int)ppbVar17 + -8));\n          ppuVar13 = local_34;\n          puVar7 = local_4c;\n          *(undefined **)((int)ppbVar17 + -8) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13 + (int)ppuVar12;\n          pcVar2 = *(code **)(puVar7 + 0x28);\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_58 = puVar6;\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n        }\n        ppuVar13 = local_50;\n        puVar9 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar9) {\n          uVar18 = 0x1f;\n          if (puVar9 != (ushort *)0x0) {\n            for (; (uint)puVar9 >> uVar18 == 0; uVar18 = uVar18 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar17 + -4) = uVar18 ^ 0x1f;\n          *(undefined **)((int)ppbVar17 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0xc) = ppuVar13;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar13 = local_40;\n          puVar10 = local_4c;\n          *(uint *)((int)ppbVar17 + -0x14) = uVar18 ^ 0x1f;\n          puVar7 = local_58;\n          *(undefined **)((int)ppbVar17 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = ppuVar13;\n          *(ushort ***)((int)ppbVar17 + -0x20) = ppuVar13;\n          pcVar2 = *(code **)(puVar10 + 0x38);\n          *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1d9f3;\n          puVar9 = (ushort *)(*pcVar2)();\n          if (puVar9 != (ushort *)0x0) {\n            ppuVar13[(int)puVar7] = puVar9;\n            local_58 = puVar7 + 1;\n          }\n        }\n        local_34 = (ushort **)(local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar15 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          pvVar20 = (void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n          ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n        }\n        else {\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_34;\n          *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dba2;\n          pvVar20 = __gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc));\n        }\n        puVar7 = local_58;\n        *(undefined **)((int)ppbVar17 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar17 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar17 + -0x14) = puVar7;\n        puVar10 = local_3c;\n        ppuVar13 = (ushort **)(puVar7 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar17 + -0x18) = local_40;\n        local_38 = ppuVar13;\n        *(int *)((int)ppbVar17 + -0x1c) = (int)puVar10 - (int)ppuVar13;\n        *(void **)((int)ppbVar17 + -0x20) = pvVar20;\n        *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1da4a;\n        mVar11 = __gmpn_divrem(*(mp_ptr *)((int)ppbVar17 + -0x20),\n                               *(mp_size_t *)((int)ppbVar17 + -0x1c),\n                               *(mp_ptr *)((int)ppbVar17 + -0x18),\n                               *(mp_size_t *)((int)ppbVar17 + -0x14),\n                               *(mp_srcptr *)((int)ppbVar17 + -0x10),\n                               *(mp_size_t *)((int)ppbVar17 + -0xc));\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (mVar11 - (int)local_30));\n        pvVar19 = pvVar20;\n        puVar7 = local_3c;\n        if (mVar11 != 0) {\n          pvVar19 = (void *)((int)pvVar20 + 4);\n          *(mp_limb_t *)((int)pvVar20 + -4 + (int)local_34) = mVar11;\n        }\n      }\n      else {\n        local_38 = (ushort **)((int)(local_58 + (int)puVar6) * 4);\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar15 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          pvVar19 = (void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n          ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n        }\n        else {\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_38;\n          *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db83;\n          pvVar19 = __gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc));\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar17 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar17 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar17 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar17 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = local_40;\n        }\n        *(void **)((int)ppbVar17 + -0x20) = pvVar19;\n        *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1d8d6;\n        __gmpn_mul(*(mp_ptr *)((int)ppbVar17 + -0x20),*(mp_srcptr *)((int)ppbVar17 + -0x1c),\n                   *(mp_size_t *)((int)ppbVar17 + -0x18),*(mp_srcptr *)((int)ppbVar17 + -0x14),\n                   *(mp_size_t *)((int)ppbVar17 + -0x10));\n        puVar7 = (undefined *)\n                 ((int)local_34 - (uint)(*(int *)((int)pvVar19 + -4 + (int)local_38) == 0));\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar7));\n        if ((int)local_3c < (int)puVar7) {\n          pvVar19 = (void *)((int)pvVar19 + ((int)puVar7 - (int)local_3c) * 4);\n          puVar7 = local_3c;\n        }\n      }\n      local_3c = puVar7;\n      puVar10 = local_3c;\n      p_Var3 = local_60;\n      *(undefined **)((int)ppbVar17 + -8) = local_3c;\n      *(void **)((int)ppbVar17 + -0xc) = pvVar19;\n      puVar7 = local_4c;\n      *(mp_limb_t **)((int)ppbVar17 + -0x10) = p_Var3->_mp_d;\n      pcVar2 = *(code **)(puVar7 + 0x28);\n      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d91c;\n      (*pcVar2)();\n      puVar7 = (undefined *)-(int)puVar10;\n      if (local_64 == 0) {\n        puVar7 = puVar10;\n      }\n      local_60->_mp_exp = (mp_exp_t)puVar6;\n      local_60->_mp_size = (int)puVar7;\n      if (__tmp_marker == (tmp_reentrant_t *)0x0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }\n    }\n    else {\n      local_58 = puVar6;\n      local_5c = (ushort **)0x0;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar7 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar17 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar17 + -0xc) = local_40;\n      *(mp_limb_t **)((int)ppbVar17 + -0x10) = p_Var3->_mp_d;\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar7;\n      if (local_64 == 0) {\n        puVar6 = puVar7;\n      }\n      p_Var3->_mp_exp = (mp_exp_t)local_30;\n      p_Var3->_mp_size = (int)puVar6;\n      if (__tmp_marker == (tmp_reentrant_t *)0x0) goto LAB_0001d7d0;\n    }\n    *(tmp_reentrant_t **)((int)ppbVar17 + -0x10) = __tmp_marker;\n    *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d84e;\n    __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar17 + -0x10));\n    puVar6 = (undefined *)0x0;\n  }\nLAB_0001d775:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return (int)puVar6;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)((int)ppbVar17 + -4) = 0x1dbcb;\n  __stack_chk_fail_local();\n}\n\n" comment (function_definition "int __gmpf_set_str(mpf_ptr x,char *str,int base)\n\n{\n  byte bVar1;\n  code *pcVar2;\n  mpf_ptr p_Var3;\n  undefined **ppuVar4;\n  byte *pbVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  int iVar8;\n  ushort *puVar9;\n  undefined *puVar10;\n  mp_limb_t mVar11;\n  ushort **ppuVar12;\n  ushort **ppuVar13;\n  uint uVar14;\n  int iVar15;\n  byte **ppbVar16;\n  byte **ppbVar17;\n  uint uVar18;\n  void *pvVar19;\n  void *pvVar20;\n  int in_GS_OFFSET;\n  bool bVar21;\n  ushort *puStack_70;\n  byte *local_6c;\n  int local_68;\n  uint local_64;\n  mpf_ptr local_60;\n  ushort **local_5c;\n  undefined *local_58;\n  undefined *local_54;\n  ushort **local_50;\n  undefined *local_4c;\n  ushort **local_48;\n  undefined **local_44;\n  ushort **local_40;\n  undefined *local_3c;\n  ushort **local_38;\n  ushort **local_34;\n  undefined *local_30;\n  tmp_reentrant_t *__tmp_marker;\n  int local_20;\n  \n  local_60 = x;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_44 = &_GLOBAL_OFFSET_TABLE_;\n  local_40 = (ushort **)nl_langinfo(0x10000);\n  local_44 = &_GLOBAL_OFFSET_TABLE_;\n  local_3c = (undefined *)strlen((char *)local_40);\n  ppbVar16 = &local_6c;\n  uVar18 = (uint)(byte)*str;\n  puStack_70 = (ushort *)0x1d265;\n  local_34 = __ctype_b_loc();\n  local_38 = (ushort **)*local_34;\n  bVar1 = *(byte *)((int)local_38 + uVar18 * 2 + 1);\n  while ((bVar1 & 0x20) != 0) {\n    str = (char *)((byte *)str + 1);\n    uVar18 = (uint)(byte)*str;\n    bVar1 = *(byte *)((int)local_38 + uVar18 * 2 + 1);\n  }\n  bVar21 = uVar18 == 0x2d;\n  if (bVar21) {\n    uVar18 = (uint)((byte *)str)[1];\n    str = (char *)((byte *)str + 1);\n  }\n  local_64 = (uint)bVar21;\n  if (base == 0) {\n    local_68 = 10;\n    base = 10;\n    local_54 = local_44[-0x5c];\nLAB_0001d6ea:\n    if ((int)(uint)(byte)local_54[uVar18] < base) goto LAB_0001d337;\nLAB_0001d2e4:\n    if (local_3c == (undefined *)0x0) {\nLAB_0001d320:\n      ppbVar17 = &local_6c;\n      if ((int)(uint)(byte)local_54[((byte *)str)[(int)local_3c]] < base) goto LAB_0001d337;\n    }\n    else {\n      ppbVar17 = &local_6c;\n      if (*(byte *)local_40 == *str) {\n        ppuVar13 = local_40;\n        pbVar5 = (byte *)str;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar13 = (ushort **)((int)ppuVar13 + 1);\n          if ((byte *)str + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar17 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar13);\n      }\n    }\nLAB_0001d770:\n    puVar6 = (undefined *)0xffffffff;\n    goto LAB_0001d775;\n  }\n  local_68 = base;\n  if (base < 0) {\n    base = -base;\n    local_68 = 10;\n    if (base < 0x25) goto LAB_0001d748;\n  }\n  else if (base < 0x25) {\nLAB_0001d748:\n    local_54 = local_44[-0x5c];\n    goto LAB_0001d6ea;\n  }\n  ppbVar17 = &local_6c;\n  if (0x3e < base) goto LAB_0001d770;\n  local_54 = local_44[-0x5c] + 0xd0;\n  if (base <= (int)(uint)(byte)local_54[uVar18]) goto LAB_0001d2e4;\nLAB_0001d337:\n  puVar6 = (undefined *)strlen(str);\n  local_30 = puVar6;\n  puVar7 = puVar6 + -1;\n  if (puVar7 == (undefined *)0x0) {\n    ppbVar16 = (byte **)&stack0xffffff84;\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    local_6c = (byte *)0x0;\n    local_30 = (undefined *)0x1;\n    local_5c = &puStack_70;\nLAB_0001d3c5:\n    local_50 = (ushort **)0x0;\n    puVar6 = (undefined *)0x0;\n    local_48 = local_5c;\n    local_58 = local_3c + -1;\n    do {\n      while( true ) {\n        local_34 = (ushort **)(uint)(byte)*str;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        str = (char *)((byte *)str + 1);\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }\n      if (local_3c != (undefined *)0x0) {\n        if (*str == *(byte *)local_40) {\n          local_4c = puVar6;\n          ppuVar13 = local_40;\n          pbVar5 = (byte *)str;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar13 = (ushort **)((int)ppuVar13 + 1);\n            if (pbVar5 == (byte *)str + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar13);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < base) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }\nLAB_0001d443:\n      if (local_50 != (ushort **)0x0) goto LAB_0001d756;\n      str = (char *)((byte *)str + (int)(local_58 + 1));\n      puVar6 = puVar6 + (int)local_58 + 1;\n      local_50 = local_48;\n    } while (puVar6 < local_30);\nLAB_0001d470:\n    local_30 = (undefined *)((int)local_48 - (int)local_5c);\n    ppbVar17 = ppbVar16;\n  }\n  else {\n    bVar1 = ((byte *)str)[(int)(puVar6 + -1)];\n    if (bVar1 == 0x40) {\n      local_30 = puVar7;\nLAB_0001d729:\n      local_6c = (byte *)str + (int)puVar6;\n    }\n    else {\n      if (base < 0xb) {\n        do {\n          puVar10 = puVar7;\n          if ((bVar1 & 0xdf) == 0x45) {\n            local_30 = puVar10;\n            puVar6 = puVar10 + 1;\n            goto LAB_0001d729;\n          }\n          puVar7 = puVar10 + -1;\n          if (puVar7 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = ((byte *)str)[(int)(puVar10 + -1)];\n        } while (bVar1 != 0x40);\n        local_30 = puVar7;\n        puVar6 = puVar10;\n        goto LAB_0001d729;\n      }\n      for (puVar10 = puVar6 + -2; puVar10 != (undefined *)0x0; puVar10 = puVar10 + -1) {\n        if (((byte *)str)[(int)(puVar7 + -1)] == 0x40) {\n          local_30 = puVar10;\n          puVar6 = puVar7;\n          goto LAB_0001d729;\n        }\n        puVar7 = puVar10;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar6 = puVar6 + 1;\n    }\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    if ((undefined *)0x7f00 < puVar6) {\n      local_5c = (ushort **)__gmp_tmp_reentrant_alloc(&__tmp_marker,(size_t)puVar6);\n      local_38 = (ushort **)*local_34;\n      goto LAB_0001d3c5;\n    }\n    iVar15 = -((uint)(puVar6 + 0x1b) & 0xfffffff0);\n    ppbVar16 = (byte **)((int)&local_6c + iVar15);\n    ppbVar17 = (byte **)((int)&local_6c + iVar15);\n    local_5c = (ushort **)((int)&local_60 + iVar15);\n    if (local_30 != (undefined *)0x0) goto LAB_0001d3c5;\n    local_48 = (ushort **)((int)&local_60 + iVar15);\n    local_50 = (ushort **)0x0;\n  }\n  ppuVar13 = (ushort **)local_60->_mp_prec;\n  uVar14 = (uint)((ulonglong)*(uint *)(local_44[-0x56] + base * 0x14 + 8) * ZEXT48(local_30) >> 0x20\n                 ) & 0x1ffffffc;\n  uVar18 = uVar14 + 8;\n  if (uVar18 < 0x7f01) {\n    iVar15 = -(uVar14 + 0x23 & 0xfffffff0);\n    local_40 = (ushort **)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n    ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n  }\n  else {\n    *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n    *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n    *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dabe;\n    local_40 = (ushort **)\n               __gmp_tmp_reentrant_alloc\n                         (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                          *(size_t *)((int)ppbVar17 + -0xc));\n  }\n  *(int *)((int)ppbVar17 + -4) = base;\n  *(undefined **)((int)ppbVar17 + -8) = local_30;\n  *(ushort ***)((int)ppbVar17 + -0xc) = local_5c;\n  *(ushort ***)((int)ppbVar17 + -0x10) = local_40;\n  *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d4cf;\n  puVar6 = (undefined *)\n           __gmpn_set_str(*(mp_ptr *)((int)ppbVar17 + -0x10),*(uchar **)((int)ppbVar17 + -0xc),\n                          *(size_t *)((int)ppbVar17 + -8),*(int *)((int)ppbVar17 + -4));\n  ppuVar4 = local_44;\n  p_Var3 = local_60;\n  if (puVar6 == (undefined *)0x0) {\n    local_60->_mp_size = 0;\n    local_60->_mp_exp = 0;\n    if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n      local_30 = puVar6;\n      *(tmp_reentrant_t **)((int)ppbVar17 + -0x10) = __tmp_marker;\n      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dadb;\n      __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar17 + -0x10));\n      puVar6 = local_30;\n      goto LAB_0001d775;\n    }\nLAB_0001d7d0:\n    puVar6 = (undefined *)0x0;\n  }\n  else {\n    local_3c = (undefined *)((int)ppuVar13 + 1);\n    if ((int)local_3c < (int)puVar6) {\n      local_58 = local_3c;\n      local_5c = (ushort **)(puVar6 + -(int)local_3c);\n      local_40 = local_40 + (int)(puVar6 + -(int)local_3c);\n      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;\nLAB_0001d4fd:\n      bVar1 = *local_6c;\n      local_30 = (undefined *)(uint)(bVar1 == 0x2d);\n      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);\n      uVar18 = (uint)(byte)local_54[*pbVar5];\n      ppbVar16 = ppbVar17;\n      if (local_68 <= (int)uVar18) {\nLAB_0001d756:\n        ppbVar17 = ppbVar16;\n        if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n          *(tmp_reentrant_t **)((int)ppbVar16 + -0x10) = __tmp_marker;\n          *(undefined4 *)((int)ppbVar16 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar16 + -0x10));\n        }\n        goto LAB_0001d770;\n      }\n      local_34 = (ushort **)(pbVar5 + 2);\n      uVar14 = (uint)(byte)local_54[pbVar5[1]];\n      if ((int)uVar14 < local_68) {\n        local_38 = ppuVar13;\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar12 = (ushort **)(pbVar5 + 2);\n        do {\n          uVar18 = uVar18 * local_68 + uVar14;\n          uVar14 = (uint)(byte)local_54[*(byte *)ppuVar12];\n          ppuVar12 = (ushort **)((int)ppuVar12 + 1);\n        } while ((int)uVar14 < local_68);\n      }\n      local_54 = local_30 + (uVar18 ^ (uint)-(int)local_30);\n      if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }\n      if (local_54 == (undefined *)0x0) goto LAB_0001d804;\n      uVar18 = ((int)ppuVar13 + 2U) * 8;\n      local_68 = (int)ppuVar13 + 2U;\n      if (uVar18 < 0x7f01) {\n        uVar18 = uVar18 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar17 + (0xf - uVar18)) & 0xfffffff0);\n        ppuVar13 = (ushort **)((uint)((int)ppbVar17 + uVar18 * -2 + 0xf) & 0xfffffff0);\n        ppbVar17 = (byte **)((int)ppbVar17 + uVar18 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n        *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n        *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db57;\n        local_50 = (ushort **)\n                   __gmp_tmp_reentrant_alloc\n                             (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                              *(size_t *)((int)ppbVar17 + -0xc));\n        *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n        *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n        *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db66;\n        ppuVar13 = (ushort **)\n                   __gmp_tmp_reentrant_alloc\n                             (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                              *(size_t *)((int)ppbVar17 + -0xc));\n      }\n      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));\n      *local_50 = (ushort *)base;\n      uVar18 = 0x1f;\n      if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar18 == 0; uVar18 = uVar18 - 1) {\n        }\n      }\n      uVar18 = 0x1e - (uVar18 ^ 0x1f);\n      if (uVar18 == 0xffffffff) {\n        iVar15 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar12 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar8 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar12 = local_34;\n          local_38 = ppuVar13;\n          *(undefined **)((int)ppbVar17 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0xc) = ppuVar12 + iVar8;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d69f;\n          __gmpn_sqr(*(mp_ptr *)((int)ppbVar17 + -0x10),*(mp_srcptr *)((int)ppbVar17 + -0xc),\n                     *(mp_size_t *)((int)ppbVar17 + -8));\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar8 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar8;\n            iVar15 = iVar8 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar15 = 0;\n            iVar8 = 0;\n          }\n          if (((uint)local_48 >> (uVar18 & 0x1f) & 1) != 0) {\n            *(int *)((int)ppbVar17 + -4) = base;\n            puVar7 = local_4c;\n            *(undefined **)((int)ppbVar17 + -8) = puVar6;\n            *(int *)((int)ppbVar17 + -0xc) = iVar15 + (int)local_38;\n            *(ushort ***)((int)ppbVar17 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar7 + 100);\n            *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d65b;\n            puVar9 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar9;\n            iVar15 = 0;\n            puVar6 = puVar6 + (puVar9 != (ushort *)0x0);\n            iVar8 = 0;\n          }\n          ppuVar13 = local_34;\n          uVar18 = uVar18 - 1;\n          ppuVar12 = local_38;\n          if (uVar18 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }\n      puVar7 = local_4c;\n      if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar12 = ppuVar12 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }\n      *(undefined **)((int)ppbVar17 + -8) = puVar6;\n      *(int *)((int)ppbVar17 + -0xc) = (int)ppuVar12 + iVar15;\n      *(ushort ***)((int)ppbVar17 + -0x10) = local_50;\n      pcVar2 = *(code **)(puVar7 + 0x28);\n      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d87c;\n      (*pcVar2)();\n      if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar18 = (int)puVar6 * 4 + 4;\n          if (uVar18 < 0x7f01) {\n            iVar15 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n            ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n          }\n          else {\n            *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n            *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n            *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)\n                       __gmp_tmp_reentrant_alloc\n                                 (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                                  *(size_t *)((int)ppbVar17 + -0xc));\n          }\n          ppuVar12 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar12;\n          *(int *)((int)ppbVar17 + -8) = (int)ppuVar12 * 4;\n          *(undefined4 *)((int)ppbVar17 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar17 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar17 + -0x10),*(int *)((int)ppbVar17 + -0xc),\n                 *(size_t *)((int)ppbVar17 + -8));\n          ppuVar13 = local_34;\n          puVar7 = local_4c;\n          *(undefined **)((int)ppbVar17 + -8) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13 + (int)ppuVar12;\n          pcVar2 = *(code **)(puVar7 + 0x28);\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_58 = puVar6;\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n        }\n        ppuVar13 = local_50;\n        puVar9 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar9) {\n          uVar18 = 0x1f;\n          if (puVar9 != (ushort *)0x0) {\n            for (; (uint)puVar9 >> uVar18 == 0; uVar18 = uVar18 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar17 + -4) = uVar18 ^ 0x1f;\n          *(undefined **)((int)ppbVar17 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0xc) = ppuVar13;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar13 = local_40;\n          puVar10 = local_4c;\n          *(uint *)((int)ppbVar17 + -0x14) = uVar18 ^ 0x1f;\n          puVar7 = local_58;\n          *(undefined **)((int)ppbVar17 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = ppuVar13;\n          *(ushort ***)((int)ppbVar17 + -0x20) = ppuVar13;\n          pcVar2 = *(code **)(puVar10 + 0x38);\n          *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1d9f3;\n          puVar9 = (ushort *)(*pcVar2)();\n          if (puVar9 != (ushort *)0x0) {\n            ppuVar13[(int)puVar7] = puVar9;\n            local_58 = puVar7 + 1;\n          }\n        }\n        local_34 = (ushort **)(local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar15 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          pvVar20 = (void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n          ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n        }\n        else {\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_34;\n          *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dba2;\n          pvVar20 = __gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc));\n        }\n        puVar7 = local_58;\n        *(undefined **)((int)ppbVar17 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar17 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar17 + -0x14) = puVar7;\n        puVar10 = local_3c;\n        ppuVar13 = (ushort **)(puVar7 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar17 + -0x18) = local_40;\n        local_38 = ppuVar13;\n        *(int *)((int)ppbVar17 + -0x1c) = (int)puVar10 - (int)ppuVar13;\n        *(void **)((int)ppbVar17 + -0x20) = pvVar20;\n        *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1da4a;\n        mVar11 = __gmpn_divrem(*(mp_ptr *)((int)ppbVar17 + -0x20),\n                               *(mp_size_t *)((int)ppbVar17 + -0x1c),\n                               *(mp_ptr *)((int)ppbVar17 + -0x18),\n                               *(mp_size_t *)((int)ppbVar17 + -0x14),\n                               *(mp_srcptr *)((int)ppbVar17 + -0x10),\n                               *(mp_size_t *)((int)ppbVar17 + -0xc));\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (mVar11 - (int)local_30));\n        pvVar19 = pvVar20;\n        puVar7 = local_3c;\n        if (mVar11 != 0) {\n          pvVar19 = (void *)((int)pvVar20 + 4);\n          *(mp_limb_t *)((int)pvVar20 + -4 + (int)local_34) = mVar11;\n        }\n      }\n      else {\n        local_38 = (ushort **)((int)(local_58 + (int)puVar6) * 4);\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar15 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          pvVar19 = (void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n          ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n        }\n        else {\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_38;\n          *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db83;\n          pvVar19 = __gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc));\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar17 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar17 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar17 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar17 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = local_40;\n        }\n        *(void **)((int)ppbVar17 + -0x20) = pvVar19;\n        *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1d8d6;\n        __gmpn_mul(*(mp_ptr *)((int)ppbVar17 + -0x20),*(mp_srcptr *)((int)ppbVar17 + -0x1c),\n                   *(mp_size_t *)((int)ppbVar17 + -0x18),*(mp_srcptr *)((int)ppbVar17 + -0x14),\n                   *(mp_size_t *)((int)ppbVar17 + -0x10));\n        puVar7 = (undefined *)\n                 ((int)local_34 - (uint)(*(int *)((int)pvVar19 + -4 + (int)local_38) == 0));\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar7));\n        if ((int)local_3c < (int)puVar7) {\n          pvVar19 = (void *)((int)pvVar19 + ((int)puVar7 - (int)local_3c) * 4);\n          puVar7 = local_3c;\n        }\n      }\n      local_3c = puVar7;\n      puVar10 = local_3c;\n      p_Var3 = local_60;\n      *(undefined **)((int)ppbVar17 + -8) = local_3c;\n      *(void **)((int)ppbVar17 + -0xc) = pvVar19;\n      puVar7 = local_4c;\n      *(mp_limb_t **)((int)ppbVar17 + -0x10) = p_Var3->_mp_d;\n      pcVar2 = *(code **)(puVar7 + 0x28);\n      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d91c;\n      (*pcVar2)();\n      puVar7 = (undefined *)-(int)puVar10;\n      if (local_64 == 0) {\n        puVar7 = puVar10;\n      }\n      local_60->_mp_exp = (mp_exp_t)puVar6;\n      local_60->_mp_size = (int)puVar7;\n      if (__tmp_marker == (tmp_reentrant_t *)0x0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }\n    }\n    else {\n      local_58 = puVar6;\n      local_5c = (ushort **)0x0;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar7 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar17 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar17 + -0xc) = local_40;\n      *(mp_limb_t **)((int)ppbVar17 + -0x10) = p_Var3->_mp_d;\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar7;\n      if (local_64 == 0) {\n        puVar6 = puVar7;\n      }\n      p_Var3->_mp_exp = (mp_exp_t)local_30;\n      p_Var3->_mp_size = (int)puVar6;\n      if (__tmp_marker == (tmp_reentrant_t *)0x0) goto LAB_0001d7d0;\n    }\n    *(tmp_reentrant_t **)((int)ppbVar17 + -0x10) = __tmp_marker;\n    *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d84e;\n    __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar17 + -0x10));\n    puVar6 = (undefined *)0x0;\n  }\nLAB_0001d775:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return (int)puVar6;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)((int)ppbVar17 + -4) = 0x1dbcb;\n  __stack_chk_fail_local();\n}" primitive_type (function_declarator "__gmpf_set_str(mpf_ptr x,char *str,int base)" identifier (parameter_list "(mpf_ptr x,char *str,int base)" ( (parameter_declaration "mpf_ptr x" type_identifier identifier) , (parameter_declaration "char *str" primitive_type (pointer_declarator "*str" * identifier)) , (parameter_declaration "int base" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  code *pcVar2;\n  mpf_ptr p_Var3;\n  undefined **ppuVar4;\n  byte *pbVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  int iVar8;\n  ushort *puVar9;\n  undefined *puVar10;\n  mp_limb_t mVar11;\n  ushort **ppuVar12;\n  ushort **ppuVar13;\n  uint uVar14;\n  int iVar15;\n  byte **ppbVar16;\n  byte **ppbVar17;\n  uint uVar18;\n  void *pvVar19;\n  void *pvVar20;\n  int in_GS_OFFSET;\n  bool bVar21;\n  ushort *puStack_70;\n  byte *local_6c;\n  int local_68;\n  uint local_64;\n  mpf_ptr local_60;\n  ushort **local_5c;\n  undefined *local_58;\n  undefined *local_54;\n  ushort **local_50;\n  undefined *local_4c;\n  ushort **local_48;\n  undefined **local_44;\n  ushort **local_40;\n  undefined *local_3c;\n  ushort **local_38;\n  ushort **local_34;\n  undefined *local_30;\n  tmp_reentrant_t *__tmp_marker;\n  int local_20;\n  \n  local_60 = x;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_44 = &_GLOBAL_OFFSET_TABLE_;\n  local_40 = (ushort **)nl_langinfo(0x10000);\n  local_44 = &_GLOBAL_OFFSET_TABLE_;\n  local_3c = (undefined *)strlen((char *)local_40);\n  ppbVar16 = &local_6c;\n  uVar18 = (uint)(byte)*str;\n  puStack_70 = (ushort *)0x1d265;\n  local_34 = __ctype_b_loc();\n  local_38 = (ushort **)*local_34;\n  bVar1 = *(byte *)((int)local_38 + uVar18 * 2 + 1);\n  while ((bVar1 & 0x20) != 0) {\n    str = (char *)((byte *)str + 1);\n    uVar18 = (uint)(byte)*str;\n    bVar1 = *(byte *)((int)local_38 + uVar18 * 2 + 1);\n  }\n  bVar21 = uVar18 == 0x2d;\n  if (bVar21) {\n    uVar18 = (uint)((byte *)str)[1];\n    str = (char *)((byte *)str + 1);\n  }\n  local_64 = (uint)bVar21;\n  if (base == 0) {\n    local_68 = 10;\n    base = 10;\n    local_54 = local_44[-0x5c];\nLAB_0001d6ea:\n    if ((int)(uint)(byte)local_54[uVar18] < base) goto LAB_0001d337;\nLAB_0001d2e4:\n    if (local_3c == (undefined *)0x0) {\nLAB_0001d320:\n      ppbVar17 = &local_6c;\n      if ((int)(uint)(byte)local_54[((byte *)str)[(int)local_3c]] < base) goto LAB_0001d337;\n    }\n    else {\n      ppbVar17 = &local_6c;\n      if (*(byte *)local_40 == *str) {\n        ppuVar13 = local_40;\n        pbVar5 = (byte *)str;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar13 = (ushort **)((int)ppuVar13 + 1);\n          if ((byte *)str + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar17 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar13);\n      }\n    }\nLAB_0001d770:\n    puVar6 = (undefined *)0xffffffff;\n    goto LAB_0001d775;\n  }\n  local_68 = base;\n  if (base < 0) {\n    base = -base;\n    local_68 = 10;\n    if (base < 0x25) goto LAB_0001d748;\n  }\n  else if (base < 0x25) {\nLAB_0001d748:\n    local_54 = local_44[-0x5c];\n    goto LAB_0001d6ea;\n  }\n  ppbVar17 = &local_6c;\n  if (0x3e < base) goto LAB_0001d770;\n  local_54 = local_44[-0x5c] + 0xd0;\n  if (base <= (int)(uint)(byte)local_54[uVar18]) goto LAB_0001d2e4;\nLAB_0001d337:\n  puVar6 = (undefined *)strlen(str);\n  local_30 = puVar6;\n  puVar7 = puVar6 + -1;\n  if (puVar7 == (undefined *)0x0) {\n    ppbVar16 = (byte **)&stack0xffffff84;\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    local_6c = (byte *)0x0;\n    local_30 = (undefined *)0x1;\n    local_5c = &puStack_70;\nLAB_0001d3c5:\n    local_50 = (ushort **)0x0;\n    puVar6 = (undefined *)0x0;\n    local_48 = local_5c;\n    local_58 = local_3c + -1;\n    do {\n      while( true ) {\n        local_34 = (ushort **)(uint)(byte)*str;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        str = (char *)((byte *)str + 1);\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }\n      if (local_3c != (undefined *)0x0) {\n        if (*str == *(byte *)local_40) {\n          local_4c = puVar6;\n          ppuVar13 = local_40;\n          pbVar5 = (byte *)str;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar13 = (ushort **)((int)ppuVar13 + 1);\n            if (pbVar5 == (byte *)str + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar13);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < base) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }\nLAB_0001d443:\n      if (local_50 != (ushort **)0x0) goto LAB_0001d756;\n      str = (char *)((byte *)str + (int)(local_58 + 1));\n      puVar6 = puVar6 + (int)local_58 + 1;\n      local_50 = local_48;\n    } while (puVar6 < local_30);\nLAB_0001d470:\n    local_30 = (undefined *)((int)local_48 - (int)local_5c);\n    ppbVar17 = ppbVar16;\n  }\n  else {\n    bVar1 = ((byte *)str)[(int)(puVar6 + -1)];\n    if (bVar1 == 0x40) {\n      local_30 = puVar7;\nLAB_0001d729:\n      local_6c = (byte *)str + (int)puVar6;\n    }\n    else {\n      if (base < 0xb) {\n        do {\n          puVar10 = puVar7;\n          if ((bVar1 & 0xdf) == 0x45) {\n            local_30 = puVar10;\n            puVar6 = puVar10 + 1;\n            goto LAB_0001d729;\n          }\n          puVar7 = puVar10 + -1;\n          if (puVar7 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = ((byte *)str)[(int)(puVar10 + -1)];\n        } while (bVar1 != 0x40);\n        local_30 = puVar7;\n        puVar6 = puVar10;\n        goto LAB_0001d729;\n      }\n      for (puVar10 = puVar6 + -2; puVar10 != (undefined *)0x0; puVar10 = puVar10 + -1) {\n        if (((byte *)str)[(int)(puVar7 + -1)] == 0x40) {\n          local_30 = puVar10;\n          puVar6 = puVar7;\n          goto LAB_0001d729;\n        }\n        puVar7 = puVar10;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar6 = puVar6 + 1;\n    }\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    if ((undefined *)0x7f00 < puVar6) {\n      local_5c = (ushort **)__gmp_tmp_reentrant_alloc(&__tmp_marker,(size_t)puVar6);\n      local_38 = (ushort **)*local_34;\n      goto LAB_0001d3c5;\n    }\n    iVar15 = -((uint)(puVar6 + 0x1b) & 0xfffffff0);\n    ppbVar16 = (byte **)((int)&local_6c + iVar15);\n    ppbVar17 = (byte **)((int)&local_6c + iVar15);\n    local_5c = (ushort **)((int)&local_60 + iVar15);\n    if (local_30 != (undefined *)0x0) goto LAB_0001d3c5;\n    local_48 = (ushort **)((int)&local_60 + iVar15);\n    local_50 = (ushort **)0x0;\n  }\n  ppuVar13 = (ushort **)local_60->_mp_prec;\n  uVar14 = (uint)((ulonglong)*(uint *)(local_44[-0x56] + base * 0x14 + 8) * ZEXT48(local_30) >> 0x20\n                 ) & 0x1ffffffc;\n  uVar18 = uVar14 + 8;\n  if (uVar18 < 0x7f01) {\n    iVar15 = -(uVar14 + 0x23 & 0xfffffff0);\n    local_40 = (ushort **)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n    ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n  }\n  else {\n    *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n    *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n    *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dabe;\n    local_40 = (ushort **)\n               __gmp_tmp_reentrant_alloc\n                         (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                          *(size_t *)((int)ppbVar17 + -0xc));\n  }\n  *(int *)((int)ppbVar17 + -4) = base;\n  *(undefined **)((int)ppbVar17 + -8) = local_30;\n  *(ushort ***)((int)ppbVar17 + -0xc) = local_5c;\n  *(ushort ***)((int)ppbVar17 + -0x10) = local_40;\n  *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d4cf;\n  puVar6 = (undefined *)\n           __gmpn_set_str(*(mp_ptr *)((int)ppbVar17 + -0x10),*(uchar **)((int)ppbVar17 + -0xc),\n                          *(size_t *)((int)ppbVar17 + -8),*(int *)((int)ppbVar17 + -4));\n  ppuVar4 = local_44;\n  p_Var3 = local_60;\n  if (puVar6 == (undefined *)0x0) {\n    local_60->_mp_size = 0;\n    local_60->_mp_exp = 0;\n    if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n      local_30 = puVar6;\n      *(tmp_reentrant_t **)((int)ppbVar17 + -0x10) = __tmp_marker;\n      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dadb;\n      __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar17 + -0x10));\n      puVar6 = local_30;\n      goto LAB_0001d775;\n    }\nLAB_0001d7d0:\n    puVar6 = (undefined *)0x0;\n  }\n  else {\n    local_3c = (undefined *)((int)ppuVar13 + 1);\n    if ((int)local_3c < (int)puVar6) {\n      local_58 = local_3c;\n      local_5c = (ushort **)(puVar6 + -(int)local_3c);\n      local_40 = local_40 + (int)(puVar6 + -(int)local_3c);\n      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;\nLAB_0001d4fd:\n      bVar1 = *local_6c;\n      local_30 = (undefined *)(uint)(bVar1 == 0x2d);\n      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);\n      uVar18 = (uint)(byte)local_54[*pbVar5];\n      ppbVar16 = ppbVar17;\n      if (local_68 <= (int)uVar18) {\nLAB_0001d756:\n        ppbVar17 = ppbVar16;\n        if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n          *(tmp_reentrant_t **)((int)ppbVar16 + -0x10) = __tmp_marker;\n          *(undefined4 *)((int)ppbVar16 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar16 + -0x10));\n        }\n        goto LAB_0001d770;\n      }\n      local_34 = (ushort **)(pbVar5 + 2);\n      uVar14 = (uint)(byte)local_54[pbVar5[1]];\n      if ((int)uVar14 < local_68) {\n        local_38 = ppuVar13;\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar12 = (ushort **)(pbVar5 + 2);\n        do {\n          uVar18 = uVar18 * local_68 + uVar14;\n          uVar14 = (uint)(byte)local_54[*(byte *)ppuVar12];\n          ppuVar12 = (ushort **)((int)ppuVar12 + 1);\n        } while ((int)uVar14 < local_68);\n      }\n      local_54 = local_30 + (uVar18 ^ (uint)-(int)local_30);\n      if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }\n      if (local_54 == (undefined *)0x0) goto LAB_0001d804;\n      uVar18 = ((int)ppuVar13 + 2U) * 8;\n      local_68 = (int)ppuVar13 + 2U;\n      if (uVar18 < 0x7f01) {\n        uVar18 = uVar18 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar17 + (0xf - uVar18)) & 0xfffffff0);\n        ppuVar13 = (ushort **)((uint)((int)ppbVar17 + uVar18 * -2 + 0xf) & 0xfffffff0);\n        ppbVar17 = (byte **)((int)ppbVar17 + uVar18 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n        *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n        *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db57;\n        local_50 = (ushort **)\n                   __gmp_tmp_reentrant_alloc\n                             (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                              *(size_t *)((int)ppbVar17 + -0xc));\n        *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n        *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n        *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db66;\n        ppuVar13 = (ushort **)\n                   __gmp_tmp_reentrant_alloc\n                             (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                              *(size_t *)((int)ppbVar17 + -0xc));\n      }\n      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));\n      *local_50 = (ushort *)base;\n      uVar18 = 0x1f;\n      if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar18 == 0; uVar18 = uVar18 - 1) {\n        }\n      }\n      uVar18 = 0x1e - (uVar18 ^ 0x1f);\n      if (uVar18 == 0xffffffff) {\n        iVar15 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar12 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar8 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar12 = local_34;\n          local_38 = ppuVar13;\n          *(undefined **)((int)ppbVar17 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0xc) = ppuVar12 + iVar8;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d69f;\n          __gmpn_sqr(*(mp_ptr *)((int)ppbVar17 + -0x10),*(mp_srcptr *)((int)ppbVar17 + -0xc),\n                     *(mp_size_t *)((int)ppbVar17 + -8));\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar8 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar8;\n            iVar15 = iVar8 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar15 = 0;\n            iVar8 = 0;\n          }\n          if (((uint)local_48 >> (uVar18 & 0x1f) & 1) != 0) {\n            *(int *)((int)ppbVar17 + -4) = base;\n            puVar7 = local_4c;\n            *(undefined **)((int)ppbVar17 + -8) = puVar6;\n            *(int *)((int)ppbVar17 + -0xc) = iVar15 + (int)local_38;\n            *(ushort ***)((int)ppbVar17 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar7 + 100);\n            *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d65b;\n            puVar9 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar9;\n            iVar15 = 0;\n            puVar6 = puVar6 + (puVar9 != (ushort *)0x0);\n            iVar8 = 0;\n          }\n          ppuVar13 = local_34;\n          uVar18 = uVar18 - 1;\n          ppuVar12 = local_38;\n          if (uVar18 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }\n      puVar7 = local_4c;\n      if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar12 = ppuVar12 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }\n      *(undefined **)((int)ppbVar17 + -8) = puVar6;\n      *(int *)((int)ppbVar17 + -0xc) = (int)ppuVar12 + iVar15;\n      *(ushort ***)((int)ppbVar17 + -0x10) = local_50;\n      pcVar2 = *(code **)(puVar7 + 0x28);\n      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d87c;\n      (*pcVar2)();\n      if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar18 = (int)puVar6 * 4 + 4;\n          if (uVar18 < 0x7f01) {\n            iVar15 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n            ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n          }\n          else {\n            *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n            *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n            *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)\n                       __gmp_tmp_reentrant_alloc\n                                 (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                                  *(size_t *)((int)ppbVar17 + -0xc));\n          }\n          ppuVar12 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar12;\n          *(int *)((int)ppbVar17 + -8) = (int)ppuVar12 * 4;\n          *(undefined4 *)((int)ppbVar17 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar17 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar17 + -0x10),*(int *)((int)ppbVar17 + -0xc),\n                 *(size_t *)((int)ppbVar17 + -8));\n          ppuVar13 = local_34;\n          puVar7 = local_4c;\n          *(undefined **)((int)ppbVar17 + -8) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13 + (int)ppuVar12;\n          pcVar2 = *(code **)(puVar7 + 0x28);\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_58 = puVar6;\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n        }\n        ppuVar13 = local_50;\n        puVar9 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar9) {\n          uVar18 = 0x1f;\n          if (puVar9 != (ushort *)0x0) {\n            for (; (uint)puVar9 >> uVar18 == 0; uVar18 = uVar18 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar17 + -4) = uVar18 ^ 0x1f;\n          *(undefined **)((int)ppbVar17 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0xc) = ppuVar13;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar13 = local_40;\n          puVar10 = local_4c;\n          *(uint *)((int)ppbVar17 + -0x14) = uVar18 ^ 0x1f;\n          puVar7 = local_58;\n          *(undefined **)((int)ppbVar17 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = ppuVar13;\n          *(ushort ***)((int)ppbVar17 + -0x20) = ppuVar13;\n          pcVar2 = *(code **)(puVar10 + 0x38);\n          *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1d9f3;\n          puVar9 = (ushort *)(*pcVar2)();\n          if (puVar9 != (ushort *)0x0) {\n            ppuVar13[(int)puVar7] = puVar9;\n            local_58 = puVar7 + 1;\n          }\n        }\n        local_34 = (ushort **)(local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar15 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          pvVar20 = (void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n          ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n        }\n        else {\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_34;\n          *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dba2;\n          pvVar20 = __gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc));\n        }\n        puVar7 = local_58;\n        *(undefined **)((int)ppbVar17 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar17 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar17 + -0x14) = puVar7;\n        puVar10 = local_3c;\n        ppuVar13 = (ushort **)(puVar7 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar17 + -0x18) = local_40;\n        local_38 = ppuVar13;\n        *(int *)((int)ppbVar17 + -0x1c) = (int)puVar10 - (int)ppuVar13;\n        *(void **)((int)ppbVar17 + -0x20) = pvVar20;\n        *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1da4a;\n        mVar11 = __gmpn_divrem(*(mp_ptr *)((int)ppbVar17 + -0x20),\n                               *(mp_size_t *)((int)ppbVar17 + -0x1c),\n                               *(mp_ptr *)((int)ppbVar17 + -0x18),\n                               *(mp_size_t *)((int)ppbVar17 + -0x14),\n                               *(mp_srcptr *)((int)ppbVar17 + -0x10),\n                               *(mp_size_t *)((int)ppbVar17 + -0xc));\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (mVar11 - (int)local_30));\n        pvVar19 = pvVar20;\n        puVar7 = local_3c;\n        if (mVar11 != 0) {\n          pvVar19 = (void *)((int)pvVar20 + 4);\n          *(mp_limb_t *)((int)pvVar20 + -4 + (int)local_34) = mVar11;\n        }\n      }\n      else {\n        local_38 = (ushort **)((int)(local_58 + (int)puVar6) * 4);\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar15 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          pvVar19 = (void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n          ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n        }\n        else {\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_38;\n          *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db83;\n          pvVar19 = __gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc));\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar17 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar17 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar17 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar17 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = local_40;\n        }\n        *(void **)((int)ppbVar17 + -0x20) = pvVar19;\n        *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1d8d6;\n        __gmpn_mul(*(mp_ptr *)((int)ppbVar17 + -0x20),*(mp_srcptr *)((int)ppbVar17 + -0x1c),\n                   *(mp_size_t *)((int)ppbVar17 + -0x18),*(mp_srcptr *)((int)ppbVar17 + -0x14),\n                   *(mp_size_t *)((int)ppbVar17 + -0x10));\n        puVar7 = (undefined *)\n                 ((int)local_34 - (uint)(*(int *)((int)pvVar19 + -4 + (int)local_38) == 0));\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar7));\n        if ((int)local_3c < (int)puVar7) {\n          pvVar19 = (void *)((int)pvVar19 + ((int)puVar7 - (int)local_3c) * 4);\n          puVar7 = local_3c;\n        }\n      }\n      local_3c = puVar7;\n      puVar10 = local_3c;\n      p_Var3 = local_60;\n      *(undefined **)((int)ppbVar17 + -8) = local_3c;\n      *(void **)((int)ppbVar17 + -0xc) = pvVar19;\n      puVar7 = local_4c;\n      *(mp_limb_t **)((int)ppbVar17 + -0x10) = p_Var3->_mp_d;\n      pcVar2 = *(code **)(puVar7 + 0x28);\n      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d91c;\n      (*pcVar2)();\n      puVar7 = (undefined *)-(int)puVar10;\n      if (local_64 == 0) {\n        puVar7 = puVar10;\n      }\n      local_60->_mp_exp = (mp_exp_t)puVar6;\n      local_60->_mp_size = (int)puVar7;\n      if (__tmp_marker == (tmp_reentrant_t *)0x0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }\n    }\n    else {\n      local_58 = puVar6;\n      local_5c = (ushort **)0x0;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar7 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar17 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar17 + -0xc) = local_40;\n      *(mp_limb_t **)((int)ppbVar17 + -0x10) = p_Var3->_mp_d;\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar7;\n      if (local_64 == 0) {\n        puVar6 = puVar7;\n      }\n      p_Var3->_mp_exp = (mp_exp_t)local_30;\n      p_Var3->_mp_size = (int)puVar6;\n      if (__tmp_marker == (tmp_reentrant_t *)0x0) goto LAB_0001d7d0;\n    }\n    *(tmp_reentrant_t **)((int)ppbVar17 + -0x10) = __tmp_marker;\n    *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d84e;\n    __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar17 + -0x10));\n    puVar6 = (undefined *)0x0;\n  }\nLAB_0001d775:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return (int)puVar6;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined4 *)((int)ppbVar17 + -4) = 0x1dbcb;\n  __stack_chk_fail_local();\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "code *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "mpf_ptr p_Var3;" type_identifier identifier ;) (declaration "undefined **ppuVar4;" type_identifier (pointer_declarator "**ppuVar4" * (pointer_declarator "*ppuVar4" * identifier)) ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "ushort *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "mp_limb_t mVar11;" type_identifier identifier ;) (declaration "ushort **ppuVar12;" type_identifier (pointer_declarator "**ppuVar12" * (pointer_declarator "*ppuVar12" * identifier)) ;) (declaration "ushort **ppuVar13;" type_identifier (pointer_declarator "**ppuVar13" * (pointer_declarator "*ppuVar13" * identifier)) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "byte **ppbVar16;" type_identifier (pointer_declarator "**ppbVar16" * (pointer_declarator "*ppbVar16" * identifier)) ;) (declaration "byte **ppbVar17;" type_identifier (pointer_declarator "**ppbVar17" * (pointer_declarator "*ppbVar17" * identifier)) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "void *pvVar19;" primitive_type (pointer_declarator "*pvVar19" * identifier) ;) (declaration "void *pvVar20;" primitive_type (pointer_declarator "*pvVar20" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar21;" primitive_type identifier ;) (declaration "ushort *puStack_70;" type_identifier (pointer_declarator "*puStack_70" * identifier) ;) (declaration "byte *local_6c;" type_identifier (pointer_declarator "*local_6c" * identifier) ;) (declaration "int local_68;" primitive_type identifier ;) (declaration "uint local_64;" type_identifier identifier ;) (declaration "mpf_ptr local_60;" type_identifier identifier ;) (declaration "ushort **local_5c;" type_identifier (pointer_declarator "**local_5c" * (pointer_declarator "*local_5c" * identifier)) ;) (declaration "undefined *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "undefined *local_54;" type_identifier (pointer_declarator "*local_54" * identifier) ;) (declaration "ushort **local_50;" type_identifier (pointer_declarator "**local_50" * (pointer_declarator "*local_50" * identifier)) ;) (declaration "undefined *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "ushort **local_48;" type_identifier (pointer_declarator "**local_48" * (pointer_declarator "*local_48" * identifier)) ;) (declaration "undefined **local_44;" type_identifier (pointer_declarator "**local_44" * (pointer_declarator "*local_44" * identifier)) ;) (declaration "ushort **local_40;" type_identifier (pointer_declarator "**local_40" * (pointer_declarator "*local_40" * identifier)) ;) (declaration "undefined *local_3c;" type_identifier (pointer_declarator "*local_3c" * identifier) ;) (declaration "ushort **local_38;" type_identifier (pointer_declarator "**local_38" * (pointer_declarator "*local_38" * identifier)) ;) (declaration "ushort **local_34;" type_identifier (pointer_declarator "**local_34" * (pointer_declarator "*local_34" * identifier)) ;) (declaration "undefined *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "tmp_reentrant_t *__tmp_marker;" type_identifier (pointer_declarator "*__tmp_marker" * identifier) ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "local_60 = x;" (assignment_expression "local_60 = x" identifier = identifier) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_44 = &_GLOBAL_OFFSET_TABLE_;" (assignment_expression "local_44 = &_GLOBAL_OFFSET_TABLE_" identifier = (pointer_expression "&_GLOBAL_OFFSET_TABLE_" & identifier)) ;) (expression_statement "local_40 = (ushort **)nl_langinfo(0x10000);" (assignment_expression "local_40 = (ushort **)nl_langinfo(0x10000)" identifier = (cast_expression "(ushort **)nl_langinfo(0x10000)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "nl_langinfo(0x10000)" identifier (argument_list "(0x10000)" ( number_literal ))))) ;) (expression_statement "local_44 = &_GLOBAL_OFFSET_TABLE_;" (assignment_expression "local_44 = &_GLOBAL_OFFSET_TABLE_" identifier = (pointer_expression "&_GLOBAL_OFFSET_TABLE_" & identifier)) ;) (expression_statement "local_3c = (undefined *)strlen((char *)local_40);" (assignment_expression "local_3c = (undefined *)strlen((char *)local_40)" identifier = (cast_expression "(undefined *)strlen((char *)local_40)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "strlen((char *)local_40)" identifier (argument_list "((char *)local_40)" ( (cast_expression "(char *)local_40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))))) ;) (expression_statement "ppbVar16 = &local_6c;" (assignment_expression "ppbVar16 = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;) (expression_statement "uVar18 = (uint)(byte)*str;" (assignment_expression "uVar18 = (uint)(byte)*str" identifier = (binary_expression "(uint)(byte)*str" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * identifier)) ;) (expression_statement "puStack_70 = (ushort *)0x1d265;" (assignment_expression "puStack_70 = (ushort *)0x1d265" identifier = (cast_expression "(ushort *)0x1d265" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_34 = __ctype_b_loc();" (assignment_expression "local_34 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_38 = (ushort **)*local_34;" (assignment_expression "local_38 = (ushort **)*local_34" identifier = (cast_expression "(ushort **)*local_34" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*local_34" * identifier))) ;) (expression_statement "bVar1 = *(byte *)((int)local_38 + uVar18 * 2 + 1);" (assignment_expression "bVar1 = *(byte *)((int)local_38 + uVar18 * 2 + 1)" identifier = (pointer_expression "*(byte *)((int)local_38 + uVar18 * 2 + 1)" * (cast_expression "(byte *)((int)local_38 + uVar18 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + uVar18 * 2 + 1)" ( (binary_expression "(int)local_38 + uVar18 * 2 + 1" (binary_expression "(int)local_38 + uVar18 * 2" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar18 * 2" identifier * number_literal)) + number_literal) ))))) ;) (while_statement "while ((bVar1 & 0x20) != 0) {\n    str = (char *)((byte *)str + 1);\n    uVar18 = (uint)(byte)*str;\n    bVar1 = *(byte *)((int)local_38 + uVar18 * 2 + 1);\n  }" while (parenthesized_expression "((bVar1 & 0x20) != 0)" ( (binary_expression "(bVar1 & 0x20) != 0" (parenthesized_expression "(bVar1 & 0x20)" ( (binary_expression "bVar1 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    str = (char *)((byte *)str + 1);\n    uVar18 = (uint)(byte)*str;\n    bVar1 = *(byte *)((int)local_38 + uVar18 * 2 + 1);\n  }" { (expression_statement "str = (char *)((byte *)str + 1);" (assignment_expression "str = (char *)((byte *)str + 1)" identifier = (cast_expression "(char *)((byte *)str + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((byte *)str + 1)" ( (binary_expression "(byte *)str + 1" (cast_expression "(byte *)str" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) )))) ;) (expression_statement "uVar18 = (uint)(byte)*str;" (assignment_expression "uVar18 = (uint)(byte)*str" identifier = (binary_expression "(uint)(byte)*str" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) * identifier)) ;) (expression_statement "bVar1 = *(byte *)((int)local_38 + uVar18 * 2 + 1);" (assignment_expression "bVar1 = *(byte *)((int)local_38 + uVar18 * 2 + 1)" identifier = (pointer_expression "*(byte *)((int)local_38 + uVar18 * 2 + 1)" * (cast_expression "(byte *)((int)local_38 + uVar18 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + uVar18 * 2 + 1)" ( (binary_expression "(int)local_38 + uVar18 * 2 + 1" (binary_expression "(int)local_38 + uVar18 * 2" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar18 * 2" identifier * number_literal)) + number_literal) ))))) ;) })) (expression_statement "bVar21 = uVar18 == 0x2d;" (assignment_expression "bVar21 = uVar18 == 0x2d" identifier = (binary_expression "uVar18 == 0x2d" identifier == number_literal)) ;) (if_statement "if (bVar21) {\n    uVar18 = (uint)((byte *)str)[1];\n    str = (char *)((byte *)str + 1);\n  }" if (parenthesized_expression "(bVar21)" ( identifier )) (compound_statement "{\n    uVar18 = (uint)((byte *)str)[1];\n    str = (char *)((byte *)str + 1);\n  }" { (expression_statement "uVar18 = (uint)((byte *)str)[1];" (assignment_expression "uVar18 = (uint)((byte *)str)[1]" identifier = (subscript_expression "(uint)((byte *)str)[1]" (call_expression "(uint)((byte *)str)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((byte *)str)" ( (cast_expression "(byte *)str" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) [ number_literal ])) ;) (expression_statement "str = (char *)((byte *)str + 1);" (assignment_expression "str = (char *)((byte *)str + 1)" identifier = (cast_expression "(char *)((byte *)str + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((byte *)str + 1)" ( (binary_expression "(byte *)str + 1" (cast_expression "(byte *)str" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) )))) ;) })) (expression_statement "local_64 = (uint)bVar21;" (assignment_expression "local_64 = (uint)bVar21" identifier = (cast_expression "(uint)bVar21" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (base == 0) {\n    local_68 = 10;\n    base = 10;\n    local_54 = local_44[-0x5c];\nLAB_0001d6ea:\n    if ((int)(uint)(byte)local_54[uVar18] < base) goto LAB_0001d337;\nLAB_0001d2e4:\n    if (local_3c == (undefined *)0x0) {\nLAB_0001d320:\n      ppbVar17 = &local_6c;\n      if ((int)(uint)(byte)local_54[((byte *)str)[(int)local_3c]] < base) goto LAB_0001d337;\n    }\n    else {\n      ppbVar17 = &local_6c;\n      if (*(byte *)local_40 == *str) {\n        ppuVar13 = local_40;\n        pbVar5 = (byte *)str;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar13 = (ushort **)((int)ppuVar13 + 1);\n          if ((byte *)str + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar17 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar13);\n      }\n    }\nLAB_0001d770:\n    puVar6 = (undefined *)0xffffffff;\n    goto LAB_0001d775;\n  }" if (parenthesized_expression "(base == 0)" ( (binary_expression "base == 0" identifier == number_literal) )) (compound_statement "{\n    local_68 = 10;\n    base = 10;\n    local_54 = local_44[-0x5c];\nLAB_0001d6ea:\n    if ((int)(uint)(byte)local_54[uVar18] < base) goto LAB_0001d337;\nLAB_0001d2e4:\n    if (local_3c == (undefined *)0x0) {\nLAB_0001d320:\n      ppbVar17 = &local_6c;\n      if ((int)(uint)(byte)local_54[((byte *)str)[(int)local_3c]] < base) goto LAB_0001d337;\n    }\n    else {\n      ppbVar17 = &local_6c;\n      if (*(byte *)local_40 == *str) {\n        ppuVar13 = local_40;\n        pbVar5 = (byte *)str;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar13 = (ushort **)((int)ppuVar13 + 1);\n          if ((byte *)str + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar17 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar13);\n      }\n    }\nLAB_0001d770:\n    puVar6 = (undefined *)0xffffffff;\n    goto LAB_0001d775;\n  }" { (expression_statement "local_68 = 10;" (assignment_expression "local_68 = 10" identifier = number_literal) ;) (expression_statement "base = 10;" (assignment_expression "base = 10" identifier = number_literal) ;) (expression_statement "local_54 = local_44[-0x5c];" (assignment_expression "local_54 = local_44[-0x5c]" identifier = (subscript_expression "local_44[-0x5c]" identifier [ number_literal ])) ;) (labeled_statement "LAB_0001d6ea:\n    if ((int)(uint)(byte)local_54[uVar18] < base) goto LAB_0001d337;" statement_identifier : (if_statement "if ((int)(uint)(byte)local_54[uVar18] < base) goto LAB_0001d337;" if (parenthesized_expression "((int)(uint)(byte)local_54[uVar18] < base)" ( (binary_expression "(int)(uint)(byte)local_54[uVar18] < base" (cast_expression "(int)(uint)(byte)local_54[uVar18]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)(byte)local_54[uVar18]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_54[uVar18]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_54[uVar18]" identifier [ identifier ])))) < identifier) )) (goto_statement "goto LAB_0001d337;" goto statement_identifier ;))) (labeled_statement "LAB_0001d2e4:\n    if (local_3c == (undefined *)0x0) {\nLAB_0001d320:\n      ppbVar17 = &local_6c;\n      if ((int)(uint)(byte)local_54[((byte *)str)[(int)local_3c]] < base) goto LAB_0001d337;\n    }\n    else {\n      ppbVar17 = &local_6c;\n      if (*(byte *)local_40 == *str) {\n        ppuVar13 = local_40;\n        pbVar5 = (byte *)str;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar13 = (ushort **)((int)ppuVar13 + 1);\n          if ((byte *)str + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar17 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar13);\n      }\n    }" statement_identifier : (if_statement "if (local_3c == (undefined *)0x0) {\nLAB_0001d320:\n      ppbVar17 = &local_6c;\n      if ((int)(uint)(byte)local_54[((byte *)str)[(int)local_3c]] < base) goto LAB_0001d337;\n    }\n    else {\n      ppbVar17 = &local_6c;\n      if (*(byte *)local_40 == *str) {\n        ppuVar13 = local_40;\n        pbVar5 = (byte *)str;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar13 = (ushort **)((int)ppuVar13 + 1);\n          if ((byte *)str + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar17 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar13);\n      }\n    }" if (parenthesized_expression "(local_3c == (undefined *)0x0)" ( (binary_expression "local_3c == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0001d320:\n      ppbVar17 = &local_6c;\n      if ((int)(uint)(byte)local_54[((byte *)str)[(int)local_3c]] < base) goto LAB_0001d337;\n    }" { (labeled_statement "LAB_0001d320:\n      ppbVar17 = &local_6c;" statement_identifier : (expression_statement "ppbVar17 = &local_6c;" (assignment_expression "ppbVar17 = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;)) (if_statement "if ((int)(uint)(byte)local_54[((byte *)str)[(int)local_3c]] < base) goto LAB_0001d337;" if (parenthesized_expression "((int)(uint)(byte)local_54[((byte *)str)[(int)local_3c]] < base)" ( (binary_expression "(int)(uint)(byte)local_54[((byte *)str)[(int)local_3c]] < base" (cast_expression "(int)(uint)(byte)local_54[((byte *)str)[(int)local_3c]]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)(byte)local_54[((byte *)str)[(int)local_3c]]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_54[((byte *)str)[(int)local_3c]]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_54[((byte *)str)[(int)local_3c]]" identifier [ (subscript_expression "((byte *)str)[(int)local_3c]" (parenthesized_expression "((byte *)str)" ( (cast_expression "(byte *)str" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) [ (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) ]) ])))) < identifier) )) (goto_statement "goto LAB_0001d337;" goto statement_identifier ;)) }) (else_clause "else {\n      ppbVar17 = &local_6c;\n      if (*(byte *)local_40 == *str) {\n        ppuVar13 = local_40;\n        pbVar5 = (byte *)str;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar13 = (ushort **)((int)ppuVar13 + 1);\n          if ((byte *)str + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar17 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar13);\n      }\n    }" else (compound_statement "{\n      ppbVar17 = &local_6c;\n      if (*(byte *)local_40 == *str) {\n        ppuVar13 = local_40;\n        pbVar5 = (byte *)str;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar13 = (ushort **)((int)ppuVar13 + 1);\n          if ((byte *)str + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar17 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar13);\n      }\n    }" { (expression_statement "ppbVar17 = &local_6c;" (assignment_expression "ppbVar17 = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;) (if_statement "if (*(byte *)local_40 == *str) {\n        ppuVar13 = local_40;\n        pbVar5 = (byte *)str;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar13 = (ushort **)((int)ppuVar13 + 1);\n          if ((byte *)str + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar17 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar13);\n      }" if (parenthesized_expression "(*(byte *)local_40 == *str)" ( (binary_expression "*(byte *)local_40 == *str" (pointer_expression "*(byte *)local_40" * (cast_expression "(byte *)local_40" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*str" * identifier)) )) (compound_statement "{\n        ppuVar13 = local_40;\n        pbVar5 = (byte *)str;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar13 = (ushort **)((int)ppuVar13 + 1);\n          if ((byte *)str + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar17 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar13);\n      }" { (expression_statement "ppuVar13 = local_40;" (assignment_expression "ppuVar13 = local_40" identifier = identifier) ;) (expression_statement "pbVar5 = (byte *)str;" (assignment_expression "pbVar5 = (byte *)str" identifier = (cast_expression "(byte *)str" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar13 = (ushort **)((int)ppuVar13 + 1);\n          if ((byte *)str + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar17 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar13);" do (compound_statement "{\n          pbVar5 = pbVar5 + 1;\n          ppuVar13 = (ushort **)((int)ppuVar13 + 1);\n          if ((byte *)str + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar17 = &local_6c;\n        }" { (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ;) (expression_statement "ppuVar13 = (ushort **)((int)ppuVar13 + 1);" (assignment_expression "ppuVar13 = (ushort **)((int)ppuVar13 + 1)" identifier = (cast_expression "(ushort **)((int)ppuVar13 + 1)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar13 + 1)" ( (binary_expression "(int)ppuVar13 + 1" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((byte *)str + (int)local_3c == pbVar5) goto LAB_0001d320;" if (parenthesized_expression "((byte *)str + (int)local_3c == pbVar5)" ( (binary_expression "(byte *)str + (int)local_3c == pbVar5" (binary_expression "(byte *)str + (int)local_3c" (cast_expression "(byte *)str" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier)) == identifier) )) (goto_statement "goto LAB_0001d320;" goto statement_identifier ;)) (expression_statement "ppbVar17 = &local_6c;" (assignment_expression "ppbVar17 = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;) }) while (parenthesized_expression "(*pbVar5 == *(byte *)ppuVar13)" ( (binary_expression "*pbVar5 == *(byte *)ppuVar13" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*(byte *)ppuVar13" * (cast_expression "(byte *)ppuVar13" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) ;) })) })))) (labeled_statement "LAB_0001d770:\n    puVar6 = (undefined *)0xffffffff;" statement_identifier : (expression_statement "puVar6 = (undefined *)0xffffffff;" (assignment_expression "puVar6 = (undefined *)0xffffffff" identifier = (cast_expression "(undefined *)0xffffffff" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (goto_statement "goto LAB_0001d775;" goto statement_identifier ;) })) (expression_statement "local_68 = base;" (assignment_expression "local_68 = base" identifier = identifier) ;) (if_statement "if (base < 0) {\n    base = -base;\n    local_68 = 10;\n    if (base < 0x25) goto LAB_0001d748;\n  }\n  else if (base < 0x25) {\nLAB_0001d748:\n    local_54 = local_44[-0x5c];\n    goto LAB_0001d6ea;\n  }" if (parenthesized_expression "(base < 0)" ( (binary_expression "base < 0" identifier < number_literal) )) (compound_statement "{\n    base = -base;\n    local_68 = 10;\n    if (base < 0x25) goto LAB_0001d748;\n  }" { (expression_statement "base = -base;" (assignment_expression "base = -base" identifier = (unary_expression "-base" - identifier)) ;) (expression_statement "local_68 = 10;" (assignment_expression "local_68 = 10" identifier = number_literal) ;) (if_statement "if (base < 0x25) goto LAB_0001d748;" if (parenthesized_expression "(base < 0x25)" ( (binary_expression "base < 0x25" identifier < number_literal) )) (goto_statement "goto LAB_0001d748;" goto statement_identifier ;)) }) (else_clause "else if (base < 0x25) {\nLAB_0001d748:\n    local_54 = local_44[-0x5c];\n    goto LAB_0001d6ea;\n  }" else (if_statement "if (base < 0x25) {\nLAB_0001d748:\n    local_54 = local_44[-0x5c];\n    goto LAB_0001d6ea;\n  }" if (parenthesized_expression "(base < 0x25)" ( (binary_expression "base < 0x25" identifier < number_literal) )) (compound_statement "{\nLAB_0001d748:\n    local_54 = local_44[-0x5c];\n    goto LAB_0001d6ea;\n  }" { (labeled_statement "LAB_0001d748:\n    local_54 = local_44[-0x5c];" statement_identifier : (expression_statement "local_54 = local_44[-0x5c];" (assignment_expression "local_54 = local_44[-0x5c]" identifier = (subscript_expression "local_44[-0x5c]" identifier [ number_literal ])) ;)) (goto_statement "goto LAB_0001d6ea;" goto statement_identifier ;) })))) (expression_statement "ppbVar17 = &local_6c;" (assignment_expression "ppbVar17 = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;) (if_statement "if (0x3e < base) goto LAB_0001d770;" if (parenthesized_expression "(0x3e < base)" ( (binary_expression "0x3e < base" number_literal < identifier) )) (goto_statement "goto LAB_0001d770;" goto statement_identifier ;)) (expression_statement "local_54 = local_44[-0x5c] + 0xd0;" (assignment_expression "local_54 = local_44[-0x5c] + 0xd0" identifier = (binary_expression "local_44[-0x5c] + 0xd0" (subscript_expression "local_44[-0x5c]" identifier [ number_literal ]) + number_literal)) ;) (if_statement "if (base <= (int)(uint)(byte)local_54[uVar18]) goto LAB_0001d2e4;" if (parenthesized_expression "(base <= (int)(uint)(byte)local_54[uVar18])" ( (binary_expression "base <= (int)(uint)(byte)local_54[uVar18]" identifier <= (cast_expression "(int)(uint)(byte)local_54[uVar18]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)(byte)local_54[uVar18]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_54[uVar18]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_54[uVar18]" identifier [ identifier ]))))) )) (goto_statement "goto LAB_0001d2e4;" goto statement_identifier ;)) (labeled_statement "LAB_0001d337:\n  puVar6 = (undefined *)strlen(str);" statement_identifier : (expression_statement "puVar6 = (undefined *)strlen(str);" (assignment_expression "puVar6 = (undefined *)strlen(str)" identifier = (cast_expression "(undefined *)strlen(str)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "strlen(str)" identifier (argument_list "(str)" ( identifier ))))) ;)) (expression_statement "local_30 = puVar6;" (assignment_expression "local_30 = puVar6" identifier = identifier) ;) (expression_statement "puVar7 = puVar6 + -1;" (assignment_expression "puVar7 = puVar6 + -1" identifier = (binary_expression "puVar6 + -1" identifier + number_literal)) ;) (if_statement "if (puVar7 == (undefined *)0x0) {\n    ppbVar16 = (byte **)&stack0xffffff84;\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    local_6c = (byte *)0x0;\n    local_30 = (undefined *)0x1;\n    local_5c = &puStack_70;\nLAB_0001d3c5:\n    local_50 = (ushort **)0x0;\n    puVar6 = (undefined *)0x0;\n    local_48 = local_5c;\n    local_58 = local_3c + -1;\n    do {\n      while( true ) {\n        local_34 = (ushort **)(uint)(byte)*str;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        str = (char *)((byte *)str + 1);\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }\n      if (local_3c != (undefined *)0x0) {\n        if (*str == *(byte *)local_40) {\n          local_4c = puVar6;\n          ppuVar13 = local_40;\n          pbVar5 = (byte *)str;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar13 = (ushort **)((int)ppuVar13 + 1);\n            if (pbVar5 == (byte *)str + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar13);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < base) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }\nLAB_0001d443:\n      if (local_50 != (ushort **)0x0) goto LAB_0001d756;\n      str = (char *)((byte *)str + (int)(local_58 + 1));\n      puVar6 = puVar6 + (int)local_58 + 1;\n      local_50 = local_48;\n    } while (puVar6 < local_30);\nLAB_0001d470:\n    local_30 = (undefined *)((int)local_48 - (int)local_5c);\n    ppbVar17 = ppbVar16;\n  }\n  else {\n    bVar1 = ((byte *)str)[(int)(puVar6 + -1)];\n    if (bVar1 == 0x40) {\n      local_30 = puVar7;\nLAB_0001d729:\n      local_6c = (byte *)str + (int)puVar6;\n    }\n    else {\n      if (base < 0xb) {\n        do {\n          puVar10 = puVar7;\n          if ((bVar1 & 0xdf) == 0x45) {\n            local_30 = puVar10;\n            puVar6 = puVar10 + 1;\n            goto LAB_0001d729;\n          }\n          puVar7 = puVar10 + -1;\n          if (puVar7 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = ((byte *)str)[(int)(puVar10 + -1)];\n        } while (bVar1 != 0x40);\n        local_30 = puVar7;\n        puVar6 = puVar10;\n        goto LAB_0001d729;\n      }\n      for (puVar10 = puVar6 + -2; puVar10 != (undefined *)0x0; puVar10 = puVar10 + -1) {\n        if (((byte *)str)[(int)(puVar7 + -1)] == 0x40) {\n          local_30 = puVar10;\n          puVar6 = puVar7;\n          goto LAB_0001d729;\n        }\n        puVar7 = puVar10;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar6 = puVar6 + 1;\n    }\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    if ((undefined *)0x7f00 < puVar6) {\n      local_5c = (ushort **)__gmp_tmp_reentrant_alloc(&__tmp_marker,(size_t)puVar6);\n      local_38 = (ushort **)*local_34;\n      goto LAB_0001d3c5;\n    }\n    iVar15 = -((uint)(puVar6 + 0x1b) & 0xfffffff0);\n    ppbVar16 = (byte **)((int)&local_6c + iVar15);\n    ppbVar17 = (byte **)((int)&local_6c + iVar15);\n    local_5c = (ushort **)((int)&local_60 + iVar15);\n    if (local_30 != (undefined *)0x0) goto LAB_0001d3c5;\n    local_48 = (ushort **)((int)&local_60 + iVar15);\n    local_50 = (ushort **)0x0;\n  }" if (parenthesized_expression "(puVar7 == (undefined *)0x0)" ( (binary_expression "puVar7 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    ppbVar16 = (byte **)&stack0xffffff84;\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    local_6c = (byte *)0x0;\n    local_30 = (undefined *)0x1;\n    local_5c = &puStack_70;\nLAB_0001d3c5:\n    local_50 = (ushort **)0x0;\n    puVar6 = (undefined *)0x0;\n    local_48 = local_5c;\n    local_58 = local_3c + -1;\n    do {\n      while( true ) {\n        local_34 = (ushort **)(uint)(byte)*str;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        str = (char *)((byte *)str + 1);\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }\n      if (local_3c != (undefined *)0x0) {\n        if (*str == *(byte *)local_40) {\n          local_4c = puVar6;\n          ppuVar13 = local_40;\n          pbVar5 = (byte *)str;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar13 = (ushort **)((int)ppuVar13 + 1);\n            if (pbVar5 == (byte *)str + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar13);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < base) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }\nLAB_0001d443:\n      if (local_50 != (ushort **)0x0) goto LAB_0001d756;\n      str = (char *)((byte *)str + (int)(local_58 + 1));\n      puVar6 = puVar6 + (int)local_58 + 1;\n      local_50 = local_48;\n    } while (puVar6 < local_30);\nLAB_0001d470:\n    local_30 = (undefined *)((int)local_48 - (int)local_5c);\n    ppbVar17 = ppbVar16;\n  }" { (expression_statement "ppbVar16 = (byte **)&stack0xffffff84;" (assignment_expression "ppbVar16 = (byte **)&stack0xffffff84" identifier = (cast_expression "(byte **)&stack0xffffff84" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&stack0xffffff84" & identifier))) ;) (expression_statement "__tmp_marker = (tmp_reentrant_t *)0x0;" (assignment_expression "__tmp_marker = (tmp_reentrant_t *)0x0" identifier = (cast_expression "(tmp_reentrant_t *)0x0" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_6c = (byte *)0x0;" (assignment_expression "local_6c = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_30 = (undefined *)0x1;" (assignment_expression "local_30 = (undefined *)0x1" identifier = (cast_expression "(undefined *)0x1" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_5c = &puStack_70;" (assignment_expression "local_5c = &puStack_70" identifier = (pointer_expression "&puStack_70" & identifier)) ;) (labeled_statement "LAB_0001d3c5:\n    local_50 = (ushort **)0x0;" statement_identifier : (expression_statement "local_50 = (ushort **)0x0;" (assignment_expression "local_50 = (ushort **)0x0" identifier = (cast_expression "(ushort **)0x0" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;)) (expression_statement "puVar6 = (undefined *)0x0;" (assignment_expression "puVar6 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_48 = local_5c;" (assignment_expression "local_48 = local_5c" identifier = identifier) ;) (expression_statement "local_58 = local_3c + -1;" (assignment_expression "local_58 = local_3c + -1" identifier = (binary_expression "local_3c + -1" identifier + number_literal)) ;) (do_statement "do {\n      while( true ) {\n        local_34 = (ushort **)(uint)(byte)*str;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        str = (char *)((byte *)str + 1);\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }\n      if (local_3c != (undefined *)0x0) {\n        if (*str == *(byte *)local_40) {\n          local_4c = puVar6;\n          ppuVar13 = local_40;\n          pbVar5 = (byte *)str;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar13 = (ushort **)((int)ppuVar13 + 1);\n            if (pbVar5 == (byte *)str + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar13);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < base) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }\nLAB_0001d443:\n      if (local_50 != (ushort **)0x0) goto LAB_0001d756;\n      str = (char *)((byte *)str + (int)(local_58 + 1));\n      puVar6 = puVar6 + (int)local_58 + 1;\n      local_50 = local_48;\n    } while (puVar6 < local_30);" do (compound_statement "{\n      while( true ) {\n        local_34 = (ushort **)(uint)(byte)*str;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        str = (char *)((byte *)str + 1);\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }\n      if (local_3c != (undefined *)0x0) {\n        if (*str == *(byte *)local_40) {\n          local_4c = puVar6;\n          ppuVar13 = local_40;\n          pbVar5 = (byte *)str;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar13 = (ushort **)((int)ppuVar13 + 1);\n            if (pbVar5 == (byte *)str + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar13);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < base) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }\nLAB_0001d443:\n      if (local_50 != (ushort **)0x0) goto LAB_0001d756;\n      str = (char *)((byte *)str + (int)(local_58 + 1));\n      puVar6 = puVar6 + (int)local_58 + 1;\n      local_50 = local_48;\n    }" { (while_statement "while( true ) {\n        local_34 = (ushort **)(uint)(byte)*str;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        str = (char *)((byte *)str + 1);\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        local_34 = (ushort **)(uint)(byte)*str;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        str = (char *)((byte *)str + 1);\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }" { (expression_statement "local_34 = (ushort **)(uint)(byte)*str;" (assignment_expression "local_34 = (ushort **)(uint)(byte)*str" identifier = (binary_expression "(ushort **)(uint)(byte)*str" (cast_expression "(ushort **)(uint)(byte)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier )))) * identifier)) ;) (if_statement "if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;" if (parenthesized_expression "((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0)" ( (binary_expression "(*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20)" ( (binary_expression "*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20" (pointer_expression "*(byte *)((int)local_38 + (int)local_34 * 2 + 1)" * (cast_expression "(byte *)((int)local_38 + (int)local_34 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + (int)local_34 * 2 + 1)" ( (binary_expression "(int)local_38 + (int)local_34 * 2 + 1" (binary_expression "(int)local_38 + (int)local_34 * 2" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_34 * 2" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0001d3e0:\n        str = (char *)((byte *)str + 1);" statement_identifier : (expression_statement "str = (char *)((byte *)str + 1);" (assignment_expression "str = (char *)((byte *)str + 1)" identifier = (cast_expression "(char *)((byte *)str + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((byte *)str + 1)" ( (binary_expression "(byte *)str + 1" (cast_expression "(byte *)str" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) )))) ;)) (expression_statement "puVar6 = puVar6 + 1;" (assignment_expression "puVar6 = puVar6 + 1" identifier = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) (if_statement "if (local_30 <= puVar6) goto LAB_0001d470;" if (parenthesized_expression "(local_30 <= puVar6)" ( (binary_expression "local_30 <= puVar6" identifier <= identifier) )) (goto_statement "goto LAB_0001d470;" goto statement_identifier ;)) })) (if_statement "if (local_3c != (undefined *)0x0) {\n        if (*str == *(byte *)local_40) {\n          local_4c = puVar6;\n          ppuVar13 = local_40;\n          pbVar5 = (byte *)str;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar13 = (ushort **)((int)ppuVar13 + 1);\n            if (pbVar5 == (byte *)str + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar13);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < base) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }" if (parenthesized_expression "(local_3c != (undefined *)0x0)" ( (binary_expression "local_3c != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (*str == *(byte *)local_40) {\n          local_4c = puVar6;\n          ppuVar13 = local_40;\n          pbVar5 = (byte *)str;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar13 = (ushort **)((int)ppuVar13 + 1);\n            if (pbVar5 == (byte *)str + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar13);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < base) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }" { (if_statement "if (*str == *(byte *)local_40) {\n          local_4c = puVar6;\n          ppuVar13 = local_40;\n          pbVar5 = (byte *)str;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar13 = (ushort **)((int)ppuVar13 + 1);\n            if (pbVar5 == (byte *)str + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar13);\n        }" if (parenthesized_expression "(*str == *(byte *)local_40)" ( (binary_expression "*str == *(byte *)local_40" (pointer_expression "*str" * identifier) == (pointer_expression "*(byte *)local_40" * (cast_expression "(byte *)local_40" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n          local_4c = puVar6;\n          ppuVar13 = local_40;\n          pbVar5 = (byte *)str;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar13 = (ushort **)((int)ppuVar13 + 1);\n            if (pbVar5 == (byte *)str + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar13);\n        }" { (expression_statement "local_4c = puVar6;" (assignment_expression "local_4c = puVar6" identifier = identifier) ;) (expression_statement "ppuVar13 = local_40;" (assignment_expression "ppuVar13 = local_40" identifier = identifier) ;) (expression_statement "pbVar5 = (byte *)str;" (assignment_expression "pbVar5 = (byte *)str" identifier = (cast_expression "(byte *)str" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar13 = (ushort **)((int)ppuVar13 + 1);\n            if (pbVar5 == (byte *)str + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar13);" do (compound_statement "{\n            pbVar5 = pbVar5 + 1;\n            ppuVar13 = (ushort **)((int)ppuVar13 + 1);\n            if (pbVar5 == (byte *)str + (int)local_3c) goto LAB_0001d443;\n          }" { (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ;) (expression_statement "ppuVar13 = (ushort **)((int)ppuVar13 + 1);" (assignment_expression "ppuVar13 = (ushort **)((int)ppuVar13 + 1)" identifier = (cast_expression "(ushort **)((int)ppuVar13 + 1)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar13 + 1)" ( (binary_expression "(int)ppuVar13 + 1" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (pbVar5 == (byte *)str + (int)local_3c) goto LAB_0001d443;" if (parenthesized_expression "(pbVar5 == (byte *)str + (int)local_3c)" ( (binary_expression "pbVar5 == (byte *)str + (int)local_3c" identifier == (binary_expression "(byte *)str + (int)local_3c" (cast_expression "(byte *)str" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier))) )) (goto_statement "goto LAB_0001d443;" goto statement_identifier ;)) }) while (parenthesized_expression "(*pbVar5 == *(byte *)ppuVar13)" ( (binary_expression "*pbVar5 == *(byte *)ppuVar13" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*(byte *)ppuVar13" * (cast_expression "(byte *)ppuVar13" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) ;) })) (if_statement "if ((int)(uint)(byte)local_54[(int)local_34] < base) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }" if (parenthesized_expression "((int)(uint)(byte)local_54[(int)local_34] < base)" ( (binary_expression "(int)(uint)(byte)local_54[(int)local_34] < base" (cast_expression "(int)(uint)(byte)local_54[(int)local_34]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)(byte)local_54[(int)local_34]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_54[(int)local_34]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_54[(int)local_34]" identifier [ (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) ])))) < identifier) )) (compound_statement "{\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }" { (expression_statement "*(undefined *)local_48 = local_54[(int)local_34];" (assignment_expression "*(undefined *)local_48 = local_54[(int)local_34]" (pointer_expression "*(undefined *)local_48" * (cast_expression "(undefined *)local_48" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (subscript_expression "local_54[(int)local_34]" identifier [ (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) (expression_statement "local_48 = (ushort **)((int)local_48 + 1);" (assignment_expression "local_48 = (ushort **)((int)local_48 + 1)" identifier = (cast_expression "(ushort **)((int)local_48 + 1)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_48 + 1)" ( (binary_expression "(int)local_48 + 1" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (goto_statement "goto LAB_0001d3e0;" goto statement_identifier ;) })) (goto_statement "goto LAB_0001d756;" goto statement_identifier ;) })) (labeled_statement "LAB_0001d443:\n      if (local_50 != (ushort **)0x0) goto LAB_0001d756;" statement_identifier : (if_statement "if (local_50 != (ushort **)0x0) goto LAB_0001d756;" if (parenthesized_expression "(local_50 != (ushort **)0x0)" ( (binary_expression "local_50 != (ushort **)0x0" identifier != (cast_expression "(ushort **)0x0" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_0001d756;" goto statement_identifier ;))) (expression_statement "str = (char *)((byte *)str + (int)(local_58 + 1));" (assignment_expression "str = (char *)((byte *)str + (int)(local_58 + 1))" identifier = (cast_expression "(char *)((byte *)str + (int)(local_58 + 1))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((byte *)str + (int)(local_58 + 1))" ( (binary_expression "(byte *)str + (int)(local_58 + 1)" (cast_expression "(byte *)str" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + (cast_expression "(int)(local_58 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_58 + 1)" ( (binary_expression "local_58 + 1" identifier + number_literal) )))) )))) ;) (expression_statement "puVar6 = puVar6 + (int)local_58 + 1;" (assignment_expression "puVar6 = puVar6 + (int)local_58 + 1" identifier = (binary_expression "puVar6 + (int)local_58 + 1" (binary_expression "puVar6 + (int)local_58" identifier + (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal)) ;) (expression_statement "local_50 = local_48;" (assignment_expression "local_50 = local_48" identifier = identifier) ;) }) while (parenthesized_expression "(puVar6 < local_30)" ( (binary_expression "puVar6 < local_30" identifier < identifier) )) ;) (labeled_statement "LAB_0001d470:\n    local_30 = (undefined *)((int)local_48 - (int)local_5c);" statement_identifier : (expression_statement "local_30 = (undefined *)((int)local_48 - (int)local_5c);" (assignment_expression "local_30 = (undefined *)((int)local_48 - (int)local_5c)" identifier = (cast_expression "(undefined *)((int)local_48 - (int)local_5c)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_48 - (int)local_5c)" ( (binary_expression "(int)local_48 - (int)local_5c" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "ppbVar17 = ppbVar16;" (assignment_expression "ppbVar17 = ppbVar16" identifier = identifier) ;) }) (else_clause "else {\n    bVar1 = ((byte *)str)[(int)(puVar6 + -1)];\n    if (bVar1 == 0x40) {\n      local_30 = puVar7;\nLAB_0001d729:\n      local_6c = (byte *)str + (int)puVar6;\n    }\n    else {\n      if (base < 0xb) {\n        do {\n          puVar10 = puVar7;\n          if ((bVar1 & 0xdf) == 0x45) {\n            local_30 = puVar10;\n            puVar6 = puVar10 + 1;\n            goto LAB_0001d729;\n          }\n          puVar7 = puVar10 + -1;\n          if (puVar7 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = ((byte *)str)[(int)(puVar10 + -1)];\n        } while (bVar1 != 0x40);\n        local_30 = puVar7;\n        puVar6 = puVar10;\n        goto LAB_0001d729;\n      }\n      for (puVar10 = puVar6 + -2; puVar10 != (undefined *)0x0; puVar10 = puVar10 + -1) {\n        if (((byte *)str)[(int)(puVar7 + -1)] == 0x40) {\n          local_30 = puVar10;\n          puVar6 = puVar7;\n          goto LAB_0001d729;\n        }\n        puVar7 = puVar10;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar6 = puVar6 + 1;\n    }\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    if ((undefined *)0x7f00 < puVar6) {\n      local_5c = (ushort **)__gmp_tmp_reentrant_alloc(&__tmp_marker,(size_t)puVar6);\n      local_38 = (ushort **)*local_34;\n      goto LAB_0001d3c5;\n    }\n    iVar15 = -((uint)(puVar6 + 0x1b) & 0xfffffff0);\n    ppbVar16 = (byte **)((int)&local_6c + iVar15);\n    ppbVar17 = (byte **)((int)&local_6c + iVar15);\n    local_5c = (ushort **)((int)&local_60 + iVar15);\n    if (local_30 != (undefined *)0x0) goto LAB_0001d3c5;\n    local_48 = (ushort **)((int)&local_60 + iVar15);\n    local_50 = (ushort **)0x0;\n  }" else (compound_statement "{\n    bVar1 = ((byte *)str)[(int)(puVar6 + -1)];\n    if (bVar1 == 0x40) {\n      local_30 = puVar7;\nLAB_0001d729:\n      local_6c = (byte *)str + (int)puVar6;\n    }\n    else {\n      if (base < 0xb) {\n        do {\n          puVar10 = puVar7;\n          if ((bVar1 & 0xdf) == 0x45) {\n            local_30 = puVar10;\n            puVar6 = puVar10 + 1;\n            goto LAB_0001d729;\n          }\n          puVar7 = puVar10 + -1;\n          if (puVar7 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = ((byte *)str)[(int)(puVar10 + -1)];\n        } while (bVar1 != 0x40);\n        local_30 = puVar7;\n        puVar6 = puVar10;\n        goto LAB_0001d729;\n      }\n      for (puVar10 = puVar6 + -2; puVar10 != (undefined *)0x0; puVar10 = puVar10 + -1) {\n        if (((byte *)str)[(int)(puVar7 + -1)] == 0x40) {\n          local_30 = puVar10;\n          puVar6 = puVar7;\n          goto LAB_0001d729;\n        }\n        puVar7 = puVar10;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar6 = puVar6 + 1;\n    }\n    __tmp_marker = (tmp_reentrant_t *)0x0;\n    if ((undefined *)0x7f00 < puVar6) {\n      local_5c = (ushort **)__gmp_tmp_reentrant_alloc(&__tmp_marker,(size_t)puVar6);\n      local_38 = (ushort **)*local_34;\n      goto LAB_0001d3c5;\n    }\n    iVar15 = -((uint)(puVar6 + 0x1b) & 0xfffffff0);\n    ppbVar16 = (byte **)((int)&local_6c + iVar15);\n    ppbVar17 = (byte **)((int)&local_6c + iVar15);\n    local_5c = (ushort **)((int)&local_60 + iVar15);\n    if (local_30 != (undefined *)0x0) goto LAB_0001d3c5;\n    local_48 = (ushort **)((int)&local_60 + iVar15);\n    local_50 = (ushort **)0x0;\n  }" { (expression_statement "bVar1 = ((byte *)str)[(int)(puVar6 + -1)];" (assignment_expression "bVar1 = ((byte *)str)[(int)(puVar6 + -1)]" identifier = (subscript_expression "((byte *)str)[(int)(puVar6 + -1)]" (parenthesized_expression "((byte *)str)" ( (cast_expression "(byte *)str" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) [ (cast_expression "(int)(puVar6 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar6 + -1)" ( (binary_expression "puVar6 + -1" identifier + number_literal) ))) ])) ;) (if_statement "if (bVar1 == 0x40) {\n      local_30 = puVar7;\nLAB_0001d729:\n      local_6c = (byte *)str + (int)puVar6;\n    }\n    else {\n      if (base < 0xb) {\n        do {\n          puVar10 = puVar7;\n          if ((bVar1 & 0xdf) == 0x45) {\n            local_30 = puVar10;\n            puVar6 = puVar10 + 1;\n            goto LAB_0001d729;\n          }\n          puVar7 = puVar10 + -1;\n          if (puVar7 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = ((byte *)str)[(int)(puVar10 + -1)];\n        } while (bVar1 != 0x40);\n        local_30 = puVar7;\n        puVar6 = puVar10;\n        goto LAB_0001d729;\n      }\n      for (puVar10 = puVar6 + -2; puVar10 != (undefined *)0x0; puVar10 = puVar10 + -1) {\n        if (((byte *)str)[(int)(puVar7 + -1)] == 0x40) {\n          local_30 = puVar10;\n          puVar6 = puVar7;\n          goto LAB_0001d729;\n        }\n        puVar7 = puVar10;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar6 = puVar6 + 1;\n    }" if (parenthesized_expression "(bVar1 == 0x40)" ( (binary_expression "bVar1 == 0x40" identifier == number_literal) )) (compound_statement "{\n      local_30 = puVar7;\nLAB_0001d729:\n      local_6c = (byte *)str + (int)puVar6;\n    }" { (expression_statement "local_30 = puVar7;" (assignment_expression "local_30 = puVar7" identifier = identifier) ;) (labeled_statement "LAB_0001d729:\n      local_6c = (byte *)str + (int)puVar6;" statement_identifier : (expression_statement "local_6c = (byte *)str + (int)puVar6;" (assignment_expression "local_6c = (byte *)str + (int)puVar6" identifier = (binary_expression "(byte *)str + (int)puVar6" (cast_expression "(byte *)str" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) }) (else_clause "else {\n      if (base < 0xb) {\n        do {\n          puVar10 = puVar7;\n          if ((bVar1 & 0xdf) == 0x45) {\n            local_30 = puVar10;\n            puVar6 = puVar10 + 1;\n            goto LAB_0001d729;\n          }\n          puVar7 = puVar10 + -1;\n          if (puVar7 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = ((byte *)str)[(int)(puVar10 + -1)];\n        } while (bVar1 != 0x40);\n        local_30 = puVar7;\n        puVar6 = puVar10;\n        goto LAB_0001d729;\n      }\n      for (puVar10 = puVar6 + -2; puVar10 != (undefined *)0x0; puVar10 = puVar10 + -1) {\n        if (((byte *)str)[(int)(puVar7 + -1)] == 0x40) {\n          local_30 = puVar10;\n          puVar6 = puVar7;\n          goto LAB_0001d729;\n        }\n        puVar7 = puVar10;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar6 = puVar6 + 1;\n    }" else (compound_statement "{\n      if (base < 0xb) {\n        do {\n          puVar10 = puVar7;\n          if ((bVar1 & 0xdf) == 0x45) {\n            local_30 = puVar10;\n            puVar6 = puVar10 + 1;\n            goto LAB_0001d729;\n          }\n          puVar7 = puVar10 + -1;\n          if (puVar7 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = ((byte *)str)[(int)(puVar10 + -1)];\n        } while (bVar1 != 0x40);\n        local_30 = puVar7;\n        puVar6 = puVar10;\n        goto LAB_0001d729;\n      }\n      for (puVar10 = puVar6 + -2; puVar10 != (undefined *)0x0; puVar10 = puVar10 + -1) {\n        if (((byte *)str)[(int)(puVar7 + -1)] == 0x40) {\n          local_30 = puVar10;\n          puVar6 = puVar7;\n          goto LAB_0001d729;\n        }\n        puVar7 = puVar10;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar6 = puVar6 + 1;\n    }" { (if_statement "if (base < 0xb) {\n        do {\n          puVar10 = puVar7;\n          if ((bVar1 & 0xdf) == 0x45) {\n            local_30 = puVar10;\n            puVar6 = puVar10 + 1;\n            goto LAB_0001d729;\n          }\n          puVar7 = puVar10 + -1;\n          if (puVar7 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = ((byte *)str)[(int)(puVar10 + -1)];\n        } while (bVar1 != 0x40);\n        local_30 = puVar7;\n        puVar6 = puVar10;\n        goto LAB_0001d729;\n      }" if (parenthesized_expression "(base < 0xb)" ( (binary_expression "base < 0xb" identifier < number_literal) )) (compound_statement "{\n        do {\n          puVar10 = puVar7;\n          if ((bVar1 & 0xdf) == 0x45) {\n            local_30 = puVar10;\n            puVar6 = puVar10 + 1;\n            goto LAB_0001d729;\n          }\n          puVar7 = puVar10 + -1;\n          if (puVar7 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = ((byte *)str)[(int)(puVar10 + -1)];\n        } while (bVar1 != 0x40);\n        local_30 = puVar7;\n        puVar6 = puVar10;\n        goto LAB_0001d729;\n      }" { (do_statement "do {\n          puVar10 = puVar7;\n          if ((bVar1 & 0xdf) == 0x45) {\n            local_30 = puVar10;\n            puVar6 = puVar10 + 1;\n            goto LAB_0001d729;\n          }\n          puVar7 = puVar10 + -1;\n          if (puVar7 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = ((byte *)str)[(int)(puVar10 + -1)];\n        } while (bVar1 != 0x40);" do (compound_statement "{\n          puVar10 = puVar7;\n          if ((bVar1 & 0xdf) == 0x45) {\n            local_30 = puVar10;\n            puVar6 = puVar10 + 1;\n            goto LAB_0001d729;\n          }\n          puVar7 = puVar10 + -1;\n          if (puVar7 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = ((byte *)str)[(int)(puVar10 + -1)];\n        }" { (expression_statement "puVar10 = puVar7;" (assignment_expression "puVar10 = puVar7" identifier = identifier) ;) (if_statement "if ((bVar1 & 0xdf) == 0x45) {\n            local_30 = puVar10;\n            puVar6 = puVar10 + 1;\n            goto LAB_0001d729;\n          }" if (parenthesized_expression "((bVar1 & 0xdf) == 0x45)" ( (binary_expression "(bVar1 & 0xdf) == 0x45" (parenthesized_expression "(bVar1 & 0xdf)" ( (binary_expression "bVar1 & 0xdf" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            local_30 = puVar10;\n            puVar6 = puVar10 + 1;\n            goto LAB_0001d729;\n          }" { (expression_statement "local_30 = puVar10;" (assignment_expression "local_30 = puVar10" identifier = identifier) ;) (expression_statement "puVar6 = puVar10 + 1;" (assignment_expression "puVar6 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_0001d729;" goto statement_identifier ;) })) (expression_statement "puVar7 = puVar10 + -1;" (assignment_expression "puVar7 = puVar10 + -1" identifier = (binary_expression "puVar10 + -1" identifier + number_literal)) ;) (if_statement "if (puVar7 == (undefined *)0x0) goto LAB_0001d38c;" if (parenthesized_expression "(puVar7 == (undefined *)0x0)" ( (binary_expression "puVar7 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001d38c;" goto statement_identifier ;)) (expression_statement "bVar1 = ((byte *)str)[(int)(puVar10 + -1)];" (assignment_expression "bVar1 = ((byte *)str)[(int)(puVar10 + -1)]" identifier = (subscript_expression "((byte *)str)[(int)(puVar10 + -1)]" (parenthesized_expression "((byte *)str)" ( (cast_expression "(byte *)str" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) [ (cast_expression "(int)(puVar10 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar10 + -1)" ( (binary_expression "puVar10 + -1" identifier + number_literal) ))) ])) ;) }) while (parenthesized_expression "(bVar1 != 0x40)" ( (binary_expression "bVar1 != 0x40" identifier != number_literal) )) ;) (expression_statement "local_30 = puVar7;" (assignment_expression "local_30 = puVar7" identifier = identifier) ;) (expression_statement "puVar6 = puVar10;" (assignment_expression "puVar6 = puVar10" identifier = identifier) ;) (goto_statement "goto LAB_0001d729;" goto statement_identifier ;) })) (for_statement "for (puVar10 = puVar6 + -2; puVar10 != (undefined *)0x0; puVar10 = puVar10 + -1) {\n        if (((byte *)str)[(int)(puVar7 + -1)] == 0x40) {\n          local_30 = puVar10;\n          puVar6 = puVar7;\n          goto LAB_0001d729;\n        }\n        puVar7 = puVar10;\n      }" for ( (assignment_expression "puVar10 = puVar6 + -2" identifier = (binary_expression "puVar6 + -2" identifier + number_literal)) ; (binary_expression "puVar10 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar10 = puVar10 + -1" identifier = (binary_expression "puVar10 + -1" identifier + number_literal)) ) (compound_statement "{\n        if (((byte *)str)[(int)(puVar7 + -1)] == 0x40) {\n          local_30 = puVar10;\n          puVar6 = puVar7;\n          goto LAB_0001d729;\n        }\n        puVar7 = puVar10;\n      }" { (if_statement "if (((byte *)str)[(int)(puVar7 + -1)] == 0x40) {\n          local_30 = puVar10;\n          puVar6 = puVar7;\n          goto LAB_0001d729;\n        }" if (parenthesized_expression "(((byte *)str)[(int)(puVar7 + -1)] == 0x40)" ( (binary_expression "((byte *)str)[(int)(puVar7 + -1)] == 0x40" (subscript_expression "((byte *)str)[(int)(puVar7 + -1)]" (parenthesized_expression "((byte *)str)" ( (cast_expression "(byte *)str" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) [ (cast_expression "(int)(puVar7 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar7 + -1)" ( (binary_expression "puVar7 + -1" identifier + number_literal) ))) ]) == number_literal) )) (compound_statement "{\n          local_30 = puVar10;\n          puVar6 = puVar7;\n          goto LAB_0001d729;\n        }" { (expression_statement "local_30 = puVar10;" (assignment_expression "local_30 = puVar10" identifier = identifier) ;) (expression_statement "puVar6 = puVar7;" (assignment_expression "puVar6 = puVar7" identifier = identifier) ;) (goto_statement "goto LAB_0001d729;" goto statement_identifier ;) })) (expression_statement "puVar7 = puVar10;" (assignment_expression "puVar7 = puVar10" identifier = identifier) ;) })) (labeled_statement "LAB_0001d38c:\n      local_6c = (byte *)0x0;" statement_identifier : (expression_statement "local_6c = (byte *)0x0;" (assignment_expression "local_6c = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "puVar6 = puVar6 + 1;" (assignment_expression "puVar6 = puVar6 + 1" identifier = (binary_expression "puVar6 + 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 ((undefined *)0x7f00 < puVar6) {\n      local_5c = (ushort **)__gmp_tmp_reentrant_alloc(&__tmp_marker,(size_t)puVar6);\n      local_38 = (ushort **)*local_34;\n      goto LAB_0001d3c5;\n    }" if (parenthesized_expression "((undefined *)0x7f00 < puVar6)" ( (binary_expression "(undefined *)0x7f00 < puVar6" (cast_expression "(undefined *)0x7f00" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n      local_5c = (ushort **)__gmp_tmp_reentrant_alloc(&__tmp_marker,(size_t)puVar6);\n      local_38 = (ushort **)*local_34;\n      goto LAB_0001d3c5;\n    }" { (expression_statement "local_5c = (ushort **)__gmp_tmp_reentrant_alloc(&__tmp_marker,(size_t)puVar6);" (assignment_expression "local_5c = (ushort **)__gmp_tmp_reentrant_alloc(&__tmp_marker,(size_t)puVar6)" identifier = (cast_expression "(ushort **)__gmp_tmp_reentrant_alloc(&__tmp_marker,(size_t)puVar6)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "__gmp_tmp_reentrant_alloc(&__tmp_marker,(size_t)puVar6)" identifier (argument_list "(&__tmp_marker,(size_t)puVar6)" ( (pointer_expression "&__tmp_marker" & identifier) , (cast_expression "(size_t)puVar6" ( (type_descriptor "size_t" primitive_type) ) identifier) ))))) ;) (expression_statement "local_38 = (ushort **)*local_34;" (assignment_expression "local_38 = (ushort **)*local_34" identifier = (cast_expression "(ushort **)*local_34" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*local_34" * identifier))) ;) (goto_statement "goto LAB_0001d3c5;" goto statement_identifier ;) })) (expression_statement "iVar15 = -((uint)(puVar6 + 0x1b) & 0xfffffff0);" (assignment_expression "iVar15 = -((uint)(puVar6 + 0x1b) & 0xfffffff0)" identifier = (unary_expression "-((uint)(puVar6 + 0x1b) & 0xfffffff0)" - (parenthesized_expression "((uint)(puVar6 + 0x1b) & 0xfffffff0)" ( (binary_expression "(uint)(puVar6 + 0x1b) & 0xfffffff0" (call_expression "(uint)(puVar6 + 0x1b)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar6 + 0x1b)" ( (binary_expression "puVar6 + 0x1b" identifier + number_literal) ))) & number_literal) )))) ;) (expression_statement "ppbVar16 = (byte **)((int)&local_6c + iVar15);" (assignment_expression "ppbVar16 = (byte **)((int)&local_6c + iVar15)" identifier = (cast_expression "(byte **)((int)&local_6c + iVar15)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&local_6c + iVar15)" ( (binary_expression "(int)&local_6c + iVar15" (cast_expression "(int)&local_6c" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_6c" & identifier)) + identifier) )))) ;) (expression_statement "ppbVar17 = (byte **)((int)&local_6c + iVar15);" (assignment_expression "ppbVar17 = (byte **)((int)&local_6c + iVar15)" identifier = (cast_expression "(byte **)((int)&local_6c + iVar15)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&local_6c + iVar15)" ( (binary_expression "(int)&local_6c + iVar15" (cast_expression "(int)&local_6c" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_6c" & identifier)) + identifier) )))) ;) (expression_statement "local_5c = (ushort **)((int)&local_60 + iVar15);" (assignment_expression "local_5c = (ushort **)((int)&local_60 + iVar15)" identifier = (cast_expression "(ushort **)((int)&local_60 + iVar15)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&local_60 + iVar15)" ( (binary_expression "(int)&local_60 + iVar15" (cast_expression "(int)&local_60" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_60" & identifier)) + identifier) )))) ;) (if_statement "if (local_30 != (undefined *)0x0) goto LAB_0001d3c5;" if (parenthesized_expression "(local_30 != (undefined *)0x0)" ( (binary_expression "local_30 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001d3c5;" goto statement_identifier ;)) (expression_statement "local_48 = (ushort **)((int)&local_60 + iVar15);" (assignment_expression "local_48 = (ushort **)((int)&local_60 + iVar15)" identifier = (cast_expression "(ushort **)((int)&local_60 + iVar15)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&local_60 + iVar15)" ( (binary_expression "(int)&local_60 + iVar15" (cast_expression "(int)&local_60" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_60" & identifier)) + identifier) )))) ;) (expression_statement "local_50 = (ushort **)0x0;" (assignment_expression "local_50 = (ushort **)0x0" identifier = (cast_expression "(ushort **)0x0" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) }))) (expression_statement "ppuVar13 = (ushort **)local_60->_mp_prec;" (assignment_expression "ppuVar13 = (ushort **)local_60->_mp_prec" identifier = (cast_expression "(ushort **)local_60->_mp_prec" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "local_60->_mp_prec" identifier -> field_identifier))) ;) (expression_statement "uVar14 = (uint)((ulonglong)*(uint *)(local_44[-0x56] + base * 0x14 + 8) * ZEXT48(local_30) >> 0x20\n                 ) & 0x1ffffffc;" (assignment_expression "uVar14 = (uint)((ulonglong)*(uint *)(local_44[-0x56] + base * 0x14 + 8) * ZEXT48(local_30) >> 0x20\n                 ) & 0x1ffffffc" identifier = (binary_expression "(uint)((ulonglong)*(uint *)(local_44[-0x56] + base * 0x14 + 8) * ZEXT48(local_30) >> 0x20\n                 ) & 0x1ffffffc" (call_expression "(uint)((ulonglong)*(uint *)(local_44[-0x56] + base * 0x14 + 8) * ZEXT48(local_30) >> 0x20\n                 )" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)*(uint *)(local_44[-0x56] + base * 0x14 + 8) * ZEXT48(local_30) >> 0x20\n                 )" ( (binary_expression "(ulonglong)*(uint *)(local_44[-0x56] + base * 0x14 + 8) * ZEXT48(local_30) >> 0x20" (binary_expression "(ulonglong)*(uint *)(local_44[-0x56] + base * 0x14 + 8) * ZEXT48(local_30)" (binary_expression "(ulonglong)*(uint *)(local_44[-0x56] + base * 0x14 + 8)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(local_44[-0x56] + base * 0x14 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_44[-0x56] + base * 0x14 + 8)" ( (binary_expression "local_44[-0x56] + base * 0x14 + 8" (binary_expression "local_44[-0x56] + base * 0x14" (subscript_expression "local_44[-0x56]" identifier [ number_literal ]) + (binary_expression "base * 0x14" identifier * number_literal)) + number_literal) )))) * (call_expression "ZEXT48(local_30)" identifier (argument_list "(local_30)" ( identifier )))) >> number_literal) ))) & number_literal)) ;) (expression_statement "uVar18 = uVar14 + 8;" (assignment_expression "uVar18 = uVar14 + 8" identifier = (binary_expression "uVar14 + 8" identifier + number_literal)) ;) (if_statement "if (uVar18 < 0x7f01) {\n    iVar15 = -(uVar14 + 0x23 & 0xfffffff0);\n    local_40 = (ushort **)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n    ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n  }\n  else {\n    *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n    *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n    *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dabe;\n    local_40 = (ushort **)\n               __gmp_tmp_reentrant_alloc\n                         (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                          *(size_t *)((int)ppbVar17 + -0xc));\n  }" if (parenthesized_expression "(uVar18 < 0x7f01)" ( (binary_expression "uVar18 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n    iVar15 = -(uVar14 + 0x23 & 0xfffffff0);\n    local_40 = (ushort **)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n    ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n  }" { (expression_statement "iVar15 = -(uVar14 + 0x23 & 0xfffffff0);" (assignment_expression "iVar15 = -(uVar14 + 0x23 & 0xfffffff0)" identifier = (unary_expression "-(uVar14 + 0x23 & 0xfffffff0)" - (parenthesized_expression "(uVar14 + 0x23 & 0xfffffff0)" ( (binary_expression "uVar14 + 0x23 & 0xfffffff0" (binary_expression "uVar14 + 0x23" identifier + number_literal) & number_literal) )))) ;) (expression_statement "local_40 = (ushort **)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);" (assignment_expression "local_40 = (ushort **)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0)" identifier = (cast_expression "(ushort **)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0)" ( (binary_expression "(uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0" (call_expression "(uint)((int)ppbVar17 + iVar15 + 0xf)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppbVar17 + iVar15 + 0xf)" ( (binary_expression "(int)ppbVar17 + iVar15 + 0xf" (binary_expression "(int)ppbVar17 + iVar15" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))) & number_literal) )))) ;) (expression_statement "ppbVar17 = (byte **)((int)ppbVar17 + iVar15);" (assignment_expression "ppbVar17 = (byte **)((int)ppbVar17 + iVar15)" identifier = (cast_expression "(byte **)((int)ppbVar17 + iVar15)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar17 + iVar15)" ( (binary_expression "(int)ppbVar17 + iVar15" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n    *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n    *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n    *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dabe;\n    local_40 = (ushort **)\n               __gmp_tmp_reentrant_alloc\n                         (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                          *(size_t *)((int)ppbVar17 + -0xc));\n  }" else (compound_statement "{\n    *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n    *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n    *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dabe;\n    local_40 = (ushort **)\n               __gmp_tmp_reentrant_alloc\n                         (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                          *(size_t *)((int)ppbVar17 + -0xc));\n  }" { (expression_statement "*(uint *)((int)ppbVar17 + -0xc) = uVar18;" (assignment_expression "*(uint *)((int)ppbVar17 + -0xc) = uVar18" (pointer_expression "*(uint *)((int)ppbVar17 + -0xc)" * (cast_expression "(uint *)((int)ppbVar17 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0xc)" ( (binary_expression "(int)ppbVar17 + -0xc" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;" (assignment_expression "*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker" (pointer_expression "*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10)" * (cast_expression "(tmp_reentrant_t ***)((int)ppbVar17 + -0x10)" ( (type_descriptor "tmp_reentrant_t ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&__tmp_marker" & identifier)) ;) (expression_statement "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dabe;" (assignment_expression "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dabe" (pointer_expression "*(undefined4 *)((int)ppbVar17 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x14)" ( (binary_expression "(int)ppbVar17 + -0x14" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_40 = (ushort **)\n               __gmp_tmp_reentrant_alloc\n                         (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                          *(size_t *)((int)ppbVar17 + -0xc));" (assignment_expression "local_40 = (ushort **)\n               __gmp_tmp_reentrant_alloc\n                         (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                          *(size_t *)((int)ppbVar17 + -0xc))" identifier = (cast_expression "(ushort **)\n               __gmp_tmp_reentrant_alloc\n                         (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                          *(size_t *)((int)ppbVar17 + -0xc))" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "__gmp_tmp_reentrant_alloc\n                         (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                          *(size_t *)((int)ppbVar17 + -0xc))" identifier (argument_list "(*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                          *(size_t *)((int)ppbVar17 + -0xc))" ( (pointer_expression "*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10)" * (cast_expression "(tmp_reentrant_t ***)((int)ppbVar17 + -0x10)" ( (type_descriptor "tmp_reentrant_t ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)ppbVar17 + -0xc)" * (cast_expression "(size_t *)((int)ppbVar17 + -0xc)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0xc)" ( (binary_expression "(int)ppbVar17 + -0xc" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))))) ;) }))) (expression_statement "*(int *)((int)ppbVar17 + -4) = base;" (assignment_expression "*(int *)((int)ppbVar17 + -4) = base" (pointer_expression "*(int *)((int)ppbVar17 + -4)" * (cast_expression "(int *)((int)ppbVar17 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -4)" ( (binary_expression "(int)ppbVar17 + -4" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar17 + -8) = local_30;" (assignment_expression "*(undefined **)((int)ppbVar17 + -8) = local_30" (pointer_expression "*(undefined **)((int)ppbVar17 + -8)" * (cast_expression "(undefined **)((int)ppbVar17 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar17 + -8)" ( (binary_expression "(int)ppbVar17 + -8" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar17 + -0xc) = local_5c;" (assignment_expression "*(ushort ***)((int)ppbVar17 + -0xc) = local_5c" (pointer_expression "*(ushort ***)((int)ppbVar17 + -0xc)" * (cast_expression "(ushort ***)((int)ppbVar17 + -0xc)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0xc)" ( (binary_expression "(int)ppbVar17 + -0xc" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar17 + -0x10) = local_40;" (assignment_expression "*(ushort ***)((int)ppbVar17 + -0x10) = local_40" (pointer_expression "*(ushort ***)((int)ppbVar17 + -0x10)" * (cast_expression "(ushort ***)((int)ppbVar17 + -0x10)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d4cf;" (assignment_expression "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d4cf" (pointer_expression "*(undefined4 *)((int)ppbVar17 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x14)" ( (binary_expression "(int)ppbVar17 + -0x14" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "puVar6 = (undefined *)\n           __gmpn_set_str(*(mp_ptr *)((int)ppbVar17 + -0x10),*(uchar **)((int)ppbVar17 + -0xc),\n                          *(size_t *)((int)ppbVar17 + -8),*(int *)((int)ppbVar17 + -4));" (assignment_expression "puVar6 = (undefined *)\n           __gmpn_set_str(*(mp_ptr *)((int)ppbVar17 + -0x10),*(uchar **)((int)ppbVar17 + -0xc),\n                          *(size_t *)((int)ppbVar17 + -8),*(int *)((int)ppbVar17 + -4))" identifier = (cast_expression "(undefined *)\n           __gmpn_set_str(*(mp_ptr *)((int)ppbVar17 + -0x10),*(uchar **)((int)ppbVar17 + -0xc),\n                          *(size_t *)((int)ppbVar17 + -8),*(int *)((int)ppbVar17 + -4))" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__gmpn_set_str(*(mp_ptr *)((int)ppbVar17 + -0x10),*(uchar **)((int)ppbVar17 + -0xc),\n                          *(size_t *)((int)ppbVar17 + -8),*(int *)((int)ppbVar17 + -4))" identifier (argument_list "(*(mp_ptr *)((int)ppbVar17 + -0x10),*(uchar **)((int)ppbVar17 + -0xc),\n                          *(size_t *)((int)ppbVar17 + -8),*(int *)((int)ppbVar17 + -4))" ( (pointer_expression "*(mp_ptr *)((int)ppbVar17 + -0x10)" * (cast_expression "(mp_ptr *)((int)ppbVar17 + -0x10)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uchar **)((int)ppbVar17 + -0xc)" * (cast_expression "(uchar **)((int)ppbVar17 + -0xc)" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar17 + -0xc)" ( (binary_expression "(int)ppbVar17 + -0xc" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)ppbVar17 + -8)" * (cast_expression "(size_t *)((int)ppbVar17 + -8)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -8)" ( (binary_expression "(int)ppbVar17 + -8" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)ppbVar17 + -4)" * (cast_expression "(int *)((int)ppbVar17 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -4)" ( (binary_expression "(int)ppbVar17 + -4" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))))) ;) (expression_statement "ppuVar4 = local_44;" (assignment_expression "ppuVar4 = local_44" identifier = identifier) ;) (expression_statement "p_Var3 = local_60;" (assignment_expression "p_Var3 = local_60" identifier = identifier) ;) (if_statement "if (puVar6 == (undefined *)0x0) {\n    local_60->_mp_size = 0;\n    local_60->_mp_exp = 0;\n    if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n      local_30 = puVar6;\n      *(tmp_reentrant_t **)((int)ppbVar17 + -0x10) = __tmp_marker;\n      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dadb;\n      __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar17 + -0x10));\n      puVar6 = local_30;\n      goto LAB_0001d775;\n    }\nLAB_0001d7d0:\n    puVar6 = (undefined *)0x0;\n  }\n  else {\n    local_3c = (undefined *)((int)ppuVar13 + 1);\n    if ((int)local_3c < (int)puVar6) {\n      local_58 = local_3c;\n      local_5c = (ushort **)(puVar6 + -(int)local_3c);\n      local_40 = local_40 + (int)(puVar6 + -(int)local_3c);\n      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;\nLAB_0001d4fd:\n      bVar1 = *local_6c;\n      local_30 = (undefined *)(uint)(bVar1 == 0x2d);\n      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);\n      uVar18 = (uint)(byte)local_54[*pbVar5];\n      ppbVar16 = ppbVar17;\n      if (local_68 <= (int)uVar18) {\nLAB_0001d756:\n        ppbVar17 = ppbVar16;\n        if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n          *(tmp_reentrant_t **)((int)ppbVar16 + -0x10) = __tmp_marker;\n          *(undefined4 *)((int)ppbVar16 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar16 + -0x10));\n        }\n        goto LAB_0001d770;\n      }\n      local_34 = (ushort **)(pbVar5 + 2);\n      uVar14 = (uint)(byte)local_54[pbVar5[1]];\n      if ((int)uVar14 < local_68) {\n        local_38 = ppuVar13;\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar12 = (ushort **)(pbVar5 + 2);\n        do {\n          uVar18 = uVar18 * local_68 + uVar14;\n          uVar14 = (uint)(byte)local_54[*(byte *)ppuVar12];\n          ppuVar12 = (ushort **)((int)ppuVar12 + 1);\n        } while ((int)uVar14 < local_68);\n      }\n      local_54 = local_30 + (uVar18 ^ (uint)-(int)local_30);\n      if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }\n      if (local_54 == (undefined *)0x0) goto LAB_0001d804;\n      uVar18 = ((int)ppuVar13 + 2U) * 8;\n      local_68 = (int)ppuVar13 + 2U;\n      if (uVar18 < 0x7f01) {\n        uVar18 = uVar18 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar17 + (0xf - uVar18)) & 0xfffffff0);\n        ppuVar13 = (ushort **)((uint)((int)ppbVar17 + uVar18 * -2 + 0xf) & 0xfffffff0);\n        ppbVar17 = (byte **)((int)ppbVar17 + uVar18 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n        *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n        *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db57;\n        local_50 = (ushort **)\n                   __gmp_tmp_reentrant_alloc\n                             (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                              *(size_t *)((int)ppbVar17 + -0xc));\n        *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n        *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n        *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db66;\n        ppuVar13 = (ushort **)\n                   __gmp_tmp_reentrant_alloc\n                             (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                              *(size_t *)((int)ppbVar17 + -0xc));\n      }\n      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));\n      *local_50 = (ushort *)base;\n      uVar18 = 0x1f;\n      if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar18 == 0; uVar18 = uVar18 - 1) {\n        }\n      }\n      uVar18 = 0x1e - (uVar18 ^ 0x1f);\n      if (uVar18 == 0xffffffff) {\n        iVar15 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar12 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar8 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar12 = local_34;\n          local_38 = ppuVar13;\n          *(undefined **)((int)ppbVar17 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0xc) = ppuVar12 + iVar8;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d69f;\n          __gmpn_sqr(*(mp_ptr *)((int)ppbVar17 + -0x10),*(mp_srcptr *)((int)ppbVar17 + -0xc),\n                     *(mp_size_t *)((int)ppbVar17 + -8));\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar8 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar8;\n            iVar15 = iVar8 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar15 = 0;\n            iVar8 = 0;\n          }\n          if (((uint)local_48 >> (uVar18 & 0x1f) & 1) != 0) {\n            *(int *)((int)ppbVar17 + -4) = base;\n            puVar7 = local_4c;\n            *(undefined **)((int)ppbVar17 + -8) = puVar6;\n            *(int *)((int)ppbVar17 + -0xc) = iVar15 + (int)local_38;\n            *(ushort ***)((int)ppbVar17 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar7 + 100);\n            *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d65b;\n            puVar9 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar9;\n            iVar15 = 0;\n            puVar6 = puVar6 + (puVar9 != (ushort *)0x0);\n            iVar8 = 0;\n          }\n          ppuVar13 = local_34;\n          uVar18 = uVar18 - 1;\n          ppuVar12 = local_38;\n          if (uVar18 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }\n      puVar7 = local_4c;\n      if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar12 = ppuVar12 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }\n      *(undefined **)((int)ppbVar17 + -8) = puVar6;\n      *(int *)((int)ppbVar17 + -0xc) = (int)ppuVar12 + iVar15;\n      *(ushort ***)((int)ppbVar17 + -0x10) = local_50;\n      pcVar2 = *(code **)(puVar7 + 0x28);\n      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d87c;\n      (*pcVar2)();\n      if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar18 = (int)puVar6 * 4 + 4;\n          if (uVar18 < 0x7f01) {\n            iVar15 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n            ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n          }\n          else {\n            *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n            *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n            *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)\n                       __gmp_tmp_reentrant_alloc\n                                 (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                                  *(size_t *)((int)ppbVar17 + -0xc));\n          }\n          ppuVar12 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar12;\n          *(int *)((int)ppbVar17 + -8) = (int)ppuVar12 * 4;\n          *(undefined4 *)((int)ppbVar17 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar17 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar17 + -0x10),*(int *)((int)ppbVar17 + -0xc),\n                 *(size_t *)((int)ppbVar17 + -8));\n          ppuVar13 = local_34;\n          puVar7 = local_4c;\n          *(undefined **)((int)ppbVar17 + -8) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13 + (int)ppuVar12;\n          pcVar2 = *(code **)(puVar7 + 0x28);\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_58 = puVar6;\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n        }\n        ppuVar13 = local_50;\n        puVar9 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar9) {\n          uVar18 = 0x1f;\n          if (puVar9 != (ushort *)0x0) {\n            for (; (uint)puVar9 >> uVar18 == 0; uVar18 = uVar18 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar17 + -4) = uVar18 ^ 0x1f;\n          *(undefined **)((int)ppbVar17 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0xc) = ppuVar13;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar13 = local_40;\n          puVar10 = local_4c;\n          *(uint *)((int)ppbVar17 + -0x14) = uVar18 ^ 0x1f;\n          puVar7 = local_58;\n          *(undefined **)((int)ppbVar17 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = ppuVar13;\n          *(ushort ***)((int)ppbVar17 + -0x20) = ppuVar13;\n          pcVar2 = *(code **)(puVar10 + 0x38);\n          *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1d9f3;\n          puVar9 = (ushort *)(*pcVar2)();\n          if (puVar9 != (ushort *)0x0) {\n            ppuVar13[(int)puVar7] = puVar9;\n            local_58 = puVar7 + 1;\n          }\n        }\n        local_34 = (ushort **)(local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar15 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          pvVar20 = (void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n          ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n        }\n        else {\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_34;\n          *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dba2;\n          pvVar20 = __gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc));\n        }\n        puVar7 = local_58;\n        *(undefined **)((int)ppbVar17 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar17 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar17 + -0x14) = puVar7;\n        puVar10 = local_3c;\n        ppuVar13 = (ushort **)(puVar7 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar17 + -0x18) = local_40;\n        local_38 = ppuVar13;\n        *(int *)((int)ppbVar17 + -0x1c) = (int)puVar10 - (int)ppuVar13;\n        *(void **)((int)ppbVar17 + -0x20) = pvVar20;\n        *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1da4a;\n        mVar11 = __gmpn_divrem(*(mp_ptr *)((int)ppbVar17 + -0x20),\n                               *(mp_size_t *)((int)ppbVar17 + -0x1c),\n                               *(mp_ptr *)((int)ppbVar17 + -0x18),\n                               *(mp_size_t *)((int)ppbVar17 + -0x14),\n                               *(mp_srcptr *)((int)ppbVar17 + -0x10),\n                               *(mp_size_t *)((int)ppbVar17 + -0xc));\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (mVar11 - (int)local_30));\n        pvVar19 = pvVar20;\n        puVar7 = local_3c;\n        if (mVar11 != 0) {\n          pvVar19 = (void *)((int)pvVar20 + 4);\n          *(mp_limb_t *)((int)pvVar20 + -4 + (int)local_34) = mVar11;\n        }\n      }\n      else {\n        local_38 = (ushort **)((int)(local_58 + (int)puVar6) * 4);\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar15 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          pvVar19 = (void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n          ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n        }\n        else {\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_38;\n          *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db83;\n          pvVar19 = __gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc));\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar17 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar17 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar17 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar17 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = local_40;\n        }\n        *(void **)((int)ppbVar17 + -0x20) = pvVar19;\n        *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1d8d6;\n        __gmpn_mul(*(mp_ptr *)((int)ppbVar17 + -0x20),*(mp_srcptr *)((int)ppbVar17 + -0x1c),\n                   *(mp_size_t *)((int)ppbVar17 + -0x18),*(mp_srcptr *)((int)ppbVar17 + -0x14),\n                   *(mp_size_t *)((int)ppbVar17 + -0x10));\n        puVar7 = (undefined *)\n                 ((int)local_34 - (uint)(*(int *)((int)pvVar19 + -4 + (int)local_38) == 0));\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar7));\n        if ((int)local_3c < (int)puVar7) {\n          pvVar19 = (void *)((int)pvVar19 + ((int)puVar7 - (int)local_3c) * 4);\n          puVar7 = local_3c;\n        }\n      }\n      local_3c = puVar7;\n      puVar10 = local_3c;\n      p_Var3 = local_60;\n      *(undefined **)((int)ppbVar17 + -8) = local_3c;\n      *(void **)((int)ppbVar17 + -0xc) = pvVar19;\n      puVar7 = local_4c;\n      *(mp_limb_t **)((int)ppbVar17 + -0x10) = p_Var3->_mp_d;\n      pcVar2 = *(code **)(puVar7 + 0x28);\n      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d91c;\n      (*pcVar2)();\n      puVar7 = (undefined *)-(int)puVar10;\n      if (local_64 == 0) {\n        puVar7 = puVar10;\n      }\n      local_60->_mp_exp = (mp_exp_t)puVar6;\n      local_60->_mp_size = (int)puVar7;\n      if (__tmp_marker == (tmp_reentrant_t *)0x0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }\n    }\n    else {\n      local_58 = puVar6;\n      local_5c = (ushort **)0x0;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar7 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar17 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar17 + -0xc) = local_40;\n      *(mp_limb_t **)((int)ppbVar17 + -0x10) = p_Var3->_mp_d;\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar7;\n      if (local_64 == 0) {\n        puVar6 = puVar7;\n      }\n      p_Var3->_mp_exp = (mp_exp_t)local_30;\n      p_Var3->_mp_size = (int)puVar6;\n      if (__tmp_marker == (tmp_reentrant_t *)0x0) goto LAB_0001d7d0;\n    }\n    *(tmp_reentrant_t **)((int)ppbVar17 + -0x10) = __tmp_marker;\n    *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d84e;\n    __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar17 + -0x10));\n    puVar6 = (undefined *)0x0;\n  }" if (parenthesized_expression "(puVar6 == (undefined *)0x0)" ( (binary_expression "puVar6 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_60->_mp_size = 0;\n    local_60->_mp_exp = 0;\n    if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n      local_30 = puVar6;\n      *(tmp_reentrant_t **)((int)ppbVar17 + -0x10) = __tmp_marker;\n      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dadb;\n      __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar17 + -0x10));\n      puVar6 = local_30;\n      goto LAB_0001d775;\n    }\nLAB_0001d7d0:\n    puVar6 = (undefined *)0x0;\n  }" { (expression_statement "local_60->_mp_size = 0;" (assignment_expression "local_60->_mp_size = 0" (field_expression "local_60->_mp_size" identifier -> field_identifier) = number_literal) ;) (expression_statement "local_60->_mp_exp = 0;" (assignment_expression "local_60->_mp_exp = 0" (field_expression "local_60->_mp_exp" identifier -> field_identifier) = number_literal) ;) (if_statement "if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n      local_30 = puVar6;\n      *(tmp_reentrant_t **)((int)ppbVar17 + -0x10) = __tmp_marker;\n      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dadb;\n      __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar17 + -0x10));\n      puVar6 = local_30;\n      goto LAB_0001d775;\n    }" if (parenthesized_expression "(__tmp_marker != (tmp_reentrant_t *)0x0)" ( (binary_expression "__tmp_marker != (tmp_reentrant_t *)0x0" identifier != (cast_expression "(tmp_reentrant_t *)0x0" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_30 = puVar6;\n      *(tmp_reentrant_t **)((int)ppbVar17 + -0x10) = __tmp_marker;\n      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dadb;\n      __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar17 + -0x10));\n      puVar6 = local_30;\n      goto LAB_0001d775;\n    }" { (expression_statement "local_30 = puVar6;" (assignment_expression "local_30 = puVar6" identifier = identifier) ;) (expression_statement "*(tmp_reentrant_t **)((int)ppbVar17 + -0x10) = __tmp_marker;" (assignment_expression "*(tmp_reentrant_t **)((int)ppbVar17 + -0x10) = __tmp_marker" (pointer_expression "*(tmp_reentrant_t **)((int)ppbVar17 + -0x10)" * (cast_expression "(tmp_reentrant_t **)((int)ppbVar17 + -0x10)" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dadb;" (assignment_expression "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dadb" (pointer_expression "*(undefined4 *)((int)ppbVar17 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x14)" ( (binary_expression "(int)ppbVar17 + -0x14" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "__gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar17 + -0x10));" (call_expression "__gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar17 + -0x10))" identifier (argument_list "(*(tmp_reentrant_t **)((int)ppbVar17 + -0x10))" ( (pointer_expression "*(tmp_reentrant_t **)((int)ppbVar17 + -0x10)" * (cast_expression "(tmp_reentrant_t **)((int)ppbVar17 + -0x10)" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "puVar6 = local_30;" (assignment_expression "puVar6 = local_30" identifier = identifier) ;) (goto_statement "goto LAB_0001d775;" goto statement_identifier ;) })) (labeled_statement "LAB_0001d7d0:\n    puVar6 = (undefined *)0x0;" statement_identifier : (expression_statement "puVar6 = (undefined *)0x0;" (assignment_expression "puVar6 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }) (else_clause "else {\n    local_3c = (undefined *)((int)ppuVar13 + 1);\n    if ((int)local_3c < (int)puVar6) {\n      local_58 = local_3c;\n      local_5c = (ushort **)(puVar6 + -(int)local_3c);\n      local_40 = local_40 + (int)(puVar6 + -(int)local_3c);\n      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;\nLAB_0001d4fd:\n      bVar1 = *local_6c;\n      local_30 = (undefined *)(uint)(bVar1 == 0x2d);\n      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);\n      uVar18 = (uint)(byte)local_54[*pbVar5];\n      ppbVar16 = ppbVar17;\n      if (local_68 <= (int)uVar18) {\nLAB_0001d756:\n        ppbVar17 = ppbVar16;\n        if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n          *(tmp_reentrant_t **)((int)ppbVar16 + -0x10) = __tmp_marker;\n          *(undefined4 *)((int)ppbVar16 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar16 + -0x10));\n        }\n        goto LAB_0001d770;\n      }\n      local_34 = (ushort **)(pbVar5 + 2);\n      uVar14 = (uint)(byte)local_54[pbVar5[1]];\n      if ((int)uVar14 < local_68) {\n        local_38 = ppuVar13;\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar12 = (ushort **)(pbVar5 + 2);\n        do {\n          uVar18 = uVar18 * local_68 + uVar14;\n          uVar14 = (uint)(byte)local_54[*(byte *)ppuVar12];\n          ppuVar12 = (ushort **)((int)ppuVar12 + 1);\n        } while ((int)uVar14 < local_68);\n      }\n      local_54 = local_30 + (uVar18 ^ (uint)-(int)local_30);\n      if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }\n      if (local_54 == (undefined *)0x0) goto LAB_0001d804;\n      uVar18 = ((int)ppuVar13 + 2U) * 8;\n      local_68 = (int)ppuVar13 + 2U;\n      if (uVar18 < 0x7f01) {\n        uVar18 = uVar18 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar17 + (0xf - uVar18)) & 0xfffffff0);\n        ppuVar13 = (ushort **)((uint)((int)ppbVar17 + uVar18 * -2 + 0xf) & 0xfffffff0);\n        ppbVar17 = (byte **)((int)ppbVar17 + uVar18 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n        *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n        *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db57;\n        local_50 = (ushort **)\n                   __gmp_tmp_reentrant_alloc\n                             (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                              *(size_t *)((int)ppbVar17 + -0xc));\n        *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n        *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n        *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db66;\n        ppuVar13 = (ushort **)\n                   __gmp_tmp_reentrant_alloc\n                             (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                              *(size_t *)((int)ppbVar17 + -0xc));\n      }\n      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));\n      *local_50 = (ushort *)base;\n      uVar18 = 0x1f;\n      if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar18 == 0; uVar18 = uVar18 - 1) {\n        }\n      }\n      uVar18 = 0x1e - (uVar18 ^ 0x1f);\n      if (uVar18 == 0xffffffff) {\n        iVar15 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar12 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar8 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar12 = local_34;\n          local_38 = ppuVar13;\n          *(undefined **)((int)ppbVar17 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0xc) = ppuVar12 + iVar8;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d69f;\n          __gmpn_sqr(*(mp_ptr *)((int)ppbVar17 + -0x10),*(mp_srcptr *)((int)ppbVar17 + -0xc),\n                     *(mp_size_t *)((int)ppbVar17 + -8));\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar8 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar8;\n            iVar15 = iVar8 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar15 = 0;\n            iVar8 = 0;\n          }\n          if (((uint)local_48 >> (uVar18 & 0x1f) & 1) != 0) {\n            *(int *)((int)ppbVar17 + -4) = base;\n            puVar7 = local_4c;\n            *(undefined **)((int)ppbVar17 + -8) = puVar6;\n            *(int *)((int)ppbVar17 + -0xc) = iVar15 + (int)local_38;\n            *(ushort ***)((int)ppbVar17 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar7 + 100);\n            *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d65b;\n            puVar9 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar9;\n            iVar15 = 0;\n            puVar6 = puVar6 + (puVar9 != (ushort *)0x0);\n            iVar8 = 0;\n          }\n          ppuVar13 = local_34;\n          uVar18 = uVar18 - 1;\n          ppuVar12 = local_38;\n          if (uVar18 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }\n      puVar7 = local_4c;\n      if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar12 = ppuVar12 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }\n      *(undefined **)((int)ppbVar17 + -8) = puVar6;\n      *(int *)((int)ppbVar17 + -0xc) = (int)ppuVar12 + iVar15;\n      *(ushort ***)((int)ppbVar17 + -0x10) = local_50;\n      pcVar2 = *(code **)(puVar7 + 0x28);\n      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d87c;\n      (*pcVar2)();\n      if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar18 = (int)puVar6 * 4 + 4;\n          if (uVar18 < 0x7f01) {\n            iVar15 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n            ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n          }\n          else {\n            *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n            *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n            *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)\n                       __gmp_tmp_reentrant_alloc\n                                 (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                                  *(size_t *)((int)ppbVar17 + -0xc));\n          }\n          ppuVar12 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar12;\n          *(int *)((int)ppbVar17 + -8) = (int)ppuVar12 * 4;\n          *(undefined4 *)((int)ppbVar17 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar17 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar17 + -0x10),*(int *)((int)ppbVar17 + -0xc),\n                 *(size_t *)((int)ppbVar17 + -8));\n          ppuVar13 = local_34;\n          puVar7 = local_4c;\n          *(undefined **)((int)ppbVar17 + -8) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13 + (int)ppuVar12;\n          pcVar2 = *(code **)(puVar7 + 0x28);\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_58 = puVar6;\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n        }\n        ppuVar13 = local_50;\n        puVar9 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar9) {\n          uVar18 = 0x1f;\n          if (puVar9 != (ushort *)0x0) {\n            for (; (uint)puVar9 >> uVar18 == 0; uVar18 = uVar18 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar17 + -4) = uVar18 ^ 0x1f;\n          *(undefined **)((int)ppbVar17 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0xc) = ppuVar13;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar13 = local_40;\n          puVar10 = local_4c;\n          *(uint *)((int)ppbVar17 + -0x14) = uVar18 ^ 0x1f;\n          puVar7 = local_58;\n          *(undefined **)((int)ppbVar17 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = ppuVar13;\n          *(ushort ***)((int)ppbVar17 + -0x20) = ppuVar13;\n          pcVar2 = *(code **)(puVar10 + 0x38);\n          *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1d9f3;\n          puVar9 = (ushort *)(*pcVar2)();\n          if (puVar9 != (ushort *)0x0) {\n            ppuVar13[(int)puVar7] = puVar9;\n            local_58 = puVar7 + 1;\n          }\n        }\n        local_34 = (ushort **)(local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar15 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          pvVar20 = (void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n          ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n        }\n        else {\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_34;\n          *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dba2;\n          pvVar20 = __gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc));\n        }\n        puVar7 = local_58;\n        *(undefined **)((int)ppbVar17 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar17 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar17 + -0x14) = puVar7;\n        puVar10 = local_3c;\n        ppuVar13 = (ushort **)(puVar7 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar17 + -0x18) = local_40;\n        local_38 = ppuVar13;\n        *(int *)((int)ppbVar17 + -0x1c) = (int)puVar10 - (int)ppuVar13;\n        *(void **)((int)ppbVar17 + -0x20) = pvVar20;\n        *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1da4a;\n        mVar11 = __gmpn_divrem(*(mp_ptr *)((int)ppbVar17 + -0x20),\n                               *(mp_size_t *)((int)ppbVar17 + -0x1c),\n                               *(mp_ptr *)((int)ppbVar17 + -0x18),\n                               *(mp_size_t *)((int)ppbVar17 + -0x14),\n                               *(mp_srcptr *)((int)ppbVar17 + -0x10),\n                               *(mp_size_t *)((int)ppbVar17 + -0xc));\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (mVar11 - (int)local_30));\n        pvVar19 = pvVar20;\n        puVar7 = local_3c;\n        if (mVar11 != 0) {\n          pvVar19 = (void *)((int)pvVar20 + 4);\n          *(mp_limb_t *)((int)pvVar20 + -4 + (int)local_34) = mVar11;\n        }\n      }\n      else {\n        local_38 = (ushort **)((int)(local_58 + (int)puVar6) * 4);\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar15 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          pvVar19 = (void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n          ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n        }\n        else {\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_38;\n          *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db83;\n          pvVar19 = __gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc));\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar17 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar17 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar17 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar17 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = local_40;\n        }\n        *(void **)((int)ppbVar17 + -0x20) = pvVar19;\n        *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1d8d6;\n        __gmpn_mul(*(mp_ptr *)((int)ppbVar17 + -0x20),*(mp_srcptr *)((int)ppbVar17 + -0x1c),\n                   *(mp_size_t *)((int)ppbVar17 + -0x18),*(mp_srcptr *)((int)ppbVar17 + -0x14),\n                   *(mp_size_t *)((int)ppbVar17 + -0x10));\n        puVar7 = (undefined *)\n                 ((int)local_34 - (uint)(*(int *)((int)pvVar19 + -4 + (int)local_38) == 0));\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar7));\n        if ((int)local_3c < (int)puVar7) {\n          pvVar19 = (void *)((int)pvVar19 + ((int)puVar7 - (int)local_3c) * 4);\n          puVar7 = local_3c;\n        }\n      }\n      local_3c = puVar7;\n      puVar10 = local_3c;\n      p_Var3 = local_60;\n      *(undefined **)((int)ppbVar17 + -8) = local_3c;\n      *(void **)((int)ppbVar17 + -0xc) = pvVar19;\n      puVar7 = local_4c;\n      *(mp_limb_t **)((int)ppbVar17 + -0x10) = p_Var3->_mp_d;\n      pcVar2 = *(code **)(puVar7 + 0x28);\n      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d91c;\n      (*pcVar2)();\n      puVar7 = (undefined *)-(int)puVar10;\n      if (local_64 == 0) {\n        puVar7 = puVar10;\n      }\n      local_60->_mp_exp = (mp_exp_t)puVar6;\n      local_60->_mp_size = (int)puVar7;\n      if (__tmp_marker == (tmp_reentrant_t *)0x0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }\n    }\n    else {\n      local_58 = puVar6;\n      local_5c = (ushort **)0x0;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar7 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar17 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar17 + -0xc) = local_40;\n      *(mp_limb_t **)((int)ppbVar17 + -0x10) = p_Var3->_mp_d;\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar7;\n      if (local_64 == 0) {\n        puVar6 = puVar7;\n      }\n      p_Var3->_mp_exp = (mp_exp_t)local_30;\n      p_Var3->_mp_size = (int)puVar6;\n      if (__tmp_marker == (tmp_reentrant_t *)0x0) goto LAB_0001d7d0;\n    }\n    *(tmp_reentrant_t **)((int)ppbVar17 + -0x10) = __tmp_marker;\n    *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d84e;\n    __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar17 + -0x10));\n    puVar6 = (undefined *)0x0;\n  }" else (compound_statement "{\n    local_3c = (undefined *)((int)ppuVar13 + 1);\n    if ((int)local_3c < (int)puVar6) {\n      local_58 = local_3c;\n      local_5c = (ushort **)(puVar6 + -(int)local_3c);\n      local_40 = local_40 + (int)(puVar6 + -(int)local_3c);\n      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;\nLAB_0001d4fd:\n      bVar1 = *local_6c;\n      local_30 = (undefined *)(uint)(bVar1 == 0x2d);\n      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);\n      uVar18 = (uint)(byte)local_54[*pbVar5];\n      ppbVar16 = ppbVar17;\n      if (local_68 <= (int)uVar18) {\nLAB_0001d756:\n        ppbVar17 = ppbVar16;\n        if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n          *(tmp_reentrant_t **)((int)ppbVar16 + -0x10) = __tmp_marker;\n          *(undefined4 *)((int)ppbVar16 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar16 + -0x10));\n        }\n        goto LAB_0001d770;\n      }\n      local_34 = (ushort **)(pbVar5 + 2);\n      uVar14 = (uint)(byte)local_54[pbVar5[1]];\n      if ((int)uVar14 < local_68) {\n        local_38 = ppuVar13;\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar12 = (ushort **)(pbVar5 + 2);\n        do {\n          uVar18 = uVar18 * local_68 + uVar14;\n          uVar14 = (uint)(byte)local_54[*(byte *)ppuVar12];\n          ppuVar12 = (ushort **)((int)ppuVar12 + 1);\n        } while ((int)uVar14 < local_68);\n      }\n      local_54 = local_30 + (uVar18 ^ (uint)-(int)local_30);\n      if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }\n      if (local_54 == (undefined *)0x0) goto LAB_0001d804;\n      uVar18 = ((int)ppuVar13 + 2U) * 8;\n      local_68 = (int)ppuVar13 + 2U;\n      if (uVar18 < 0x7f01) {\n        uVar18 = uVar18 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar17 + (0xf - uVar18)) & 0xfffffff0);\n        ppuVar13 = (ushort **)((uint)((int)ppbVar17 + uVar18 * -2 + 0xf) & 0xfffffff0);\n        ppbVar17 = (byte **)((int)ppbVar17 + uVar18 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n        *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n        *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db57;\n        local_50 = (ushort **)\n                   __gmp_tmp_reentrant_alloc\n                             (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                              *(size_t *)((int)ppbVar17 + -0xc));\n        *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n        *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n        *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db66;\n        ppuVar13 = (ushort **)\n                   __gmp_tmp_reentrant_alloc\n                             (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                              *(size_t *)((int)ppbVar17 + -0xc));\n      }\n      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));\n      *local_50 = (ushort *)base;\n      uVar18 = 0x1f;\n      if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar18 == 0; uVar18 = uVar18 - 1) {\n        }\n      }\n      uVar18 = 0x1e - (uVar18 ^ 0x1f);\n      if (uVar18 == 0xffffffff) {\n        iVar15 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar12 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar8 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar12 = local_34;\n          local_38 = ppuVar13;\n          *(undefined **)((int)ppbVar17 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0xc) = ppuVar12 + iVar8;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d69f;\n          __gmpn_sqr(*(mp_ptr *)((int)ppbVar17 + -0x10),*(mp_srcptr *)((int)ppbVar17 + -0xc),\n                     *(mp_size_t *)((int)ppbVar17 + -8));\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar8 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar8;\n            iVar15 = iVar8 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar15 = 0;\n            iVar8 = 0;\n          }\n          if (((uint)local_48 >> (uVar18 & 0x1f) & 1) != 0) {\n            *(int *)((int)ppbVar17 + -4) = base;\n            puVar7 = local_4c;\n            *(undefined **)((int)ppbVar17 + -8) = puVar6;\n            *(int *)((int)ppbVar17 + -0xc) = iVar15 + (int)local_38;\n            *(ushort ***)((int)ppbVar17 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar7 + 100);\n            *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d65b;\n            puVar9 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar9;\n            iVar15 = 0;\n            puVar6 = puVar6 + (puVar9 != (ushort *)0x0);\n            iVar8 = 0;\n          }\n          ppuVar13 = local_34;\n          uVar18 = uVar18 - 1;\n          ppuVar12 = local_38;\n          if (uVar18 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }\n      puVar7 = local_4c;\n      if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar12 = ppuVar12 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }\n      *(undefined **)((int)ppbVar17 + -8) = puVar6;\n      *(int *)((int)ppbVar17 + -0xc) = (int)ppuVar12 + iVar15;\n      *(ushort ***)((int)ppbVar17 + -0x10) = local_50;\n      pcVar2 = *(code **)(puVar7 + 0x28);\n      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d87c;\n      (*pcVar2)();\n      if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar18 = (int)puVar6 * 4 + 4;\n          if (uVar18 < 0x7f01) {\n            iVar15 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n            ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n          }\n          else {\n            *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n            *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n            *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)\n                       __gmp_tmp_reentrant_alloc\n                                 (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                                  *(size_t *)((int)ppbVar17 + -0xc));\n          }\n          ppuVar12 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar12;\n          *(int *)((int)ppbVar17 + -8) = (int)ppuVar12 * 4;\n          *(undefined4 *)((int)ppbVar17 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar17 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar17 + -0x10),*(int *)((int)ppbVar17 + -0xc),\n                 *(size_t *)((int)ppbVar17 + -8));\n          ppuVar13 = local_34;\n          puVar7 = local_4c;\n          *(undefined **)((int)ppbVar17 + -8) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13 + (int)ppuVar12;\n          pcVar2 = *(code **)(puVar7 + 0x28);\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_58 = puVar6;\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n        }\n        ppuVar13 = local_50;\n        puVar9 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar9) {\n          uVar18 = 0x1f;\n          if (puVar9 != (ushort *)0x0) {\n            for (; (uint)puVar9 >> uVar18 == 0; uVar18 = uVar18 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar17 + -4) = uVar18 ^ 0x1f;\n          *(undefined **)((int)ppbVar17 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0xc) = ppuVar13;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar13 = local_40;\n          puVar10 = local_4c;\n          *(uint *)((int)ppbVar17 + -0x14) = uVar18 ^ 0x1f;\n          puVar7 = local_58;\n          *(undefined **)((int)ppbVar17 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = ppuVar13;\n          *(ushort ***)((int)ppbVar17 + -0x20) = ppuVar13;\n          pcVar2 = *(code **)(puVar10 + 0x38);\n          *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1d9f3;\n          puVar9 = (ushort *)(*pcVar2)();\n          if (puVar9 != (ushort *)0x0) {\n            ppuVar13[(int)puVar7] = puVar9;\n            local_58 = puVar7 + 1;\n          }\n        }\n        local_34 = (ushort **)(local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar15 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          pvVar20 = (void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n          ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n        }\n        else {\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_34;\n          *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dba2;\n          pvVar20 = __gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc));\n        }\n        puVar7 = local_58;\n        *(undefined **)((int)ppbVar17 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar17 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar17 + -0x14) = puVar7;\n        puVar10 = local_3c;\n        ppuVar13 = (ushort **)(puVar7 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar17 + -0x18) = local_40;\n        local_38 = ppuVar13;\n        *(int *)((int)ppbVar17 + -0x1c) = (int)puVar10 - (int)ppuVar13;\n        *(void **)((int)ppbVar17 + -0x20) = pvVar20;\n        *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1da4a;\n        mVar11 = __gmpn_divrem(*(mp_ptr *)((int)ppbVar17 + -0x20),\n                               *(mp_size_t *)((int)ppbVar17 + -0x1c),\n                               *(mp_ptr *)((int)ppbVar17 + -0x18),\n                               *(mp_size_t *)((int)ppbVar17 + -0x14),\n                               *(mp_srcptr *)((int)ppbVar17 + -0x10),\n                               *(mp_size_t *)((int)ppbVar17 + -0xc));\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (mVar11 - (int)local_30));\n        pvVar19 = pvVar20;\n        puVar7 = local_3c;\n        if (mVar11 != 0) {\n          pvVar19 = (void *)((int)pvVar20 + 4);\n          *(mp_limb_t *)((int)pvVar20 + -4 + (int)local_34) = mVar11;\n        }\n      }\n      else {\n        local_38 = (ushort **)((int)(local_58 + (int)puVar6) * 4);\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar15 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          pvVar19 = (void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n          ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n        }\n        else {\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_38;\n          *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db83;\n          pvVar19 = __gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc));\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar17 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar17 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar17 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar17 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = local_40;\n        }\n        *(void **)((int)ppbVar17 + -0x20) = pvVar19;\n        *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1d8d6;\n        __gmpn_mul(*(mp_ptr *)((int)ppbVar17 + -0x20),*(mp_srcptr *)((int)ppbVar17 + -0x1c),\n                   *(mp_size_t *)((int)ppbVar17 + -0x18),*(mp_srcptr *)((int)ppbVar17 + -0x14),\n                   *(mp_size_t *)((int)ppbVar17 + -0x10));\n        puVar7 = (undefined *)\n                 ((int)local_34 - (uint)(*(int *)((int)pvVar19 + -4 + (int)local_38) == 0));\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar7));\n        if ((int)local_3c < (int)puVar7) {\n          pvVar19 = (void *)((int)pvVar19 + ((int)puVar7 - (int)local_3c) * 4);\n          puVar7 = local_3c;\n        }\n      }\n      local_3c = puVar7;\n      puVar10 = local_3c;\n      p_Var3 = local_60;\n      *(undefined **)((int)ppbVar17 + -8) = local_3c;\n      *(void **)((int)ppbVar17 + -0xc) = pvVar19;\n      puVar7 = local_4c;\n      *(mp_limb_t **)((int)ppbVar17 + -0x10) = p_Var3->_mp_d;\n      pcVar2 = *(code **)(puVar7 + 0x28);\n      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d91c;\n      (*pcVar2)();\n      puVar7 = (undefined *)-(int)puVar10;\n      if (local_64 == 0) {\n        puVar7 = puVar10;\n      }\n      local_60->_mp_exp = (mp_exp_t)puVar6;\n      local_60->_mp_size = (int)puVar7;\n      if (__tmp_marker == (tmp_reentrant_t *)0x0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }\n    }\n    else {\n      local_58 = puVar6;\n      local_5c = (ushort **)0x0;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar7 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar17 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar17 + -0xc) = local_40;\n      *(mp_limb_t **)((int)ppbVar17 + -0x10) = p_Var3->_mp_d;\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar7;\n      if (local_64 == 0) {\n        puVar6 = puVar7;\n      }\n      p_Var3->_mp_exp = (mp_exp_t)local_30;\n      p_Var3->_mp_size = (int)puVar6;\n      if (__tmp_marker == (tmp_reentrant_t *)0x0) goto LAB_0001d7d0;\n    }\n    *(tmp_reentrant_t **)((int)ppbVar17 + -0x10) = __tmp_marker;\n    *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d84e;\n    __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar17 + -0x10));\n    puVar6 = (undefined *)0x0;\n  }" { (expression_statement "local_3c = (undefined *)((int)ppuVar13 + 1);" (assignment_expression "local_3c = (undefined *)((int)ppuVar13 + 1)" identifier = (cast_expression "(undefined *)((int)ppuVar13 + 1)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar13 + 1)" ( (binary_expression "(int)ppuVar13 + 1" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((int)local_3c < (int)puVar6) {\n      local_58 = local_3c;\n      local_5c = (ushort **)(puVar6 + -(int)local_3c);\n      local_40 = local_40 + (int)(puVar6 + -(int)local_3c);\n      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;\nLAB_0001d4fd:\n      bVar1 = *local_6c;\n      local_30 = (undefined *)(uint)(bVar1 == 0x2d);\n      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);\n      uVar18 = (uint)(byte)local_54[*pbVar5];\n      ppbVar16 = ppbVar17;\n      if (local_68 <= (int)uVar18) {\nLAB_0001d756:\n        ppbVar17 = ppbVar16;\n        if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n          *(tmp_reentrant_t **)((int)ppbVar16 + -0x10) = __tmp_marker;\n          *(undefined4 *)((int)ppbVar16 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar16 + -0x10));\n        }\n        goto LAB_0001d770;\n      }\n      local_34 = (ushort **)(pbVar5 + 2);\n      uVar14 = (uint)(byte)local_54[pbVar5[1]];\n      if ((int)uVar14 < local_68) {\n        local_38 = ppuVar13;\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar12 = (ushort **)(pbVar5 + 2);\n        do {\n          uVar18 = uVar18 * local_68 + uVar14;\n          uVar14 = (uint)(byte)local_54[*(byte *)ppuVar12];\n          ppuVar12 = (ushort **)((int)ppuVar12 + 1);\n        } while ((int)uVar14 < local_68);\n      }\n      local_54 = local_30 + (uVar18 ^ (uint)-(int)local_30);\n      if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }\n      if (local_54 == (undefined *)0x0) goto LAB_0001d804;\n      uVar18 = ((int)ppuVar13 + 2U) * 8;\n      local_68 = (int)ppuVar13 + 2U;\n      if (uVar18 < 0x7f01) {\n        uVar18 = uVar18 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar17 + (0xf - uVar18)) & 0xfffffff0);\n        ppuVar13 = (ushort **)((uint)((int)ppbVar17 + uVar18 * -2 + 0xf) & 0xfffffff0);\n        ppbVar17 = (byte **)((int)ppbVar17 + uVar18 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n        *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n        *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db57;\n        local_50 = (ushort **)\n                   __gmp_tmp_reentrant_alloc\n                             (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                              *(size_t *)((int)ppbVar17 + -0xc));\n        *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n        *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n        *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db66;\n        ppuVar13 = (ushort **)\n                   __gmp_tmp_reentrant_alloc\n                             (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                              *(size_t *)((int)ppbVar17 + -0xc));\n      }\n      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));\n      *local_50 = (ushort *)base;\n      uVar18 = 0x1f;\n      if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar18 == 0; uVar18 = uVar18 - 1) {\n        }\n      }\n      uVar18 = 0x1e - (uVar18 ^ 0x1f);\n      if (uVar18 == 0xffffffff) {\n        iVar15 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar12 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar8 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar12 = local_34;\n          local_38 = ppuVar13;\n          *(undefined **)((int)ppbVar17 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0xc) = ppuVar12 + iVar8;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d69f;\n          __gmpn_sqr(*(mp_ptr *)((int)ppbVar17 + -0x10),*(mp_srcptr *)((int)ppbVar17 + -0xc),\n                     *(mp_size_t *)((int)ppbVar17 + -8));\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar8 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar8;\n            iVar15 = iVar8 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar15 = 0;\n            iVar8 = 0;\n          }\n          if (((uint)local_48 >> (uVar18 & 0x1f) & 1) != 0) {\n            *(int *)((int)ppbVar17 + -4) = base;\n            puVar7 = local_4c;\n            *(undefined **)((int)ppbVar17 + -8) = puVar6;\n            *(int *)((int)ppbVar17 + -0xc) = iVar15 + (int)local_38;\n            *(ushort ***)((int)ppbVar17 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar7 + 100);\n            *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d65b;\n            puVar9 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar9;\n            iVar15 = 0;\n            puVar6 = puVar6 + (puVar9 != (ushort *)0x0);\n            iVar8 = 0;\n          }\n          ppuVar13 = local_34;\n          uVar18 = uVar18 - 1;\n          ppuVar12 = local_38;\n          if (uVar18 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }\n      puVar7 = local_4c;\n      if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar12 = ppuVar12 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }\n      *(undefined **)((int)ppbVar17 + -8) = puVar6;\n      *(int *)((int)ppbVar17 + -0xc) = (int)ppuVar12 + iVar15;\n      *(ushort ***)((int)ppbVar17 + -0x10) = local_50;\n      pcVar2 = *(code **)(puVar7 + 0x28);\n      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d87c;\n      (*pcVar2)();\n      if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar18 = (int)puVar6 * 4 + 4;\n          if (uVar18 < 0x7f01) {\n            iVar15 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n            ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n          }\n          else {\n            *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n            *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n            *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)\n                       __gmp_tmp_reentrant_alloc\n                                 (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                                  *(size_t *)((int)ppbVar17 + -0xc));\n          }\n          ppuVar12 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar12;\n          *(int *)((int)ppbVar17 + -8) = (int)ppuVar12 * 4;\n          *(undefined4 *)((int)ppbVar17 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar17 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar17 + -0x10),*(int *)((int)ppbVar17 + -0xc),\n                 *(size_t *)((int)ppbVar17 + -8));\n          ppuVar13 = local_34;\n          puVar7 = local_4c;\n          *(undefined **)((int)ppbVar17 + -8) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13 + (int)ppuVar12;\n          pcVar2 = *(code **)(puVar7 + 0x28);\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_58 = puVar6;\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n        }\n        ppuVar13 = local_50;\n        puVar9 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar9) {\n          uVar18 = 0x1f;\n          if (puVar9 != (ushort *)0x0) {\n            for (; (uint)puVar9 >> uVar18 == 0; uVar18 = uVar18 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar17 + -4) = uVar18 ^ 0x1f;\n          *(undefined **)((int)ppbVar17 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0xc) = ppuVar13;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar13 = local_40;\n          puVar10 = local_4c;\n          *(uint *)((int)ppbVar17 + -0x14) = uVar18 ^ 0x1f;\n          puVar7 = local_58;\n          *(undefined **)((int)ppbVar17 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = ppuVar13;\n          *(ushort ***)((int)ppbVar17 + -0x20) = ppuVar13;\n          pcVar2 = *(code **)(puVar10 + 0x38);\n          *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1d9f3;\n          puVar9 = (ushort *)(*pcVar2)();\n          if (puVar9 != (ushort *)0x0) {\n            ppuVar13[(int)puVar7] = puVar9;\n            local_58 = puVar7 + 1;\n          }\n        }\n        local_34 = (ushort **)(local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar15 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          pvVar20 = (void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n          ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n        }\n        else {\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_34;\n          *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dba2;\n          pvVar20 = __gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc));\n        }\n        puVar7 = local_58;\n        *(undefined **)((int)ppbVar17 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar17 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar17 + -0x14) = puVar7;\n        puVar10 = local_3c;\n        ppuVar13 = (ushort **)(puVar7 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar17 + -0x18) = local_40;\n        local_38 = ppuVar13;\n        *(int *)((int)ppbVar17 + -0x1c) = (int)puVar10 - (int)ppuVar13;\n        *(void **)((int)ppbVar17 + -0x20) = pvVar20;\n        *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1da4a;\n        mVar11 = __gmpn_divrem(*(mp_ptr *)((int)ppbVar17 + -0x20),\n                               *(mp_size_t *)((int)ppbVar17 + -0x1c),\n                               *(mp_ptr *)((int)ppbVar17 + -0x18),\n                               *(mp_size_t *)((int)ppbVar17 + -0x14),\n                               *(mp_srcptr *)((int)ppbVar17 + -0x10),\n                               *(mp_size_t *)((int)ppbVar17 + -0xc));\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (mVar11 - (int)local_30));\n        pvVar19 = pvVar20;\n        puVar7 = local_3c;\n        if (mVar11 != 0) {\n          pvVar19 = (void *)((int)pvVar20 + 4);\n          *(mp_limb_t *)((int)pvVar20 + -4 + (int)local_34) = mVar11;\n        }\n      }\n      else {\n        local_38 = (ushort **)((int)(local_58 + (int)puVar6) * 4);\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar15 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          pvVar19 = (void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n          ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n        }\n        else {\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_38;\n          *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db83;\n          pvVar19 = __gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc));\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar17 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar17 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar17 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar17 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = local_40;\n        }\n        *(void **)((int)ppbVar17 + -0x20) = pvVar19;\n        *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1d8d6;\n        __gmpn_mul(*(mp_ptr *)((int)ppbVar17 + -0x20),*(mp_srcptr *)((int)ppbVar17 + -0x1c),\n                   *(mp_size_t *)((int)ppbVar17 + -0x18),*(mp_srcptr *)((int)ppbVar17 + -0x14),\n                   *(mp_size_t *)((int)ppbVar17 + -0x10));\n        puVar7 = (undefined *)\n                 ((int)local_34 - (uint)(*(int *)((int)pvVar19 + -4 + (int)local_38) == 0));\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar7));\n        if ((int)local_3c < (int)puVar7) {\n          pvVar19 = (void *)((int)pvVar19 + ((int)puVar7 - (int)local_3c) * 4);\n          puVar7 = local_3c;\n        }\n      }\n      local_3c = puVar7;\n      puVar10 = local_3c;\n      p_Var3 = local_60;\n      *(undefined **)((int)ppbVar17 + -8) = local_3c;\n      *(void **)((int)ppbVar17 + -0xc) = pvVar19;\n      puVar7 = local_4c;\n      *(mp_limb_t **)((int)ppbVar17 + -0x10) = p_Var3->_mp_d;\n      pcVar2 = *(code **)(puVar7 + 0x28);\n      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d91c;\n      (*pcVar2)();\n      puVar7 = (undefined *)-(int)puVar10;\n      if (local_64 == 0) {\n        puVar7 = puVar10;\n      }\n      local_60->_mp_exp = (mp_exp_t)puVar6;\n      local_60->_mp_size = (int)puVar7;\n      if (__tmp_marker == (tmp_reentrant_t *)0x0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }\n    }\n    else {\n      local_58 = puVar6;\n      local_5c = (ushort **)0x0;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar7 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar17 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar17 + -0xc) = local_40;\n      *(mp_limb_t **)((int)ppbVar17 + -0x10) = p_Var3->_mp_d;\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar7;\n      if (local_64 == 0) {\n        puVar6 = puVar7;\n      }\n      p_Var3->_mp_exp = (mp_exp_t)local_30;\n      p_Var3->_mp_size = (int)puVar6;\n      if (__tmp_marker == (tmp_reentrant_t *)0x0) goto LAB_0001d7d0;\n    }" if (parenthesized_expression "((int)local_3c < (int)puVar6)" ( (binary_expression "(int)local_3c < (int)puVar6" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      local_58 = local_3c;\n      local_5c = (ushort **)(puVar6 + -(int)local_3c);\n      local_40 = local_40 + (int)(puVar6 + -(int)local_3c);\n      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;\nLAB_0001d4fd:\n      bVar1 = *local_6c;\n      local_30 = (undefined *)(uint)(bVar1 == 0x2d);\n      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);\n      uVar18 = (uint)(byte)local_54[*pbVar5];\n      ppbVar16 = ppbVar17;\n      if (local_68 <= (int)uVar18) {\nLAB_0001d756:\n        ppbVar17 = ppbVar16;\n        if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n          *(tmp_reentrant_t **)((int)ppbVar16 + -0x10) = __tmp_marker;\n          *(undefined4 *)((int)ppbVar16 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar16 + -0x10));\n        }\n        goto LAB_0001d770;\n      }\n      local_34 = (ushort **)(pbVar5 + 2);\n      uVar14 = (uint)(byte)local_54[pbVar5[1]];\n      if ((int)uVar14 < local_68) {\n        local_38 = ppuVar13;\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar12 = (ushort **)(pbVar5 + 2);\n        do {\n          uVar18 = uVar18 * local_68 + uVar14;\n          uVar14 = (uint)(byte)local_54[*(byte *)ppuVar12];\n          ppuVar12 = (ushort **)((int)ppuVar12 + 1);\n        } while ((int)uVar14 < local_68);\n      }\n      local_54 = local_30 + (uVar18 ^ (uint)-(int)local_30);\n      if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }\n      if (local_54 == (undefined *)0x0) goto LAB_0001d804;\n      uVar18 = ((int)ppuVar13 + 2U) * 8;\n      local_68 = (int)ppuVar13 + 2U;\n      if (uVar18 < 0x7f01) {\n        uVar18 = uVar18 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar17 + (0xf - uVar18)) & 0xfffffff0);\n        ppuVar13 = (ushort **)((uint)((int)ppbVar17 + uVar18 * -2 + 0xf) & 0xfffffff0);\n        ppbVar17 = (byte **)((int)ppbVar17 + uVar18 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n        *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n        *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db57;\n        local_50 = (ushort **)\n                   __gmp_tmp_reentrant_alloc\n                             (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                              *(size_t *)((int)ppbVar17 + -0xc));\n        *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n        *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n        *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db66;\n        ppuVar13 = (ushort **)\n                   __gmp_tmp_reentrant_alloc\n                             (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                              *(size_t *)((int)ppbVar17 + -0xc));\n      }\n      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));\n      *local_50 = (ushort *)base;\n      uVar18 = 0x1f;\n      if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar18 == 0; uVar18 = uVar18 - 1) {\n        }\n      }\n      uVar18 = 0x1e - (uVar18 ^ 0x1f);\n      if (uVar18 == 0xffffffff) {\n        iVar15 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar12 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar8 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar12 = local_34;\n          local_38 = ppuVar13;\n          *(undefined **)((int)ppbVar17 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0xc) = ppuVar12 + iVar8;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d69f;\n          __gmpn_sqr(*(mp_ptr *)((int)ppbVar17 + -0x10),*(mp_srcptr *)((int)ppbVar17 + -0xc),\n                     *(mp_size_t *)((int)ppbVar17 + -8));\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar8 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar8;\n            iVar15 = iVar8 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar15 = 0;\n            iVar8 = 0;\n          }\n          if (((uint)local_48 >> (uVar18 & 0x1f) & 1) != 0) {\n            *(int *)((int)ppbVar17 + -4) = base;\n            puVar7 = local_4c;\n            *(undefined **)((int)ppbVar17 + -8) = puVar6;\n            *(int *)((int)ppbVar17 + -0xc) = iVar15 + (int)local_38;\n            *(ushort ***)((int)ppbVar17 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar7 + 100);\n            *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d65b;\n            puVar9 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar9;\n            iVar15 = 0;\n            puVar6 = puVar6 + (puVar9 != (ushort *)0x0);\n            iVar8 = 0;\n          }\n          ppuVar13 = local_34;\n          uVar18 = uVar18 - 1;\n          ppuVar12 = local_38;\n          if (uVar18 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }\n      puVar7 = local_4c;\n      if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar12 = ppuVar12 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }\n      *(undefined **)((int)ppbVar17 + -8) = puVar6;\n      *(int *)((int)ppbVar17 + -0xc) = (int)ppuVar12 + iVar15;\n      *(ushort ***)((int)ppbVar17 + -0x10) = local_50;\n      pcVar2 = *(code **)(puVar7 + 0x28);\n      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d87c;\n      (*pcVar2)();\n      if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar18 = (int)puVar6 * 4 + 4;\n          if (uVar18 < 0x7f01) {\n            iVar15 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n            ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n          }\n          else {\n            *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n            *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n            *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)\n                       __gmp_tmp_reentrant_alloc\n                                 (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                                  *(size_t *)((int)ppbVar17 + -0xc));\n          }\n          ppuVar12 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar12;\n          *(int *)((int)ppbVar17 + -8) = (int)ppuVar12 * 4;\n          *(undefined4 *)((int)ppbVar17 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar17 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar17 + -0x10),*(int *)((int)ppbVar17 + -0xc),\n                 *(size_t *)((int)ppbVar17 + -8));\n          ppuVar13 = local_34;\n          puVar7 = local_4c;\n          *(undefined **)((int)ppbVar17 + -8) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13 + (int)ppuVar12;\n          pcVar2 = *(code **)(puVar7 + 0x28);\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_58 = puVar6;\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n        }\n        ppuVar13 = local_50;\n        puVar9 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar9) {\n          uVar18 = 0x1f;\n          if (puVar9 != (ushort *)0x0) {\n            for (; (uint)puVar9 >> uVar18 == 0; uVar18 = uVar18 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar17 + -4) = uVar18 ^ 0x1f;\n          *(undefined **)((int)ppbVar17 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0xc) = ppuVar13;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar13 = local_40;\n          puVar10 = local_4c;\n          *(uint *)((int)ppbVar17 + -0x14) = uVar18 ^ 0x1f;\n          puVar7 = local_58;\n          *(undefined **)((int)ppbVar17 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = ppuVar13;\n          *(ushort ***)((int)ppbVar17 + -0x20) = ppuVar13;\n          pcVar2 = *(code **)(puVar10 + 0x38);\n          *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1d9f3;\n          puVar9 = (ushort *)(*pcVar2)();\n          if (puVar9 != (ushort *)0x0) {\n            ppuVar13[(int)puVar7] = puVar9;\n            local_58 = puVar7 + 1;\n          }\n        }\n        local_34 = (ushort **)(local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar15 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          pvVar20 = (void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n          ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n        }\n        else {\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_34;\n          *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dba2;\n          pvVar20 = __gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc));\n        }\n        puVar7 = local_58;\n        *(undefined **)((int)ppbVar17 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar17 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar17 + -0x14) = puVar7;\n        puVar10 = local_3c;\n        ppuVar13 = (ushort **)(puVar7 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar17 + -0x18) = local_40;\n        local_38 = ppuVar13;\n        *(int *)((int)ppbVar17 + -0x1c) = (int)puVar10 - (int)ppuVar13;\n        *(void **)((int)ppbVar17 + -0x20) = pvVar20;\n        *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1da4a;\n        mVar11 = __gmpn_divrem(*(mp_ptr *)((int)ppbVar17 + -0x20),\n                               *(mp_size_t *)((int)ppbVar17 + -0x1c),\n                               *(mp_ptr *)((int)ppbVar17 + -0x18),\n                               *(mp_size_t *)((int)ppbVar17 + -0x14),\n                               *(mp_srcptr *)((int)ppbVar17 + -0x10),\n                               *(mp_size_t *)((int)ppbVar17 + -0xc));\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (mVar11 - (int)local_30));\n        pvVar19 = pvVar20;\n        puVar7 = local_3c;\n        if (mVar11 != 0) {\n          pvVar19 = (void *)((int)pvVar20 + 4);\n          *(mp_limb_t *)((int)pvVar20 + -4 + (int)local_34) = mVar11;\n        }\n      }\n      else {\n        local_38 = (ushort **)((int)(local_58 + (int)puVar6) * 4);\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar15 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          pvVar19 = (void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n          ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n        }\n        else {\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_38;\n          *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db83;\n          pvVar19 = __gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc));\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar17 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar17 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar17 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar17 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = local_40;\n        }\n        *(void **)((int)ppbVar17 + -0x20) = pvVar19;\n        *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1d8d6;\n        __gmpn_mul(*(mp_ptr *)((int)ppbVar17 + -0x20),*(mp_srcptr *)((int)ppbVar17 + -0x1c),\n                   *(mp_size_t *)((int)ppbVar17 + -0x18),*(mp_srcptr *)((int)ppbVar17 + -0x14),\n                   *(mp_size_t *)((int)ppbVar17 + -0x10));\n        puVar7 = (undefined *)\n                 ((int)local_34 - (uint)(*(int *)((int)pvVar19 + -4 + (int)local_38) == 0));\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar7));\n        if ((int)local_3c < (int)puVar7) {\n          pvVar19 = (void *)((int)pvVar19 + ((int)puVar7 - (int)local_3c) * 4);\n          puVar7 = local_3c;\n        }\n      }\n      local_3c = puVar7;\n      puVar10 = local_3c;\n      p_Var3 = local_60;\n      *(undefined **)((int)ppbVar17 + -8) = local_3c;\n      *(void **)((int)ppbVar17 + -0xc) = pvVar19;\n      puVar7 = local_4c;\n      *(mp_limb_t **)((int)ppbVar17 + -0x10) = p_Var3->_mp_d;\n      pcVar2 = *(code **)(puVar7 + 0x28);\n      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d91c;\n      (*pcVar2)();\n      puVar7 = (undefined *)-(int)puVar10;\n      if (local_64 == 0) {\n        puVar7 = puVar10;\n      }\n      local_60->_mp_exp = (mp_exp_t)puVar6;\n      local_60->_mp_size = (int)puVar7;\n      if (__tmp_marker == (tmp_reentrant_t *)0x0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }\n    }" { (expression_statement "local_58 = local_3c;" (assignment_expression "local_58 = local_3c" identifier = identifier) ;) (expression_statement "local_5c = (ushort **)(puVar6 + -(int)local_3c);" (assignment_expression "local_5c = (ushort **)(puVar6 + -(int)local_3c)" identifier = (cast_expression "(ushort **)(puVar6 + -(int)local_3c)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -(int)local_3c)" ( (binary_expression "puVar6 + -(int)local_3c" identifier + (unary_expression "-(int)local_3c" - (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) (expression_statement "local_40 = local_40 + (int)(puVar6 + -(int)local_3c);" (assignment_expression "local_40 = local_40 + (int)(puVar6 + -(int)local_3c)" identifier = (binary_expression "local_40 + (int)(puVar6 + -(int)local_3c)" identifier + (cast_expression "(int)(puVar6 + -(int)local_3c)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar6 + -(int)local_3c)" ( (binary_expression "puVar6 + -(int)local_3c" identifier + (unary_expression "-(int)local_3c" - (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier))) ))))) ;) (if_statement "if (local_6c == (byte *)0x0) goto LAB_0001d7f2;" if (parenthesized_expression "(local_6c == (byte *)0x0)" ( (binary_expression "local_6c == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001d7f2;" goto statement_identifier ;)) (labeled_statement "LAB_0001d4fd:\n      bVar1 = *local_6c;" statement_identifier : (expression_statement "bVar1 = *local_6c;" (assignment_expression "bVar1 = *local_6c" identifier = (pointer_expression "*local_6c" * identifier)) ;)) (expression_statement "local_30 = (undefined *)(uint)(bVar1 == 0x2d);" (assignment_expression "local_30 = (undefined *)(uint)(bVar1 == 0x2d)" identifier = (cast_expression "(undefined *)(uint)(bVar1 == 0x2d)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(bVar1 == 0x2d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar1 == 0x2d)" ( (binary_expression "bVar1 == 0x2d" identifier == number_literal) ))))) ;) (expression_statement "pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);" (assignment_expression "pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d)" identifier = (binary_expression "local_6c + (bVar1 == 0x2b || bVar1 == 0x2d)" identifier + (parenthesized_expression "(bVar1 == 0x2b || bVar1 == 0x2d)" ( (binary_expression "bVar1 == 0x2b || bVar1 == 0x2d" (binary_expression "bVar1 == 0x2b" identifier == number_literal) || (binary_expression "bVar1 == 0x2d" identifier == number_literal)) )))) ;) (expression_statement "uVar18 = (uint)(byte)local_54[*pbVar5];" (assignment_expression "uVar18 = (uint)(byte)local_54[*pbVar5]" identifier = (cast_expression "(uint)(byte)local_54[*pbVar5]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_54[*pbVar5]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_54[*pbVar5]" identifier [ (pointer_expression "*pbVar5" * identifier) ])))) ;) (expression_statement "ppbVar16 = ppbVar17;" (assignment_expression "ppbVar16 = ppbVar17" identifier = identifier) ;) (if_statement "if (local_68 <= (int)uVar18) {\nLAB_0001d756:\n        ppbVar17 = ppbVar16;\n        if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n          *(tmp_reentrant_t **)((int)ppbVar16 + -0x10) = __tmp_marker;\n          *(undefined4 *)((int)ppbVar16 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar16 + -0x10));\n        }\n        goto LAB_0001d770;\n      }" if (parenthesized_expression "(local_68 <= (int)uVar18)" ( (binary_expression "local_68 <= (int)uVar18" identifier <= (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\nLAB_0001d756:\n        ppbVar17 = ppbVar16;\n        if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n          *(tmp_reentrant_t **)((int)ppbVar16 + -0x10) = __tmp_marker;\n          *(undefined4 *)((int)ppbVar16 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar16 + -0x10));\n        }\n        goto LAB_0001d770;\n      }" { (labeled_statement "LAB_0001d756:\n        ppbVar17 = ppbVar16;" statement_identifier : (expression_statement "ppbVar17 = ppbVar16;" (assignment_expression "ppbVar17 = ppbVar16" identifier = identifier) ;)) (if_statement "if (__tmp_marker != (tmp_reentrant_t *)0x0) {\n          *(tmp_reentrant_t **)((int)ppbVar16 + -0x10) = __tmp_marker;\n          *(undefined4 *)((int)ppbVar16 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar16 + -0x10));\n        }" if (parenthesized_expression "(__tmp_marker != (tmp_reentrant_t *)0x0)" ( (binary_expression "__tmp_marker != (tmp_reentrant_t *)0x0" identifier != (cast_expression "(tmp_reentrant_t *)0x0" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(tmp_reentrant_t **)((int)ppbVar16 + -0x10) = __tmp_marker;\n          *(undefined4 *)((int)ppbVar16 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar16 + -0x10));\n        }" { (expression_statement "*(tmp_reentrant_t **)((int)ppbVar16 + -0x10) = __tmp_marker;" (assignment_expression "*(tmp_reentrant_t **)((int)ppbVar16 + -0x10) = __tmp_marker" (pointer_expression "*(tmp_reentrant_t **)((int)ppbVar16 + -0x10)" * (cast_expression "(tmp_reentrant_t **)((int)ppbVar16 + -0x10)" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar16 + -0x10)" ( (binary_expression "(int)ppbVar16 + -0x10" (cast_expression "(int)ppbVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppbVar16 + -0x14) = 0x1d769;" (assignment_expression "*(undefined4 *)((int)ppbVar16 + -0x14) = 0x1d769" (pointer_expression "*(undefined4 *)((int)ppbVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar16 + -0x14)" ( (binary_expression "(int)ppbVar16 + -0x14" (cast_expression "(int)ppbVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "__gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar16 + -0x10));" (call_expression "__gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar16 + -0x10))" identifier (argument_list "(*(tmp_reentrant_t **)((int)ppbVar16 + -0x10))" ( (pointer_expression "*(tmp_reentrant_t **)((int)ppbVar16 + -0x10)" * (cast_expression "(tmp_reentrant_t **)((int)ppbVar16 + -0x10)" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar16 + -0x10)" ( (binary_expression "(int)ppbVar16 + -0x10" (cast_expression "(int)ppbVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (goto_statement "goto LAB_0001d770;" goto statement_identifier ;) })) (expression_statement "local_34 = (ushort **)(pbVar5 + 2);" (assignment_expression "local_34 = (ushort **)(pbVar5 + 2)" identifier = (cast_expression "(ushort **)(pbVar5 + 2)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar5 + 2)" ( (binary_expression "pbVar5 + 2" identifier + number_literal) )))) ;) (expression_statement "uVar14 = (uint)(byte)local_54[pbVar5[1]];" (assignment_expression "uVar14 = (uint)(byte)local_54[pbVar5[1]]" identifier = (cast_expression "(uint)(byte)local_54[pbVar5[1]]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_54[pbVar5[1]]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_54[pbVar5[1]]" identifier [ (subscript_expression "pbVar5[1]" identifier [ number_literal ]) ])))) ;) (if_statement "if ((int)uVar14 < local_68) {\n        local_38 = ppuVar13;\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar12 = (ushort **)(pbVar5 + 2);\n        do {\n          uVar18 = uVar18 * local_68 + uVar14;\n          uVar14 = (uint)(byte)local_54[*(byte *)ppuVar12];\n          ppuVar12 = (ushort **)((int)ppuVar12 + 1);\n        } while ((int)uVar14 < local_68);\n      }" if (parenthesized_expression "((int)uVar14 < local_68)" ( (binary_expression "(int)uVar14 < local_68" (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (compound_statement "{\n        local_38 = ppuVar13;\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar12 = (ushort **)(pbVar5 + 2);\n        do {\n          uVar18 = uVar18 * local_68 + uVar14;\n          uVar14 = (uint)(byte)local_54[*(byte *)ppuVar12];\n          ppuVar12 = (ushort **)((int)ppuVar12 + 1);\n        } while ((int)uVar14 < local_68);\n      }" { (expression_statement "local_38 = ppuVar13;" (assignment_expression "local_38 = ppuVar13" identifier = identifier) ;) (expression_statement "local_34 = (ushort **)-(int)local_30;" (assignment_expression "local_34 = (ushort **)-(int)local_30" identifier = (cast_expression "(ushort **)-(int)local_30" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (unary_expression "-(int)local_30" - (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "ppuVar12 = (ushort **)(pbVar5 + 2);" (assignment_expression "ppuVar12 = (ushort **)(pbVar5 + 2)" identifier = (cast_expression "(ushort **)(pbVar5 + 2)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar5 + 2)" ( (binary_expression "pbVar5 + 2" identifier + number_literal) )))) ;) (do_statement "do {\n          uVar18 = uVar18 * local_68 + uVar14;\n          uVar14 = (uint)(byte)local_54[*(byte *)ppuVar12];\n          ppuVar12 = (ushort **)((int)ppuVar12 + 1);\n        } while ((int)uVar14 < local_68);" do (compound_statement "{\n          uVar18 = uVar18 * local_68 + uVar14;\n          uVar14 = (uint)(byte)local_54[*(byte *)ppuVar12];\n          ppuVar12 = (ushort **)((int)ppuVar12 + 1);\n        }" { (expression_statement "uVar18 = uVar18 * local_68 + uVar14;" (assignment_expression "uVar18 = uVar18 * local_68 + uVar14" identifier = (binary_expression "uVar18 * local_68 + uVar14" (binary_expression "uVar18 * local_68" identifier * identifier) + identifier)) ;) (expression_statement "uVar14 = (uint)(byte)local_54[*(byte *)ppuVar12];" (assignment_expression "uVar14 = (uint)(byte)local_54[*(byte *)ppuVar12]" identifier = (cast_expression "(uint)(byte)local_54[*(byte *)ppuVar12]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_54[*(byte *)ppuVar12]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_54[*(byte *)ppuVar12]" identifier [ (pointer_expression "*(byte *)ppuVar12" * (cast_expression "(byte *)ppuVar12" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ])))) ;) (expression_statement "ppuVar12 = (ushort **)((int)ppuVar12 + 1);" (assignment_expression "ppuVar12 = (ushort **)((int)ppuVar12 + 1)" identifier = (cast_expression "(ushort **)((int)ppuVar12 + 1)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar12 + 1)" ( (binary_expression "(int)ppuVar12 + 1" (cast_expression "(int)ppuVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((int)uVar14 < local_68)" ( (binary_expression "(int)uVar14 < local_68" (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) ;) })) (expression_statement "local_54 = local_30 + (uVar18 ^ (uint)-(int)local_30);" (assignment_expression "local_54 = local_30 + (uVar18 ^ (uint)-(int)local_30)" identifier = (binary_expression "local_30 + (uVar18 ^ (uint)-(int)local_30)" identifier + (parenthesized_expression "(uVar18 ^ (uint)-(int)local_30)" ( (binary_expression "uVar18 ^ (uint)-(int)local_30" identifier ^ (binary_expression "(uint)-(int)local_30" (parenthesized_expression "(uint)" ( identifier )) - (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) (if_statement "if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }" if (parenthesized_expression "(local_50 != (ushort **)0x0)" ( (binary_expression "local_50 != (ushort **)0x0" identifier != (cast_expression "(ushort **)0x0" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }" { (labeled_statement "LAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);" statement_identifier : (expression_statement "local_54 = local_54 + -((int)local_48 - (int)local_50);" (assignment_expression "local_54 = local_54 + -((int)local_48 - (int)local_50)" identifier = (binary_expression "local_54 + -((int)local_48 - (int)local_50)" identifier + (unary_expression "-((int)local_48 - (int)local_50)" - (parenthesized_expression "((int)local_48 - (int)local_50)" ( (binary_expression "(int)local_48 - (int)local_50" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;)) })) (if_statement "if (local_54 == (undefined *)0x0) goto LAB_0001d804;" if (parenthesized_expression "(local_54 == (undefined *)0x0)" ( (binary_expression "local_54 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001d804;" goto statement_identifier ;)) (expression_statement "uVar18 = ((int)ppuVar13 + 2U) * 8;" (assignment_expression "uVar18 = ((int)ppuVar13 + 2U) * 8" identifier = (binary_expression "((int)ppuVar13 + 2U) * 8" (parenthesized_expression "((int)ppuVar13 + 2U)" ( (binary_expression "(int)ppuVar13 + 2U" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) * number_literal)) ;) (expression_statement "local_68 = (int)ppuVar13 + 2U;" (assignment_expression "local_68 = (int)ppuVar13 + 2U" identifier = (binary_expression "(int)ppuVar13 + 2U" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (if_statement "if (uVar18 < 0x7f01) {\n        uVar18 = uVar18 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar17 + (0xf - uVar18)) & 0xfffffff0);\n        ppuVar13 = (ushort **)((uint)((int)ppbVar17 + uVar18 * -2 + 0xf) & 0xfffffff0);\n        ppbVar17 = (byte **)((int)ppbVar17 + uVar18 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n        *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n        *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db57;\n        local_50 = (ushort **)\n                   __gmp_tmp_reentrant_alloc\n                             (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                              *(size_t *)((int)ppbVar17 + -0xc));\n        *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n        *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n        *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db66;\n        ppuVar13 = (ushort **)\n                   __gmp_tmp_reentrant_alloc\n                             (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                              *(size_t *)((int)ppbVar17 + -0xc));\n      }" if (parenthesized_expression "(uVar18 < 0x7f01)" ( (binary_expression "uVar18 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n        uVar18 = uVar18 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar17 + (0xf - uVar18)) & 0xfffffff0);\n        ppuVar13 = (ushort **)((uint)((int)ppbVar17 + uVar18 * -2 + 0xf) & 0xfffffff0);\n        ppbVar17 = (byte **)((int)ppbVar17 + uVar18 * -2);\n      }" { (expression_statement "uVar18 = uVar18 + 0x1b & 0xfffffff0;" (assignment_expression "uVar18 = uVar18 + 0x1b & 0xfffffff0" identifier = (binary_expression "uVar18 + 0x1b & 0xfffffff0" (binary_expression "uVar18 + 0x1b" identifier + number_literal) & number_literal)) ;) (expression_statement "local_50 = (ushort **)((uint)((int)ppbVar17 + (0xf - uVar18)) & 0xfffffff0);" (assignment_expression "local_50 = (ushort **)((uint)((int)ppbVar17 + (0xf - uVar18)) & 0xfffffff0)" identifier = (cast_expression "(ushort **)((uint)((int)ppbVar17 + (0xf - uVar18)) & 0xfffffff0)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((uint)((int)ppbVar17 + (0xf - uVar18)) & 0xfffffff0)" ( (binary_expression "(uint)((int)ppbVar17 + (0xf - uVar18)) & 0xfffffff0" (call_expression "(uint)((int)ppbVar17 + (0xf - uVar18))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppbVar17 + (0xf - uVar18))" ( (binary_expression "(int)ppbVar17 + (0xf - uVar18)" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(0xf - uVar18)" ( (binary_expression "0xf - uVar18" number_literal - identifier) ))) ))) & number_literal) )))) ;) (expression_statement "ppuVar13 = (ushort **)((uint)((int)ppbVar17 + uVar18 * -2 + 0xf) & 0xfffffff0);" (assignment_expression "ppuVar13 = (ushort **)((uint)((int)ppbVar17 + uVar18 * -2 + 0xf) & 0xfffffff0)" identifier = (cast_expression "(ushort **)((uint)((int)ppbVar17 + uVar18 * -2 + 0xf) & 0xfffffff0)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((uint)((int)ppbVar17 + uVar18 * -2 + 0xf) & 0xfffffff0)" ( (binary_expression "(uint)((int)ppbVar17 + uVar18 * -2 + 0xf) & 0xfffffff0" (call_expression "(uint)((int)ppbVar17 + uVar18 * -2 + 0xf)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppbVar17 + uVar18 * -2 + 0xf)" ( (binary_expression "(int)ppbVar17 + uVar18 * -2 + 0xf" (binary_expression "(int)ppbVar17 + uVar18 * -2" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar18 * -2" identifier * number_literal)) + number_literal) ))) & number_literal) )))) ;) (expression_statement "ppbVar17 = (byte **)((int)ppbVar17 + uVar18 * -2);" (assignment_expression "ppbVar17 = (byte **)((int)ppbVar17 + uVar18 * -2)" identifier = (cast_expression "(byte **)((int)ppbVar17 + uVar18 * -2)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar17 + uVar18 * -2)" ( (binary_expression "(int)ppbVar17 + uVar18 * -2" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar18 * -2" identifier * number_literal)) )))) ;) }) (else_clause "else {\n        *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n        *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n        *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db57;\n        local_50 = (ushort **)\n                   __gmp_tmp_reentrant_alloc\n                             (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                              *(size_t *)((int)ppbVar17 + -0xc));\n        *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n        *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n        *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db66;\n        ppuVar13 = (ushort **)\n                   __gmp_tmp_reentrant_alloc\n                             (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                              *(size_t *)((int)ppbVar17 + -0xc));\n      }" else (compound_statement "{\n        *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n        *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n        *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db57;\n        local_50 = (ushort **)\n                   __gmp_tmp_reentrant_alloc\n                             (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                              *(size_t *)((int)ppbVar17 + -0xc));\n        *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n        *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n        *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db66;\n        ppuVar13 = (ushort **)\n                   __gmp_tmp_reentrant_alloc\n                             (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                              *(size_t *)((int)ppbVar17 + -0xc));\n      }" { (expression_statement "*(uint *)((int)ppbVar17 + -0xc) = uVar18;" (assignment_expression "*(uint *)((int)ppbVar17 + -0xc) = uVar18" (pointer_expression "*(uint *)((int)ppbVar17 + -0xc)" * (cast_expression "(uint *)((int)ppbVar17 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0xc)" ( (binary_expression "(int)ppbVar17 + -0xc" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;" (assignment_expression "*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker" (pointer_expression "*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10)" * (cast_expression "(tmp_reentrant_t ***)((int)ppbVar17 + -0x10)" ( (type_descriptor "tmp_reentrant_t ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&__tmp_marker" & identifier)) ;) (expression_statement "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db57;" (assignment_expression "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db57" (pointer_expression "*(undefined4 *)((int)ppbVar17 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x14)" ( (binary_expression "(int)ppbVar17 + -0x14" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_50 = (ushort **)\n                   __gmp_tmp_reentrant_alloc\n                             (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                              *(size_t *)((int)ppbVar17 + -0xc));" (assignment_expression "local_50 = (ushort **)\n                   __gmp_tmp_reentrant_alloc\n                             (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                              *(size_t *)((int)ppbVar17 + -0xc))" identifier = (cast_expression "(ushort **)\n                   __gmp_tmp_reentrant_alloc\n                             (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                              *(size_t *)((int)ppbVar17 + -0xc))" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "__gmp_tmp_reentrant_alloc\n                             (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                              *(size_t *)((int)ppbVar17 + -0xc))" identifier (argument_list "(*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                              *(size_t *)((int)ppbVar17 + -0xc))" ( (pointer_expression "*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10)" * (cast_expression "(tmp_reentrant_t ***)((int)ppbVar17 + -0x10)" ( (type_descriptor "tmp_reentrant_t ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)ppbVar17 + -0xc)" * (cast_expression "(size_t *)((int)ppbVar17 + -0xc)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0xc)" ( (binary_expression "(int)ppbVar17 + -0xc" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))))) ;) (expression_statement "*(uint *)((int)ppbVar17 + -0xc) = uVar18;" (assignment_expression "*(uint *)((int)ppbVar17 + -0xc) = uVar18" (pointer_expression "*(uint *)((int)ppbVar17 + -0xc)" * (cast_expression "(uint *)((int)ppbVar17 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0xc)" ( (binary_expression "(int)ppbVar17 + -0xc" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;" (assignment_expression "*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker" (pointer_expression "*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10)" * (cast_expression "(tmp_reentrant_t ***)((int)ppbVar17 + -0x10)" ( (type_descriptor "tmp_reentrant_t ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&__tmp_marker" & identifier)) ;) (expression_statement "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db66;" (assignment_expression "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db66" (pointer_expression "*(undefined4 *)((int)ppbVar17 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x14)" ( (binary_expression "(int)ppbVar17 + -0x14" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "ppuVar13 = (ushort **)\n                   __gmp_tmp_reentrant_alloc\n                             (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                              *(size_t *)((int)ppbVar17 + -0xc));" (assignment_expression "ppuVar13 = (ushort **)\n                   __gmp_tmp_reentrant_alloc\n                             (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                              *(size_t *)((int)ppbVar17 + -0xc))" identifier = (cast_expression "(ushort **)\n                   __gmp_tmp_reentrant_alloc\n                             (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                              *(size_t *)((int)ppbVar17 + -0xc))" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "__gmp_tmp_reentrant_alloc\n                             (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                              *(size_t *)((int)ppbVar17 + -0xc))" identifier (argument_list "(*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                              *(size_t *)((int)ppbVar17 + -0xc))" ( (pointer_expression "*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10)" * (cast_expression "(tmp_reentrant_t ***)((int)ppbVar17 + -0x10)" ( (type_descriptor "tmp_reentrant_t ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)ppbVar17 + -0xc)" * (cast_expression "(size_t *)((int)ppbVar17 + -0xc)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0xc)" ( (binary_expression "(int)ppbVar17 + -0xc" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))))) ;) }))) (expression_statement "local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));" (assignment_expression "local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f))" identifier = (cast_expression "(ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f))" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f))" ( (binary_expression "((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f)" (parenthesized_expression "((uint)local_54 ^ (int)local_54 >> 0x1f)" ( (binary_expression "(uint)local_54 ^ (int)local_54 >> 0x1f" (cast_expression "(uint)local_54" ( (type_descriptor "uint" type_identifier) ) identifier) ^ (binary_expression "(int)local_54 >> 0x1f" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) )) - (parenthesized_expression "((int)local_54 >> 0x1f)" ( (binary_expression "(int)local_54 >> 0x1f" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) )))) ;) (expression_statement "*local_50 = (ushort *)base;" (assignment_expression "*local_50 = (ushort *)base" (pointer_expression "*local_50" * identifier) = (cast_expression "(ushort *)base" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uVar18 = 0x1f;" (assignment_expression "uVar18 = 0x1f" identifier = number_literal) ;) (if_statement "if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar18 == 0; uVar18 = uVar18 - 1) {\n        }\n      }" if (parenthesized_expression "(local_48 != (ushort **)0x0)" ( (binary_expression "local_48 != (ushort **)0x0" identifier != (cast_expression "(ushort **)0x0" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n        for (; (uint)local_48 >> uVar18 == 0; uVar18 = uVar18 - 1) {\n        }\n      }" { (for_statement "for (; (uint)local_48 >> uVar18 == 0; uVar18 = uVar18 - 1) {\n        }" for ( ; (binary_expression "(uint)local_48 >> uVar18 == 0" (binary_expression "(uint)local_48 >> uVar18" (cast_expression "(uint)local_48" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) == number_literal) ; (assignment_expression "uVar18 = uVar18 - 1" identifier = (binary_expression "uVar18 - 1" identifier - number_literal)) ) (compound_statement "{\n        }" { })) })) (expression_statement "uVar18 = 0x1e - (uVar18 ^ 0x1f);" (assignment_expression "uVar18 = 0x1e - (uVar18 ^ 0x1f)" identifier = (binary_expression "0x1e - (uVar18 ^ 0x1f)" number_literal - (parenthesized_expression "(uVar18 ^ 0x1f)" ( (binary_expression "uVar18 ^ 0x1f" identifier ^ number_literal) )))) ;) (if_statement "if (uVar18 == 0xffffffff) {\n        iVar15 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar12 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar8 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar12 = local_34;\n          local_38 = ppuVar13;\n          *(undefined **)((int)ppbVar17 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0xc) = ppuVar12 + iVar8;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d69f;\n          __gmpn_sqr(*(mp_ptr *)((int)ppbVar17 + -0x10),*(mp_srcptr *)((int)ppbVar17 + -0xc),\n                     *(mp_size_t *)((int)ppbVar17 + -8));\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar8 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar8;\n            iVar15 = iVar8 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar15 = 0;\n            iVar8 = 0;\n          }\n          if (((uint)local_48 >> (uVar18 & 0x1f) & 1) != 0) {\n            *(int *)((int)ppbVar17 + -4) = base;\n            puVar7 = local_4c;\n            *(undefined **)((int)ppbVar17 + -8) = puVar6;\n            *(int *)((int)ppbVar17 + -0xc) = iVar15 + (int)local_38;\n            *(ushort ***)((int)ppbVar17 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar7 + 100);\n            *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d65b;\n            puVar9 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar9;\n            iVar15 = 0;\n            puVar6 = puVar6 + (puVar9 != (ushort *)0x0);\n            iVar8 = 0;\n          }\n          ppuVar13 = local_34;\n          uVar18 = uVar18 - 1;\n          ppuVar12 = local_38;\n          if (uVar18 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }" if (parenthesized_expression "(uVar18 == 0xffffffff)" ( (binary_expression "uVar18 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        iVar15 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar12 = local_50;\n      }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (expression_statement "local_30 = (undefined *)0x0;" (assignment_expression "local_30 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar6 = (undefined *)0x1;" (assignment_expression "puVar6 = (undefined *)0x1" identifier = (cast_expression "(undefined *)0x1" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c = local_44[-0x9b];" (assignment_expression "local_4c = local_44[-0x9b]" identifier = (subscript_expression "local_44[-0x9b]" identifier [ number_literal ])) ;) (expression_statement "ppuVar12 = local_50;" (assignment_expression "ppuVar12 = local_50" identifier = identifier) ;) }) (else_clause "else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar8 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar12 = local_34;\n          local_38 = ppuVar13;\n          *(undefined **)((int)ppbVar17 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0xc) = ppuVar12 + iVar8;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d69f;\n          __gmpn_sqr(*(mp_ptr *)((int)ppbVar17 + -0x10),*(mp_srcptr *)((int)ppbVar17 + -0xc),\n                     *(mp_size_t *)((int)ppbVar17 + -8));\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar8 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar8;\n            iVar15 = iVar8 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar15 = 0;\n            iVar8 = 0;\n          }\n          if (((uint)local_48 >> (uVar18 & 0x1f) & 1) != 0) {\n            *(int *)((int)ppbVar17 + -4) = base;\n            puVar7 = local_4c;\n            *(undefined **)((int)ppbVar17 + -8) = puVar6;\n            *(int *)((int)ppbVar17 + -0xc) = iVar15 + (int)local_38;\n            *(ushort ***)((int)ppbVar17 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar7 + 100);\n            *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d65b;\n            puVar9 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar9;\n            iVar15 = 0;\n            puVar6 = puVar6 + (puVar9 != (ushort *)0x0);\n            iVar8 = 0;\n          }\n          ppuVar13 = local_34;\n          uVar18 = uVar18 - 1;\n          ppuVar12 = local_38;\n          if (uVar18 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }" else (compound_statement "{\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar8 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar12 = local_34;\n          local_38 = ppuVar13;\n          *(undefined **)((int)ppbVar17 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0xc) = ppuVar12 + iVar8;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d69f;\n          __gmpn_sqr(*(mp_ptr *)((int)ppbVar17 + -0x10),*(mp_srcptr *)((int)ppbVar17 + -0xc),\n                     *(mp_size_t *)((int)ppbVar17 + -8));\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar8 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar8;\n            iVar15 = iVar8 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar15 = 0;\n            iVar8 = 0;\n          }\n          if (((uint)local_48 >> (uVar18 & 0x1f) & 1) != 0) {\n            *(int *)((int)ppbVar17 + -4) = base;\n            puVar7 = local_4c;\n            *(undefined **)((int)ppbVar17 + -8) = puVar6;\n            *(int *)((int)ppbVar17 + -0xc) = iVar15 + (int)local_38;\n            *(ushort ***)((int)ppbVar17 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar7 + 100);\n            *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d65b;\n            puVar9 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar9;\n            iVar15 = 0;\n            puVar6 = puVar6 + (puVar9 != (ushort *)0x0);\n            iVar8 = 0;\n          }\n          ppuVar13 = local_34;\n          uVar18 = uVar18 - 1;\n          ppuVar12 = local_38;\n          if (uVar18 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }" { (expression_statement "local_34 = local_50;" (assignment_expression "local_34 = local_50" identifier = identifier) ;) (expression_statement "puVar6 = (undefined *)0x1;" (assignment_expression "puVar6 = (undefined *)0x1" identifier = (cast_expression "(undefined *)0x1" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (expression_statement "local_30 = (undefined *)0x0;" (assignment_expression "local_30 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c = local_44[-0x9b];" (assignment_expression "local_4c = local_44[-0x9b]" identifier = (subscript_expression "local_44[-0x9b]" identifier [ number_literal ])) ;) (while_statement "while( true ) {\n          ppuVar12 = local_34;\n          local_38 = ppuVar13;\n          *(undefined **)((int)ppbVar17 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0xc) = ppuVar12 + iVar8;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d69f;\n          __gmpn_sqr(*(mp_ptr *)((int)ppbVar17 + -0x10),*(mp_srcptr *)((int)ppbVar17 + -0xc),\n                     *(mp_size_t *)((int)ppbVar17 + -8));\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar8 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar8;\n            iVar15 = iVar8 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar15 = 0;\n            iVar8 = 0;\n          }\n          if (((uint)local_48 >> (uVar18 & 0x1f) & 1) != 0) {\n            *(int *)((int)ppbVar17 + -4) = base;\n            puVar7 = local_4c;\n            *(undefined **)((int)ppbVar17 + -8) = puVar6;\n            *(int *)((int)ppbVar17 + -0xc) = iVar15 + (int)local_38;\n            *(ushort ***)((int)ppbVar17 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar7 + 100);\n            *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d65b;\n            puVar9 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar9;\n            iVar15 = 0;\n            puVar6 = puVar6 + (puVar9 != (ushort *)0x0);\n            iVar8 = 0;\n          }\n          ppuVar13 = local_34;\n          uVar18 = uVar18 - 1;\n          ppuVar12 = local_38;\n          if (uVar18 == 0xffffffff) break;\n          local_34 = local_38;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          ppuVar12 = local_34;\n          local_38 = ppuVar13;\n          *(undefined **)((int)ppbVar17 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0xc) = ppuVar12 + iVar8;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d69f;\n          __gmpn_sqr(*(mp_ptr *)((int)ppbVar17 + -0x10),*(mp_srcptr *)((int)ppbVar17 + -0xc),\n                     *(mp_size_t *)((int)ppbVar17 + -8));\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar8 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar8;\n            iVar15 = iVar8 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar15 = 0;\n            iVar8 = 0;\n          }\n          if (((uint)local_48 >> (uVar18 & 0x1f) & 1) != 0) {\n            *(int *)((int)ppbVar17 + -4) = base;\n            puVar7 = local_4c;\n            *(undefined **)((int)ppbVar17 + -8) = puVar6;\n            *(int *)((int)ppbVar17 + -0xc) = iVar15 + (int)local_38;\n            *(ushort ***)((int)ppbVar17 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar7 + 100);\n            *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d65b;\n            puVar9 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar9;\n            iVar15 = 0;\n            puVar6 = puVar6 + (puVar9 != (ushort *)0x0);\n            iVar8 = 0;\n          }\n          ppuVar13 = local_34;\n          uVar18 = uVar18 - 1;\n          ppuVar12 = local_38;\n          if (uVar18 == 0xffffffff) break;\n          local_34 = local_38;\n        }" { (expression_statement "ppuVar12 = local_34;" (assignment_expression "ppuVar12 = local_34" identifier = identifier) ;) (expression_statement "local_38 = ppuVar13;" (assignment_expression "local_38 = ppuVar13" identifier = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar17 + -8) = puVar6;" (assignment_expression "*(undefined **)((int)ppbVar17 + -8) = puVar6" (pointer_expression "*(undefined **)((int)ppbVar17 + -8)" * (cast_expression "(undefined **)((int)ppbVar17 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar17 + -8)" ( (binary_expression "(int)ppbVar17 + -8" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar17 + -0xc) = ppuVar12 + iVar8;" (assignment_expression "*(ushort ***)((int)ppbVar17 + -0xc) = ppuVar12 + iVar8" (pointer_expression "*(ushort ***)((int)ppbVar17 + -0xc)" * (cast_expression "(ushort ***)((int)ppbVar17 + -0xc)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0xc)" ( (binary_expression "(int)ppbVar17 + -0xc" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "ppuVar12 + iVar8" identifier + identifier)) ;) (expression_statement "*(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13;" (assignment_expression "*(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13" (pointer_expression "*(ushort ***)((int)ppbVar17 + -0x10)" * (cast_expression "(ushort ***)((int)ppbVar17 + -0x10)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d69f;" (assignment_expression "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d69f" (pointer_expression "*(undefined4 *)((int)ppbVar17 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x14)" ( (binary_expression "(int)ppbVar17 + -0x14" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_sqr(*(mp_ptr *)((int)ppbVar17 + -0x10),*(mp_srcptr *)((int)ppbVar17 + -0xc),\n                     *(mp_size_t *)((int)ppbVar17 + -8));" (call_expression "__gmpn_sqr(*(mp_ptr *)((int)ppbVar17 + -0x10),*(mp_srcptr *)((int)ppbVar17 + -0xc),\n                     *(mp_size_t *)((int)ppbVar17 + -8))" identifier (argument_list "(*(mp_ptr *)((int)ppbVar17 + -0x10),*(mp_srcptr *)((int)ppbVar17 + -0xc),\n                     *(mp_size_t *)((int)ppbVar17 + -8))" ( (pointer_expression "*(mp_ptr *)((int)ppbVar17 + -0x10)" * (cast_expression "(mp_ptr *)((int)ppbVar17 + -0x10)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(mp_srcptr *)((int)ppbVar17 + -0xc)" * (cast_expression "(mp_srcptr *)((int)ppbVar17 + -0xc)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0xc)" ( (binary_expression "(int)ppbVar17 + -0xc" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(mp_size_t *)((int)ppbVar17 + -8)" * (cast_expression "(mp_size_t *)((int)ppbVar17 + -8)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -8)" ( (binary_expression "(int)ppbVar17 + -8" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "local_30 = (undefined *)((int)local_30 * 2);" (assignment_expression "local_30 = (undefined *)((int)local_30 * 2)" identifier = (cast_expression "(undefined *)((int)local_30 * 2)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_30 * 2)" ( (binary_expression "(int)local_30 * 2" (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));" (assignment_expression "puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0))" identifier = (cast_expression "(undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0))" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0))" ( (binary_expression "(int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0)" (binary_expression "(int)puVar6 * 2" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) - (call_expression "(uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0)" ( (binary_expression "local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0" (subscript_expression "local_38[(int)puVar6 * 2 + -1]" identifier [ (binary_expression "(int)puVar6 * 2 + -1" (binary_expression "(int)puVar6 * 2" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) == (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )))) )))) ;) (if_statement "if ((int)local_3c < (int)puVar6) {\n            iVar8 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar8;\n            iVar15 = iVar8 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar15 = 0;\n            iVar8 = 0;\n          }" if (parenthesized_expression "((int)local_3c < (int)puVar6)" ( (binary_expression "(int)local_3c < (int)puVar6" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            iVar8 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar8;\n            iVar15 = iVar8 * 4;\n            puVar6 = local_3c;\n          }" { (expression_statement "iVar8 = (int)puVar6 - (int)local_3c;" (assignment_expression "iVar8 = (int)puVar6 - (int)local_3c" identifier = (binary_expression "(int)puVar6 - (int)local_3c" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_30 = local_30 + iVar8;" (assignment_expression "local_30 = local_30 + iVar8" identifier = (binary_expression "local_30 + iVar8" identifier + identifier)) ;) (expression_statement "iVar15 = iVar8 * 4;" (assignment_expression "iVar15 = iVar8 * 4" identifier = (binary_expression "iVar8 * 4" identifier * number_literal)) ;) (expression_statement "puVar6 = local_3c;" (assignment_expression "puVar6 = local_3c" identifier = identifier) ;) }) (else_clause "else {\n            iVar15 = 0;\n            iVar8 = 0;\n          }" else (compound_statement "{\n            iVar15 = 0;\n            iVar8 = 0;\n          }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) }))) (if_statement "if (((uint)local_48 >> (uVar18 & 0x1f) & 1) != 0) {\n            *(int *)((int)ppbVar17 + -4) = base;\n            puVar7 = local_4c;\n            *(undefined **)((int)ppbVar17 + -8) = puVar6;\n            *(int *)((int)ppbVar17 + -0xc) = iVar15 + (int)local_38;\n            *(ushort ***)((int)ppbVar17 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar7 + 100);\n            *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d65b;\n            puVar9 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar9;\n            iVar15 = 0;\n            puVar6 = puVar6 + (puVar9 != (ushort *)0x0);\n            iVar8 = 0;\n          }" if (parenthesized_expression "(((uint)local_48 >> (uVar18 & 0x1f) & 1) != 0)" ( (binary_expression "((uint)local_48 >> (uVar18 & 0x1f) & 1) != 0" (parenthesized_expression "((uint)local_48 >> (uVar18 & 0x1f) & 1)" ( (binary_expression "(uint)local_48 >> (uVar18 & 0x1f) & 1" (binary_expression "(uint)local_48 >> (uVar18 & 0x1f)" (cast_expression "(uint)local_48" ( (type_descriptor "uint" type_identifier) ) identifier) >> (parenthesized_expression "(uVar18 & 0x1f)" ( (binary_expression "uVar18 & 0x1f" identifier & number_literal) ))) & number_literal) )) != number_literal) )) (compound_statement "{\n            *(int *)((int)ppbVar17 + -4) = base;\n            puVar7 = local_4c;\n            *(undefined **)((int)ppbVar17 + -8) = puVar6;\n            *(int *)((int)ppbVar17 + -0xc) = iVar15 + (int)local_38;\n            *(ushort ***)((int)ppbVar17 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar7 + 100);\n            *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d65b;\n            puVar9 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar9;\n            iVar15 = 0;\n            puVar6 = puVar6 + (puVar9 != (ushort *)0x0);\n            iVar8 = 0;\n          }" { (expression_statement "*(int *)((int)ppbVar17 + -4) = base;" (assignment_expression "*(int *)((int)ppbVar17 + -4) = base" (pointer_expression "*(int *)((int)ppbVar17 + -4)" * (cast_expression "(int *)((int)ppbVar17 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -4)" ( (binary_expression "(int)ppbVar17 + -4" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar7 = local_4c;" (assignment_expression "puVar7 = local_4c" identifier = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar17 + -8) = puVar6;" (assignment_expression "*(undefined **)((int)ppbVar17 + -8) = puVar6" (pointer_expression "*(undefined **)((int)ppbVar17 + -8)" * (cast_expression "(undefined **)((int)ppbVar17 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar17 + -8)" ( (binary_expression "(int)ppbVar17 + -8" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)ppbVar17 + -0xc) = iVar15 + (int)local_38;" (assignment_expression "*(int *)((int)ppbVar17 + -0xc) = iVar15 + (int)local_38" (pointer_expression "*(int *)((int)ppbVar17 + -0xc)" * (cast_expression "(int *)((int)ppbVar17 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0xc)" ( (binary_expression "(int)ppbVar17 + -0xc" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "iVar15 + (int)local_38" identifier + (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(ushort ***)((int)ppbVar17 + -0x10) = local_38;" (assignment_expression "*(ushort ***)((int)ppbVar17 + -0x10) = local_38" (pointer_expression "*(ushort ***)((int)ppbVar17 + -0x10)" * (cast_expression "(ushort ***)((int)ppbVar17 + -0x10)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(puVar7 + 100);" (assignment_expression "pcVar2 = *(code **)(puVar7 + 100)" identifier = (pointer_expression "*(code **)(puVar7 + 100)" * (cast_expression "(code **)(puVar7 + 100)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 100)" ( (binary_expression "puVar7 + 100" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d65b;" (assignment_expression "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d65b" (pointer_expression "*(undefined4 *)((int)ppbVar17 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x14)" ( (binary_expression "(int)ppbVar17 + -0x14" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "puVar9 = (ushort *)(*pcVar2)();" (assignment_expression "puVar9 = (ushort *)(*pcVar2)()" identifier = (cast_expression "(ushort *)(*pcVar2)()" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))))) ;) (expression_statement "local_38[(int)puVar6] = puVar9;" (assignment_expression "local_38[(int)puVar6] = puVar9" (subscript_expression "local_38[(int)puVar6]" identifier [ (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) ]) = identifier) ;) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (expression_statement "puVar6 = puVar6 + (puVar9 != (ushort *)0x0);" (assignment_expression "puVar6 = puVar6 + (puVar9 != (ushort *)0x0)" identifier = (binary_expression "puVar6 + (puVar9 != (ushort *)0x0)" identifier + (parenthesized_expression "(puVar9 != (ushort *)0x0)" ( (binary_expression "puVar9 != (ushort *)0x0" identifier != (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) })) (expression_statement "ppuVar13 = local_34;" (assignment_expression "ppuVar13 = local_34" identifier = identifier) ;) (expression_statement "uVar18 = uVar18 - 1;" (assignment_expression "uVar18 = uVar18 - 1" identifier = (binary_expression "uVar18 - 1" identifier - number_literal)) ;) (expression_statement "ppuVar12 = local_38;" (assignment_expression "ppuVar12 = local_38" identifier = identifier) ;) (if_statement "if (uVar18 == 0xffffffff) break;" if (parenthesized_expression "(uVar18 == 0xffffffff)" ( (binary_expression "uVar18 == 0xffffffff" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "local_34 = local_38;" (assignment_expression "local_34 = local_38" identifier = identifier) ;) })) }))) (expression_statement "puVar7 = local_4c;" (assignment_expression "puVar7 = local_4c" identifier = identifier) ;) (if_statement "if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar12 = ppuVar12 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }" if (parenthesized_expression "((int)local_3c < (int)puVar6)" ( (binary_expression "(int)local_3c < (int)puVar6" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar12 = ppuVar12 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }" { (expression_statement "local_30 = local_30 + ((int)puVar6 - (int)local_3c);" (assignment_expression "local_30 = local_30 + ((int)puVar6 - (int)local_3c)" identifier = (binary_expression "local_30 + ((int)puVar6 - (int)local_3c)" identifier + (parenthesized_expression "((int)puVar6 - (int)local_3c)" ( (binary_expression "(int)puVar6 - (int)local_3c" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "ppuVar12 = ppuVar12 + ((int)puVar6 - (int)local_3c);" (assignment_expression "ppuVar12 = ppuVar12 + ((int)puVar6 - (int)local_3c)" identifier = (binary_expression "ppuVar12 + ((int)puVar6 - (int)local_3c)" identifier + (parenthesized_expression "((int)puVar6 - (int)local_3c)" ( (binary_expression "(int)puVar6 - (int)local_3c" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar6 = local_3c;" (assignment_expression "puVar6 = local_3c" identifier = identifier) ;) })) (expression_statement "*(undefined **)((int)ppbVar17 + -8) = puVar6;" (assignment_expression "*(undefined **)((int)ppbVar17 + -8) = puVar6" (pointer_expression "*(undefined **)((int)ppbVar17 + -8)" * (cast_expression "(undefined **)((int)ppbVar17 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar17 + -8)" ( (binary_expression "(int)ppbVar17 + -8" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)ppbVar17 + -0xc) = (int)ppuVar12 + iVar15;" (assignment_expression "*(int *)((int)ppbVar17 + -0xc) = (int)ppuVar12 + iVar15" (pointer_expression "*(int *)((int)ppbVar17 + -0xc)" * (cast_expression "(int *)((int)ppbVar17 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0xc)" ( (binary_expression "(int)ppbVar17 + -0xc" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)ppuVar12 + iVar15" (cast_expression "(int)ppuVar12" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "*(ushort ***)((int)ppbVar17 + -0x10) = local_50;" (assignment_expression "*(ushort ***)((int)ppbVar17 + -0x10) = local_50" (pointer_expression "*(ushort ***)((int)ppbVar17 + -0x10)" * (cast_expression "(ushort ***)((int)ppbVar17 + -0x10)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(puVar7 + 0x28);" (assignment_expression "pcVar2 = *(code **)(puVar7 + 0x28)" identifier = (pointer_expression "*(code **)(puVar7 + 0x28)" * (cast_expression "(code **)(puVar7 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x28)" ( (binary_expression "puVar7 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d87c;" (assignment_expression "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d87c" (pointer_expression "*(undefined4 *)((int)ppbVar17 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x14)" ( (binary_expression "(int)ppbVar17 + -0x14" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar18 = (int)puVar6 * 4 + 4;\n          if (uVar18 < 0x7f01) {\n            iVar15 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n            ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n          }\n          else {\n            *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n            *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n            *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)\n                       __gmp_tmp_reentrant_alloc\n                                 (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                                  *(size_t *)((int)ppbVar17 + -0xc));\n          }\n          ppuVar12 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar12;\n          *(int *)((int)ppbVar17 + -8) = (int)ppuVar12 * 4;\n          *(undefined4 *)((int)ppbVar17 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar17 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar17 + -0x10),*(int *)((int)ppbVar17 + -0xc),\n                 *(size_t *)((int)ppbVar17 + -8));\n          ppuVar13 = local_34;\n          puVar7 = local_4c;\n          *(undefined **)((int)ppbVar17 + -8) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13 + (int)ppuVar12;\n          pcVar2 = *(code **)(puVar7 + 0x28);\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_58 = puVar6;\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n        }\n        ppuVar13 = local_50;\n        puVar9 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar9) {\n          uVar18 = 0x1f;\n          if (puVar9 != (ushort *)0x0) {\n            for (; (uint)puVar9 >> uVar18 == 0; uVar18 = uVar18 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar17 + -4) = uVar18 ^ 0x1f;\n          *(undefined **)((int)ppbVar17 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0xc) = ppuVar13;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar13 = local_40;\n          puVar10 = local_4c;\n          *(uint *)((int)ppbVar17 + -0x14) = uVar18 ^ 0x1f;\n          puVar7 = local_58;\n          *(undefined **)((int)ppbVar17 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = ppuVar13;\n          *(ushort ***)((int)ppbVar17 + -0x20) = ppuVar13;\n          pcVar2 = *(code **)(puVar10 + 0x38);\n          *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1d9f3;\n          puVar9 = (ushort *)(*pcVar2)();\n          if (puVar9 != (ushort *)0x0) {\n            ppuVar13[(int)puVar7] = puVar9;\n            local_58 = puVar7 + 1;\n          }\n        }\n        local_34 = (ushort **)(local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar15 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          pvVar20 = (void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n          ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n        }\n        else {\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_34;\n          *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dba2;\n          pvVar20 = __gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc));\n        }\n        puVar7 = local_58;\n        *(undefined **)((int)ppbVar17 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar17 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar17 + -0x14) = puVar7;\n        puVar10 = local_3c;\n        ppuVar13 = (ushort **)(puVar7 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar17 + -0x18) = local_40;\n        local_38 = ppuVar13;\n        *(int *)((int)ppbVar17 + -0x1c) = (int)puVar10 - (int)ppuVar13;\n        *(void **)((int)ppbVar17 + -0x20) = pvVar20;\n        *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1da4a;\n        mVar11 = __gmpn_divrem(*(mp_ptr *)((int)ppbVar17 + -0x20),\n                               *(mp_size_t *)((int)ppbVar17 + -0x1c),\n                               *(mp_ptr *)((int)ppbVar17 + -0x18),\n                               *(mp_size_t *)((int)ppbVar17 + -0x14),\n                               *(mp_srcptr *)((int)ppbVar17 + -0x10),\n                               *(mp_size_t *)((int)ppbVar17 + -0xc));\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (mVar11 - (int)local_30));\n        pvVar19 = pvVar20;\n        puVar7 = local_3c;\n        if (mVar11 != 0) {\n          pvVar19 = (void *)((int)pvVar20 + 4);\n          *(mp_limb_t *)((int)pvVar20 + -4 + (int)local_34) = mVar11;\n        }\n      }\n      else {\n        local_38 = (ushort **)((int)(local_58 + (int)puVar6) * 4);\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar15 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          pvVar19 = (void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n          ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n        }\n        else {\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_38;\n          *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db83;\n          pvVar19 = __gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc));\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar17 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar17 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar17 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar17 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = local_40;\n        }\n        *(void **)((int)ppbVar17 + -0x20) = pvVar19;\n        *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1d8d6;\n        __gmpn_mul(*(mp_ptr *)((int)ppbVar17 + -0x20),*(mp_srcptr *)((int)ppbVar17 + -0x1c),\n                   *(mp_size_t *)((int)ppbVar17 + -0x18),*(mp_srcptr *)((int)ppbVar17 + -0x14),\n                   *(mp_size_t *)((int)ppbVar17 + -0x10));\n        puVar7 = (undefined *)\n                 ((int)local_34 - (uint)(*(int *)((int)pvVar19 + -4 + (int)local_38) == 0));\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar7));\n        if ((int)local_3c < (int)puVar7) {\n          pvVar19 = (void *)((int)pvVar19 + ((int)puVar7 - (int)local_3c) * 4);\n          puVar7 = local_3c;\n        }\n      }" if (parenthesized_expression "((int)local_54 < 0)" ( (binary_expression "(int)local_54 < 0" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        if ((int)local_58 < (int)puVar6) {\n          uVar18 = (int)puVar6 * 4 + 4;\n          if (uVar18 < 0x7f01) {\n            iVar15 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n            ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n          }\n          else {\n            *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n            *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n            *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)\n                       __gmp_tmp_reentrant_alloc\n                                 (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                                  *(size_t *)((int)ppbVar17 + -0xc));\n          }\n          ppuVar12 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar12;\n          *(int *)((int)ppbVar17 + -8) = (int)ppuVar12 * 4;\n          *(undefined4 *)((int)ppbVar17 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar17 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar17 + -0x10),*(int *)((int)ppbVar17 + -0xc),\n                 *(size_t *)((int)ppbVar17 + -8));\n          ppuVar13 = local_34;\n          puVar7 = local_4c;\n          *(undefined **)((int)ppbVar17 + -8) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13 + (int)ppuVar12;\n          pcVar2 = *(code **)(puVar7 + 0x28);\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_58 = puVar6;\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n        }\n        ppuVar13 = local_50;\n        puVar9 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar9) {\n          uVar18 = 0x1f;\n          if (puVar9 != (ushort *)0x0) {\n            for (; (uint)puVar9 >> uVar18 == 0; uVar18 = uVar18 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar17 + -4) = uVar18 ^ 0x1f;\n          *(undefined **)((int)ppbVar17 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0xc) = ppuVar13;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar13 = local_40;\n          puVar10 = local_4c;\n          *(uint *)((int)ppbVar17 + -0x14) = uVar18 ^ 0x1f;\n          puVar7 = local_58;\n          *(undefined **)((int)ppbVar17 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = ppuVar13;\n          *(ushort ***)((int)ppbVar17 + -0x20) = ppuVar13;\n          pcVar2 = *(code **)(puVar10 + 0x38);\n          *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1d9f3;\n          puVar9 = (ushort *)(*pcVar2)();\n          if (puVar9 != (ushort *)0x0) {\n            ppuVar13[(int)puVar7] = puVar9;\n            local_58 = puVar7 + 1;\n          }\n        }\n        local_34 = (ushort **)(local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar15 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          pvVar20 = (void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n          ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n        }\n        else {\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_34;\n          *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dba2;\n          pvVar20 = __gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc));\n        }\n        puVar7 = local_58;\n        *(undefined **)((int)ppbVar17 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar17 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar17 + -0x14) = puVar7;\n        puVar10 = local_3c;\n        ppuVar13 = (ushort **)(puVar7 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar17 + -0x18) = local_40;\n        local_38 = ppuVar13;\n        *(int *)((int)ppbVar17 + -0x1c) = (int)puVar10 - (int)ppuVar13;\n        *(void **)((int)ppbVar17 + -0x20) = pvVar20;\n        *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1da4a;\n        mVar11 = __gmpn_divrem(*(mp_ptr *)((int)ppbVar17 + -0x20),\n                               *(mp_size_t *)((int)ppbVar17 + -0x1c),\n                               *(mp_ptr *)((int)ppbVar17 + -0x18),\n                               *(mp_size_t *)((int)ppbVar17 + -0x14),\n                               *(mp_srcptr *)((int)ppbVar17 + -0x10),\n                               *(mp_size_t *)((int)ppbVar17 + -0xc));\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (mVar11 - (int)local_30));\n        pvVar19 = pvVar20;\n        puVar7 = local_3c;\n        if (mVar11 != 0) {\n          pvVar19 = (void *)((int)pvVar20 + 4);\n          *(mp_limb_t *)((int)pvVar20 + -4 + (int)local_34) = mVar11;\n        }\n      }" { (if_statement "if ((int)local_58 < (int)puVar6) {\n          uVar18 = (int)puVar6 * 4 + 4;\n          if (uVar18 < 0x7f01) {\n            iVar15 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n            ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n          }\n          else {\n            *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n            *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n            *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)\n                       __gmp_tmp_reentrant_alloc\n                                 (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                                  *(size_t *)((int)ppbVar17 + -0xc));\n          }\n          ppuVar12 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar12;\n          *(int *)((int)ppbVar17 + -8) = (int)ppuVar12 * 4;\n          *(undefined4 *)((int)ppbVar17 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar17 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar17 + -0x10),*(int *)((int)ppbVar17 + -0xc),\n                 *(size_t *)((int)ppbVar17 + -8));\n          ppuVar13 = local_34;\n          puVar7 = local_4c;\n          *(undefined **)((int)ppbVar17 + -8) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13 + (int)ppuVar12;\n          pcVar2 = *(code **)(puVar7 + 0x28);\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_58 = puVar6;\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n        }" if (parenthesized_expression "((int)local_58 < (int)puVar6)" ( (binary_expression "(int)local_58 < (int)puVar6" (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          uVar18 = (int)puVar6 * 4 + 4;\n          if (uVar18 < 0x7f01) {\n            iVar15 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n            ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n          }\n          else {\n            *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n            *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n            *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)\n                       __gmp_tmp_reentrant_alloc\n                                 (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                                  *(size_t *)((int)ppbVar17 + -0xc));\n          }\n          ppuVar12 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar12;\n          *(int *)((int)ppbVar17 + -8) = (int)ppuVar12 * 4;\n          *(undefined4 *)((int)ppbVar17 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar17 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar17 + -0x10),*(int *)((int)ppbVar17 + -0xc),\n                 *(size_t *)((int)ppbVar17 + -8));\n          ppuVar13 = local_34;\n          puVar7 = local_4c;\n          *(undefined **)((int)ppbVar17 + -8) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13 + (int)ppuVar12;\n          pcVar2 = *(code **)(puVar7 + 0x28);\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_58 = puVar6;\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n        }" { (expression_statement "uVar18 = (int)puVar6 * 4 + 4;" (assignment_expression "uVar18 = (int)puVar6 * 4 + 4" identifier = (binary_expression "(int)puVar6 * 4 + 4" (binary_expression "(int)puVar6 * 4" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal)) ;) (if_statement "if (uVar18 < 0x7f01) {\n            iVar15 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n            ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n          }\n          else {\n            *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n            *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n            *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)\n                       __gmp_tmp_reentrant_alloc\n                                 (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                                  *(size_t *)((int)ppbVar17 + -0xc));\n          }" if (parenthesized_expression "(uVar18 < 0x7f01)" ( (binary_expression "uVar18 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n            iVar15 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n            ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n          }" { (expression_statement "iVar15 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);" (assignment_expression "iVar15 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0)" identifier = (unary_expression "-((int)puVar6 * 4 + 0x1fU & 0xfffffff0)" - (parenthesized_expression "((int)puVar6 * 4 + 0x1fU & 0xfffffff0)" ( (binary_expression "(int)puVar6 * 4 + 0x1fU & 0xfffffff0" (binary_expression "(int)puVar6 * 4 + 0x1fU" (binary_expression "(int)puVar6 * 4" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "local_34 = (ushort **)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);" (assignment_expression "local_34 = (ushort **)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0)" identifier = (cast_expression "(ushort **)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0)" ( (binary_expression "(uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0" (call_expression "(uint)((int)ppbVar17 + iVar15 + 0xf)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppbVar17 + iVar15 + 0xf)" ( (binary_expression "(int)ppbVar17 + iVar15 + 0xf" (binary_expression "(int)ppbVar17 + iVar15" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))) & number_literal) )))) ;) (expression_statement "ppbVar17 = (byte **)((int)ppbVar17 + iVar15);" (assignment_expression "ppbVar17 = (byte **)((int)ppbVar17 + iVar15)" identifier = (cast_expression "(byte **)((int)ppbVar17 + iVar15)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar17 + iVar15)" ( (binary_expression "(int)ppbVar17 + iVar15" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n            *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n            *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n            *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)\n                       __gmp_tmp_reentrant_alloc\n                                 (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                                  *(size_t *)((int)ppbVar17 + -0xc));\n          }" else (compound_statement "{\n            *(uint *)((int)ppbVar17 + -0xc) = uVar18;\n            *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n            *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)\n                       __gmp_tmp_reentrant_alloc\n                                 (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                                  *(size_t *)((int)ppbVar17 + -0xc));\n          }" { (expression_statement "*(uint *)((int)ppbVar17 + -0xc) = uVar18;" (assignment_expression "*(uint *)((int)ppbVar17 + -0xc) = uVar18" (pointer_expression "*(uint *)((int)ppbVar17 + -0xc)" * (cast_expression "(uint *)((int)ppbVar17 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0xc)" ( (binary_expression "(int)ppbVar17 + -0xc" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;" (assignment_expression "*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker" (pointer_expression "*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10)" * (cast_expression "(tmp_reentrant_t ***)((int)ppbVar17 + -0x10)" ( (type_descriptor "tmp_reentrant_t ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&__tmp_marker" & identifier)) ;) (expression_statement "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dbbc;" (assignment_expression "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dbbc" (pointer_expression "*(undefined4 *)((int)ppbVar17 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x14)" ( (binary_expression "(int)ppbVar17 + -0x14" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_34 = (ushort **)\n                       __gmp_tmp_reentrant_alloc\n                                 (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                                  *(size_t *)((int)ppbVar17 + -0xc));" (assignment_expression "local_34 = (ushort **)\n                       __gmp_tmp_reentrant_alloc\n                                 (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                                  *(size_t *)((int)ppbVar17 + -0xc))" identifier = (cast_expression "(ushort **)\n                       __gmp_tmp_reentrant_alloc\n                                 (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                                  *(size_t *)((int)ppbVar17 + -0xc))" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "__gmp_tmp_reentrant_alloc\n                                 (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                                  *(size_t *)((int)ppbVar17 + -0xc))" identifier (argument_list "(*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                                  *(size_t *)((int)ppbVar17 + -0xc))" ( (pointer_expression "*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10)" * (cast_expression "(tmp_reentrant_t ***)((int)ppbVar17 + -0x10)" ( (type_descriptor "tmp_reentrant_t ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)ppbVar17 + -0xc)" * (cast_expression "(size_t *)((int)ppbVar17 + -0xc)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0xc)" ( (binary_expression "(int)ppbVar17 + -0xc" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))))) ;) }))) (expression_statement "ppuVar12 = (ushort **)(puVar6 + -(int)local_58);" (assignment_expression "ppuVar12 = (ushort **)(puVar6 + -(int)local_58)" identifier = (cast_expression "(ushort **)(puVar6 + -(int)local_58)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -(int)local_58)" ( (binary_expression "puVar6 + -(int)local_58" identifier + (unary_expression "-(int)local_58" - (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) (expression_statement "local_38 = ppuVar12;" (assignment_expression "local_38 = ppuVar12" identifier = identifier) ;) (expression_statement "*(int *)((int)ppbVar17 + -8) = (int)ppuVar12 * 4;" (assignment_expression "*(int *)((int)ppbVar17 + -8) = (int)ppuVar12 * 4" (pointer_expression "*(int *)((int)ppbVar17 + -8)" * (cast_expression "(int *)((int)ppbVar17 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -8)" ( (binary_expression "(int)ppbVar17 + -8" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)ppuVar12 * 4" (cast_expression "(int)ppuVar12" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppbVar17 + -0xc) = 0;" (assignment_expression "*(undefined4 *)((int)ppbVar17 + -0xc) = 0" (pointer_expression "*(undefined4 *)((int)ppbVar17 + -0xc)" * (cast_expression "(undefined4 *)((int)ppbVar17 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0xc)" ( (binary_expression "(int)ppbVar17 + -0xc" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(ushort ***)((int)ppbVar17 + -0x10) = local_34;" (assignment_expression "*(ushort ***)((int)ppbVar17 + -0x10) = local_34" (pointer_expression "*(ushort ***)((int)ppbVar17 + -0x10)" * (cast_expression "(ushort ***)((int)ppbVar17 + -0x10)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9a1;" (assignment_expression "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9a1" (pointer_expression "*(undefined4 *)((int)ppbVar17 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x14)" ( (binary_expression "(int)ppbVar17 + -0x14" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memset(*(void **)((int)ppbVar17 + -0x10),*(int *)((int)ppbVar17 + -0xc),\n                 *(size_t *)((int)ppbVar17 + -8));" (call_expression "memset(*(void **)((int)ppbVar17 + -0x10),*(int *)((int)ppbVar17 + -0xc),\n                 *(size_t *)((int)ppbVar17 + -8))" identifier (argument_list "(*(void **)((int)ppbVar17 + -0x10),*(int *)((int)ppbVar17 + -0xc),\n                 *(size_t *)((int)ppbVar17 + -8))" ( (pointer_expression "*(void **)((int)ppbVar17 + -0x10)" * (cast_expression "(void **)((int)ppbVar17 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)ppbVar17 + -0xc)" * (cast_expression "(int *)((int)ppbVar17 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0xc)" ( (binary_expression "(int)ppbVar17 + -0xc" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)ppbVar17 + -8)" * (cast_expression "(size_t *)((int)ppbVar17 + -8)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -8)" ( (binary_expression "(int)ppbVar17 + -8" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "ppuVar13 = local_34;" (assignment_expression "ppuVar13 = local_34" identifier = identifier) ;) (expression_statement "puVar7 = local_4c;" (assignment_expression "puVar7 = local_4c" identifier = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar17 + -8) = local_58;" (assignment_expression "*(undefined **)((int)ppbVar17 + -8) = local_58" (pointer_expression "*(undefined **)((int)ppbVar17 + -8)" * (cast_expression "(undefined **)((int)ppbVar17 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar17 + -8)" ( (binary_expression "(int)ppbVar17 + -8" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar17 + -0xc) = local_40;" (assignment_expression "*(ushort ***)((int)ppbVar17 + -0xc) = local_40" (pointer_expression "*(ushort ***)((int)ppbVar17 + -0xc)" * (cast_expression "(ushort ***)((int)ppbVar17 + -0xc)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0xc)" ( (binary_expression "(int)ppbVar17 + -0xc" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13 + (int)ppuVar12;" (assignment_expression "*(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13 + (int)ppuVar12" (pointer_expression "*(ushort ***)((int)ppbVar17 + -0x10)" * (cast_expression "(ushort ***)((int)ppbVar17 + -0x10)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "ppuVar13 + (int)ppuVar12" identifier + (cast_expression "(int)ppuVar12" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar2 = *(code **)(puVar7 + 0x28);" (assignment_expression "pcVar2 = *(code **)(puVar7 + 0x28)" identifier = (pointer_expression "*(code **)(puVar7 + 0x28)" * (cast_expression "(code **)(puVar7 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x28)" ( (binary_expression "puVar7 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9b6;" (assignment_expression "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9b6" (pointer_expression "*(undefined4 *)((int)ppbVar17 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x14)" ( (binary_expression "(int)ppbVar17 + -0x14" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "local_58 = puVar6;" (assignment_expression "local_58 = puVar6" identifier = identifier) ;) (expression_statement "local_5c = (ushort **)((int)local_5c - (int)local_38);" (assignment_expression "local_5c = (ushort **)((int)local_5c - (int)local_38)" identifier = (cast_expression "(ushort **)((int)local_5c - (int)local_38)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_5c - (int)local_38)" ( (binary_expression "(int)local_5c - (int)local_38" (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_40 = local_34;" (assignment_expression "local_40 = local_34" identifier = identifier) ;) })) (expression_statement "ppuVar13 = local_50;" (assignment_expression "ppuVar13 = local_50" identifier = identifier) ;) (expression_statement "puVar9 = local_50[(int)(puVar6 + -1)];" (assignment_expression "puVar9 = local_50[(int)(puVar6 + -1)]" identifier = (subscript_expression "local_50[(int)(puVar6 + -1)]" identifier [ (cast_expression "(int)(puVar6 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar6 + -1)" ( (binary_expression "puVar6 + -1" identifier + number_literal) ))) ])) ;) (if_statement "if (-1 < (int)puVar9) {\n          uVar18 = 0x1f;\n          if (puVar9 != (ushort *)0x0) {\n            for (; (uint)puVar9 >> uVar18 == 0; uVar18 = uVar18 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar17 + -4) = uVar18 ^ 0x1f;\n          *(undefined **)((int)ppbVar17 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0xc) = ppuVar13;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar13 = local_40;\n          puVar10 = local_4c;\n          *(uint *)((int)ppbVar17 + -0x14) = uVar18 ^ 0x1f;\n          puVar7 = local_58;\n          *(undefined **)((int)ppbVar17 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = ppuVar13;\n          *(ushort ***)((int)ppbVar17 + -0x20) = ppuVar13;\n          pcVar2 = *(code **)(puVar10 + 0x38);\n          *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1d9f3;\n          puVar9 = (ushort *)(*pcVar2)();\n          if (puVar9 != (ushort *)0x0) {\n            ppuVar13[(int)puVar7] = puVar9;\n            local_58 = puVar7 + 1;\n          }\n        }" if (parenthesized_expression "(-1 < (int)puVar9)" ( (binary_expression "-1 < (int)puVar9" number_literal < (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          uVar18 = 0x1f;\n          if (puVar9 != (ushort *)0x0) {\n            for (; (uint)puVar9 >> uVar18 == 0; uVar18 = uVar18 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar17 + -4) = uVar18 ^ 0x1f;\n          *(undefined **)((int)ppbVar17 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0xc) = ppuVar13;\n          *(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar13 = local_40;\n          puVar10 = local_4c;\n          *(uint *)((int)ppbVar17 + -0x14) = uVar18 ^ 0x1f;\n          puVar7 = local_58;\n          *(undefined **)((int)ppbVar17 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = ppuVar13;\n          *(ushort ***)((int)ppbVar17 + -0x20) = ppuVar13;\n          pcVar2 = *(code **)(puVar10 + 0x38);\n          *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1d9f3;\n          puVar9 = (ushort *)(*pcVar2)();\n          if (puVar9 != (ushort *)0x0) {\n            ppuVar13[(int)puVar7] = puVar9;\n            local_58 = puVar7 + 1;\n          }\n        }" { (expression_statement "uVar18 = 0x1f;" (assignment_expression "uVar18 = 0x1f" identifier = number_literal) ;) (if_statement "if (puVar9 != (ushort *)0x0) {\n            for (; (uint)puVar9 >> uVar18 == 0; uVar18 = uVar18 - 1) {\n            }\n          }" if (parenthesized_expression "(puVar9 != (ushort *)0x0)" ( (binary_expression "puVar9 != (ushort *)0x0" identifier != (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            for (; (uint)puVar9 >> uVar18 == 0; uVar18 = uVar18 - 1) {\n            }\n          }" { (for_statement "for (; (uint)puVar9 >> uVar18 == 0; uVar18 = uVar18 - 1) {\n            }" for ( ; (binary_expression "(uint)puVar9 >> uVar18 == 0" (binary_expression "(uint)puVar9 >> uVar18" (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) == number_literal) ; (assignment_expression "uVar18 = uVar18 - 1" identifier = (binary_expression "uVar18 - 1" identifier - number_literal)) ) (compound_statement "{\n            }" { })) })) (expression_statement "*(uint *)((int)ppbVar17 + -4) = uVar18 ^ 0x1f;" (assignment_expression "*(uint *)((int)ppbVar17 + -4) = uVar18 ^ 0x1f" (pointer_expression "*(uint *)((int)ppbVar17 + -4)" * (cast_expression "(uint *)((int)ppbVar17 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -4)" ( (binary_expression "(int)ppbVar17 + -4" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "uVar18 ^ 0x1f" identifier ^ number_literal)) ;) (expression_statement "*(undefined **)((int)ppbVar17 + -8) = puVar6;" (assignment_expression "*(undefined **)((int)ppbVar17 + -8) = puVar6" (pointer_expression "*(undefined **)((int)ppbVar17 + -8)" * (cast_expression "(undefined **)((int)ppbVar17 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar17 + -8)" ( (binary_expression "(int)ppbVar17 + -8" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar17 + -0xc) = ppuVar13;" (assignment_expression "*(ushort ***)((int)ppbVar17 + -0xc) = ppuVar13" (pointer_expression "*(ushort ***)((int)ppbVar17 + -0xc)" * (cast_expression "(ushort ***)((int)ppbVar17 + -0xc)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0xc)" ( (binary_expression "(int)ppbVar17 + -0xc" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13;" (assignment_expression "*(ushort ***)((int)ppbVar17 + -0x10) = ppuVar13" (pointer_expression "*(ushort ***)((int)ppbVar17 + -0x10)" * (cast_expression "(ushort ***)((int)ppbVar17 + -0x10)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(local_4c + 0x38);" (assignment_expression "pcVar2 = *(code **)(local_4c + 0x38)" identifier = (pointer_expression "*(code **)(local_4c + 0x38)" * (cast_expression "(code **)(local_4c + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_4c + 0x38)" ( (binary_expression "local_4c + 0x38" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9e3;" (assignment_expression "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d9e3" (pointer_expression "*(undefined4 *)((int)ppbVar17 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x14)" ( (binary_expression "(int)ppbVar17 + -0x14" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "ppuVar13 = local_40;" (assignment_expression "ppuVar13 = local_40" identifier = identifier) ;) (expression_statement "puVar10 = local_4c;" (assignment_expression "puVar10 = local_4c" identifier = identifier) ;) (expression_statement "*(uint *)((int)ppbVar17 + -0x14) = uVar18 ^ 0x1f;" (assignment_expression "*(uint *)((int)ppbVar17 + -0x14) = uVar18 ^ 0x1f" (pointer_expression "*(uint *)((int)ppbVar17 + -0x14)" * (cast_expression "(uint *)((int)ppbVar17 + -0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x14)" ( (binary_expression "(int)ppbVar17 + -0x14" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "uVar18 ^ 0x1f" identifier ^ number_literal)) ;) (expression_statement "puVar7 = local_58;" (assignment_expression "puVar7 = local_58" identifier = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar17 + -0x18) = local_58;" (assignment_expression "*(undefined **)((int)ppbVar17 + -0x18) = local_58" (pointer_expression "*(undefined **)((int)ppbVar17 + -0x18)" * (cast_expression "(undefined **)((int)ppbVar17 + -0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar17 + -0x18)" ( (binary_expression "(int)ppbVar17 + -0x18" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar17 + -0x1c) = ppuVar13;" (assignment_expression "*(ushort ***)((int)ppbVar17 + -0x1c) = ppuVar13" (pointer_expression "*(ushort ***)((int)ppbVar17 + -0x1c)" * (cast_expression "(ushort ***)((int)ppbVar17 + -0x1c)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0x1c)" ( (binary_expression "(int)ppbVar17 + -0x1c" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar17 + -0x20) = ppuVar13;" (assignment_expression "*(ushort ***)((int)ppbVar17 + -0x20) = ppuVar13" (pointer_expression "*(ushort ***)((int)ppbVar17 + -0x20)" * (cast_expression "(ushort ***)((int)ppbVar17 + -0x20)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0x20)" ( (binary_expression "(int)ppbVar17 + -0x20" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(puVar10 + 0x38);" (assignment_expression "pcVar2 = *(code **)(puVar10 + 0x38)" identifier = (pointer_expression "*(code **)(puVar10 + 0x38)" * (cast_expression "(code **)(puVar10 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x38)" ( (binary_expression "puVar10 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppbVar17 + -0x24) = 0x1d9f3;" (assignment_expression "*(undefined4 *)((int)ppbVar17 + -0x24) = 0x1d9f3" (pointer_expression "*(undefined4 *)((int)ppbVar17 + -0x24)" * (cast_expression "(undefined4 *)((int)ppbVar17 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x24)" ( (binary_expression "(int)ppbVar17 + -0x24" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "puVar9 = (ushort *)(*pcVar2)();" (assignment_expression "puVar9 = (ushort *)(*pcVar2)()" identifier = (cast_expression "(ushort *)(*pcVar2)()" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))))) ;) (if_statement "if (puVar9 != (ushort *)0x0) {\n            ppuVar13[(int)puVar7] = puVar9;\n            local_58 = puVar7 + 1;\n          }" if (parenthesized_expression "(puVar9 != (ushort *)0x0)" ( (binary_expression "puVar9 != (ushort *)0x0" identifier != (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            ppuVar13[(int)puVar7] = puVar9;\n            local_58 = puVar7 + 1;\n          }" { (expression_statement "ppuVar13[(int)puVar7] = puVar9;" (assignment_expression "ppuVar13[(int)puVar7] = puVar9" (subscript_expression "ppuVar13[(int)puVar7]" identifier [ (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) ]) = identifier) ;) (expression_statement "local_58 = puVar7 + 1;" (assignment_expression "local_58 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) })) })) (expression_statement "local_34 = (ushort **)(local_68 * 4);" (assignment_expression "local_34 = (ushort **)(local_68 * 4)" identifier = (cast_expression "(ushort **)(local_68 * 4)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_68 * 4)" ( (binary_expression "local_68 * 4" identifier * number_literal) )))) ;) (if_statement "if (local_34 < (ushort **)0x7f01) {\n          iVar15 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          pvVar20 = (void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n          ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n        }\n        else {\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_34;\n          *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dba2;\n          pvVar20 = __gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc));\n        }" if (parenthesized_expression "(local_34 < (ushort **)0x7f01)" ( (binary_expression "local_34 < (ushort **)0x7f01" identifier < (cast_expression "(ushort **)0x7f01" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n          iVar15 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          pvVar20 = (void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n          ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n        }" { (expression_statement "iVar15 = -((int)local_34 + 0x1bU & 0xfffffff0);" (assignment_expression "iVar15 = -((int)local_34 + 0x1bU & 0xfffffff0)" identifier = (unary_expression "-((int)local_34 + 0x1bU & 0xfffffff0)" - (parenthesized_expression "((int)local_34 + 0x1bU & 0xfffffff0)" ( (binary_expression "(int)local_34 + 0x1bU & 0xfffffff0" (binary_expression "(int)local_34 + 0x1bU" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal) )))) ;) (expression_statement "pvVar20 = (void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);" (assignment_expression "pvVar20 = (void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0)" identifier = (cast_expression "(void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0)" ( (binary_expression "(uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0" (call_expression "(uint)((int)ppbVar17 + iVar15 + 0xf)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppbVar17 + iVar15 + 0xf)" ( (binary_expression "(int)ppbVar17 + iVar15 + 0xf" (binary_expression "(int)ppbVar17 + iVar15" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))) & number_literal) )))) ;) (expression_statement "ppbVar17 = (byte **)((int)ppbVar17 + iVar15);" (assignment_expression "ppbVar17 = (byte **)((int)ppbVar17 + iVar15)" identifier = (cast_expression "(byte **)((int)ppbVar17 + iVar15)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar17 + iVar15)" ( (binary_expression "(int)ppbVar17 + iVar15" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_34;\n          *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dba2;\n          pvVar20 = __gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc));\n        }" else (compound_statement "{\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_34;\n          *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dba2;\n          pvVar20 = __gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc));\n        }" { (expression_statement "*(ushort ***)((int)ppbVar17 + -0xc) = local_34;" (assignment_expression "*(ushort ***)((int)ppbVar17 + -0xc) = local_34" (pointer_expression "*(ushort ***)((int)ppbVar17 + -0xc)" * (cast_expression "(ushort ***)((int)ppbVar17 + -0xc)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0xc)" ( (binary_expression "(int)ppbVar17 + -0xc" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;" (assignment_expression "*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker" (pointer_expression "*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10)" * (cast_expression "(tmp_reentrant_t ***)((int)ppbVar17 + -0x10)" ( (type_descriptor "tmp_reentrant_t ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&__tmp_marker" & identifier)) ;) (expression_statement "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dba2;" (assignment_expression "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1dba2" (pointer_expression "*(undefined4 *)((int)ppbVar17 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x14)" ( (binary_expression "(int)ppbVar17 + -0x14" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "pvVar20 = __gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc));" (assignment_expression "pvVar20 = __gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc))" identifier = (call_expression "__gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc))" identifier (argument_list "(*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc))" ( (pointer_expression "*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10)" * (cast_expression "(tmp_reentrant_t ***)((int)ppbVar17 + -0x10)" ( (type_descriptor "tmp_reentrant_t ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)ppbVar17 + -0xc)" * (cast_expression "(size_t *)((int)ppbVar17 + -0xc)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0xc)" ( (binary_expression "(int)ppbVar17 + -0xc" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) }))) (expression_statement "puVar7 = local_58;" (assignment_expression "puVar7 = local_58" identifier = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar17 + -0xc) = puVar6;" (assignment_expression "*(undefined **)((int)ppbVar17 + -0xc) = puVar6" (pointer_expression "*(undefined **)((int)ppbVar17 + -0xc)" * (cast_expression "(undefined **)((int)ppbVar17 + -0xc)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar17 + -0xc)" ( (binary_expression "(int)ppbVar17 + -0xc" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar17 + -0x10) = local_50;" (assignment_expression "*(ushort ***)((int)ppbVar17 + -0x10) = local_50" (pointer_expression "*(ushort ***)((int)ppbVar17 + -0x10)" * (cast_expression "(ushort ***)((int)ppbVar17 + -0x10)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar17 + -0x14) = puVar7;" (assignment_expression "*(undefined **)((int)ppbVar17 + -0x14) = puVar7" (pointer_expression "*(undefined **)((int)ppbVar17 + -0x14)" * (cast_expression "(undefined **)((int)ppbVar17 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar17 + -0x14)" ( (binary_expression "(int)ppbVar17 + -0x14" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar10 = local_3c;" (assignment_expression "puVar10 = local_3c" identifier = identifier) ;) (expression_statement "ppuVar13 = (ushort **)(puVar7 + -(int)puVar6);" (assignment_expression "ppuVar13 = (ushort **)(puVar7 + -(int)puVar6)" identifier = (cast_expression "(ushort **)(puVar7 + -(int)puVar6)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -(int)puVar6)" ( (binary_expression "puVar7 + -(int)puVar6" identifier + (unary_expression "-(int)puVar6" - (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) (expression_statement "*(ushort ***)((int)ppbVar17 + -0x18) = local_40;" (assignment_expression "*(ushort ***)((int)ppbVar17 + -0x18) = local_40" (pointer_expression "*(ushort ***)((int)ppbVar17 + -0x18)" * (cast_expression "(ushort ***)((int)ppbVar17 + -0x18)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0x18)" ( (binary_expression "(int)ppbVar17 + -0x18" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_38 = ppuVar13;" (assignment_expression "local_38 = ppuVar13" identifier = identifier) ;) (expression_statement "*(int *)((int)ppbVar17 + -0x1c) = (int)puVar10 - (int)ppuVar13;" (assignment_expression "*(int *)((int)ppbVar17 + -0x1c) = (int)puVar10 - (int)ppuVar13" (pointer_expression "*(int *)((int)ppbVar17 + -0x1c)" * (cast_expression "(int *)((int)ppbVar17 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x1c)" ( (binary_expression "(int)ppbVar17 + -0x1c" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)puVar10 - (int)ppuVar13" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(void **)((int)ppbVar17 + -0x20) = pvVar20;" (assignment_expression "*(void **)((int)ppbVar17 + -0x20) = pvVar20" (pointer_expression "*(void **)((int)ppbVar17 + -0x20)" * (cast_expression "(void **)((int)ppbVar17 + -0x20)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar17 + -0x20)" ( (binary_expression "(int)ppbVar17 + -0x20" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppbVar17 + -0x24) = 0x1da4a;" (assignment_expression "*(undefined4 *)((int)ppbVar17 + -0x24) = 0x1da4a" (pointer_expression "*(undefined4 *)((int)ppbVar17 + -0x24)" * (cast_expression "(undefined4 *)((int)ppbVar17 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x24)" ( (binary_expression "(int)ppbVar17 + -0x24" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "mVar11 = __gmpn_divrem(*(mp_ptr *)((int)ppbVar17 + -0x20),\n                               *(mp_size_t *)((int)ppbVar17 + -0x1c),\n                               *(mp_ptr *)((int)ppbVar17 + -0x18),\n                               *(mp_size_t *)((int)ppbVar17 + -0x14),\n                               *(mp_srcptr *)((int)ppbVar17 + -0x10),\n                               *(mp_size_t *)((int)ppbVar17 + -0xc));" (assignment_expression "mVar11 = __gmpn_divrem(*(mp_ptr *)((int)ppbVar17 + -0x20),\n                               *(mp_size_t *)((int)ppbVar17 + -0x1c),\n                               *(mp_ptr *)((int)ppbVar17 + -0x18),\n                               *(mp_size_t *)((int)ppbVar17 + -0x14),\n                               *(mp_srcptr *)((int)ppbVar17 + -0x10),\n                               *(mp_size_t *)((int)ppbVar17 + -0xc))" identifier = (call_expression "__gmpn_divrem(*(mp_ptr *)((int)ppbVar17 + -0x20),\n                               *(mp_size_t *)((int)ppbVar17 + -0x1c),\n                               *(mp_ptr *)((int)ppbVar17 + -0x18),\n                               *(mp_size_t *)((int)ppbVar17 + -0x14),\n                               *(mp_srcptr *)((int)ppbVar17 + -0x10),\n                               *(mp_size_t *)((int)ppbVar17 + -0xc))" identifier (argument_list "(*(mp_ptr *)((int)ppbVar17 + -0x20),\n                               *(mp_size_t *)((int)ppbVar17 + -0x1c),\n                               *(mp_ptr *)((int)ppbVar17 + -0x18),\n                               *(mp_size_t *)((int)ppbVar17 + -0x14),\n                               *(mp_srcptr *)((int)ppbVar17 + -0x10),\n                               *(mp_size_t *)((int)ppbVar17 + -0xc))" ( (pointer_expression "*(mp_ptr *)((int)ppbVar17 + -0x20)" * (cast_expression "(mp_ptr *)((int)ppbVar17 + -0x20)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x20)" ( (binary_expression "(int)ppbVar17 + -0x20" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(mp_size_t *)((int)ppbVar17 + -0x1c)" * (cast_expression "(mp_size_t *)((int)ppbVar17 + -0x1c)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x1c)" ( (binary_expression "(int)ppbVar17 + -0x1c" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(mp_ptr *)((int)ppbVar17 + -0x18)" * (cast_expression "(mp_ptr *)((int)ppbVar17 + -0x18)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x18)" ( (binary_expression "(int)ppbVar17 + -0x18" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(mp_size_t *)((int)ppbVar17 + -0x14)" * (cast_expression "(mp_size_t *)((int)ppbVar17 + -0x14)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x14)" ( (binary_expression "(int)ppbVar17 + -0x14" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(mp_srcptr *)((int)ppbVar17 + -0x10)" * (cast_expression "(mp_srcptr *)((int)ppbVar17 + -0x10)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(mp_size_t *)((int)ppbVar17 + -0xc)" * (cast_expression "(mp_size_t *)((int)ppbVar17 + -0xc)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0xc)" ( (binary_expression "(int)ppbVar17 + -0xc" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "puVar6 = (undefined *)((int)local_38 + (int)local_5c + (mVar11 - (int)local_30));" (assignment_expression "puVar6 = (undefined *)((int)local_38 + (int)local_5c + (mVar11 - (int)local_30))" identifier = (cast_expression "(undefined *)((int)local_38 + (int)local_5c + (mVar11 - (int)local_30))" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + (int)local_5c + (mVar11 - (int)local_30))" ( (binary_expression "(int)local_38 + (int)local_5c + (mVar11 - (int)local_30)" (binary_expression "(int)local_38 + (int)local_5c" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier)) + (parenthesized_expression "(mVar11 - (int)local_30)" ( (binary_expression "mVar11 - (int)local_30" identifier - (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "pvVar19 = pvVar20;" (assignment_expression "pvVar19 = pvVar20" identifier = identifier) ;) (expression_statement "puVar7 = local_3c;" (assignment_expression "puVar7 = local_3c" identifier = identifier) ;) (if_statement "if (mVar11 != 0) {\n          pvVar19 = (void *)((int)pvVar20 + 4);\n          *(mp_limb_t *)((int)pvVar20 + -4 + (int)local_34) = mVar11;\n        }" if (parenthesized_expression "(mVar11 != 0)" ( (binary_expression "mVar11 != 0" identifier != number_literal) )) (compound_statement "{\n          pvVar19 = (void *)((int)pvVar20 + 4);\n          *(mp_limb_t *)((int)pvVar20 + -4 + (int)local_34) = mVar11;\n        }" { (expression_statement "pvVar19 = (void *)((int)pvVar20 + 4);" (assignment_expression "pvVar19 = (void *)((int)pvVar20 + 4)" identifier = (cast_expression "(void *)((int)pvVar20 + 4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar20 + 4)" ( (binary_expression "(int)pvVar20 + 4" (cast_expression "(int)pvVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(mp_limb_t *)((int)pvVar20 + -4 + (int)local_34) = mVar11;" (assignment_expression "*(mp_limb_t *)((int)pvVar20 + -4 + (int)local_34) = mVar11" (pointer_expression "*(mp_limb_t *)((int)pvVar20 + -4 + (int)local_34)" * (cast_expression "(mp_limb_t *)((int)pvVar20 + -4 + (int)local_34)" ( (type_descriptor "mp_limb_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar20 + -4 + (int)local_34)" ( (binary_expression "(int)pvVar20 + -4 + (int)local_34" (binary_expression "(int)pvVar20 + -4" (cast_expression "(int)pvVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) + (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = identifier) ;) })) }) (else_clause "else {\n        local_38 = (ushort **)((int)(local_58 + (int)puVar6) * 4);\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar15 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          pvVar19 = (void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n          ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n        }\n        else {\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_38;\n          *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db83;\n          pvVar19 = __gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc));\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar17 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar17 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar17 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar17 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = local_40;\n        }\n        *(void **)((int)ppbVar17 + -0x20) = pvVar19;\n        *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1d8d6;\n        __gmpn_mul(*(mp_ptr *)((int)ppbVar17 + -0x20),*(mp_srcptr *)((int)ppbVar17 + -0x1c),\n                   *(mp_size_t *)((int)ppbVar17 + -0x18),*(mp_srcptr *)((int)ppbVar17 + -0x14),\n                   *(mp_size_t *)((int)ppbVar17 + -0x10));\n        puVar7 = (undefined *)\n                 ((int)local_34 - (uint)(*(int *)((int)pvVar19 + -4 + (int)local_38) == 0));\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar7));\n        if ((int)local_3c < (int)puVar7) {\n          pvVar19 = (void *)((int)pvVar19 + ((int)puVar7 - (int)local_3c) * 4);\n          puVar7 = local_3c;\n        }\n      }" else (compound_statement "{\n        local_38 = (ushort **)((int)(local_58 + (int)puVar6) * 4);\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar15 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          pvVar19 = (void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n          ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n        }\n        else {\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_38;\n          *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db83;\n          pvVar19 = __gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc));\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar17 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar17 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar17 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar17 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = local_40;\n        }\n        *(void **)((int)ppbVar17 + -0x20) = pvVar19;\n        *(undefined4 *)((int)ppbVar17 + -0x24) = 0x1d8d6;\n        __gmpn_mul(*(mp_ptr *)((int)ppbVar17 + -0x20),*(mp_srcptr *)((int)ppbVar17 + -0x1c),\n                   *(mp_size_t *)((int)ppbVar17 + -0x18),*(mp_srcptr *)((int)ppbVar17 + -0x14),\n                   *(mp_size_t *)((int)ppbVar17 + -0x10));\n        puVar7 = (undefined *)\n                 ((int)local_34 - (uint)(*(int *)((int)pvVar19 + -4 + (int)local_38) == 0));\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar7));\n        if ((int)local_3c < (int)puVar7) {\n          pvVar19 = (void *)((int)pvVar19 + ((int)puVar7 - (int)local_3c) * 4);\n          puVar7 = local_3c;\n        }\n      }" { (expression_statement "local_38 = (ushort **)((int)(local_58 + (int)puVar6) * 4);" (assignment_expression "local_38 = (ushort **)((int)(local_58 + (int)puVar6) * 4)" identifier = (cast_expression "(ushort **)((int)(local_58 + (int)puVar6) * 4)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)(local_58 + (int)puVar6) * 4)" ( (binary_expression "(int)(local_58 + (int)puVar6) * 4" (cast_expression "(int)(local_58 + (int)puVar6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_58 + (int)puVar6)" ( (binary_expression "local_58 + (int)puVar6" identifier + (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ))) * number_literal) )))) ;) (expression_statement "local_34 = (ushort **)(local_58 + (int)puVar6);" (assignment_expression "local_34 = (ushort **)(local_58 + (int)puVar6)" identifier = (cast_expression "(ushort **)(local_58 + (int)puVar6)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_58 + (int)puVar6)" ( (binary_expression "local_58 + (int)puVar6" identifier + (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (local_38 < (ushort **)0x7f01) {\n          iVar15 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          pvVar19 = (void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n          ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n        }\n        else {\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_38;\n          *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db83;\n          pvVar19 = __gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc));\n        }" if (parenthesized_expression "(local_38 < (ushort **)0x7f01)" ( (binary_expression "local_38 < (ushort **)0x7f01" identifier < (cast_expression "(ushort **)0x7f01" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n          iVar15 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          pvVar19 = (void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);\n          ppbVar17 = (byte **)((int)ppbVar17 + iVar15);\n        }" { (expression_statement "iVar15 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);" (assignment_expression "iVar15 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0)" identifier = (unary_expression "-((uint)((int)local_38 + 0x1bU) & 0xfffffff0)" - (parenthesized_expression "((uint)((int)local_38 + 0x1bU) & 0xfffffff0)" ( (binary_expression "(uint)((int)local_38 + 0x1bU) & 0xfffffff0" (call_expression "(uint)((int)local_38 + 0x1bU)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_38 + 0x1bU)" ( (binary_expression "(int)local_38 + 0x1bU" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) & number_literal) )))) ;) (expression_statement "pvVar19 = (void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0);" (assignment_expression "pvVar19 = (void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0)" identifier = (cast_expression "(void *)((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0)" ( (binary_expression "(uint)((int)ppbVar17 + iVar15 + 0xf) & 0xfffffff0" (call_expression "(uint)((int)ppbVar17 + iVar15 + 0xf)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppbVar17 + iVar15 + 0xf)" ( (binary_expression "(int)ppbVar17 + iVar15 + 0xf" (binary_expression "(int)ppbVar17 + iVar15" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))) & number_literal) )))) ;) (expression_statement "ppbVar17 = (byte **)((int)ppbVar17 + iVar15);" (assignment_expression "ppbVar17 = (byte **)((int)ppbVar17 + iVar15)" identifier = (cast_expression "(byte **)((int)ppbVar17 + iVar15)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar17 + iVar15)" ( (binary_expression "(int)ppbVar17 + iVar15" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_38;\n          *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db83;\n          pvVar19 = __gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc));\n        }" else (compound_statement "{\n          *(ushort ***)((int)ppbVar17 + -0xc) = local_38;\n          *(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;\n          *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db83;\n          pvVar19 = __gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc));\n        }" { (expression_statement "*(ushort ***)((int)ppbVar17 + -0xc) = local_38;" (assignment_expression "*(ushort ***)((int)ppbVar17 + -0xc) = local_38" (pointer_expression "*(ushort ***)((int)ppbVar17 + -0xc)" * (cast_expression "(ushort ***)((int)ppbVar17 + -0xc)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0xc)" ( (binary_expression "(int)ppbVar17 + -0xc" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker;" (assignment_expression "*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10) = &__tmp_marker" (pointer_expression "*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10)" * (cast_expression "(tmp_reentrant_t ***)((int)ppbVar17 + -0x10)" ( (type_descriptor "tmp_reentrant_t ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&__tmp_marker" & identifier)) ;) (expression_statement "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db83;" (assignment_expression "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1db83" (pointer_expression "*(undefined4 *)((int)ppbVar17 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x14)" ( (binary_expression "(int)ppbVar17 + -0x14" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "pvVar19 = __gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc));" (assignment_expression "pvVar19 = __gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc))" identifier = (call_expression "__gmp_tmp_reentrant_alloc\n                              (*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc))" identifier (argument_list "(*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10),\n                               *(size_t *)((int)ppbVar17 + -0xc))" ( (pointer_expression "*(tmp_reentrant_t ***)((int)ppbVar17 + -0x10)" * (cast_expression "(tmp_reentrant_t ***)((int)ppbVar17 + -0x10)" ( (type_descriptor "tmp_reentrant_t ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)ppbVar17 + -0xc)" * (cast_expression "(size_t *)((int)ppbVar17 + -0xc)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0xc)" ( (binary_expression "(int)ppbVar17 + -0xc" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) }))) (if_statement "if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar17 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar17 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar17 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar17 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = local_40;\n        }" if (parenthesized_expression "((int)local_58 < (int)puVar6)" ( (binary_expression "(int)local_58 < (int)puVar6" (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          *(undefined **)((int)ppbVar17 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar17 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = local_50;\n        }" { (expression_statement "*(undefined **)((int)ppbVar17 + -0x10) = local_58;" (assignment_expression "*(undefined **)((int)ppbVar17 + -0x10) = local_58" (pointer_expression "*(undefined **)((int)ppbVar17 + -0x10)" * (cast_expression "(undefined **)((int)ppbVar17 + -0x10)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar17 + -0x14) = local_40;" (assignment_expression "*(ushort ***)((int)ppbVar17 + -0x14) = local_40" (pointer_expression "*(ushort ***)((int)ppbVar17 + -0x14)" * (cast_expression "(ushort ***)((int)ppbVar17 + -0x14)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0x14)" ( (binary_expression "(int)ppbVar17 + -0x14" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar17 + -0x18) = puVar6;" (assignment_expression "*(undefined **)((int)ppbVar17 + -0x18) = puVar6" (pointer_expression "*(undefined **)((int)ppbVar17 + -0x18)" * (cast_expression "(undefined **)((int)ppbVar17 + -0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar17 + -0x18)" ( (binary_expression "(int)ppbVar17 + -0x18" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar17 + -0x1c) = local_50;" (assignment_expression "*(ushort ***)((int)ppbVar17 + -0x1c) = local_50" (pointer_expression "*(ushort ***)((int)ppbVar17 + -0x1c)" * (cast_expression "(ushort ***)((int)ppbVar17 + -0x1c)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0x1c)" ( (binary_expression "(int)ppbVar17 + -0x1c" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n          *(undefined **)((int)ppbVar17 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar17 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = local_40;\n        }" else (compound_statement "{\n          *(undefined **)((int)ppbVar17 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar17 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar17 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar17 + -0x1c) = local_40;\n        }" { (expression_statement "*(undefined **)((int)ppbVar17 + -0x10) = puVar6;" (assignment_expression "*(undefined **)((int)ppbVar17 + -0x10) = puVar6" (pointer_expression "*(undefined **)((int)ppbVar17 + -0x10)" * (cast_expression "(undefined **)((int)ppbVar17 + -0x10)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar17 + -0x14) = local_50;" (assignment_expression "*(ushort ***)((int)ppbVar17 + -0x14) = local_50" (pointer_expression "*(ushort ***)((int)ppbVar17 + -0x14)" * (cast_expression "(ushort ***)((int)ppbVar17 + -0x14)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0x14)" ( (binary_expression "(int)ppbVar17 + -0x14" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar17 + -0x18) = local_58;" (assignment_expression "*(undefined **)((int)ppbVar17 + -0x18) = local_58" (pointer_expression "*(undefined **)((int)ppbVar17 + -0x18)" * (cast_expression "(undefined **)((int)ppbVar17 + -0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar17 + -0x18)" ( (binary_expression "(int)ppbVar17 + -0x18" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar17 + -0x1c) = local_40;" (assignment_expression "*(ushort ***)((int)ppbVar17 + -0x1c) = local_40" (pointer_expression "*(ushort ***)((int)ppbVar17 + -0x1c)" * (cast_expression "(ushort ***)((int)ppbVar17 + -0x1c)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0x1c)" ( (binary_expression "(int)ppbVar17 + -0x1c" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) }))) (expression_statement "*(void **)((int)ppbVar17 + -0x20) = pvVar19;" (assignment_expression "*(void **)((int)ppbVar17 + -0x20) = pvVar19" (pointer_expression "*(void **)((int)ppbVar17 + -0x20)" * (cast_expression "(void **)((int)ppbVar17 + -0x20)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar17 + -0x20)" ( (binary_expression "(int)ppbVar17 + -0x20" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppbVar17 + -0x24) = 0x1d8d6;" (assignment_expression "*(undefined4 *)((int)ppbVar17 + -0x24) = 0x1d8d6" (pointer_expression "*(undefined4 *)((int)ppbVar17 + -0x24)" * (cast_expression "(undefined4 *)((int)ppbVar17 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x24)" ( (binary_expression "(int)ppbVar17 + -0x24" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_mul(*(mp_ptr *)((int)ppbVar17 + -0x20),*(mp_srcptr *)((int)ppbVar17 + -0x1c),\n                   *(mp_size_t *)((int)ppbVar17 + -0x18),*(mp_srcptr *)((int)ppbVar17 + -0x14),\n                   *(mp_size_t *)((int)ppbVar17 + -0x10));" (call_expression "__gmpn_mul(*(mp_ptr *)((int)ppbVar17 + -0x20),*(mp_srcptr *)((int)ppbVar17 + -0x1c),\n                   *(mp_size_t *)((int)ppbVar17 + -0x18),*(mp_srcptr *)((int)ppbVar17 + -0x14),\n                   *(mp_size_t *)((int)ppbVar17 + -0x10))" identifier (argument_list "(*(mp_ptr *)((int)ppbVar17 + -0x20),*(mp_srcptr *)((int)ppbVar17 + -0x1c),\n                   *(mp_size_t *)((int)ppbVar17 + -0x18),*(mp_srcptr *)((int)ppbVar17 + -0x14),\n                   *(mp_size_t *)((int)ppbVar17 + -0x10))" ( (pointer_expression "*(mp_ptr *)((int)ppbVar17 + -0x20)" * (cast_expression "(mp_ptr *)((int)ppbVar17 + -0x20)" ( (type_descriptor "mp_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x20)" ( (binary_expression "(int)ppbVar17 + -0x20" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(mp_srcptr *)((int)ppbVar17 + -0x1c)" * (cast_expression "(mp_srcptr *)((int)ppbVar17 + -0x1c)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x1c)" ( (binary_expression "(int)ppbVar17 + -0x1c" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(mp_size_t *)((int)ppbVar17 + -0x18)" * (cast_expression "(mp_size_t *)((int)ppbVar17 + -0x18)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x18)" ( (binary_expression "(int)ppbVar17 + -0x18" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(mp_srcptr *)((int)ppbVar17 + -0x14)" * (cast_expression "(mp_srcptr *)((int)ppbVar17 + -0x14)" ( (type_descriptor "mp_srcptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x14)" ( (binary_expression "(int)ppbVar17 + -0x14" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(mp_size_t *)((int)ppbVar17 + -0x10)" * (cast_expression "(mp_size_t *)((int)ppbVar17 + -0x10)" ( (type_descriptor "mp_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "puVar7 = (undefined *)\n                 ((int)local_34 - (uint)(*(int *)((int)pvVar19 + -4 + (int)local_38) == 0));" (assignment_expression "puVar7 = (undefined *)\n                 ((int)local_34 - (uint)(*(int *)((int)pvVar19 + -4 + (int)local_38) == 0))" identifier = (cast_expression "(undefined *)\n                 ((int)local_34 - (uint)(*(int *)((int)pvVar19 + -4 + (int)local_38) == 0))" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_34 - (uint)(*(int *)((int)pvVar19 + -4 + (int)local_38) == 0))" ( (binary_expression "(int)local_34 - (uint)(*(int *)((int)pvVar19 + -4 + (int)local_38) == 0)" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) - (call_expression "(uint)(*(int *)((int)pvVar19 + -4 + (int)local_38) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)((int)pvVar19 + -4 + (int)local_38) == 0)" ( (binary_expression "*(int *)((int)pvVar19 + -4 + (int)local_38) == 0" (pointer_expression "*(int *)((int)pvVar19 + -4 + (int)local_38)" * (cast_expression "(int *)((int)pvVar19 + -4 + (int)local_38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar19 + -4 + (int)local_38)" ( (binary_expression "(int)pvVar19 + -4 + (int)local_38" (binary_expression "(int)pvVar19 + -4" (cast_expression "(int)pvVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) + (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier)) )))) == number_literal) )))) )))) ;) (expression_statement "puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar7));" (assignment_expression "puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar7))" identifier = (cast_expression "(undefined *)((int)local_5c + (int)(local_30 + (int)puVar7))" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_5c + (int)(local_30 + (int)puVar7))" ( (binary_expression "(int)local_5c + (int)(local_30 + (int)puVar7)" (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(local_30 + (int)puVar7)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_30 + (int)puVar7)" ( (binary_expression "local_30 + (int)puVar7" identifier + (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )))) ;) (if_statement "if ((int)local_3c < (int)puVar7) {\n          pvVar19 = (void *)((int)pvVar19 + ((int)puVar7 - (int)local_3c) * 4);\n          puVar7 = local_3c;\n        }" if (parenthesized_expression "((int)local_3c < (int)puVar7)" ( (binary_expression "(int)local_3c < (int)puVar7" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          pvVar19 = (void *)((int)pvVar19 + ((int)puVar7 - (int)local_3c) * 4);\n          puVar7 = local_3c;\n        }" { (expression_statement "pvVar19 = (void *)((int)pvVar19 + ((int)puVar7 - (int)local_3c) * 4);" (assignment_expression "pvVar19 = (void *)((int)pvVar19 + ((int)puVar7 - (int)local_3c) * 4)" identifier = (cast_expression "(void *)((int)pvVar19 + ((int)puVar7 - (int)local_3c) * 4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar19 + ((int)puVar7 - (int)local_3c) * 4)" ( (binary_expression "(int)pvVar19 + ((int)puVar7 - (int)local_3c) * 4" (cast_expression "(int)pvVar19" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "((int)puVar7 - (int)local_3c) * 4" (parenthesized_expression "((int)puVar7 - (int)local_3c)" ( (binary_expression "(int)puVar7 - (int)local_3c" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal)) )))) ;) (expression_statement "puVar7 = local_3c;" (assignment_expression "puVar7 = local_3c" identifier = identifier) ;) })) }))) (expression_statement "local_3c = puVar7;" (assignment_expression "local_3c = puVar7" identifier = identifier) ;) (expression_statement "puVar10 = local_3c;" (assignment_expression "puVar10 = local_3c" identifier = identifier) ;) (expression_statement "p_Var3 = local_60;" (assignment_expression "p_Var3 = local_60" identifier = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar17 + -8) = local_3c;" (assignment_expression "*(undefined **)((int)ppbVar17 + -8) = local_3c" (pointer_expression "*(undefined **)((int)ppbVar17 + -8)" * (cast_expression "(undefined **)((int)ppbVar17 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar17 + -8)" ( (binary_expression "(int)ppbVar17 + -8" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(void **)((int)ppbVar17 + -0xc) = pvVar19;" (assignment_expression "*(void **)((int)ppbVar17 + -0xc) = pvVar19" (pointer_expression "*(void **)((int)ppbVar17 + -0xc)" * (cast_expression "(void **)((int)ppbVar17 + -0xc)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar17 + -0xc)" ( (binary_expression "(int)ppbVar17 + -0xc" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar7 = local_4c;" (assignment_expression "puVar7 = local_4c" identifier = identifier) ;) (expression_statement "*(mp_limb_t **)((int)ppbVar17 + -0x10) = p_Var3->_mp_d;" (assignment_expression "*(mp_limb_t **)((int)ppbVar17 + -0x10) = p_Var3->_mp_d" (pointer_expression "*(mp_limb_t **)((int)ppbVar17 + -0x10)" * (cast_expression "(mp_limb_t **)((int)ppbVar17 + -0x10)" ( (type_descriptor "mp_limb_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "p_Var3->_mp_d" identifier -> field_identifier)) ;) (expression_statement "pcVar2 = *(code **)(puVar7 + 0x28);" (assignment_expression "pcVar2 = *(code **)(puVar7 + 0x28)" identifier = (pointer_expression "*(code **)(puVar7 + 0x28)" * (cast_expression "(code **)(puVar7 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x28)" ( (binary_expression "puVar7 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d91c;" (assignment_expression "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d91c" (pointer_expression "*(undefined4 *)((int)ppbVar17 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x14)" ( (binary_expression "(int)ppbVar17 + -0x14" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar7 = (undefined *)-(int)puVar10;" (assignment_expression "puVar7 = (undefined *)-(int)puVar10" identifier = (cast_expression "(undefined *)-(int)puVar10" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)puVar10" - (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (if_statement "if (local_64 == 0) {\n        puVar7 = puVar10;\n      }" if (parenthesized_expression "(local_64 == 0)" ( (binary_expression "local_64 == 0" identifier == number_literal) )) (compound_statement "{\n        puVar7 = puVar10;\n      }" { (expression_statement "puVar7 = puVar10;" (assignment_expression "puVar7 = puVar10" identifier = identifier) ;) })) (expression_statement "local_60->_mp_exp = (mp_exp_t)puVar6;" (assignment_expression "local_60->_mp_exp = (mp_exp_t)puVar6" (field_expression "local_60->_mp_exp" identifier -> field_identifier) = (cast_expression "(mp_exp_t)puVar6" ( (type_descriptor "mp_exp_t" type_identifier) ) identifier)) ;) (expression_statement "local_60->_mp_size = (int)puVar7;" (assignment_expression "local_60->_mp_size = (int)puVar7" (field_expression "local_60->_mp_size" identifier -> field_identifier) = (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (__tmp_marker == (tmp_reentrant_t *)0x0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }" if (parenthesized_expression "(__tmp_marker == (tmp_reentrant_t *)0x0)" ( (binary_expression "__tmp_marker == (tmp_reentrant_t *)0x0" identifier == (cast_expression "(tmp_reentrant_t *)0x0" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }" { (expression_statement "puVar6 = (undefined *)0x0;" (assignment_expression "puVar6 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0001d775;" goto statement_identifier ;) })) }) (else_clause "else {\n      local_58 = puVar6;\n      local_5c = (ushort **)0x0;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar7 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar17 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar17 + -0xc) = local_40;\n      *(mp_limb_t **)((int)ppbVar17 + -0x10) = p_Var3->_mp_d;\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar7;\n      if (local_64 == 0) {\n        puVar6 = puVar7;\n      }\n      p_Var3->_mp_exp = (mp_exp_t)local_30;\n      p_Var3->_mp_size = (int)puVar6;\n      if (__tmp_marker == (tmp_reentrant_t *)0x0) goto LAB_0001d7d0;\n    }" else (compound_statement "{\n      local_58 = puVar6;\n      local_5c = (ushort **)0x0;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar7 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar17 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar17 + -0xc) = local_40;\n      *(mp_limb_t **)((int)ppbVar17 + -0x10) = p_Var3->_mp_d;\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar7;\n      if (local_64 == 0) {\n        puVar6 = puVar7;\n      }\n      p_Var3->_mp_exp = (mp_exp_t)local_30;\n      p_Var3->_mp_size = (int)puVar6;\n      if (__tmp_marker == (tmp_reentrant_t *)0x0) goto LAB_0001d7d0;\n    }" { (expression_statement "local_58 = puVar6;" (assignment_expression "local_58 = puVar6" identifier = identifier) ;) (expression_statement "local_5c = (ushort **)0x0;" (assignment_expression "local_5c = (ushort **)0x0" identifier = (cast_expression "(ushort **)0x0" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (if_statement "if (local_6c != (byte *)0x0) goto LAB_0001d4fd;" if (parenthesized_expression "(local_6c != (byte *)0x0)" ( (binary_expression "local_6c != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001d4fd;" goto statement_identifier ;)) (labeled_statement "LAB_0001d7f2:\n      local_54 = (undefined *)0x0;" statement_identifier : (expression_statement "local_54 = (undefined *)0x0;" (assignment_expression "local_54 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (local_50 != (ushort **)0x0) goto LAB_0001d589;" if (parenthesized_expression "(local_50 != (ushort **)0x0)" ( (binary_expression "local_50 != (ushort **)0x0" identifier != (cast_expression "(ushort **)0x0" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_0001d589;" goto statement_identifier ;)) (labeled_statement "LAB_0001d804:\n      puVar7 = local_58;" statement_identifier : (expression_statement "puVar7 = local_58;" (assignment_expression "puVar7 = local_58" identifier = identifier) ;)) (expression_statement "local_30 = puVar6;" (assignment_expression "local_30 = puVar6" identifier = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar17 + -8) = local_58;" (assignment_expression "*(undefined **)((int)ppbVar17 + -8) = local_58" (pointer_expression "*(undefined **)((int)ppbVar17 + -8)" * (cast_expression "(undefined **)((int)ppbVar17 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar17 + -8)" ( (binary_expression "(int)ppbVar17 + -8" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar6 = ppuVar4[-0x9b];" (assignment_expression "puVar6 = ppuVar4[-0x9b]" identifier = (subscript_expression "ppuVar4[-0x9b]" identifier [ number_literal ])) ;) (expression_statement "*(ushort ***)((int)ppbVar17 + -0xc) = local_40;" (assignment_expression "*(ushort ***)((int)ppbVar17 + -0xc) = local_40" (pointer_expression "*(ushort ***)((int)ppbVar17 + -0xc)" * (cast_expression "(ushort ***)((int)ppbVar17 + -0xc)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar17 + -0xc)" ( (binary_expression "(int)ppbVar17 + -0xc" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(mp_limb_t **)((int)ppbVar17 + -0x10) = p_Var3->_mp_d;" (assignment_expression "*(mp_limb_t **)((int)ppbVar17 + -0x10) = p_Var3->_mp_d" (pointer_expression "*(mp_limb_t **)((int)ppbVar17 + -0x10)" * (cast_expression "(mp_limb_t **)((int)ppbVar17 + -0x10)" ( (type_descriptor "mp_limb_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "p_Var3->_mp_d" identifier -> field_identifier)) ;) (expression_statement "pcVar2 = *(code **)(puVar6 + 0x28);" (assignment_expression "pcVar2 = *(code **)(puVar6 + 0x28)" identifier = (pointer_expression "*(code **)(puVar6 + 0x28)" * (cast_expression "(code **)(puVar6 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + 0x28)" ( (binary_expression "puVar6 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d823;" (assignment_expression "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d823" (pointer_expression "*(undefined4 *)((int)ppbVar17 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x14)" ( (binary_expression "(int)ppbVar17 + -0x14" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar6 = (undefined *)-(int)puVar7;" (assignment_expression "puVar6 = (undefined *)-(int)puVar7" identifier = (cast_expression "(undefined *)-(int)puVar7" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)puVar7" - (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (if_statement "if (local_64 == 0) {\n        puVar6 = puVar7;\n      }" if (parenthesized_expression "(local_64 == 0)" ( (binary_expression "local_64 == 0" identifier == number_literal) )) (compound_statement "{\n        puVar6 = puVar7;\n      }" { (expression_statement "puVar6 = puVar7;" (assignment_expression "puVar6 = puVar7" identifier = identifier) ;) })) (expression_statement "p_Var3->_mp_exp = (mp_exp_t)local_30;" (assignment_expression "p_Var3->_mp_exp = (mp_exp_t)local_30" (field_expression "p_Var3->_mp_exp" identifier -> field_identifier) = (cast_expression "(mp_exp_t)local_30" ( (type_descriptor "mp_exp_t" type_identifier) ) identifier)) ;) (expression_statement "p_Var3->_mp_size = (int)puVar6;" (assignment_expression "p_Var3->_mp_size = (int)puVar6" (field_expression "p_Var3->_mp_size" identifier -> field_identifier) = (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (__tmp_marker == (tmp_reentrant_t *)0x0) goto LAB_0001d7d0;" if (parenthesized_expression "(__tmp_marker == (tmp_reentrant_t *)0x0)" ( (binary_expression "__tmp_marker == (tmp_reentrant_t *)0x0" identifier == (cast_expression "(tmp_reentrant_t *)0x0" ( (type_descriptor "tmp_reentrant_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001d7d0;" goto statement_identifier ;)) }))) (expression_statement "*(tmp_reentrant_t **)((int)ppbVar17 + -0x10) = __tmp_marker;" (assignment_expression "*(tmp_reentrant_t **)((int)ppbVar17 + -0x10) = __tmp_marker" (pointer_expression "*(tmp_reentrant_t **)((int)ppbVar17 + -0x10)" * (cast_expression "(tmp_reentrant_t **)((int)ppbVar17 + -0x10)" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d84e;" (assignment_expression "*(undefined4 *)((int)ppbVar17 + -0x14) = 0x1d84e" (pointer_expression "*(undefined4 *)((int)ppbVar17 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -0x14)" ( (binary_expression "(int)ppbVar17 + -0x14" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "__gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar17 + -0x10));" (call_expression "__gmp_tmp_reentrant_free(*(tmp_reentrant_t **)((int)ppbVar17 + -0x10))" identifier (argument_list "(*(tmp_reentrant_t **)((int)ppbVar17 + -0x10))" ( (pointer_expression "*(tmp_reentrant_t **)((int)ppbVar17 + -0x10)" * (cast_expression "(tmp_reentrant_t **)((int)ppbVar17 + -0x10)" ( (type_descriptor "tmp_reentrant_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar17 + -0x10)" ( (binary_expression "(int)ppbVar17 + -0x10" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "puVar6 = (undefined *)0x0;" (assignment_expression "puVar6 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (labeled_statement "LAB_0001d775:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return (int)puVar6;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return (int)puVar6;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return (int)puVar6;\n  }" { (return_statement "return (int)puVar6;" return (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) ;) }))) comment (expression_statement "*(undefined4 *)((int)ppbVar17 + -4) = 0x1dbcb;" (assignment_expression "*(undefined4 *)((int)ppbVar17 + -4) = 0x1dbcb" (pointer_expression "*(undefined4 *)((int)ppbVar17 + -4)" * (cast_expression "(undefined4 *)((int)ppbVar17 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar17 + -4)" ( (binary_expression "(int)ppbVar17 + -4" (cast_expression "(int)ppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "undefined * __gmpf_set_str(uint *param_1,byte *param_2,ushort *param_3)\n\n{\n  byte bVar1;\n  code *pcVar2;\n  uint *puVar3;\n  undefined **ppuVar4;\n  byte *pbVar5;\n  undefined *puVar6;\n  int iVar7;\n  ushort *puVar8;\n  undefined *puVar9;\n  ushort **ppuVar10;\n  ushort **ppuVar11;\n  uint uVar12;\n  int iVar13;\n  byte **ppbVar14;\n  byte **ppbVar15;\n  uint uVar16;\n  undefined *puVar17;\n  int in_GS_OFFSET;\n  bool bVar18;\n  ushort *puStack_70;\n  byte *local_6c;\n  ushort *local_68;\n  uint local_64;\n  uint *local_60;\n  ushort **local_5c;\n  undefined *local_58;\n  undefined *local_54;\n  ushort **local_50;\n  undefined *local_4c;\n  ushort **local_48;\n  undefined **local_44;\n  ushort **local_40;\n  undefined *local_3c;\n  ushort **local_38;\n  ushort **local_34;\n  undefined *local_30;\n  int local_24;\n  int local_20;\n  \n  local_60 = param_1;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_44 = &__DT_PLTGOT;\n  local_40 = (ushort **)nl_langinfo(0x10000);\n  local_44 = &__DT_PLTGOT;\n  local_3c = (undefined *)strlen((char *)local_40);\n  ppbVar14 = &local_6c;\n  uVar16 = (uint)*param_2;\n  puStack_70 = (ushort *)0x1d265;\n  local_34 = __ctype_b_loc();\n  local_38 = (ushort **)*local_34;\n  bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1);\n  while ((bVar1 & 0x20) != 0) {\n    param_2 = param_2 + 1;\n    uVar16 = (uint)*param_2;\n    bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1);\n  }\n  bVar18 = uVar16 == 0x2d;\n  if (bVar18) {\n    uVar16 = (uint)param_2[1];\n    param_2 = param_2 + 1;\n  }\n  local_64 = (uint)bVar18;\n  if (param_3 == (ushort *)0x0) {\n    local_68 = (ushort *)0xa;\n    param_3 = (ushort *)0xa;\n    local_54 = local_44[-0x5c];\nLAB_0001d6ea:\n    if ((int)(uint)(byte)local_54[uVar16] < (int)param_3) goto LAB_0001d337;\nLAB_0001d2e4:\n    if (local_3c == (undefined *)0x0) {\nLAB_0001d320:\n      ppbVar15 = &local_6c;\n      if ((int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3) goto LAB_0001d337;\n    }\n    else {\n      ppbVar15 = &local_6c;\n      if (*(byte *)local_40 == *param_2) {\n        ppuVar11 = local_40;\n        pbVar5 = param_2;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);\n      }\n    }\nLAB_0001d770:\n    puVar6 = (undefined *)0xffffffff;\n    goto LAB_0001d775;\n  }\n  local_68 = param_3;\n  if ((int)param_3 < 0) {\n    param_3 = (ushort *)-(int)param_3;\n    local_68 = (ushort *)0xa;\n    if ((int)param_3 < 0x25) goto LAB_0001d748;\n  }\n  else if ((int)param_3 < 0x25) {\nLAB_0001d748:\n    local_54 = local_44[-0x5c];\n    goto LAB_0001d6ea;\n  }\n  ppbVar15 = &local_6c;\n  if (0x3e < (int)param_3) goto LAB_0001d770;\n  local_54 = local_44[-0x5c] + 0xd0;\n  if ((int)param_3 <= (int)(uint)(byte)local_54[uVar16]) goto LAB_0001d2e4;\nLAB_0001d337:\n  puVar6 = (undefined *)strlen((char *)param_2);\n  local_30 = puVar6 + -1;\n  if (local_30 == (undefined *)0x0) {\n    ppbVar14 = (byte **)&stack0xffffff84;\n    local_24 = 0;\n    local_6c = (byte *)0x0;\n    local_5c = &puStack_70;\n    local_30 = (undefined *)0x1;\nLAB_0001d3c5:\n    local_50 = (ushort **)0x0;\n    puVar6 = (undefined *)0x0;\n    local_48 = local_5c;\n    local_58 = local_3c + -1;\n    do {\n      while( true ) {\n        local_34 = (ushort **)(uint)*param_2;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        param_2 = param_2 + 1;\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }\n      if (local_3c != (undefined *)0x0) {\n        if (*param_2 == *(byte *)local_40) {\n          ppuVar11 = local_40;\n          pbVar5 = param_2;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < (int)param_3) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }\nLAB_0001d443:\n      if (local_50 != (ushort **)0x0) goto LAB_0001d756;\n      local_50 = local_48;\n      param_2 = param_2 + (int)(local_58 + 1);\n      puVar6 = puVar6 + (int)local_58 + 1;\n    } while (puVar6 < local_30);\nLAB_0001d470:\n    local_30 = (undefined *)((int)local_48 - (int)local_5c);\n    ppbVar15 = ppbVar14;\n  }\n  else {\n    bVar1 = param_2[(int)(puVar6 + -1)];\n    puVar17 = puVar6;\n    if (bVar1 == 0x40) {\nLAB_0001d729:\n      local_6c = param_2 + (int)puVar17;\n    }\n    else {\n      if ((int)param_3 < 0xb) {\n        do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);\n        goto LAB_0001d729;\n      }\n      puVar17 = local_30;\n      for (local_30 = puVar6 + -2; local_30 != (undefined *)0x0; local_30 = local_30 + -1) {\n        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;\n        puVar17 = local_30;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar17 = puVar6 + 1;\n      local_30 = puVar6;\n    }\n    local_24 = 0;\n    if ((undefined *)0x7f00 < puVar17) {\n      local_5c = (ushort **)__gmp_tmp_reentrant_alloc();\n      local_38 = (ushort **)*local_34;\n      goto LAB_0001d3c5;\n    }\n    iVar13 = -((uint)(puVar17 + 0x1b) & 0xfffffff0);\n    ppbVar14 = (byte **)((int)&local_6c + iVar13);\n    ppbVar15 = (byte **)((int)&local_6c + iVar13);\n    local_5c = (ushort **)((int)&local_60 + iVar13);\n    if (local_30 != (undefined *)0x0) goto LAB_0001d3c5;\n    local_50 = (ushort **)0x0;\n    local_48 = local_5c;\n  }\n  ppuVar11 = (ushort **)*local_60;\n  uVar12 = (uint)((ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8) * ZEXT48(local_30)\n                 >> 0x20) & 0x1ffffffc;\n  uVar16 = uVar12 + 8;\n  if (uVar16 < 0x7f01) {\n    iVar13 = -(uVar12 + 0x23 & 0xfffffff0);\n    local_40 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n    ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n  }\n  else {\n    *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n    *(int **)((int)ppbVar15 + -0x10) = &local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dabe;\n    local_40 = (ushort **)__gmp_tmp_reentrant_alloc();\n  }\n  *(ushort **)((int)ppbVar15 + -4) = param_3;\n  *(undefined **)((int)ppbVar15 + -8) = local_30;\n  *(ushort ***)((int)ppbVar15 + -0xc) = local_5c;\n  *(ushort ***)((int)ppbVar15 + -0x10) = local_40;\n  *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d4cf;\n  puVar6 = (undefined *)__gmpn_set_str();\n  ppuVar4 = local_44;\n  puVar3 = local_60;\n  if (puVar6 == (undefined *)0x0) {\n    local_60[1] = 0;\n    local_60[2] = 0;\n    if (local_24 != 0) {\n      local_30 = puVar6;\n      *(int *)((int)ppbVar15 + -0x10) = local_24;\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dadb;\n      __gmp_tmp_reentrant_free();\n      puVar6 = local_30;\n      goto LAB_0001d775;\n    }\nLAB_0001d7d0:\n    puVar6 = (undefined *)0x0;\n  }\n  else {\n    local_3c = (undefined *)((int)ppuVar11 + 1);\n    if ((int)local_3c < (int)puVar6) {\n      local_5c = (ushort **)(puVar6 + -(int)local_3c);\n      local_40 = local_40 + (int)local_5c;\n      local_58 = local_3c;\n      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;\nLAB_0001d4fd:\n      bVar1 = *local_6c;\n      local_30 = (undefined *)(uint)(bVar1 == 0x2d);\n      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);\n      uVar16 = (uint)(byte)local_54[*pbVar5];\n      ppbVar14 = ppbVar15;\n      if ((int)local_68 <= (int)uVar16) {\nLAB_0001d756:\n        ppbVar15 = ppbVar14;\n        if (local_24 != 0) {\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }\n        goto LAB_0001d770;\n      }\n      bVar1 = local_54[pbVar5[1]];\n      local_34 = (ushort **)(pbVar5 + 2);\n      ppuVar10 = (ushort **)(pbVar5 + 2);\n      while ((int)(uint)bVar1 < (int)local_68) {\n        uVar16 = uVar16 * (int)local_68 + (uint)bVar1;\n        bVar1 = local_54[*(byte *)ppuVar10];\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar10 = (ushort **)((int)ppuVar10 + 1);\n        local_38 = ppuVar11;\n      }\n      local_54 = local_30 + (uVar16 ^ (uint)-(int)local_30);\n      if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }\n      if (local_54 == (undefined *)0x0) goto LAB_0001d804;\n      local_68 = (ushort *)((int)ppuVar11 + 2);\n      uVar16 = (int)local_68 * 8;\n      if (uVar16 < 0x7f01) {\n        uVar16 = uVar16 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);\n        ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);\n        ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;\n        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;\n        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();\n      }\n      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));\n      *local_50 = param_3;\n      uVar16 = 0x1f;\n      if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n        }\n      }\n      uVar16 = 0x1e - (uVar16 ^ 0x1f);\n      if (uVar16 == 0xffffffff) {\n        iVar13 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar10 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar7 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }\n      puVar17 = local_4c;\n      if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }\n      *(undefined **)((int)ppbVar15 + -8) = puVar6;\n      *(int *)((int)ppbVar15 + -0xc) = (int)ppuVar10 + iVar13;\n      *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d87c;\n      (*pcVar2)();\n      if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }\n        ppuVar11 = local_50;\n        puVar8 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar8) {\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }\n        local_34 = (ushort **)((int)local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }\n        puVar17 = local_58;\n        *(undefined **)((int)ppbVar15 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar15 + -0x14) = puVar17;\n        puVar9 = local_3c;\n        ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar15 + -0x18) = local_40;\n        local_38 = ppuVar11;\n        *(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;\n        *(uint *)((int)ppbVar15 + -0x20) = uVar16;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;\n        iVar13 = __gmpn_divrem();\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));\n        uVar12 = uVar16;\n        puVar17 = local_3c;\n        if (iVar13 != 0) {\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }\n      }\n      else {\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        local_38 = (ushort **)((int)local_34 * 4);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }\n        *(uint *)((int)ppbVar15 + -0x20) = uVar12;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;\n        __gmpn_mul();\n        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));\n        if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }\n      }\n      local_3c = puVar17;\n      puVar9 = local_3c;\n      puVar3 = local_60;\n      *(undefined **)((int)ppbVar15 + -8) = local_3c;\n      *(uint *)((int)ppbVar15 + -0xc) = uVar12;\n      puVar17 = local_4c;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d91c;\n      (*pcVar2)();\n      puVar17 = (undefined *)-(int)puVar9;\n      if (local_64 == 0) {\n        puVar17 = puVar9;\n      }\n      local_60[2] = (uint)puVar6;\n      local_60[1] = (uint)puVar17;\n      if (local_24 == 0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }\n    }\n    else {\n      local_5c = (ushort **)0x0;\n      local_58 = puVar6;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar17 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar15 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar17;\n      if (local_64 == 0) {\n        puVar6 = puVar17;\n      }\n      puVar3[2] = (uint)local_30;\n      puVar3[1] = (uint)puVar6;\n      if (local_24 == 0) goto LAB_0001d7d0;\n    }\n    *(int *)((int)ppbVar15 + -0x10) = local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d84e;\n    __gmp_tmp_reentrant_free();\n    puVar6 = (undefined *)0x0;\n  }\nLAB_0001d775:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }\n                    \n  *(undefined4 *)((int)ppbVar15 + -4) = 0x1dbcb;\n  FUN_0007ebe0();\n}\n\n" (function_definition "undefined * __gmpf_set_str(uint *param_1,byte *param_2,ushort *param_3)\n\n{\n  byte bVar1;\n  code *pcVar2;\n  uint *puVar3;\n  undefined **ppuVar4;\n  byte *pbVar5;\n  undefined *puVar6;\n  int iVar7;\n  ushort *puVar8;\n  undefined *puVar9;\n  ushort **ppuVar10;\n  ushort **ppuVar11;\n  uint uVar12;\n  int iVar13;\n  byte **ppbVar14;\n  byte **ppbVar15;\n  uint uVar16;\n  undefined *puVar17;\n  int in_GS_OFFSET;\n  bool bVar18;\n  ushort *puStack_70;\n  byte *local_6c;\n  ushort *local_68;\n  uint local_64;\n  uint *local_60;\n  ushort **local_5c;\n  undefined *local_58;\n  undefined *local_54;\n  ushort **local_50;\n  undefined *local_4c;\n  ushort **local_48;\n  undefined **local_44;\n  ushort **local_40;\n  undefined *local_3c;\n  ushort **local_38;\n  ushort **local_34;\n  undefined *local_30;\n  int local_24;\n  int local_20;\n  \n  local_60 = param_1;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_44 = &__DT_PLTGOT;\n  local_40 = (ushort **)nl_langinfo(0x10000);\n  local_44 = &__DT_PLTGOT;\n  local_3c = (undefined *)strlen((char *)local_40);\n  ppbVar14 = &local_6c;\n  uVar16 = (uint)*param_2;\n  puStack_70 = (ushort *)0x1d265;\n  local_34 = __ctype_b_loc();\n  local_38 = (ushort **)*local_34;\n  bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1);\n  while ((bVar1 & 0x20) != 0) {\n    param_2 = param_2 + 1;\n    uVar16 = (uint)*param_2;\n    bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1);\n  }\n  bVar18 = uVar16 == 0x2d;\n  if (bVar18) {\n    uVar16 = (uint)param_2[1];\n    param_2 = param_2 + 1;\n  }\n  local_64 = (uint)bVar18;\n  if (param_3 == (ushort *)0x0) {\n    local_68 = (ushort *)0xa;\n    param_3 = (ushort *)0xa;\n    local_54 = local_44[-0x5c];\nLAB_0001d6ea:\n    if ((int)(uint)(byte)local_54[uVar16] < (int)param_3) goto LAB_0001d337;\nLAB_0001d2e4:\n    if (local_3c == (undefined *)0x0) {\nLAB_0001d320:\n      ppbVar15 = &local_6c;\n      if ((int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3) goto LAB_0001d337;\n    }\n    else {\n      ppbVar15 = &local_6c;\n      if (*(byte *)local_40 == *param_2) {\n        ppuVar11 = local_40;\n        pbVar5 = param_2;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);\n      }\n    }\nLAB_0001d770:\n    puVar6 = (undefined *)0xffffffff;\n    goto LAB_0001d775;\n  }\n  local_68 = param_3;\n  if ((int)param_3 < 0) {\n    param_3 = (ushort *)-(int)param_3;\n    local_68 = (ushort *)0xa;\n    if ((int)param_3 < 0x25) goto LAB_0001d748;\n  }\n  else if ((int)param_3 < 0x25) {\nLAB_0001d748:\n    local_54 = local_44[-0x5c];\n    goto LAB_0001d6ea;\n  }\n  ppbVar15 = &local_6c;\n  if (0x3e < (int)param_3) goto LAB_0001d770;\n  local_54 = local_44[-0x5c] + 0xd0;\n  if ((int)param_3 <= (int)(uint)(byte)local_54[uVar16]) goto LAB_0001d2e4;\nLAB_0001d337:\n  puVar6 = (undefined *)strlen((char *)param_2);\n  local_30 = puVar6 + -1;\n  if (local_30 == (undefined *)0x0) {\n    ppbVar14 = (byte **)&stack0xffffff84;\n    local_24 = 0;\n    local_6c = (byte *)0x0;\n    local_5c = &puStack_70;\n    local_30 = (undefined *)0x1;\nLAB_0001d3c5:\n    local_50 = (ushort **)0x0;\n    puVar6 = (undefined *)0x0;\n    local_48 = local_5c;\n    local_58 = local_3c + -1;\n    do {\n      while( true ) {\n        local_34 = (ushort **)(uint)*param_2;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        param_2 = param_2 + 1;\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }\n      if (local_3c != (undefined *)0x0) {\n        if (*param_2 == *(byte *)local_40) {\n          ppuVar11 = local_40;\n          pbVar5 = param_2;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < (int)param_3) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }\nLAB_0001d443:\n      if (local_50 != (ushort **)0x0) goto LAB_0001d756;\n      local_50 = local_48;\n      param_2 = param_2 + (int)(local_58 + 1);\n      puVar6 = puVar6 + (int)local_58 + 1;\n    } while (puVar6 < local_30);\nLAB_0001d470:\n    local_30 = (undefined *)((int)local_48 - (int)local_5c);\n    ppbVar15 = ppbVar14;\n  }\n  else {\n    bVar1 = param_2[(int)(puVar6 + -1)];\n    puVar17 = puVar6;\n    if (bVar1 == 0x40) {\nLAB_0001d729:\n      local_6c = param_2 + (int)puVar17;\n    }\n    else {\n      if ((int)param_3 < 0xb) {\n        do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);\n        goto LAB_0001d729;\n      }\n      puVar17 = local_30;\n      for (local_30 = puVar6 + -2; local_30 != (undefined *)0x0; local_30 = local_30 + -1) {\n        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;\n        puVar17 = local_30;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar17 = puVar6 + 1;\n      local_30 = puVar6;\n    }\n    local_24 = 0;\n    if ((undefined *)0x7f00 < puVar17) {\n      local_5c = (ushort **)__gmp_tmp_reentrant_alloc();\n      local_38 = (ushort **)*local_34;\n      goto LAB_0001d3c5;\n    }\n    iVar13 = -((uint)(puVar17 + 0x1b) & 0xfffffff0);\n    ppbVar14 = (byte **)((int)&local_6c + iVar13);\n    ppbVar15 = (byte **)((int)&local_6c + iVar13);\n    local_5c = (ushort **)((int)&local_60 + iVar13);\n    if (local_30 != (undefined *)0x0) goto LAB_0001d3c5;\n    local_50 = (ushort **)0x0;\n    local_48 = local_5c;\n  }\n  ppuVar11 = (ushort **)*local_60;\n  uVar12 = (uint)((ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8) * ZEXT48(local_30)\n                 >> 0x20) & 0x1ffffffc;\n  uVar16 = uVar12 + 8;\n  if (uVar16 < 0x7f01) {\n    iVar13 = -(uVar12 + 0x23 & 0xfffffff0);\n    local_40 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n    ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n  }\n  else {\n    *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n    *(int **)((int)ppbVar15 + -0x10) = &local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dabe;\n    local_40 = (ushort **)__gmp_tmp_reentrant_alloc();\n  }\n  *(ushort **)((int)ppbVar15 + -4) = param_3;\n  *(undefined **)((int)ppbVar15 + -8) = local_30;\n  *(ushort ***)((int)ppbVar15 + -0xc) = local_5c;\n  *(ushort ***)((int)ppbVar15 + -0x10) = local_40;\n  *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d4cf;\n  puVar6 = (undefined *)__gmpn_set_str();\n  ppuVar4 = local_44;\n  puVar3 = local_60;\n  if (puVar6 == (undefined *)0x0) {\n    local_60[1] = 0;\n    local_60[2] = 0;\n    if (local_24 != 0) {\n      local_30 = puVar6;\n      *(int *)((int)ppbVar15 + -0x10) = local_24;\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dadb;\n      __gmp_tmp_reentrant_free();\n      puVar6 = local_30;\n      goto LAB_0001d775;\n    }\nLAB_0001d7d0:\n    puVar6 = (undefined *)0x0;\n  }\n  else {\n    local_3c = (undefined *)((int)ppuVar11 + 1);\n    if ((int)local_3c < (int)puVar6) {\n      local_5c = (ushort **)(puVar6 + -(int)local_3c);\n      local_40 = local_40 + (int)local_5c;\n      local_58 = local_3c;\n      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;\nLAB_0001d4fd:\n      bVar1 = *local_6c;\n      local_30 = (undefined *)(uint)(bVar1 == 0x2d);\n      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);\n      uVar16 = (uint)(byte)local_54[*pbVar5];\n      ppbVar14 = ppbVar15;\n      if ((int)local_68 <= (int)uVar16) {\nLAB_0001d756:\n        ppbVar15 = ppbVar14;\n        if (local_24 != 0) {\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }\n        goto LAB_0001d770;\n      }\n      bVar1 = local_54[pbVar5[1]];\n      local_34 = (ushort **)(pbVar5 + 2);\n      ppuVar10 = (ushort **)(pbVar5 + 2);\n      while ((int)(uint)bVar1 < (int)local_68) {\n        uVar16 = uVar16 * (int)local_68 + (uint)bVar1;\n        bVar1 = local_54[*(byte *)ppuVar10];\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar10 = (ushort **)((int)ppuVar10 + 1);\n        local_38 = ppuVar11;\n      }\n      local_54 = local_30 + (uVar16 ^ (uint)-(int)local_30);\n      if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }\n      if (local_54 == (undefined *)0x0) goto LAB_0001d804;\n      local_68 = (ushort *)((int)ppuVar11 + 2);\n      uVar16 = (int)local_68 * 8;\n      if (uVar16 < 0x7f01) {\n        uVar16 = uVar16 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);\n        ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);\n        ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;\n        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;\n        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();\n      }\n      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));\n      *local_50 = param_3;\n      uVar16 = 0x1f;\n      if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n        }\n      }\n      uVar16 = 0x1e - (uVar16 ^ 0x1f);\n      if (uVar16 == 0xffffffff) {\n        iVar13 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar10 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar7 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }\n      puVar17 = local_4c;\n      if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }\n      *(undefined **)((int)ppbVar15 + -8) = puVar6;\n      *(int *)((int)ppbVar15 + -0xc) = (int)ppuVar10 + iVar13;\n      *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d87c;\n      (*pcVar2)();\n      if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }\n        ppuVar11 = local_50;\n        puVar8 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar8) {\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }\n        local_34 = (ushort **)((int)local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }\n        puVar17 = local_58;\n        *(undefined **)((int)ppbVar15 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar15 + -0x14) = puVar17;\n        puVar9 = local_3c;\n        ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar15 + -0x18) = local_40;\n        local_38 = ppuVar11;\n        *(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;\n        *(uint *)((int)ppbVar15 + -0x20) = uVar16;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;\n        iVar13 = __gmpn_divrem();\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));\n        uVar12 = uVar16;\n        puVar17 = local_3c;\n        if (iVar13 != 0) {\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }\n      }\n      else {\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        local_38 = (ushort **)((int)local_34 * 4);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }\n        *(uint *)((int)ppbVar15 + -0x20) = uVar12;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;\n        __gmpn_mul();\n        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));\n        if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }\n      }\n      local_3c = puVar17;\n      puVar9 = local_3c;\n      puVar3 = local_60;\n      *(undefined **)((int)ppbVar15 + -8) = local_3c;\n      *(uint *)((int)ppbVar15 + -0xc) = uVar12;\n      puVar17 = local_4c;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d91c;\n      (*pcVar2)();\n      puVar17 = (undefined *)-(int)puVar9;\n      if (local_64 == 0) {\n        puVar17 = puVar9;\n      }\n      local_60[2] = (uint)puVar6;\n      local_60[1] = (uint)puVar17;\n      if (local_24 == 0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }\n    }\n    else {\n      local_5c = (ushort **)0x0;\n      local_58 = puVar6;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar17 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar15 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar17;\n      if (local_64 == 0) {\n        puVar6 = puVar17;\n      }\n      puVar3[2] = (uint)local_30;\n      puVar3[1] = (uint)puVar6;\n      if (local_24 == 0) goto LAB_0001d7d0;\n    }\n    *(int *)((int)ppbVar15 + -0x10) = local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d84e;\n    __gmp_tmp_reentrant_free();\n    puVar6 = (undefined *)0x0;\n  }\nLAB_0001d775:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }\n                    \n  *(undefined4 *)((int)ppbVar15 + -4) = 0x1dbcb;\n  FUN_0007ebe0();\n}" type_identifier (pointer_declarator "* __gmpf_set_str(uint *param_1,byte *param_2,ushort *param_3)" * (function_declarator "__gmpf_set_str(uint *param_1,byte *param_2,ushort *param_3)" identifier (parameter_list "(uint *param_1,byte *param_2,ushort *param_3)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "ushort *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) )))) (compound_statement "{\n  byte bVar1;\n  code *pcVar2;\n  uint *puVar3;\n  undefined **ppuVar4;\n  byte *pbVar5;\n  undefined *puVar6;\n  int iVar7;\n  ushort *puVar8;\n  undefined *puVar9;\n  ushort **ppuVar10;\n  ushort **ppuVar11;\n  uint uVar12;\n  int iVar13;\n  byte **ppbVar14;\n  byte **ppbVar15;\n  uint uVar16;\n  undefined *puVar17;\n  int in_GS_OFFSET;\n  bool bVar18;\n  ushort *puStack_70;\n  byte *local_6c;\n  ushort *local_68;\n  uint local_64;\n  uint *local_60;\n  ushort **local_5c;\n  undefined *local_58;\n  undefined *local_54;\n  ushort **local_50;\n  undefined *local_4c;\n  ushort **local_48;\n  undefined **local_44;\n  ushort **local_40;\n  undefined *local_3c;\n  ushort **local_38;\n  ushort **local_34;\n  undefined *local_30;\n  int local_24;\n  int local_20;\n  \n  local_60 = param_1;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_44 = &__DT_PLTGOT;\n  local_40 = (ushort **)nl_langinfo(0x10000);\n  local_44 = &__DT_PLTGOT;\n  local_3c = (undefined *)strlen((char *)local_40);\n  ppbVar14 = &local_6c;\n  uVar16 = (uint)*param_2;\n  puStack_70 = (ushort *)0x1d265;\n  local_34 = __ctype_b_loc();\n  local_38 = (ushort **)*local_34;\n  bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1);\n  while ((bVar1 & 0x20) != 0) {\n    param_2 = param_2 + 1;\n    uVar16 = (uint)*param_2;\n    bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1);\n  }\n  bVar18 = uVar16 == 0x2d;\n  if (bVar18) {\n    uVar16 = (uint)param_2[1];\n    param_2 = param_2 + 1;\n  }\n  local_64 = (uint)bVar18;\n  if (param_3 == (ushort *)0x0) {\n    local_68 = (ushort *)0xa;\n    param_3 = (ushort *)0xa;\n    local_54 = local_44[-0x5c];\nLAB_0001d6ea:\n    if ((int)(uint)(byte)local_54[uVar16] < (int)param_3) goto LAB_0001d337;\nLAB_0001d2e4:\n    if (local_3c == (undefined *)0x0) {\nLAB_0001d320:\n      ppbVar15 = &local_6c;\n      if ((int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3) goto LAB_0001d337;\n    }\n    else {\n      ppbVar15 = &local_6c;\n      if (*(byte *)local_40 == *param_2) {\n        ppuVar11 = local_40;\n        pbVar5 = param_2;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);\n      }\n    }\nLAB_0001d770:\n    puVar6 = (undefined *)0xffffffff;\n    goto LAB_0001d775;\n  }\n  local_68 = param_3;\n  if ((int)param_3 < 0) {\n    param_3 = (ushort *)-(int)param_3;\n    local_68 = (ushort *)0xa;\n    if ((int)param_3 < 0x25) goto LAB_0001d748;\n  }\n  else if ((int)param_3 < 0x25) {\nLAB_0001d748:\n    local_54 = local_44[-0x5c];\n    goto LAB_0001d6ea;\n  }\n  ppbVar15 = &local_6c;\n  if (0x3e < (int)param_3) goto LAB_0001d770;\n  local_54 = local_44[-0x5c] + 0xd0;\n  if ((int)param_3 <= (int)(uint)(byte)local_54[uVar16]) goto LAB_0001d2e4;\nLAB_0001d337:\n  puVar6 = (undefined *)strlen((char *)param_2);\n  local_30 = puVar6 + -1;\n  if (local_30 == (undefined *)0x0) {\n    ppbVar14 = (byte **)&stack0xffffff84;\n    local_24 = 0;\n    local_6c = (byte *)0x0;\n    local_5c = &puStack_70;\n    local_30 = (undefined *)0x1;\nLAB_0001d3c5:\n    local_50 = (ushort **)0x0;\n    puVar6 = (undefined *)0x0;\n    local_48 = local_5c;\n    local_58 = local_3c + -1;\n    do {\n      while( true ) {\n        local_34 = (ushort **)(uint)*param_2;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        param_2 = param_2 + 1;\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }\n      if (local_3c != (undefined *)0x0) {\n        if (*param_2 == *(byte *)local_40) {\n          ppuVar11 = local_40;\n          pbVar5 = param_2;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < (int)param_3) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }\nLAB_0001d443:\n      if (local_50 != (ushort **)0x0) goto LAB_0001d756;\n      local_50 = local_48;\n      param_2 = param_2 + (int)(local_58 + 1);\n      puVar6 = puVar6 + (int)local_58 + 1;\n    } while (puVar6 < local_30);\nLAB_0001d470:\n    local_30 = (undefined *)((int)local_48 - (int)local_5c);\n    ppbVar15 = ppbVar14;\n  }\n  else {\n    bVar1 = param_2[(int)(puVar6 + -1)];\n    puVar17 = puVar6;\n    if (bVar1 == 0x40) {\nLAB_0001d729:\n      local_6c = param_2 + (int)puVar17;\n    }\n    else {\n      if ((int)param_3 < 0xb) {\n        do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);\n        goto LAB_0001d729;\n      }\n      puVar17 = local_30;\n      for (local_30 = puVar6 + -2; local_30 != (undefined *)0x0; local_30 = local_30 + -1) {\n        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;\n        puVar17 = local_30;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar17 = puVar6 + 1;\n      local_30 = puVar6;\n    }\n    local_24 = 0;\n    if ((undefined *)0x7f00 < puVar17) {\n      local_5c = (ushort **)__gmp_tmp_reentrant_alloc();\n      local_38 = (ushort **)*local_34;\n      goto LAB_0001d3c5;\n    }\n    iVar13 = -((uint)(puVar17 + 0x1b) & 0xfffffff0);\n    ppbVar14 = (byte **)((int)&local_6c + iVar13);\n    ppbVar15 = (byte **)((int)&local_6c + iVar13);\n    local_5c = (ushort **)((int)&local_60 + iVar13);\n    if (local_30 != (undefined *)0x0) goto LAB_0001d3c5;\n    local_50 = (ushort **)0x0;\n    local_48 = local_5c;\n  }\n  ppuVar11 = (ushort **)*local_60;\n  uVar12 = (uint)((ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8) * ZEXT48(local_30)\n                 >> 0x20) & 0x1ffffffc;\n  uVar16 = uVar12 + 8;\n  if (uVar16 < 0x7f01) {\n    iVar13 = -(uVar12 + 0x23 & 0xfffffff0);\n    local_40 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n    ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n  }\n  else {\n    *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n    *(int **)((int)ppbVar15 + -0x10) = &local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dabe;\n    local_40 = (ushort **)__gmp_tmp_reentrant_alloc();\n  }\n  *(ushort **)((int)ppbVar15 + -4) = param_3;\n  *(undefined **)((int)ppbVar15 + -8) = local_30;\n  *(ushort ***)((int)ppbVar15 + -0xc) = local_5c;\n  *(ushort ***)((int)ppbVar15 + -0x10) = local_40;\n  *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d4cf;\n  puVar6 = (undefined *)__gmpn_set_str();\n  ppuVar4 = local_44;\n  puVar3 = local_60;\n  if (puVar6 == (undefined *)0x0) {\n    local_60[1] = 0;\n    local_60[2] = 0;\n    if (local_24 != 0) {\n      local_30 = puVar6;\n      *(int *)((int)ppbVar15 + -0x10) = local_24;\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dadb;\n      __gmp_tmp_reentrant_free();\n      puVar6 = local_30;\n      goto LAB_0001d775;\n    }\nLAB_0001d7d0:\n    puVar6 = (undefined *)0x0;\n  }\n  else {\n    local_3c = (undefined *)((int)ppuVar11 + 1);\n    if ((int)local_3c < (int)puVar6) {\n      local_5c = (ushort **)(puVar6 + -(int)local_3c);\n      local_40 = local_40 + (int)local_5c;\n      local_58 = local_3c;\n      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;\nLAB_0001d4fd:\n      bVar1 = *local_6c;\n      local_30 = (undefined *)(uint)(bVar1 == 0x2d);\n      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);\n      uVar16 = (uint)(byte)local_54[*pbVar5];\n      ppbVar14 = ppbVar15;\n      if ((int)local_68 <= (int)uVar16) {\nLAB_0001d756:\n        ppbVar15 = ppbVar14;\n        if (local_24 != 0) {\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }\n        goto LAB_0001d770;\n      }\n      bVar1 = local_54[pbVar5[1]];\n      local_34 = (ushort **)(pbVar5 + 2);\n      ppuVar10 = (ushort **)(pbVar5 + 2);\n      while ((int)(uint)bVar1 < (int)local_68) {\n        uVar16 = uVar16 * (int)local_68 + (uint)bVar1;\n        bVar1 = local_54[*(byte *)ppuVar10];\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar10 = (ushort **)((int)ppuVar10 + 1);\n        local_38 = ppuVar11;\n      }\n      local_54 = local_30 + (uVar16 ^ (uint)-(int)local_30);\n      if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }\n      if (local_54 == (undefined *)0x0) goto LAB_0001d804;\n      local_68 = (ushort *)((int)ppuVar11 + 2);\n      uVar16 = (int)local_68 * 8;\n      if (uVar16 < 0x7f01) {\n        uVar16 = uVar16 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);\n        ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);\n        ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;\n        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;\n        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();\n      }\n      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));\n      *local_50 = param_3;\n      uVar16 = 0x1f;\n      if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n        }\n      }\n      uVar16 = 0x1e - (uVar16 ^ 0x1f);\n      if (uVar16 == 0xffffffff) {\n        iVar13 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar10 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar7 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }\n      puVar17 = local_4c;\n      if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }\n      *(undefined **)((int)ppbVar15 + -8) = puVar6;\n      *(int *)((int)ppbVar15 + -0xc) = (int)ppuVar10 + iVar13;\n      *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d87c;\n      (*pcVar2)();\n      if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }\n        ppuVar11 = local_50;\n        puVar8 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar8) {\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }\n        local_34 = (ushort **)((int)local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }\n        puVar17 = local_58;\n        *(undefined **)((int)ppbVar15 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar15 + -0x14) = puVar17;\n        puVar9 = local_3c;\n        ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar15 + -0x18) = local_40;\n        local_38 = ppuVar11;\n        *(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;\n        *(uint *)((int)ppbVar15 + -0x20) = uVar16;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;\n        iVar13 = __gmpn_divrem();\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));\n        uVar12 = uVar16;\n        puVar17 = local_3c;\n        if (iVar13 != 0) {\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }\n      }\n      else {\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        local_38 = (ushort **)((int)local_34 * 4);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }\n        *(uint *)((int)ppbVar15 + -0x20) = uVar12;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;\n        __gmpn_mul();\n        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));\n        if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }\n      }\n      local_3c = puVar17;\n      puVar9 = local_3c;\n      puVar3 = local_60;\n      *(undefined **)((int)ppbVar15 + -8) = local_3c;\n      *(uint *)((int)ppbVar15 + -0xc) = uVar12;\n      puVar17 = local_4c;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d91c;\n      (*pcVar2)();\n      puVar17 = (undefined *)-(int)puVar9;\n      if (local_64 == 0) {\n        puVar17 = puVar9;\n      }\n      local_60[2] = (uint)puVar6;\n      local_60[1] = (uint)puVar17;\n      if (local_24 == 0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }\n    }\n    else {\n      local_5c = (ushort **)0x0;\n      local_58 = puVar6;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar17 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar15 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar17;\n      if (local_64 == 0) {\n        puVar6 = puVar17;\n      }\n      puVar3[2] = (uint)local_30;\n      puVar3[1] = (uint)puVar6;\n      if (local_24 == 0) goto LAB_0001d7d0;\n    }\n    *(int *)((int)ppbVar15 + -0x10) = local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d84e;\n    __gmp_tmp_reentrant_free();\n    puVar6 = (undefined *)0x0;\n  }\nLAB_0001d775:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }\n                    \n  *(undefined4 *)((int)ppbVar15 + -4) = 0x1dbcb;\n  FUN_0007ebe0();\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "code *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "uint *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined **ppuVar4;" type_identifier (pointer_declarator "**ppuVar4" * (pointer_declarator "*ppuVar4" * identifier)) ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "ushort *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "ushort **ppuVar10;" type_identifier (pointer_declarator "**ppuVar10" * (pointer_declarator "*ppuVar10" * identifier)) ;) (declaration "ushort **ppuVar11;" type_identifier (pointer_declarator "**ppuVar11" * (pointer_declarator "*ppuVar11" * identifier)) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "byte **ppbVar14;" type_identifier (pointer_declarator "**ppbVar14" * (pointer_declarator "*ppbVar14" * identifier)) ;) (declaration "byte **ppbVar15;" type_identifier (pointer_declarator "**ppbVar15" * (pointer_declarator "*ppbVar15" * identifier)) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "undefined *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "ushort *puStack_70;" type_identifier (pointer_declarator "*puStack_70" * identifier) ;) (declaration "byte *local_6c;" type_identifier (pointer_declarator "*local_6c" * identifier) ;) (declaration "ushort *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "uint local_64;" type_identifier identifier ;) (declaration "uint *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "ushort **local_5c;" type_identifier (pointer_declarator "**local_5c" * (pointer_declarator "*local_5c" * identifier)) ;) (declaration "undefined *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "undefined *local_54;" type_identifier (pointer_declarator "*local_54" * identifier) ;) (declaration "ushort **local_50;" type_identifier (pointer_declarator "**local_50" * (pointer_declarator "*local_50" * identifier)) ;) (declaration "undefined *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "ushort **local_48;" type_identifier (pointer_declarator "**local_48" * (pointer_declarator "*local_48" * identifier)) ;) (declaration "undefined **local_44;" type_identifier (pointer_declarator "**local_44" * (pointer_declarator "*local_44" * identifier)) ;) (declaration "ushort **local_40;" type_identifier (pointer_declarator "**local_40" * (pointer_declarator "*local_40" * identifier)) ;) (declaration "undefined *local_3c;" type_identifier (pointer_declarator "*local_3c" * identifier) ;) (declaration "ushort **local_38;" type_identifier (pointer_declarator "**local_38" * (pointer_declarator "*local_38" * identifier)) ;) (declaration "ushort **local_34;" type_identifier (pointer_declarator "**local_34" * (pointer_declarator "*local_34" * identifier)) ;) (declaration "undefined *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "local_60 = param_1;" (assignment_expression "local_60 = param_1" identifier = identifier) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_44 = &__DT_PLTGOT;" (assignment_expression "local_44 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "local_40 = (ushort **)nl_langinfo(0x10000);" (assignment_expression "local_40 = (ushort **)nl_langinfo(0x10000)" identifier = (cast_expression "(ushort **)nl_langinfo(0x10000)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "nl_langinfo(0x10000)" identifier (argument_list "(0x10000)" ( number_literal ))))) ;) (expression_statement "local_44 = &__DT_PLTGOT;" (assignment_expression "local_44 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "local_3c = (undefined *)strlen((char *)local_40);" (assignment_expression "local_3c = (undefined *)strlen((char *)local_40)" identifier = (cast_expression "(undefined *)strlen((char *)local_40)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "strlen((char *)local_40)" identifier (argument_list "((char *)local_40)" ( (cast_expression "(char *)local_40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))))) ;) (expression_statement "ppbVar14 = &local_6c;" (assignment_expression "ppbVar14 = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;) (expression_statement "uVar16 = (uint)*param_2;" (assignment_expression "uVar16 = (uint)*param_2" identifier = (binary_expression "(uint)*param_2" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puStack_70 = (ushort *)0x1d265;" (assignment_expression "puStack_70 = (ushort *)0x1d265" identifier = (cast_expression "(ushort *)0x1d265" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_34 = __ctype_b_loc();" (assignment_expression "local_34 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_38 = (ushort **)*local_34;" (assignment_expression "local_38 = (ushort **)*local_34" identifier = (cast_expression "(ushort **)*local_34" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*local_34" * identifier))) ;) (expression_statement "bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1);" (assignment_expression "bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1)" identifier = (pointer_expression "*(byte *)((int)local_38 + uVar16 * 2 + 1)" * (cast_expression "(byte *)((int)local_38 + uVar16 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + uVar16 * 2 + 1)" ( (binary_expression "(int)local_38 + uVar16 * 2 + 1" (binary_expression "(int)local_38 + uVar16 * 2" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar16 * 2" identifier * number_literal)) + number_literal) ))))) ;) (while_statement "while ((bVar1 & 0x20) != 0) {\n    param_2 = param_2 + 1;\n    uVar16 = (uint)*param_2;\n    bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1);\n  }" while (parenthesized_expression "((bVar1 & 0x20) != 0)" ( (binary_expression "(bVar1 & 0x20) != 0" (parenthesized_expression "(bVar1 & 0x20)" ( (binary_expression "bVar1 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    param_2 = param_2 + 1;\n    uVar16 = (uint)*param_2;\n    bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1);\n  }" { (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "uVar16 = (uint)*param_2;" (assignment_expression "uVar16 = (uint)*param_2" identifier = (binary_expression "(uint)*param_2" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1);" (assignment_expression "bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1)" identifier = (pointer_expression "*(byte *)((int)local_38 + uVar16 * 2 + 1)" * (cast_expression "(byte *)((int)local_38 + uVar16 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + uVar16 * 2 + 1)" ( (binary_expression "(int)local_38 + uVar16 * 2 + 1" (binary_expression "(int)local_38 + uVar16 * 2" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar16 * 2" identifier * number_literal)) + number_literal) ))))) ;) })) (expression_statement "bVar18 = uVar16 == 0x2d;" (assignment_expression "bVar18 = uVar16 == 0x2d" identifier = (binary_expression "uVar16 == 0x2d" identifier == number_literal)) ;) (if_statement "if (bVar18) {\n    uVar16 = (uint)param_2[1];\n    param_2 = param_2 + 1;\n  }" if (parenthesized_expression "(bVar18)" ( identifier )) (compound_statement "{\n    uVar16 = (uint)param_2[1];\n    param_2 = param_2 + 1;\n  }" { (expression_statement "uVar16 = (uint)param_2[1];" (assignment_expression "uVar16 = (uint)param_2[1]" identifier = (cast_expression "(uint)param_2[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[1]" identifier [ number_literal ]))) ;) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) })) (expression_statement "local_64 = (uint)bVar18;" (assignment_expression "local_64 = (uint)bVar18" identifier = (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (param_3 == (ushort *)0x0) {\n    local_68 = (ushort *)0xa;\n    param_3 = (ushort *)0xa;\n    local_54 = local_44[-0x5c];\nLAB_0001d6ea:\n    if ((int)(uint)(byte)local_54[uVar16] < (int)param_3) goto LAB_0001d337;\nLAB_0001d2e4:\n    if (local_3c == (undefined *)0x0) {\nLAB_0001d320:\n      ppbVar15 = &local_6c;\n      if ((int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3) goto LAB_0001d337;\n    }\n    else {\n      ppbVar15 = &local_6c;\n      if (*(byte *)local_40 == *param_2) {\n        ppuVar11 = local_40;\n        pbVar5 = param_2;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);\n      }\n    }\nLAB_0001d770:\n    puVar6 = (undefined *)0xffffffff;\n    goto LAB_0001d775;\n  }" if (parenthesized_expression "(param_3 == (ushort *)0x0)" ( (binary_expression "param_3 == (ushort *)0x0" identifier == (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_68 = (ushort *)0xa;\n    param_3 = (ushort *)0xa;\n    local_54 = local_44[-0x5c];\nLAB_0001d6ea:\n    if ((int)(uint)(byte)local_54[uVar16] < (int)param_3) goto LAB_0001d337;\nLAB_0001d2e4:\n    if (local_3c == (undefined *)0x0) {\nLAB_0001d320:\n      ppbVar15 = &local_6c;\n      if ((int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3) goto LAB_0001d337;\n    }\n    else {\n      ppbVar15 = &local_6c;\n      if (*(byte *)local_40 == *param_2) {\n        ppuVar11 = local_40;\n        pbVar5 = param_2;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);\n      }\n    }\nLAB_0001d770:\n    puVar6 = (undefined *)0xffffffff;\n    goto LAB_0001d775;\n  }" { (expression_statement "local_68 = (ushort *)0xa;" (assignment_expression "local_68 = (ushort *)0xa" identifier = (cast_expression "(ushort *)0xa" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_3 = (ushort *)0xa;" (assignment_expression "param_3 = (ushort *)0xa" identifier = (cast_expression "(ushort *)0xa" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_54 = local_44[-0x5c];" (assignment_expression "local_54 = local_44[-0x5c]" identifier = (subscript_expression "local_44[-0x5c]" identifier [ number_literal ])) ;) (labeled_statement "LAB_0001d6ea:\n    if ((int)(uint)(byte)local_54[uVar16] < (int)param_3) goto LAB_0001d337;" statement_identifier : (if_statement "if ((int)(uint)(byte)local_54[uVar16] < (int)param_3) goto LAB_0001d337;" if (parenthesized_expression "((int)(uint)(byte)local_54[uVar16] < (int)param_3)" ( (binary_expression "(int)(uint)(byte)local_54[uVar16] < (int)param_3" (cast_expression "(int)(uint)(byte)local_54[uVar16]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)(byte)local_54[uVar16]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_54[uVar16]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_54[uVar16]" identifier [ identifier ])))) < (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0001d337;" goto statement_identifier ;))) (labeled_statement "LAB_0001d2e4:\n    if (local_3c == (undefined *)0x0) {\nLAB_0001d320:\n      ppbVar15 = &local_6c;\n      if ((int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3) goto LAB_0001d337;\n    }\n    else {\n      ppbVar15 = &local_6c;\n      if (*(byte *)local_40 == *param_2) {\n        ppuVar11 = local_40;\n        pbVar5 = param_2;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);\n      }\n    }" statement_identifier : (if_statement "if (local_3c == (undefined *)0x0) {\nLAB_0001d320:\n      ppbVar15 = &local_6c;\n      if ((int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3) goto LAB_0001d337;\n    }\n    else {\n      ppbVar15 = &local_6c;\n      if (*(byte *)local_40 == *param_2) {\n        ppuVar11 = local_40;\n        pbVar5 = param_2;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);\n      }\n    }" if (parenthesized_expression "(local_3c == (undefined *)0x0)" ( (binary_expression "local_3c == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0001d320:\n      ppbVar15 = &local_6c;\n      if ((int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3) goto LAB_0001d337;\n    }" { (labeled_statement "LAB_0001d320:\n      ppbVar15 = &local_6c;" statement_identifier : (expression_statement "ppbVar15 = &local_6c;" (assignment_expression "ppbVar15 = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;)) (if_statement "if ((int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3) goto LAB_0001d337;" if (parenthesized_expression "((int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3)" ( (binary_expression "(int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3" (cast_expression "(int)(uint)(byte)local_54[param_2[(int)local_3c]]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)(byte)local_54[param_2[(int)local_3c]]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_54[param_2[(int)local_3c]]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_54[param_2[(int)local_3c]]" identifier [ (subscript_expression "param_2[(int)local_3c]" identifier [ (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) ]) ])))) < (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0001d337;" goto statement_identifier ;)) }) (else_clause "else {\n      ppbVar15 = &local_6c;\n      if (*(byte *)local_40 == *param_2) {\n        ppuVar11 = local_40;\n        pbVar5 = param_2;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);\n      }\n    }" else (compound_statement "{\n      ppbVar15 = &local_6c;\n      if (*(byte *)local_40 == *param_2) {\n        ppuVar11 = local_40;\n        pbVar5 = param_2;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);\n      }\n    }" { (expression_statement "ppbVar15 = &local_6c;" (assignment_expression "ppbVar15 = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;) (if_statement "if (*(byte *)local_40 == *param_2) {\n        ppuVar11 = local_40;\n        pbVar5 = param_2;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);\n      }" if (parenthesized_expression "(*(byte *)local_40 == *param_2)" ( (binary_expression "*(byte *)local_40 == *param_2" (pointer_expression "*(byte *)local_40" * (cast_expression "(byte *)local_40" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*param_2" * identifier)) )) (compound_statement "{\n        ppuVar11 = local_40;\n        pbVar5 = param_2;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);\n      }" { (expression_statement "ppuVar11 = local_40;" (assignment_expression "ppuVar11 = local_40" identifier = identifier) ;) (expression_statement "pbVar5 = param_2;" (assignment_expression "pbVar5 = param_2" identifier = identifier) ;) (do_statement "do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);" do (compound_statement "{\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        }" { (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ;) (expression_statement "ppuVar11 = (ushort **)((int)ppuVar11 + 1);" (assignment_expression "ppuVar11 = (ushort **)((int)ppuVar11 + 1)" identifier = (cast_expression "(ushort **)((int)ppuVar11 + 1)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar11 + 1)" ( (binary_expression "(int)ppuVar11 + 1" (cast_expression "(int)ppuVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;" if (parenthesized_expression "(param_2 + (int)local_3c == pbVar5)" ( (binary_expression "param_2 + (int)local_3c == pbVar5" (binary_expression "param_2 + (int)local_3c" identifier + (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier)) == identifier) )) (goto_statement "goto LAB_0001d320;" goto statement_identifier ;)) (expression_statement "ppbVar15 = &local_6c;" (assignment_expression "ppbVar15 = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;) }) while (parenthesized_expression "(*pbVar5 == *(byte *)ppuVar11)" ( (binary_expression "*pbVar5 == *(byte *)ppuVar11" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*(byte *)ppuVar11" * (cast_expression "(byte *)ppuVar11" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) ;) })) })))) (labeled_statement "LAB_0001d770:\n    puVar6 = (undefined *)0xffffffff;" statement_identifier : (expression_statement "puVar6 = (undefined *)0xffffffff;" (assignment_expression "puVar6 = (undefined *)0xffffffff" identifier = (cast_expression "(undefined *)0xffffffff" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (goto_statement "goto LAB_0001d775;" goto statement_identifier ;) })) (expression_statement "local_68 = param_3;" (assignment_expression "local_68 = param_3" identifier = identifier) ;) (if_statement "if ((int)param_3 < 0) {\n    param_3 = (ushort *)-(int)param_3;\n    local_68 = (ushort *)0xa;\n    if ((int)param_3 < 0x25) goto LAB_0001d748;\n  }\n  else if ((int)param_3 < 0x25) {\nLAB_0001d748:\n    local_54 = local_44[-0x5c];\n    goto LAB_0001d6ea;\n  }" if (parenthesized_expression "((int)param_3 < 0)" ( (binary_expression "(int)param_3 < 0" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    param_3 = (ushort *)-(int)param_3;\n    local_68 = (ushort *)0xa;\n    if ((int)param_3 < 0x25) goto LAB_0001d748;\n  }" { (expression_statement "param_3 = (ushort *)-(int)param_3;" (assignment_expression "param_3 = (ushort *)-(int)param_3" identifier = (cast_expression "(ushort *)-(int)param_3" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)param_3" - (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "local_68 = (ushort *)0xa;" (assignment_expression "local_68 = (ushort *)0xa" identifier = (cast_expression "(ushort *)0xa" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((int)param_3 < 0x25) goto LAB_0001d748;" if (parenthesized_expression "((int)param_3 < 0x25)" ( (binary_expression "(int)param_3 < 0x25" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0001d748;" goto statement_identifier ;)) }) (else_clause "else if ((int)param_3 < 0x25) {\nLAB_0001d748:\n    local_54 = local_44[-0x5c];\n    goto LAB_0001d6ea;\n  }" else (if_statement "if ((int)param_3 < 0x25) {\nLAB_0001d748:\n    local_54 = local_44[-0x5c];\n    goto LAB_0001d6ea;\n  }" if (parenthesized_expression "((int)param_3 < 0x25)" ( (binary_expression "(int)param_3 < 0x25" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\nLAB_0001d748:\n    local_54 = local_44[-0x5c];\n    goto LAB_0001d6ea;\n  }" { (labeled_statement "LAB_0001d748:\n    local_54 = local_44[-0x5c];" statement_identifier : (expression_statement "local_54 = local_44[-0x5c];" (assignment_expression "local_54 = local_44[-0x5c]" identifier = (subscript_expression "local_44[-0x5c]" identifier [ number_literal ])) ;)) (goto_statement "goto LAB_0001d6ea;" goto statement_identifier ;) })))) (expression_statement "ppbVar15 = &local_6c;" (assignment_expression "ppbVar15 = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;) (if_statement "if (0x3e < (int)param_3) goto LAB_0001d770;" if (parenthesized_expression "(0x3e < (int)param_3)" ( (binary_expression "0x3e < (int)param_3" number_literal < (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0001d770;" goto statement_identifier ;)) (expression_statement "local_54 = local_44[-0x5c] + 0xd0;" (assignment_expression "local_54 = local_44[-0x5c] + 0xd0" identifier = (binary_expression "local_44[-0x5c] + 0xd0" (subscript_expression "local_44[-0x5c]" identifier [ number_literal ]) + number_literal)) ;) (if_statement "if ((int)param_3 <= (int)(uint)(byte)local_54[uVar16]) goto LAB_0001d2e4;" if (parenthesized_expression "((int)param_3 <= (int)(uint)(byte)local_54[uVar16])" ( (binary_expression "(int)param_3 <= (int)(uint)(byte)local_54[uVar16]" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(uint)(byte)local_54[uVar16]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)(byte)local_54[uVar16]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_54[uVar16]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_54[uVar16]" identifier [ identifier ]))))) )) (goto_statement "goto LAB_0001d2e4;" goto statement_identifier ;)) (labeled_statement "LAB_0001d337:\n  puVar6 = (undefined *)strlen((char *)param_2);" statement_identifier : (expression_statement "puVar6 = (undefined *)strlen((char *)param_2);" (assignment_expression "puVar6 = (undefined *)strlen((char *)param_2)" identifier = (cast_expression "(undefined *)strlen((char *)param_2)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "strlen((char *)param_2)" identifier (argument_list "((char *)param_2)" ( (cast_expression "(char *)param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))))) ;)) (expression_statement "local_30 = puVar6 + -1;" (assignment_expression "local_30 = puVar6 + -1" identifier = (binary_expression "puVar6 + -1" identifier + number_literal)) ;) (if_statement "if (local_30 == (undefined *)0x0) {\n    ppbVar14 = (byte **)&stack0xffffff84;\n    local_24 = 0;\n    local_6c = (byte *)0x0;\n    local_5c = &puStack_70;\n    local_30 = (undefined *)0x1;\nLAB_0001d3c5:\n    local_50 = (ushort **)0x0;\n    puVar6 = (undefined *)0x0;\n    local_48 = local_5c;\n    local_58 = local_3c + -1;\n    do {\n      while( true ) {\n        local_34 = (ushort **)(uint)*param_2;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        param_2 = param_2 + 1;\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }\n      if (local_3c != (undefined *)0x0) {\n        if (*param_2 == *(byte *)local_40) {\n          ppuVar11 = local_40;\n          pbVar5 = param_2;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < (int)param_3) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }\nLAB_0001d443:\n      if (local_50 != (ushort **)0x0) goto LAB_0001d756;\n      local_50 = local_48;\n      param_2 = param_2 + (int)(local_58 + 1);\n      puVar6 = puVar6 + (int)local_58 + 1;\n    } while (puVar6 < local_30);\nLAB_0001d470:\n    local_30 = (undefined *)((int)local_48 - (int)local_5c);\n    ppbVar15 = ppbVar14;\n  }\n  else {\n    bVar1 = param_2[(int)(puVar6 + -1)];\n    puVar17 = puVar6;\n    if (bVar1 == 0x40) {\nLAB_0001d729:\n      local_6c = param_2 + (int)puVar17;\n    }\n    else {\n      if ((int)param_3 < 0xb) {\n        do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);\n        goto LAB_0001d729;\n      }\n      puVar17 = local_30;\n      for (local_30 = puVar6 + -2; local_30 != (undefined *)0x0; local_30 = local_30 + -1) {\n        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;\n        puVar17 = local_30;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar17 = puVar6 + 1;\n      local_30 = puVar6;\n    }\n    local_24 = 0;\n    if ((undefined *)0x7f00 < puVar17) {\n      local_5c = (ushort **)__gmp_tmp_reentrant_alloc();\n      local_38 = (ushort **)*local_34;\n      goto LAB_0001d3c5;\n    }\n    iVar13 = -((uint)(puVar17 + 0x1b) & 0xfffffff0);\n    ppbVar14 = (byte **)((int)&local_6c + iVar13);\n    ppbVar15 = (byte **)((int)&local_6c + iVar13);\n    local_5c = (ushort **)((int)&local_60 + iVar13);\n    if (local_30 != (undefined *)0x0) goto LAB_0001d3c5;\n    local_50 = (ushort **)0x0;\n    local_48 = local_5c;\n  }" if (parenthesized_expression "(local_30 == (undefined *)0x0)" ( (binary_expression "local_30 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    ppbVar14 = (byte **)&stack0xffffff84;\n    local_24 = 0;\n    local_6c = (byte *)0x0;\n    local_5c = &puStack_70;\n    local_30 = (undefined *)0x1;\nLAB_0001d3c5:\n    local_50 = (ushort **)0x0;\n    puVar6 = (undefined *)0x0;\n    local_48 = local_5c;\n    local_58 = local_3c + -1;\n    do {\n      while( true ) {\n        local_34 = (ushort **)(uint)*param_2;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        param_2 = param_2 + 1;\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }\n      if (local_3c != (undefined *)0x0) {\n        if (*param_2 == *(byte *)local_40) {\n          ppuVar11 = local_40;\n          pbVar5 = param_2;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < (int)param_3) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }\nLAB_0001d443:\n      if (local_50 != (ushort **)0x0) goto LAB_0001d756;\n      local_50 = local_48;\n      param_2 = param_2 + (int)(local_58 + 1);\n      puVar6 = puVar6 + (int)local_58 + 1;\n    } while (puVar6 < local_30);\nLAB_0001d470:\n    local_30 = (undefined *)((int)local_48 - (int)local_5c);\n    ppbVar15 = ppbVar14;\n  }" { (expression_statement "ppbVar14 = (byte **)&stack0xffffff84;" (assignment_expression "ppbVar14 = (byte **)&stack0xffffff84" identifier = (cast_expression "(byte **)&stack0xffffff84" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&stack0xffffff84" & identifier))) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "local_6c = (byte *)0x0;" (assignment_expression "local_6c = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_5c = &puStack_70;" (assignment_expression "local_5c = &puStack_70" identifier = (pointer_expression "&puStack_70" & identifier)) ;) (expression_statement "local_30 = (undefined *)0x1;" (assignment_expression "local_30 = (undefined *)0x1" identifier = (cast_expression "(undefined *)0x1" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0001d3c5:\n    local_50 = (ushort **)0x0;" statement_identifier : (expression_statement "local_50 = (ushort **)0x0;" (assignment_expression "local_50 = (ushort **)0x0" identifier = (cast_expression "(ushort **)0x0" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;)) (expression_statement "puVar6 = (undefined *)0x0;" (assignment_expression "puVar6 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_48 = local_5c;" (assignment_expression "local_48 = local_5c" identifier = identifier) ;) (expression_statement "local_58 = local_3c + -1;" (assignment_expression "local_58 = local_3c + -1" identifier = (binary_expression "local_3c + -1" identifier + number_literal)) ;) (do_statement "do {\n      while( true ) {\n        local_34 = (ushort **)(uint)*param_2;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        param_2 = param_2 + 1;\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }\n      if (local_3c != (undefined *)0x0) {\n        if (*param_2 == *(byte *)local_40) {\n          ppuVar11 = local_40;\n          pbVar5 = param_2;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < (int)param_3) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }\nLAB_0001d443:\n      if (local_50 != (ushort **)0x0) goto LAB_0001d756;\n      local_50 = local_48;\n      param_2 = param_2 + (int)(local_58 + 1);\n      puVar6 = puVar6 + (int)local_58 + 1;\n    } while (puVar6 < local_30);" do (compound_statement "{\n      while( true ) {\n        local_34 = (ushort **)(uint)*param_2;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        param_2 = param_2 + 1;\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }\n      if (local_3c != (undefined *)0x0) {\n        if (*param_2 == *(byte *)local_40) {\n          ppuVar11 = local_40;\n          pbVar5 = param_2;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < (int)param_3) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }\nLAB_0001d443:\n      if (local_50 != (ushort **)0x0) goto LAB_0001d756;\n      local_50 = local_48;\n      param_2 = param_2 + (int)(local_58 + 1);\n      puVar6 = puVar6 + (int)local_58 + 1;\n    }" { (while_statement "while( true ) {\n        local_34 = (ushort **)(uint)*param_2;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        param_2 = param_2 + 1;\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        local_34 = (ushort **)(uint)*param_2;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        param_2 = param_2 + 1;\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }" { (expression_statement "local_34 = (ushort **)(uint)*param_2;" (assignment_expression "local_34 = (ushort **)(uint)*param_2" identifier = (binary_expression "(ushort **)(uint)*param_2" (cast_expression "(ushort **)(uint)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (if_statement "if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;" if (parenthesized_expression "((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0)" ( (binary_expression "(*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20)" ( (binary_expression "*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20" (pointer_expression "*(byte *)((int)local_38 + (int)local_34 * 2 + 1)" * (cast_expression "(byte *)((int)local_38 + (int)local_34 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + (int)local_34 * 2 + 1)" ( (binary_expression "(int)local_38 + (int)local_34 * 2 + 1" (binary_expression "(int)local_38 + (int)local_34 * 2" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_34 * 2" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0001d3e0:\n        param_2 = param_2 + 1;" statement_identifier : (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;)) (expression_statement "puVar6 = puVar6 + 1;" (assignment_expression "puVar6 = puVar6 + 1" identifier = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) (if_statement "if (local_30 <= puVar6) goto LAB_0001d470;" if (parenthesized_expression "(local_30 <= puVar6)" ( (binary_expression "local_30 <= puVar6" identifier <= identifier) )) (goto_statement "goto LAB_0001d470;" goto statement_identifier ;)) })) (if_statement "if (local_3c != (undefined *)0x0) {\n        if (*param_2 == *(byte *)local_40) {\n          ppuVar11 = local_40;\n          pbVar5 = param_2;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < (int)param_3) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }" if (parenthesized_expression "(local_3c != (undefined *)0x0)" ( (binary_expression "local_3c != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (*param_2 == *(byte *)local_40) {\n          ppuVar11 = local_40;\n          pbVar5 = param_2;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < (int)param_3) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }" { (if_statement "if (*param_2 == *(byte *)local_40) {\n          ppuVar11 = local_40;\n          pbVar5 = param_2;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);\n        }" if (parenthesized_expression "(*param_2 == *(byte *)local_40)" ( (binary_expression "*param_2 == *(byte *)local_40" (pointer_expression "*param_2" * identifier) == (pointer_expression "*(byte *)local_40" * (cast_expression "(byte *)local_40" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n          ppuVar11 = local_40;\n          pbVar5 = param_2;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);\n        }" { (expression_statement "ppuVar11 = local_40;" (assignment_expression "ppuVar11 = local_40" identifier = identifier) ;) (expression_statement "pbVar5 = param_2;" (assignment_expression "pbVar5 = param_2" identifier = identifier) ;) (do_statement "do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);" do (compound_statement "{\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          }" { (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ;) (expression_statement "ppuVar11 = (ushort **)((int)ppuVar11 + 1);" (assignment_expression "ppuVar11 = (ushort **)((int)ppuVar11 + 1)" identifier = (cast_expression "(ushort **)((int)ppuVar11 + 1)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar11 + 1)" ( (binary_expression "(int)ppuVar11 + 1" (cast_expression "(int)ppuVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_4c = puVar6;" (assignment_expression "local_4c = puVar6" identifier = identifier) ;) (if_statement "if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;" if (parenthesized_expression "(pbVar5 == param_2 + (int)local_3c)" ( (binary_expression "pbVar5 == param_2 + (int)local_3c" identifier == (binary_expression "param_2 + (int)local_3c" identifier + (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier))) )) (goto_statement "goto LAB_0001d443;" goto statement_identifier ;)) }) while (parenthesized_expression "(*pbVar5 == *(byte *)ppuVar11)" ( (binary_expression "*pbVar5 == *(byte *)ppuVar11" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*(byte *)ppuVar11" * (cast_expression "(byte *)ppuVar11" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) ;) })) (if_statement "if ((int)(uint)(byte)local_54[(int)local_34] < (int)param_3) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }" if (parenthesized_expression "((int)(uint)(byte)local_54[(int)local_34] < (int)param_3)" ( (binary_expression "(int)(uint)(byte)local_54[(int)local_34] < (int)param_3" (cast_expression "(int)(uint)(byte)local_54[(int)local_34]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)(byte)local_54[(int)local_34]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_54[(int)local_34]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_54[(int)local_34]" identifier [ (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) ])))) < (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }" { (expression_statement "*(undefined *)local_48 = local_54[(int)local_34];" (assignment_expression "*(undefined *)local_48 = local_54[(int)local_34]" (pointer_expression "*(undefined *)local_48" * (cast_expression "(undefined *)local_48" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (subscript_expression "local_54[(int)local_34]" identifier [ (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) (expression_statement "local_48 = (ushort **)((int)local_48 + 1);" (assignment_expression "local_48 = (ushort **)((int)local_48 + 1)" identifier = (cast_expression "(ushort **)((int)local_48 + 1)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_48 + 1)" ( (binary_expression "(int)local_48 + 1" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (goto_statement "goto LAB_0001d3e0;" goto statement_identifier ;) })) (goto_statement "goto LAB_0001d756;" goto statement_identifier ;) })) (labeled_statement "LAB_0001d443:\n      if (local_50 != (ushort **)0x0) goto LAB_0001d756;" statement_identifier : (if_statement "if (local_50 != (ushort **)0x0) goto LAB_0001d756;" if (parenthesized_expression "(local_50 != (ushort **)0x0)" ( (binary_expression "local_50 != (ushort **)0x0" identifier != (cast_expression "(ushort **)0x0" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_0001d756;" goto statement_identifier ;))) (expression_statement "local_50 = local_48;" (assignment_expression "local_50 = local_48" identifier = identifier) ;) (expression_statement "param_2 = param_2 + (int)(local_58 + 1);" (assignment_expression "param_2 = param_2 + (int)(local_58 + 1)" identifier = (binary_expression "param_2 + (int)(local_58 + 1)" identifier + (cast_expression "(int)(local_58 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_58 + 1)" ( (binary_expression "local_58 + 1" identifier + number_literal) ))))) ;) (expression_statement "puVar6 = puVar6 + (int)local_58 + 1;" (assignment_expression "puVar6 = puVar6 + (int)local_58 + 1" identifier = (binary_expression "puVar6 + (int)local_58 + 1" (binary_expression "puVar6 + (int)local_58" identifier + (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal)) ;) }) while (parenthesized_expression "(puVar6 < local_30)" ( (binary_expression "puVar6 < local_30" identifier < identifier) )) ;) (labeled_statement "LAB_0001d470:\n    local_30 = (undefined *)((int)local_48 - (int)local_5c);" statement_identifier : (expression_statement "local_30 = (undefined *)((int)local_48 - (int)local_5c);" (assignment_expression "local_30 = (undefined *)((int)local_48 - (int)local_5c)" identifier = (cast_expression "(undefined *)((int)local_48 - (int)local_5c)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_48 - (int)local_5c)" ( (binary_expression "(int)local_48 - (int)local_5c" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "ppbVar15 = ppbVar14;" (assignment_expression "ppbVar15 = ppbVar14" identifier = identifier) ;) }) (else_clause "else {\n    bVar1 = param_2[(int)(puVar6 + -1)];\n    puVar17 = puVar6;\n    if (bVar1 == 0x40) {\nLAB_0001d729:\n      local_6c = param_2 + (int)puVar17;\n    }\n    else {\n      if ((int)param_3 < 0xb) {\n        do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);\n        goto LAB_0001d729;\n      }\n      puVar17 = local_30;\n      for (local_30 = puVar6 + -2; local_30 != (undefined *)0x0; local_30 = local_30 + -1) {\n        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;\n        puVar17 = local_30;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar17 = puVar6 + 1;\n      local_30 = puVar6;\n    }\n    local_24 = 0;\n    if ((undefined *)0x7f00 < puVar17) {\n      local_5c = (ushort **)__gmp_tmp_reentrant_alloc();\n      local_38 = (ushort **)*local_34;\n      goto LAB_0001d3c5;\n    }\n    iVar13 = -((uint)(puVar17 + 0x1b) & 0xfffffff0);\n    ppbVar14 = (byte **)((int)&local_6c + iVar13);\n    ppbVar15 = (byte **)((int)&local_6c + iVar13);\n    local_5c = (ushort **)((int)&local_60 + iVar13);\n    if (local_30 != (undefined *)0x0) goto LAB_0001d3c5;\n    local_50 = (ushort **)0x0;\n    local_48 = local_5c;\n  }" else (compound_statement "{\n    bVar1 = param_2[(int)(puVar6 + -1)];\n    puVar17 = puVar6;\n    if (bVar1 == 0x40) {\nLAB_0001d729:\n      local_6c = param_2 + (int)puVar17;\n    }\n    else {\n      if ((int)param_3 < 0xb) {\n        do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);\n        goto LAB_0001d729;\n      }\n      puVar17 = local_30;\n      for (local_30 = puVar6 + -2; local_30 != (undefined *)0x0; local_30 = local_30 + -1) {\n        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;\n        puVar17 = local_30;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar17 = puVar6 + 1;\n      local_30 = puVar6;\n    }\n    local_24 = 0;\n    if ((undefined *)0x7f00 < puVar17) {\n      local_5c = (ushort **)__gmp_tmp_reentrant_alloc();\n      local_38 = (ushort **)*local_34;\n      goto LAB_0001d3c5;\n    }\n    iVar13 = -((uint)(puVar17 + 0x1b) & 0xfffffff0);\n    ppbVar14 = (byte **)((int)&local_6c + iVar13);\n    ppbVar15 = (byte **)((int)&local_6c + iVar13);\n    local_5c = (ushort **)((int)&local_60 + iVar13);\n    if (local_30 != (undefined *)0x0) goto LAB_0001d3c5;\n    local_50 = (ushort **)0x0;\n    local_48 = local_5c;\n  }" { (expression_statement "bVar1 = param_2[(int)(puVar6 + -1)];" (assignment_expression "bVar1 = param_2[(int)(puVar6 + -1)]" identifier = (subscript_expression "param_2[(int)(puVar6 + -1)]" identifier [ (cast_expression "(int)(puVar6 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar6 + -1)" ( (binary_expression "puVar6 + -1" identifier + number_literal) ))) ])) ;) (expression_statement "puVar17 = puVar6;" (assignment_expression "puVar17 = puVar6" identifier = identifier) ;) (if_statement "if (bVar1 == 0x40) {\nLAB_0001d729:\n      local_6c = param_2 + (int)puVar17;\n    }\n    else {\n      if ((int)param_3 < 0xb) {\n        do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);\n        goto LAB_0001d729;\n      }\n      puVar17 = local_30;\n      for (local_30 = puVar6 + -2; local_30 != (undefined *)0x0; local_30 = local_30 + -1) {\n        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;\n        puVar17 = local_30;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar17 = puVar6 + 1;\n      local_30 = puVar6;\n    }" if (parenthesized_expression "(bVar1 == 0x40)" ( (binary_expression "bVar1 == 0x40" identifier == number_literal) )) (compound_statement "{\nLAB_0001d729:\n      local_6c = param_2 + (int)puVar17;\n    }" { (labeled_statement "LAB_0001d729:\n      local_6c = param_2 + (int)puVar17;" statement_identifier : (expression_statement "local_6c = param_2 + (int)puVar17;" (assignment_expression "local_6c = param_2 + (int)puVar17" identifier = (binary_expression "param_2 + (int)puVar17" identifier + (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) }) (else_clause "else {\n      if ((int)param_3 < 0xb) {\n        do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);\n        goto LAB_0001d729;\n      }\n      puVar17 = local_30;\n      for (local_30 = puVar6 + -2; local_30 != (undefined *)0x0; local_30 = local_30 + -1) {\n        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;\n        puVar17 = local_30;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar17 = puVar6 + 1;\n      local_30 = puVar6;\n    }" else (compound_statement "{\n      if ((int)param_3 < 0xb) {\n        do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);\n        goto LAB_0001d729;\n      }\n      puVar17 = local_30;\n      for (local_30 = puVar6 + -2; local_30 != (undefined *)0x0; local_30 = local_30 + -1) {\n        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;\n        puVar17 = local_30;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar17 = puVar6 + 1;\n      local_30 = puVar6;\n    }" { (if_statement "if ((int)param_3 < 0xb) {\n        do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);\n        goto LAB_0001d729;\n      }" if (parenthesized_expression "((int)param_3 < 0xb)" ( (binary_expression "(int)param_3 < 0xb" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);\n        goto LAB_0001d729;\n      }" { (do_statement "do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);" do (compound_statement "{\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        }" { (expression_statement "puVar9 = local_30;" (assignment_expression "puVar9 = local_30" identifier = identifier) ;) (if_statement "if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }" if (parenthesized_expression "((bVar1 & 0xdf) == 0x45)" ( (binary_expression "(bVar1 & 0xdf) == 0x45" (parenthesized_expression "(bVar1 & 0xdf)" ( (binary_expression "bVar1 & 0xdf" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }" { (expression_statement "puVar17 = puVar9 + 1;" (assignment_expression "puVar17 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (expression_statement "local_30 = puVar9;" (assignment_expression "local_30 = puVar9" identifier = identifier) ;) (break_statement "break;" break ;) })) (expression_statement "local_30 = puVar9 + -1;" (assignment_expression "local_30 = puVar9 + -1" identifier = (binary_expression "puVar9 + -1" identifier + number_literal)) ;) (if_statement "if (local_30 == (undefined *)0x0) goto LAB_0001d38c;" if (parenthesized_expression "(local_30 == (undefined *)0x0)" ( (binary_expression "local_30 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001d38c;" goto statement_identifier ;)) (expression_statement "bVar1 = param_2[(int)(puVar9 + -1)];" (assignment_expression "bVar1 = param_2[(int)(puVar9 + -1)]" identifier = (subscript_expression "param_2[(int)(puVar9 + -1)]" identifier [ (cast_expression "(int)(puVar9 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar9 + -1)" ( (binary_expression "puVar9 + -1" identifier + number_literal) ))) ])) ;) (expression_statement "puVar17 = puVar9;" (assignment_expression "puVar17 = puVar9" identifier = identifier) ;) }) while (parenthesized_expression "(bVar1 != 0x40)" ( (binary_expression "bVar1 != 0x40" identifier != number_literal) )) ;) (goto_statement "goto LAB_0001d729;" goto statement_identifier ;) })) (expression_statement "puVar17 = local_30;" (assignment_expression "puVar17 = local_30" identifier = identifier) ;) (for_statement "for (local_30 = puVar6 + -2; local_30 != (undefined *)0x0; local_30 = local_30 + -1) {\n        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;\n        puVar17 = local_30;\n      }" for ( (assignment_expression "local_30 = puVar6 + -2" identifier = (binary_expression "puVar6 + -2" identifier + number_literal)) ; (binary_expression "local_30 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "local_30 = local_30 + -1" identifier = (binary_expression "local_30 + -1" identifier + number_literal)) ) (compound_statement "{\n        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;\n        puVar17 = local_30;\n      }" { (if_statement "if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;" if (parenthesized_expression "(param_2[(int)(puVar17 + -1)] == 0x40)" ( (binary_expression "param_2[(int)(puVar17 + -1)] == 0x40" (subscript_expression "param_2[(int)(puVar17 + -1)]" identifier [ (cast_expression "(int)(puVar17 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar17 + -1)" ( (binary_expression "puVar17 + -1" identifier + number_literal) ))) ]) == number_literal) )) (goto_statement "goto LAB_0001d729;" goto statement_identifier ;)) (expression_statement "puVar17 = local_30;" (assignment_expression "puVar17 = local_30" identifier = identifier) ;) })) (labeled_statement "LAB_0001d38c:\n      local_6c = (byte *)0x0;" statement_identifier : (expression_statement "local_6c = (byte *)0x0;" (assignment_expression "local_6c = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "puVar17 = puVar6 + 1;" (assignment_expression "puVar17 = puVar6 + 1" identifier = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) (expression_statement "local_30 = puVar6;" (assignment_expression "local_30 = puVar6" identifier = identifier) ;) }))) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (if_statement "if ((undefined *)0x7f00 < puVar17) {\n      local_5c = (ushort **)__gmp_tmp_reentrant_alloc();\n      local_38 = (ushort **)*local_34;\n      goto LAB_0001d3c5;\n    }" if (parenthesized_expression "((undefined *)0x7f00 < puVar17)" ( (binary_expression "(undefined *)0x7f00 < puVar17" (cast_expression "(undefined *)0x7f00" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n      local_5c = (ushort **)__gmp_tmp_reentrant_alloc();\n      local_38 = (ushort **)*local_34;\n      goto LAB_0001d3c5;\n    }" { (expression_statement "local_5c = (ushort **)__gmp_tmp_reentrant_alloc();" (assignment_expression "local_5c = (ushort **)__gmp_tmp_reentrant_alloc()" identifier = (cast_expression "(ushort **)__gmp_tmp_reentrant_alloc()" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "__gmp_tmp_reentrant_alloc()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_38 = (ushort **)*local_34;" (assignment_expression "local_38 = (ushort **)*local_34" identifier = (cast_expression "(ushort **)*local_34" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*local_34" * identifier))) ;) (goto_statement "goto LAB_0001d3c5;" goto statement_identifier ;) })) (expression_statement "iVar13 = -((uint)(puVar17 + 0x1b) & 0xfffffff0);" (assignment_expression "iVar13 = -((uint)(puVar17 + 0x1b) & 0xfffffff0)" identifier = (unary_expression "-((uint)(puVar17 + 0x1b) & 0xfffffff0)" - (parenthesized_expression "((uint)(puVar17 + 0x1b) & 0xfffffff0)" ( (binary_expression "(uint)(puVar17 + 0x1b) & 0xfffffff0" (call_expression "(uint)(puVar17 + 0x1b)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar17 + 0x1b)" ( (binary_expression "puVar17 + 0x1b" identifier + number_literal) ))) & number_literal) )))) ;) (expression_statement "ppbVar14 = (byte **)((int)&local_6c + iVar13);" (assignment_expression "ppbVar14 = (byte **)((int)&local_6c + iVar13)" identifier = (cast_expression "(byte **)((int)&local_6c + iVar13)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&local_6c + iVar13)" ( (binary_expression "(int)&local_6c + iVar13" (cast_expression "(int)&local_6c" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_6c" & identifier)) + identifier) )))) ;) (expression_statement "ppbVar15 = (byte **)((int)&local_6c + iVar13);" (assignment_expression "ppbVar15 = (byte **)((int)&local_6c + iVar13)" identifier = (cast_expression "(byte **)((int)&local_6c + iVar13)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&local_6c + iVar13)" ( (binary_expression "(int)&local_6c + iVar13" (cast_expression "(int)&local_6c" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_6c" & identifier)) + identifier) )))) ;) (expression_statement "local_5c = (ushort **)((int)&local_60 + iVar13);" (assignment_expression "local_5c = (ushort **)((int)&local_60 + iVar13)" identifier = (cast_expression "(ushort **)((int)&local_60 + iVar13)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&local_60 + iVar13)" ( (binary_expression "(int)&local_60 + iVar13" (cast_expression "(int)&local_60" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_60" & identifier)) + identifier) )))) ;) (if_statement "if (local_30 != (undefined *)0x0) goto LAB_0001d3c5;" if (parenthesized_expression "(local_30 != (undefined *)0x0)" ( (binary_expression "local_30 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001d3c5;" goto statement_identifier ;)) (expression_statement "local_50 = (ushort **)0x0;" (assignment_expression "local_50 = (ushort **)0x0" identifier = (cast_expression "(ushort **)0x0" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "local_48 = local_5c;" (assignment_expression "local_48 = local_5c" identifier = identifier) ;) }))) (expression_statement "ppuVar11 = (ushort **)*local_60;" (assignment_expression "ppuVar11 = (ushort **)*local_60" identifier = (cast_expression "(ushort **)*local_60" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*local_60" * identifier))) ;) (expression_statement "uVar12 = (uint)((ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8) * ZEXT48(local_30)\n                 >> 0x20) & 0x1ffffffc;" (assignment_expression "uVar12 = (uint)((ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8) * ZEXT48(local_30)\n                 >> 0x20) & 0x1ffffffc" identifier = (binary_expression "(uint)((ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8) * ZEXT48(local_30)\n                 >> 0x20) & 0x1ffffffc" (call_expression "(uint)((ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8) * ZEXT48(local_30)\n                 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8) * ZEXT48(local_30)\n                 >> 0x20)" ( (binary_expression "(ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8) * ZEXT48(local_30)\n                 >> 0x20" (binary_expression "(ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8) * ZEXT48(local_30)" (binary_expression "(ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_44[-0x56] + (int)param_3 * 0x14 + 8)" ( (binary_expression "local_44[-0x56] + (int)param_3 * 0x14 + 8" (binary_expression "local_44[-0x56] + (int)param_3 * 0x14" (subscript_expression "local_44[-0x56]" identifier [ number_literal ]) + (binary_expression "(int)param_3 * 0x14" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) * (call_expression "ZEXT48(local_30)" identifier (argument_list "(local_30)" ( identifier )))) >> number_literal) ))) & number_literal)) ;) (expression_statement "uVar16 = uVar12 + 8;" (assignment_expression "uVar16 = uVar12 + 8" identifier = (binary_expression "uVar12 + 8" identifier + number_literal)) ;) (if_statement "if (uVar16 < 0x7f01) {\n    iVar13 = -(uVar12 + 0x23 & 0xfffffff0);\n    local_40 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n    ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n  }\n  else {\n    *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n    *(int **)((int)ppbVar15 + -0x10) = &local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dabe;\n    local_40 = (ushort **)__gmp_tmp_reentrant_alloc();\n  }" if (parenthesized_expression "(uVar16 < 0x7f01)" ( (binary_expression "uVar16 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n    iVar13 = -(uVar12 + 0x23 & 0xfffffff0);\n    local_40 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n    ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n  }" { (expression_statement "iVar13 = -(uVar12 + 0x23 & 0xfffffff0);" (assignment_expression "iVar13 = -(uVar12 + 0x23 & 0xfffffff0)" identifier = (unary_expression "-(uVar12 + 0x23 & 0xfffffff0)" - (parenthesized_expression "(uVar12 + 0x23 & 0xfffffff0)" ( (binary_expression "uVar12 + 0x23 & 0xfffffff0" (binary_expression "uVar12 + 0x23" identifier + number_literal) & number_literal) )))) ;) (expression_statement "local_40 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);" (assignment_expression "local_40 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0)" identifier = (cast_expression "(ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0)" ( (binary_expression "(uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0" (call_expression "(uint)((int)ppbVar15 + iVar13 + 0xf)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppbVar15 + iVar13 + 0xf)" ( (binary_expression "(int)ppbVar15 + iVar13 + 0xf" (binary_expression "(int)ppbVar15 + iVar13" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))) & number_literal) )))) ;) (expression_statement "ppbVar15 = (byte **)((int)ppbVar15 + iVar13);" (assignment_expression "ppbVar15 = (byte **)((int)ppbVar15 + iVar13)" identifier = (cast_expression "(byte **)((int)ppbVar15 + iVar13)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + iVar13)" ( (binary_expression "(int)ppbVar15 + iVar13" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n    *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n    *(int **)((int)ppbVar15 + -0x10) = &local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dabe;\n    local_40 = (ushort **)__gmp_tmp_reentrant_alloc();\n  }" else (compound_statement "{\n    *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n    *(int **)((int)ppbVar15 + -0x10) = &local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dabe;\n    local_40 = (ushort **)__gmp_tmp_reentrant_alloc();\n  }" { (expression_statement "*(uint *)((int)ppbVar15 + -0xc) = uVar16;" (assignment_expression "*(uint *)((int)ppbVar15 + -0xc) = uVar16" (pointer_expression "*(uint *)((int)ppbVar15 + -0xc)" * (cast_expression "(uint *)((int)ppbVar15 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)ppbVar15 + -0x10) = &local_24;" (assignment_expression "*(int **)((int)ppbVar15 + -0x10) = &local_24" (pointer_expression "*(int **)((int)ppbVar15 + -0x10)" * (cast_expression "(int **)((int)ppbVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_24" & identifier)) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dabe;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dabe" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_40 = (ushort **)__gmp_tmp_reentrant_alloc();" (assignment_expression "local_40 = (ushort **)__gmp_tmp_reentrant_alloc()" identifier = (cast_expression "(ushort **)__gmp_tmp_reentrant_alloc()" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "__gmp_tmp_reentrant_alloc()" identifier (argument_list "()" ( ))))) ;) }))) (expression_statement "*(ushort **)((int)ppbVar15 + -4) = param_3;" (assignment_expression "*(ushort **)((int)ppbVar15 + -4) = param_3" (pointer_expression "*(ushort **)((int)ppbVar15 + -4)" * (cast_expression "(ushort **)((int)ppbVar15 + -4)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -4)" ( (binary_expression "(int)ppbVar15 + -4" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar15 + -8) = local_30;" (assignment_expression "*(undefined **)((int)ppbVar15 + -8) = local_30" (pointer_expression "*(undefined **)((int)ppbVar15 + -8)" * (cast_expression "(undefined **)((int)ppbVar15 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -8)" ( (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0xc) = local_5c;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0xc) = local_5c" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0xc)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0xc)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x10) = local_40;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x10) = local_40" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x10)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0x10)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d4cf;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d4cf" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "puVar6 = (undefined *)__gmpn_set_str();" (assignment_expression "puVar6 = (undefined *)__gmpn_set_str()" identifier = (cast_expression "(undefined *)__gmpn_set_str()" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__gmpn_set_str()" identifier (argument_list "()" ( ))))) ;) (expression_statement "ppuVar4 = local_44;" (assignment_expression "ppuVar4 = local_44" identifier = identifier) ;) (expression_statement "puVar3 = local_60;" (assignment_expression "puVar3 = local_60" identifier = identifier) ;) (if_statement "if (puVar6 == (undefined *)0x0) {\n    local_60[1] = 0;\n    local_60[2] = 0;\n    if (local_24 != 0) {\n      local_30 = puVar6;\n      *(int *)((int)ppbVar15 + -0x10) = local_24;\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dadb;\n      __gmp_tmp_reentrant_free();\n      puVar6 = local_30;\n      goto LAB_0001d775;\n    }\nLAB_0001d7d0:\n    puVar6 = (undefined *)0x0;\n  }\n  else {\n    local_3c = (undefined *)((int)ppuVar11 + 1);\n    if ((int)local_3c < (int)puVar6) {\n      local_5c = (ushort **)(puVar6 + -(int)local_3c);\n      local_40 = local_40 + (int)local_5c;\n      local_58 = local_3c;\n      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;\nLAB_0001d4fd:\n      bVar1 = *local_6c;\n      local_30 = (undefined *)(uint)(bVar1 == 0x2d);\n      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);\n      uVar16 = (uint)(byte)local_54[*pbVar5];\n      ppbVar14 = ppbVar15;\n      if ((int)local_68 <= (int)uVar16) {\nLAB_0001d756:\n        ppbVar15 = ppbVar14;\n        if (local_24 != 0) {\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }\n        goto LAB_0001d770;\n      }\n      bVar1 = local_54[pbVar5[1]];\n      local_34 = (ushort **)(pbVar5 + 2);\n      ppuVar10 = (ushort **)(pbVar5 + 2);\n      while ((int)(uint)bVar1 < (int)local_68) {\n        uVar16 = uVar16 * (int)local_68 + (uint)bVar1;\n        bVar1 = local_54[*(byte *)ppuVar10];\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar10 = (ushort **)((int)ppuVar10 + 1);\n        local_38 = ppuVar11;\n      }\n      local_54 = local_30 + (uVar16 ^ (uint)-(int)local_30);\n      if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }\n      if (local_54 == (undefined *)0x0) goto LAB_0001d804;\n      local_68 = (ushort *)((int)ppuVar11 + 2);\n      uVar16 = (int)local_68 * 8;\n      if (uVar16 < 0x7f01) {\n        uVar16 = uVar16 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);\n        ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);\n        ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;\n        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;\n        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();\n      }\n      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));\n      *local_50 = param_3;\n      uVar16 = 0x1f;\n      if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n        }\n      }\n      uVar16 = 0x1e - (uVar16 ^ 0x1f);\n      if (uVar16 == 0xffffffff) {\n        iVar13 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar10 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar7 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }\n      puVar17 = local_4c;\n      if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }\n      *(undefined **)((int)ppbVar15 + -8) = puVar6;\n      *(int *)((int)ppbVar15 + -0xc) = (int)ppuVar10 + iVar13;\n      *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d87c;\n      (*pcVar2)();\n      if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }\n        ppuVar11 = local_50;\n        puVar8 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar8) {\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }\n        local_34 = (ushort **)((int)local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }\n        puVar17 = local_58;\n        *(undefined **)((int)ppbVar15 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar15 + -0x14) = puVar17;\n        puVar9 = local_3c;\n        ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar15 + -0x18) = local_40;\n        local_38 = ppuVar11;\n        *(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;\n        *(uint *)((int)ppbVar15 + -0x20) = uVar16;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;\n        iVar13 = __gmpn_divrem();\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));\n        uVar12 = uVar16;\n        puVar17 = local_3c;\n        if (iVar13 != 0) {\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }\n      }\n      else {\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        local_38 = (ushort **)((int)local_34 * 4);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }\n        *(uint *)((int)ppbVar15 + -0x20) = uVar12;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;\n        __gmpn_mul();\n        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));\n        if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }\n      }\n      local_3c = puVar17;\n      puVar9 = local_3c;\n      puVar3 = local_60;\n      *(undefined **)((int)ppbVar15 + -8) = local_3c;\n      *(uint *)((int)ppbVar15 + -0xc) = uVar12;\n      puVar17 = local_4c;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d91c;\n      (*pcVar2)();\n      puVar17 = (undefined *)-(int)puVar9;\n      if (local_64 == 0) {\n        puVar17 = puVar9;\n      }\n      local_60[2] = (uint)puVar6;\n      local_60[1] = (uint)puVar17;\n      if (local_24 == 0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }\n    }\n    else {\n      local_5c = (ushort **)0x0;\n      local_58 = puVar6;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar17 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar15 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar17;\n      if (local_64 == 0) {\n        puVar6 = puVar17;\n      }\n      puVar3[2] = (uint)local_30;\n      puVar3[1] = (uint)puVar6;\n      if (local_24 == 0) goto LAB_0001d7d0;\n    }\n    *(int *)((int)ppbVar15 + -0x10) = local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d84e;\n    __gmp_tmp_reentrant_free();\n    puVar6 = (undefined *)0x0;\n  }" if (parenthesized_expression "(puVar6 == (undefined *)0x0)" ( (binary_expression "puVar6 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_60[1] = 0;\n    local_60[2] = 0;\n    if (local_24 != 0) {\n      local_30 = puVar6;\n      *(int *)((int)ppbVar15 + -0x10) = local_24;\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dadb;\n      __gmp_tmp_reentrant_free();\n      puVar6 = local_30;\n      goto LAB_0001d775;\n    }\nLAB_0001d7d0:\n    puVar6 = (undefined *)0x0;\n  }" { (expression_statement "local_60[1] = 0;" (assignment_expression "local_60[1] = 0" (subscript_expression "local_60[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_60[2] = 0;" (assignment_expression "local_60[2] = 0" (subscript_expression "local_60[2]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (local_24 != 0) {\n      local_30 = puVar6;\n      *(int *)((int)ppbVar15 + -0x10) = local_24;\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dadb;\n      __gmp_tmp_reentrant_free();\n      puVar6 = local_30;\n      goto LAB_0001d775;\n    }" if (parenthesized_expression "(local_24 != 0)" ( (binary_expression "local_24 != 0" identifier != number_literal) )) (compound_statement "{\n      local_30 = puVar6;\n      *(int *)((int)ppbVar15 + -0x10) = local_24;\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dadb;\n      __gmp_tmp_reentrant_free();\n      puVar6 = local_30;\n      goto LAB_0001d775;\n    }" { (expression_statement "local_30 = puVar6;" (assignment_expression "local_30 = puVar6" identifier = identifier) ;) (expression_statement "*(int *)((int)ppbVar15 + -0x10) = local_24;" (assignment_expression "*(int *)((int)ppbVar15 + -0x10) = local_24" (pointer_expression "*(int *)((int)ppbVar15 + -0x10)" * (cast_expression "(int *)((int)ppbVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dadb;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dadb" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "__gmp_tmp_reentrant_free();" (call_expression "__gmp_tmp_reentrant_free()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar6 = local_30;" (assignment_expression "puVar6 = local_30" identifier = identifier) ;) (goto_statement "goto LAB_0001d775;" goto statement_identifier ;) })) (labeled_statement "LAB_0001d7d0:\n    puVar6 = (undefined *)0x0;" statement_identifier : (expression_statement "puVar6 = (undefined *)0x0;" (assignment_expression "puVar6 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }) (else_clause "else {\n    local_3c = (undefined *)((int)ppuVar11 + 1);\n    if ((int)local_3c < (int)puVar6) {\n      local_5c = (ushort **)(puVar6 + -(int)local_3c);\n      local_40 = local_40 + (int)local_5c;\n      local_58 = local_3c;\n      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;\nLAB_0001d4fd:\n      bVar1 = *local_6c;\n      local_30 = (undefined *)(uint)(bVar1 == 0x2d);\n      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);\n      uVar16 = (uint)(byte)local_54[*pbVar5];\n      ppbVar14 = ppbVar15;\n      if ((int)local_68 <= (int)uVar16) {\nLAB_0001d756:\n        ppbVar15 = ppbVar14;\n        if (local_24 != 0) {\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }\n        goto LAB_0001d770;\n      }\n      bVar1 = local_54[pbVar5[1]];\n      local_34 = (ushort **)(pbVar5 + 2);\n      ppuVar10 = (ushort **)(pbVar5 + 2);\n      while ((int)(uint)bVar1 < (int)local_68) {\n        uVar16 = uVar16 * (int)local_68 + (uint)bVar1;\n        bVar1 = local_54[*(byte *)ppuVar10];\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar10 = (ushort **)((int)ppuVar10 + 1);\n        local_38 = ppuVar11;\n      }\n      local_54 = local_30 + (uVar16 ^ (uint)-(int)local_30);\n      if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }\n      if (local_54 == (undefined *)0x0) goto LAB_0001d804;\n      local_68 = (ushort *)((int)ppuVar11 + 2);\n      uVar16 = (int)local_68 * 8;\n      if (uVar16 < 0x7f01) {\n        uVar16 = uVar16 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);\n        ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);\n        ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;\n        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;\n        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();\n      }\n      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));\n      *local_50 = param_3;\n      uVar16 = 0x1f;\n      if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n        }\n      }\n      uVar16 = 0x1e - (uVar16 ^ 0x1f);\n      if (uVar16 == 0xffffffff) {\n        iVar13 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar10 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar7 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }\n      puVar17 = local_4c;\n      if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }\n      *(undefined **)((int)ppbVar15 + -8) = puVar6;\n      *(int *)((int)ppbVar15 + -0xc) = (int)ppuVar10 + iVar13;\n      *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d87c;\n      (*pcVar2)();\n      if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }\n        ppuVar11 = local_50;\n        puVar8 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar8) {\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }\n        local_34 = (ushort **)((int)local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }\n        puVar17 = local_58;\n        *(undefined **)((int)ppbVar15 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar15 + -0x14) = puVar17;\n        puVar9 = local_3c;\n        ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar15 + -0x18) = local_40;\n        local_38 = ppuVar11;\n        *(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;\n        *(uint *)((int)ppbVar15 + -0x20) = uVar16;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;\n        iVar13 = __gmpn_divrem();\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));\n        uVar12 = uVar16;\n        puVar17 = local_3c;\n        if (iVar13 != 0) {\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }\n      }\n      else {\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        local_38 = (ushort **)((int)local_34 * 4);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }\n        *(uint *)((int)ppbVar15 + -0x20) = uVar12;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;\n        __gmpn_mul();\n        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));\n        if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }\n      }\n      local_3c = puVar17;\n      puVar9 = local_3c;\n      puVar3 = local_60;\n      *(undefined **)((int)ppbVar15 + -8) = local_3c;\n      *(uint *)((int)ppbVar15 + -0xc) = uVar12;\n      puVar17 = local_4c;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d91c;\n      (*pcVar2)();\n      puVar17 = (undefined *)-(int)puVar9;\n      if (local_64 == 0) {\n        puVar17 = puVar9;\n      }\n      local_60[2] = (uint)puVar6;\n      local_60[1] = (uint)puVar17;\n      if (local_24 == 0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }\n    }\n    else {\n      local_5c = (ushort **)0x0;\n      local_58 = puVar6;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar17 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar15 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar17;\n      if (local_64 == 0) {\n        puVar6 = puVar17;\n      }\n      puVar3[2] = (uint)local_30;\n      puVar3[1] = (uint)puVar6;\n      if (local_24 == 0) goto LAB_0001d7d0;\n    }\n    *(int *)((int)ppbVar15 + -0x10) = local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d84e;\n    __gmp_tmp_reentrant_free();\n    puVar6 = (undefined *)0x0;\n  }" else (compound_statement "{\n    local_3c = (undefined *)((int)ppuVar11 + 1);\n    if ((int)local_3c < (int)puVar6) {\n      local_5c = (ushort **)(puVar6 + -(int)local_3c);\n      local_40 = local_40 + (int)local_5c;\n      local_58 = local_3c;\n      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;\nLAB_0001d4fd:\n      bVar1 = *local_6c;\n      local_30 = (undefined *)(uint)(bVar1 == 0x2d);\n      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);\n      uVar16 = (uint)(byte)local_54[*pbVar5];\n      ppbVar14 = ppbVar15;\n      if ((int)local_68 <= (int)uVar16) {\nLAB_0001d756:\n        ppbVar15 = ppbVar14;\n        if (local_24 != 0) {\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }\n        goto LAB_0001d770;\n      }\n      bVar1 = local_54[pbVar5[1]];\n      local_34 = (ushort **)(pbVar5 + 2);\n      ppuVar10 = (ushort **)(pbVar5 + 2);\n      while ((int)(uint)bVar1 < (int)local_68) {\n        uVar16 = uVar16 * (int)local_68 + (uint)bVar1;\n        bVar1 = local_54[*(byte *)ppuVar10];\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar10 = (ushort **)((int)ppuVar10 + 1);\n        local_38 = ppuVar11;\n      }\n      local_54 = local_30 + (uVar16 ^ (uint)-(int)local_30);\n      if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }\n      if (local_54 == (undefined *)0x0) goto LAB_0001d804;\n      local_68 = (ushort *)((int)ppuVar11 + 2);\n      uVar16 = (int)local_68 * 8;\n      if (uVar16 < 0x7f01) {\n        uVar16 = uVar16 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);\n        ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);\n        ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;\n        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;\n        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();\n      }\n      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));\n      *local_50 = param_3;\n      uVar16 = 0x1f;\n      if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n        }\n      }\n      uVar16 = 0x1e - (uVar16 ^ 0x1f);\n      if (uVar16 == 0xffffffff) {\n        iVar13 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar10 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar7 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }\n      puVar17 = local_4c;\n      if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }\n      *(undefined **)((int)ppbVar15 + -8) = puVar6;\n      *(int *)((int)ppbVar15 + -0xc) = (int)ppuVar10 + iVar13;\n      *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d87c;\n      (*pcVar2)();\n      if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }\n        ppuVar11 = local_50;\n        puVar8 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar8) {\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }\n        local_34 = (ushort **)((int)local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }\n        puVar17 = local_58;\n        *(undefined **)((int)ppbVar15 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar15 + -0x14) = puVar17;\n        puVar9 = local_3c;\n        ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar15 + -0x18) = local_40;\n        local_38 = ppuVar11;\n        *(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;\n        *(uint *)((int)ppbVar15 + -0x20) = uVar16;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;\n        iVar13 = __gmpn_divrem();\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));\n        uVar12 = uVar16;\n        puVar17 = local_3c;\n        if (iVar13 != 0) {\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }\n      }\n      else {\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        local_38 = (ushort **)((int)local_34 * 4);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }\n        *(uint *)((int)ppbVar15 + -0x20) = uVar12;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;\n        __gmpn_mul();\n        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));\n        if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }\n      }\n      local_3c = puVar17;\n      puVar9 = local_3c;\n      puVar3 = local_60;\n      *(undefined **)((int)ppbVar15 + -8) = local_3c;\n      *(uint *)((int)ppbVar15 + -0xc) = uVar12;\n      puVar17 = local_4c;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d91c;\n      (*pcVar2)();\n      puVar17 = (undefined *)-(int)puVar9;\n      if (local_64 == 0) {\n        puVar17 = puVar9;\n      }\n      local_60[2] = (uint)puVar6;\n      local_60[1] = (uint)puVar17;\n      if (local_24 == 0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }\n    }\n    else {\n      local_5c = (ushort **)0x0;\n      local_58 = puVar6;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar17 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar15 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar17;\n      if (local_64 == 0) {\n        puVar6 = puVar17;\n      }\n      puVar3[2] = (uint)local_30;\n      puVar3[1] = (uint)puVar6;\n      if (local_24 == 0) goto LAB_0001d7d0;\n    }\n    *(int *)((int)ppbVar15 + -0x10) = local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d84e;\n    __gmp_tmp_reentrant_free();\n    puVar6 = (undefined *)0x0;\n  }" { (expression_statement "local_3c = (undefined *)((int)ppuVar11 + 1);" (assignment_expression "local_3c = (undefined *)((int)ppuVar11 + 1)" identifier = (cast_expression "(undefined *)((int)ppuVar11 + 1)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar11 + 1)" ( (binary_expression "(int)ppuVar11 + 1" (cast_expression "(int)ppuVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((int)local_3c < (int)puVar6) {\n      local_5c = (ushort **)(puVar6 + -(int)local_3c);\n      local_40 = local_40 + (int)local_5c;\n      local_58 = local_3c;\n      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;\nLAB_0001d4fd:\n      bVar1 = *local_6c;\n      local_30 = (undefined *)(uint)(bVar1 == 0x2d);\n      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);\n      uVar16 = (uint)(byte)local_54[*pbVar5];\n      ppbVar14 = ppbVar15;\n      if ((int)local_68 <= (int)uVar16) {\nLAB_0001d756:\n        ppbVar15 = ppbVar14;\n        if (local_24 != 0) {\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }\n        goto LAB_0001d770;\n      }\n      bVar1 = local_54[pbVar5[1]];\n      local_34 = (ushort **)(pbVar5 + 2);\n      ppuVar10 = (ushort **)(pbVar5 + 2);\n      while ((int)(uint)bVar1 < (int)local_68) {\n        uVar16 = uVar16 * (int)local_68 + (uint)bVar1;\n        bVar1 = local_54[*(byte *)ppuVar10];\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar10 = (ushort **)((int)ppuVar10 + 1);\n        local_38 = ppuVar11;\n      }\n      local_54 = local_30 + (uVar16 ^ (uint)-(int)local_30);\n      if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }\n      if (local_54 == (undefined *)0x0) goto LAB_0001d804;\n      local_68 = (ushort *)((int)ppuVar11 + 2);\n      uVar16 = (int)local_68 * 8;\n      if (uVar16 < 0x7f01) {\n        uVar16 = uVar16 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);\n        ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);\n        ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;\n        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;\n        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();\n      }\n      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));\n      *local_50 = param_3;\n      uVar16 = 0x1f;\n      if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n        }\n      }\n      uVar16 = 0x1e - (uVar16 ^ 0x1f);\n      if (uVar16 == 0xffffffff) {\n        iVar13 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar10 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar7 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }\n      puVar17 = local_4c;\n      if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }\n      *(undefined **)((int)ppbVar15 + -8) = puVar6;\n      *(int *)((int)ppbVar15 + -0xc) = (int)ppuVar10 + iVar13;\n      *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d87c;\n      (*pcVar2)();\n      if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }\n        ppuVar11 = local_50;\n        puVar8 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar8) {\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }\n        local_34 = (ushort **)((int)local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }\n        puVar17 = local_58;\n        *(undefined **)((int)ppbVar15 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar15 + -0x14) = puVar17;\n        puVar9 = local_3c;\n        ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar15 + -0x18) = local_40;\n        local_38 = ppuVar11;\n        *(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;\n        *(uint *)((int)ppbVar15 + -0x20) = uVar16;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;\n        iVar13 = __gmpn_divrem();\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));\n        uVar12 = uVar16;\n        puVar17 = local_3c;\n        if (iVar13 != 0) {\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }\n      }\n      else {\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        local_38 = (ushort **)((int)local_34 * 4);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }\n        *(uint *)((int)ppbVar15 + -0x20) = uVar12;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;\n        __gmpn_mul();\n        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));\n        if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }\n      }\n      local_3c = puVar17;\n      puVar9 = local_3c;\n      puVar3 = local_60;\n      *(undefined **)((int)ppbVar15 + -8) = local_3c;\n      *(uint *)((int)ppbVar15 + -0xc) = uVar12;\n      puVar17 = local_4c;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d91c;\n      (*pcVar2)();\n      puVar17 = (undefined *)-(int)puVar9;\n      if (local_64 == 0) {\n        puVar17 = puVar9;\n      }\n      local_60[2] = (uint)puVar6;\n      local_60[1] = (uint)puVar17;\n      if (local_24 == 0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }\n    }\n    else {\n      local_5c = (ushort **)0x0;\n      local_58 = puVar6;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar17 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar15 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar17;\n      if (local_64 == 0) {\n        puVar6 = puVar17;\n      }\n      puVar3[2] = (uint)local_30;\n      puVar3[1] = (uint)puVar6;\n      if (local_24 == 0) goto LAB_0001d7d0;\n    }" if (parenthesized_expression "((int)local_3c < (int)puVar6)" ( (binary_expression "(int)local_3c < (int)puVar6" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      local_5c = (ushort **)(puVar6 + -(int)local_3c);\n      local_40 = local_40 + (int)local_5c;\n      local_58 = local_3c;\n      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;\nLAB_0001d4fd:\n      bVar1 = *local_6c;\n      local_30 = (undefined *)(uint)(bVar1 == 0x2d);\n      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);\n      uVar16 = (uint)(byte)local_54[*pbVar5];\n      ppbVar14 = ppbVar15;\n      if ((int)local_68 <= (int)uVar16) {\nLAB_0001d756:\n        ppbVar15 = ppbVar14;\n        if (local_24 != 0) {\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }\n        goto LAB_0001d770;\n      }\n      bVar1 = local_54[pbVar5[1]];\n      local_34 = (ushort **)(pbVar5 + 2);\n      ppuVar10 = (ushort **)(pbVar5 + 2);\n      while ((int)(uint)bVar1 < (int)local_68) {\n        uVar16 = uVar16 * (int)local_68 + (uint)bVar1;\n        bVar1 = local_54[*(byte *)ppuVar10];\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar10 = (ushort **)((int)ppuVar10 + 1);\n        local_38 = ppuVar11;\n      }\n      local_54 = local_30 + (uVar16 ^ (uint)-(int)local_30);\n      if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }\n      if (local_54 == (undefined *)0x0) goto LAB_0001d804;\n      local_68 = (ushort *)((int)ppuVar11 + 2);\n      uVar16 = (int)local_68 * 8;\n      if (uVar16 < 0x7f01) {\n        uVar16 = uVar16 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);\n        ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);\n        ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;\n        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;\n        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();\n      }\n      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));\n      *local_50 = param_3;\n      uVar16 = 0x1f;\n      if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n        }\n      }\n      uVar16 = 0x1e - (uVar16 ^ 0x1f);\n      if (uVar16 == 0xffffffff) {\n        iVar13 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar10 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar7 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }\n      puVar17 = local_4c;\n      if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }\n      *(undefined **)((int)ppbVar15 + -8) = puVar6;\n      *(int *)((int)ppbVar15 + -0xc) = (int)ppuVar10 + iVar13;\n      *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d87c;\n      (*pcVar2)();\n      if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }\n        ppuVar11 = local_50;\n        puVar8 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar8) {\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }\n        local_34 = (ushort **)((int)local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }\n        puVar17 = local_58;\n        *(undefined **)((int)ppbVar15 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar15 + -0x14) = puVar17;\n        puVar9 = local_3c;\n        ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar15 + -0x18) = local_40;\n        local_38 = ppuVar11;\n        *(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;\n        *(uint *)((int)ppbVar15 + -0x20) = uVar16;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;\n        iVar13 = __gmpn_divrem();\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));\n        uVar12 = uVar16;\n        puVar17 = local_3c;\n        if (iVar13 != 0) {\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }\n      }\n      else {\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        local_38 = (ushort **)((int)local_34 * 4);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }\n        *(uint *)((int)ppbVar15 + -0x20) = uVar12;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;\n        __gmpn_mul();\n        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));\n        if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }\n      }\n      local_3c = puVar17;\n      puVar9 = local_3c;\n      puVar3 = local_60;\n      *(undefined **)((int)ppbVar15 + -8) = local_3c;\n      *(uint *)((int)ppbVar15 + -0xc) = uVar12;\n      puVar17 = local_4c;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d91c;\n      (*pcVar2)();\n      puVar17 = (undefined *)-(int)puVar9;\n      if (local_64 == 0) {\n        puVar17 = puVar9;\n      }\n      local_60[2] = (uint)puVar6;\n      local_60[1] = (uint)puVar17;\n      if (local_24 == 0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }\n    }" { (expression_statement "local_5c = (ushort **)(puVar6 + -(int)local_3c);" (assignment_expression "local_5c = (ushort **)(puVar6 + -(int)local_3c)" identifier = (cast_expression "(ushort **)(puVar6 + -(int)local_3c)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -(int)local_3c)" ( (binary_expression "puVar6 + -(int)local_3c" identifier + (unary_expression "-(int)local_3c" - (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) (expression_statement "local_40 = local_40 + (int)local_5c;" (assignment_expression "local_40 = local_40 + (int)local_5c" identifier = (binary_expression "local_40 + (int)local_5c" identifier + (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_58 = local_3c;" (assignment_expression "local_58 = local_3c" identifier = identifier) ;) (if_statement "if (local_6c == (byte *)0x0) goto LAB_0001d7f2;" if (parenthesized_expression "(local_6c == (byte *)0x0)" ( (binary_expression "local_6c == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001d7f2;" goto statement_identifier ;)) (labeled_statement "LAB_0001d4fd:\n      bVar1 = *local_6c;" statement_identifier : (expression_statement "bVar1 = *local_6c;" (assignment_expression "bVar1 = *local_6c" identifier = (pointer_expression "*local_6c" * identifier)) ;)) (expression_statement "local_30 = (undefined *)(uint)(bVar1 == 0x2d);" (assignment_expression "local_30 = (undefined *)(uint)(bVar1 == 0x2d)" identifier = (cast_expression "(undefined *)(uint)(bVar1 == 0x2d)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(bVar1 == 0x2d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar1 == 0x2d)" ( (binary_expression "bVar1 == 0x2d" identifier == number_literal) ))))) ;) (expression_statement "pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);" (assignment_expression "pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d)" identifier = (binary_expression "local_6c + (bVar1 == 0x2b || bVar1 == 0x2d)" identifier + (parenthesized_expression "(bVar1 == 0x2b || bVar1 == 0x2d)" ( (binary_expression "bVar1 == 0x2b || bVar1 == 0x2d" (binary_expression "bVar1 == 0x2b" identifier == number_literal) || (binary_expression "bVar1 == 0x2d" identifier == number_literal)) )))) ;) (expression_statement "uVar16 = (uint)(byte)local_54[*pbVar5];" (assignment_expression "uVar16 = (uint)(byte)local_54[*pbVar5]" identifier = (cast_expression "(uint)(byte)local_54[*pbVar5]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_54[*pbVar5]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_54[*pbVar5]" identifier [ (pointer_expression "*pbVar5" * identifier) ])))) ;) (expression_statement "ppbVar14 = ppbVar15;" (assignment_expression "ppbVar14 = ppbVar15" identifier = identifier) ;) (if_statement "if ((int)local_68 <= (int)uVar16) {\nLAB_0001d756:\n        ppbVar15 = ppbVar14;\n        if (local_24 != 0) {\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }\n        goto LAB_0001d770;\n      }" if (parenthesized_expression "((int)local_68 <= (int)uVar16)" ( (binary_expression "(int)local_68 <= (int)uVar16" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\nLAB_0001d756:\n        ppbVar15 = ppbVar14;\n        if (local_24 != 0) {\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }\n        goto LAB_0001d770;\n      }" { (labeled_statement "LAB_0001d756:\n        ppbVar15 = ppbVar14;" statement_identifier : (expression_statement "ppbVar15 = ppbVar14;" (assignment_expression "ppbVar15 = ppbVar14" identifier = identifier) ;)) (if_statement "if (local_24 != 0) {\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }" if (parenthesized_expression "(local_24 != 0)" ( (binary_expression "local_24 != 0" identifier != number_literal) )) (compound_statement "{\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }" { (expression_statement "*(int *)((int)ppbVar14 + -0x10) = local_24;" (assignment_expression "*(int *)((int)ppbVar14 + -0x10) = local_24" (pointer_expression "*(int *)((int)ppbVar14 + -0x10)" * (cast_expression "(int *)((int)ppbVar14 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar14 + -0x10)" ( (binary_expression "(int)ppbVar14 + -0x10" (cast_expression "(int)ppbVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;" (assignment_expression "*(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769" (pointer_expression "*(undefined4 *)((int)ppbVar14 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar14 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar14 + -0x14)" ( (binary_expression "(int)ppbVar14 + -0x14" (cast_expression "(int)ppbVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "__gmp_tmp_reentrant_free();" (call_expression "__gmp_tmp_reentrant_free()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto LAB_0001d770;" goto statement_identifier ;) })) (expression_statement "bVar1 = local_54[pbVar5[1]];" (assignment_expression "bVar1 = local_54[pbVar5[1]]" identifier = (subscript_expression "local_54[pbVar5[1]]" identifier [ (subscript_expression "pbVar5[1]" identifier [ number_literal ]) ])) ;) (expression_statement "local_34 = (ushort **)(pbVar5 + 2);" (assignment_expression "local_34 = (ushort **)(pbVar5 + 2)" identifier = (cast_expression "(ushort **)(pbVar5 + 2)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar5 + 2)" ( (binary_expression "pbVar5 + 2" identifier + number_literal) )))) ;) (expression_statement "ppuVar10 = (ushort **)(pbVar5 + 2);" (assignment_expression "ppuVar10 = (ushort **)(pbVar5 + 2)" identifier = (cast_expression "(ushort **)(pbVar5 + 2)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar5 + 2)" ( (binary_expression "pbVar5 + 2" identifier + number_literal) )))) ;) (while_statement "while ((int)(uint)bVar1 < (int)local_68) {\n        uVar16 = uVar16 * (int)local_68 + (uint)bVar1;\n        bVar1 = local_54[*(byte *)ppuVar10];\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar10 = (ushort **)((int)ppuVar10 + 1);\n        local_38 = ppuVar11;\n      }" while (parenthesized_expression "((int)(uint)bVar1 < (int)local_68)" ( (binary_expression "(int)(uint)bVar1 < (int)local_68" (cast_expression "(int)(uint)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) < (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar16 = uVar16 * (int)local_68 + (uint)bVar1;\n        bVar1 = local_54[*(byte *)ppuVar10];\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar10 = (ushort **)((int)ppuVar10 + 1);\n        local_38 = ppuVar11;\n      }" { (expression_statement "uVar16 = uVar16 * (int)local_68 + (uint)bVar1;" (assignment_expression "uVar16 = uVar16 * (int)local_68 + (uint)bVar1" identifier = (binary_expression "uVar16 * (int)local_68 + (uint)bVar1" (binary_expression "uVar16 * (int)local_68" identifier * (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier)) + (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "bVar1 = local_54[*(byte *)ppuVar10];" (assignment_expression "bVar1 = local_54[*(byte *)ppuVar10]" identifier = (subscript_expression "local_54[*(byte *)ppuVar10]" identifier [ (pointer_expression "*(byte *)ppuVar10" * (cast_expression "(byte *)ppuVar10" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ])) ;) (expression_statement "local_34 = (ushort **)-(int)local_30;" (assignment_expression "local_34 = (ushort **)-(int)local_30" identifier = (cast_expression "(ushort **)-(int)local_30" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (unary_expression "-(int)local_30" - (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "ppuVar10 = (ushort **)((int)ppuVar10 + 1);" (assignment_expression "ppuVar10 = (ushort **)((int)ppuVar10 + 1)" identifier = (cast_expression "(ushort **)((int)ppuVar10 + 1)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar10 + 1)" ( (binary_expression "(int)ppuVar10 + 1" (cast_expression "(int)ppuVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_38 = ppuVar11;" (assignment_expression "local_38 = ppuVar11" identifier = identifier) ;) })) (expression_statement "local_54 = local_30 + (uVar16 ^ (uint)-(int)local_30);" (assignment_expression "local_54 = local_30 + (uVar16 ^ (uint)-(int)local_30)" identifier = (binary_expression "local_30 + (uVar16 ^ (uint)-(int)local_30)" identifier + (parenthesized_expression "(uVar16 ^ (uint)-(int)local_30)" ( (binary_expression "uVar16 ^ (uint)-(int)local_30" identifier ^ (binary_expression "(uint)-(int)local_30" (parenthesized_expression "(uint)" ( identifier )) - (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) (if_statement "if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }" if (parenthesized_expression "(local_50 != (ushort **)0x0)" ( (binary_expression "local_50 != (ushort **)0x0" identifier != (cast_expression "(ushort **)0x0" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }" { (labeled_statement "LAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);" statement_identifier : (expression_statement "local_54 = local_54 + -((int)local_48 - (int)local_50);" (assignment_expression "local_54 = local_54 + -((int)local_48 - (int)local_50)" identifier = (binary_expression "local_54 + -((int)local_48 - (int)local_50)" identifier + (unary_expression "-((int)local_48 - (int)local_50)" - (parenthesized_expression "((int)local_48 - (int)local_50)" ( (binary_expression "(int)local_48 - (int)local_50" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;)) })) (if_statement "if (local_54 == (undefined *)0x0) goto LAB_0001d804;" if (parenthesized_expression "(local_54 == (undefined *)0x0)" ( (binary_expression "local_54 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001d804;" goto statement_identifier ;)) (expression_statement "local_68 = (ushort *)((int)ppuVar11 + 2);" (assignment_expression "local_68 = (ushort *)((int)ppuVar11 + 2)" identifier = (cast_expression "(ushort *)((int)ppuVar11 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar11 + 2)" ( (binary_expression "(int)ppuVar11 + 2" (cast_expression "(int)ppuVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar16 = (int)local_68 * 8;" (assignment_expression "uVar16 = (int)local_68 * 8" identifier = (binary_expression "(int)local_68 * 8" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (if_statement "if (uVar16 < 0x7f01) {\n        uVar16 = uVar16 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);\n        ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);\n        ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;\n        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;\n        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();\n      }" if (parenthesized_expression "(uVar16 < 0x7f01)" ( (binary_expression "uVar16 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n        uVar16 = uVar16 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);\n        ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);\n        ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);\n      }" { (expression_statement "uVar16 = uVar16 + 0x1b & 0xfffffff0;" (assignment_expression "uVar16 = uVar16 + 0x1b & 0xfffffff0" identifier = (binary_expression "uVar16 + 0x1b & 0xfffffff0" (binary_expression "uVar16 + 0x1b" identifier + number_literal) & number_literal)) ;) (expression_statement "local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);" (assignment_expression "local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0)" identifier = (cast_expression "(ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0)" ( (binary_expression "(uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0" (call_expression "(uint)((int)ppbVar15 + (0xf - uVar16))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppbVar15 + (0xf - uVar16))" ( (binary_expression "(int)ppbVar15 + (0xf - uVar16)" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(0xf - uVar16)" ( (binary_expression "0xf - uVar16" number_literal - identifier) ))) ))) & number_literal) )))) ;) (expression_statement "ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);" (assignment_expression "ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0)" identifier = (cast_expression "(ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0)" ( (binary_expression "(uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0" (call_expression "(uint)((int)ppbVar15 + uVar16 * -2 + 0xf)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppbVar15 + uVar16 * -2 + 0xf)" ( (binary_expression "(int)ppbVar15 + uVar16 * -2 + 0xf" (binary_expression "(int)ppbVar15 + uVar16 * -2" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar16 * -2" identifier * number_literal)) + number_literal) ))) & number_literal) )))) ;) (expression_statement "ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);" (assignment_expression "ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2)" identifier = (cast_expression "(byte **)((int)ppbVar15 + uVar16 * -2)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + uVar16 * -2)" ( (binary_expression "(int)ppbVar15 + uVar16 * -2" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar16 * -2" identifier * number_literal)) )))) ;) }) (else_clause "else {\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;\n        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;\n        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();\n      }" else (compound_statement "{\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;\n        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;\n        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();\n      }" { (expression_statement "*(uint *)((int)ppbVar15 + -0xc) = uVar16;" (assignment_expression "*(uint *)((int)ppbVar15 + -0xc) = uVar16" (pointer_expression "*(uint *)((int)ppbVar15 + -0xc)" * (cast_expression "(uint *)((int)ppbVar15 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)ppbVar15 + -0x10) = &local_24;" (assignment_expression "*(int **)((int)ppbVar15 + -0x10) = &local_24" (pointer_expression "*(int **)((int)ppbVar15 + -0x10)" * (cast_expression "(int **)((int)ppbVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_24" & identifier)) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_50 = (ushort **)__gmp_tmp_reentrant_alloc();" (assignment_expression "local_50 = (ushort **)__gmp_tmp_reentrant_alloc()" identifier = (cast_expression "(ushort **)__gmp_tmp_reentrant_alloc()" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "__gmp_tmp_reentrant_alloc()" identifier (argument_list "()" ( ))))) ;) (expression_statement "*(uint *)((int)ppbVar15 + -0xc) = uVar16;" (assignment_expression "*(uint *)((int)ppbVar15 + -0xc) = uVar16" (pointer_expression "*(uint *)((int)ppbVar15 + -0xc)" * (cast_expression "(uint *)((int)ppbVar15 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)ppbVar15 + -0x10) = &local_24;" (assignment_expression "*(int **)((int)ppbVar15 + -0x10) = &local_24" (pointer_expression "*(int **)((int)ppbVar15 + -0x10)" * (cast_expression "(int **)((int)ppbVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_24" & identifier)) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();" (assignment_expression "ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc()" identifier = (cast_expression "(ushort **)__gmp_tmp_reentrant_alloc()" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "__gmp_tmp_reentrant_alloc()" identifier (argument_list "()" ( ))))) ;) }))) (expression_statement "local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));" (assignment_expression "local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f))" identifier = (cast_expression "(ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f))" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f))" ( (binary_expression "((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f)" (parenthesized_expression "((uint)local_54 ^ (int)local_54 >> 0x1f)" ( (binary_expression "(uint)local_54 ^ (int)local_54 >> 0x1f" (cast_expression "(uint)local_54" ( (type_descriptor "uint" type_identifier) ) identifier) ^ (binary_expression "(int)local_54 >> 0x1f" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) )) - (parenthesized_expression "((int)local_54 >> 0x1f)" ( (binary_expression "(int)local_54 >> 0x1f" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) )))) ;) (expression_statement "*local_50 = param_3;" (assignment_expression "*local_50 = param_3" (pointer_expression "*local_50" * identifier) = identifier) ;) (expression_statement "uVar16 = 0x1f;" (assignment_expression "uVar16 = 0x1f" identifier = number_literal) ;) (if_statement "if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n        }\n      }" if (parenthesized_expression "(local_48 != (ushort **)0x0)" ( (binary_expression "local_48 != (ushort **)0x0" identifier != (cast_expression "(ushort **)0x0" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n        for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n        }\n      }" { (for_statement "for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n        }" for ( ; (binary_expression "(uint)local_48 >> uVar16 == 0" (binary_expression "(uint)local_48 >> uVar16" (cast_expression "(uint)local_48" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) == number_literal) ; (assignment_expression "uVar16 = uVar16 - 1" identifier = (binary_expression "uVar16 - 1" identifier - number_literal)) ) (compound_statement "{\n        }" { })) })) (expression_statement "uVar16 = 0x1e - (uVar16 ^ 0x1f);" (assignment_expression "uVar16 = 0x1e - (uVar16 ^ 0x1f)" identifier = (binary_expression "0x1e - (uVar16 ^ 0x1f)" number_literal - (parenthesized_expression "(uVar16 ^ 0x1f)" ( (binary_expression "uVar16 ^ 0x1f" identifier ^ number_literal) )))) ;) (if_statement "if (uVar16 == 0xffffffff) {\n        iVar13 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar10 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar7 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }" if (parenthesized_expression "(uVar16 == 0xffffffff)" ( (binary_expression "uVar16 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        iVar13 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar10 = local_50;\n      }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "local_30 = (undefined *)0x0;" (assignment_expression "local_30 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar6 = (undefined *)0x1;" (assignment_expression "puVar6 = (undefined *)0x1" identifier = (cast_expression "(undefined *)0x1" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c = local_44[-0x9b];" (assignment_expression "local_4c = local_44[-0x9b]" identifier = (subscript_expression "local_44[-0x9b]" identifier [ number_literal ])) ;) (expression_statement "ppuVar10 = local_50;" (assignment_expression "ppuVar10 = local_50" identifier = identifier) ;) }) (else_clause "else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar7 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }" else (compound_statement "{\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar7 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }" { (expression_statement "local_34 = local_50;" (assignment_expression "local_34 = local_50" identifier = identifier) ;) (expression_statement "puVar6 = (undefined *)0x1;" (assignment_expression "puVar6 = (undefined *)0x1" identifier = (cast_expression "(undefined *)0x1" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "local_30 = (undefined *)0x0;" (assignment_expression "local_30 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c = local_44[-0x9b];" (assignment_expression "local_4c = local_44[-0x9b]" identifier = (subscript_expression "local_44[-0x9b]" identifier [ number_literal ])) ;) (while_statement "while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }" { (expression_statement "ppuVar10 = local_34;" (assignment_expression "ppuVar10 = local_34" identifier = identifier) ;) (expression_statement "local_38 = ppuVar11;" (assignment_expression "local_38 = ppuVar11" identifier = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar15 + -8) = puVar6;" (assignment_expression "*(undefined **)((int)ppbVar15 + -8) = puVar6" (pointer_expression "*(undefined **)((int)ppbVar15 + -8)" * (cast_expression "(undefined **)((int)ppbVar15 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -8)" ( (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0xc)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0xc)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "ppuVar10 + iVar7" identifier + identifier)) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x10)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0x10)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_sqr();" (call_expression "__gmpn_sqr()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_30 = (undefined *)((int)local_30 * 2);" (assignment_expression "local_30 = (undefined *)((int)local_30 * 2)" identifier = (cast_expression "(undefined *)((int)local_30 * 2)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_30 * 2)" ( (binary_expression "(int)local_30 * 2" (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));" (assignment_expression "puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0))" identifier = (cast_expression "(undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0))" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0))" ( (binary_expression "(int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0)" (binary_expression "(int)puVar6 * 2" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) - (call_expression "(uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0)" ( (binary_expression "local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0" (subscript_expression "local_38[(int)puVar6 * 2 + -1]" identifier [ (binary_expression "(int)puVar6 * 2 + -1" (binary_expression "(int)puVar6 * 2" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) == (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )))) )))) ;) (if_statement "if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }" if (parenthesized_expression "((int)local_3c < (int)puVar6)" ( (binary_expression "(int)local_3c < (int)puVar6" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }" { (expression_statement "iVar7 = (int)puVar6 - (int)local_3c;" (assignment_expression "iVar7 = (int)puVar6 - (int)local_3c" identifier = (binary_expression "(int)puVar6 - (int)local_3c" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_30 = local_30 + iVar7;" (assignment_expression "local_30 = local_30 + iVar7" identifier = (binary_expression "local_30 + iVar7" identifier + identifier)) ;) (expression_statement "iVar13 = iVar7 * 4;" (assignment_expression "iVar13 = iVar7 * 4" identifier = (binary_expression "iVar7 * 4" identifier * number_literal)) ;) (expression_statement "puVar6 = local_3c;" (assignment_expression "puVar6 = local_3c" identifier = identifier) ;) }) (else_clause "else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }" else (compound_statement "{\n            iVar13 = 0;\n            iVar7 = 0;\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) }))) (if_statement "if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }" if (parenthesized_expression "(((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0)" ( (binary_expression "((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0" (parenthesized_expression "((uint)local_48 >> (uVar16 & 0x1f) & 1)" ( (binary_expression "(uint)local_48 >> (uVar16 & 0x1f) & 1" (binary_expression "(uint)local_48 >> (uVar16 & 0x1f)" (cast_expression "(uint)local_48" ( (type_descriptor "uint" type_identifier) ) identifier) >> (parenthesized_expression "(uVar16 & 0x1f)" ( (binary_expression "uVar16 & 0x1f" identifier & number_literal) ))) & number_literal) )) != number_literal) )) (compound_statement "{\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }" { (expression_statement "*(ushort **)((int)ppbVar15 + -4) = param_3;" (assignment_expression "*(ushort **)((int)ppbVar15 + -4) = param_3" (pointer_expression "*(ushort **)((int)ppbVar15 + -4)" * (cast_expression "(ushort **)((int)ppbVar15 + -4)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -4)" ( (binary_expression "(int)ppbVar15 + -4" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar17 = local_4c;" (assignment_expression "puVar17 = local_4c" identifier = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar15 + -8) = puVar6;" (assignment_expression "*(undefined **)((int)ppbVar15 + -8) = puVar6" (pointer_expression "*(undefined **)((int)ppbVar15 + -8)" * (cast_expression "(undefined **)((int)ppbVar15 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -8)" ( (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;" (assignment_expression "*(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38" (pointer_expression "*(int *)((int)ppbVar15 + -0xc)" * (cast_expression "(int *)((int)ppbVar15 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "iVar13 + (int)local_38" identifier + (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x10) = local_38;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x10) = local_38" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x10)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0x10)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(puVar17 + 100);" (assignment_expression "pcVar2 = *(code **)(puVar17 + 100)" identifier = (pointer_expression "*(code **)(puVar17 + 100)" * (cast_expression "(code **)(puVar17 + 100)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 100)" ( (binary_expression "puVar17 + 100" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "puVar8 = (ushort *)(*pcVar2)();" (assignment_expression "puVar8 = (ushort *)(*pcVar2)()" identifier = (cast_expression "(ushort *)(*pcVar2)()" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))))) ;) (expression_statement "local_38[(int)puVar6] = puVar8;" (assignment_expression "local_38[(int)puVar6] = puVar8" (subscript_expression "local_38[(int)puVar6]" identifier [ (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) ]) = identifier) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "puVar6 = puVar6 + (puVar8 != (ushort *)0x0);" (assignment_expression "puVar6 = puVar6 + (puVar8 != (ushort *)0x0)" identifier = (binary_expression "puVar6 + (puVar8 != (ushort *)0x0)" identifier + (parenthesized_expression "(puVar8 != (ushort *)0x0)" ( (binary_expression "puVar8 != (ushort *)0x0" identifier != (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )))) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) })) (expression_statement "ppuVar11 = local_34;" (assignment_expression "ppuVar11 = local_34" identifier = identifier) ;) (expression_statement "uVar16 = uVar16 - 1;" (assignment_expression "uVar16 = uVar16 - 1" identifier = (binary_expression "uVar16 - 1" identifier - number_literal)) ;) (expression_statement "ppuVar10 = local_38;" (assignment_expression "ppuVar10 = local_38" identifier = identifier) ;) (if_statement "if (uVar16 == 0xffffffff) break;" if (parenthesized_expression "(uVar16 == 0xffffffff)" ( (binary_expression "uVar16 == 0xffffffff" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "local_34 = local_38;" (assignment_expression "local_34 = local_38" identifier = identifier) ;) })) }))) (expression_statement "puVar17 = local_4c;" (assignment_expression "puVar17 = local_4c" identifier = identifier) ;) (if_statement "if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }" if (parenthesized_expression "((int)local_3c < (int)puVar6)" ( (binary_expression "(int)local_3c < (int)puVar6" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }" { (expression_statement "local_30 = local_30 + ((int)puVar6 - (int)local_3c);" (assignment_expression "local_30 = local_30 + ((int)puVar6 - (int)local_3c)" identifier = (binary_expression "local_30 + ((int)puVar6 - (int)local_3c)" identifier + (parenthesized_expression "((int)puVar6 - (int)local_3c)" ( (binary_expression "(int)puVar6 - (int)local_3c" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);" (assignment_expression "ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c)" identifier = (binary_expression "ppuVar10 + ((int)puVar6 - (int)local_3c)" identifier + (parenthesized_expression "((int)puVar6 - (int)local_3c)" ( (binary_expression "(int)puVar6 - (int)local_3c" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar6 = local_3c;" (assignment_expression "puVar6 = local_3c" identifier = identifier) ;) })) (expression_statement "*(undefined **)((int)ppbVar15 + -8) = puVar6;" (assignment_expression "*(undefined **)((int)ppbVar15 + -8) = puVar6" (pointer_expression "*(undefined **)((int)ppbVar15 + -8)" * (cast_expression "(undefined **)((int)ppbVar15 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -8)" ( (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)ppbVar15 + -0xc) = (int)ppuVar10 + iVar13;" (assignment_expression "*(int *)((int)ppbVar15 + -0xc) = (int)ppuVar10 + iVar13" (pointer_expression "*(int *)((int)ppbVar15 + -0xc)" * (cast_expression "(int *)((int)ppbVar15 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)ppuVar10 + iVar13" (cast_expression "(int)ppuVar10" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x10) = local_50;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x10) = local_50" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x10)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0x10)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(puVar17 + 0x28);" (assignment_expression "pcVar2 = *(code **)(puVar17 + 0x28)" identifier = (pointer_expression "*(code **)(puVar17 + 0x28)" * (cast_expression "(code **)(puVar17 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x28)" ( (binary_expression "puVar17 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d87c;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d87c" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }\n        ppuVar11 = local_50;\n        puVar8 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar8) {\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }\n        local_34 = (ushort **)((int)local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }\n        puVar17 = local_58;\n        *(undefined **)((int)ppbVar15 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar15 + -0x14) = puVar17;\n        puVar9 = local_3c;\n        ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar15 + -0x18) = local_40;\n        local_38 = ppuVar11;\n        *(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;\n        *(uint *)((int)ppbVar15 + -0x20) = uVar16;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;\n        iVar13 = __gmpn_divrem();\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));\n        uVar12 = uVar16;\n        puVar17 = local_3c;\n        if (iVar13 != 0) {\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }\n      }\n      else {\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        local_38 = (ushort **)((int)local_34 * 4);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }\n        *(uint *)((int)ppbVar15 + -0x20) = uVar12;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;\n        __gmpn_mul();\n        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));\n        if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }\n      }" if (parenthesized_expression "((int)local_54 < 0)" ( (binary_expression "(int)local_54 < 0" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        if ((int)local_58 < (int)puVar6) {\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }\n        ppuVar11 = local_50;\n        puVar8 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar8) {\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }\n        local_34 = (ushort **)((int)local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }\n        puVar17 = local_58;\n        *(undefined **)((int)ppbVar15 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar15 + -0x14) = puVar17;\n        puVar9 = local_3c;\n        ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar15 + -0x18) = local_40;\n        local_38 = ppuVar11;\n        *(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;\n        *(uint *)((int)ppbVar15 + -0x20) = uVar16;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;\n        iVar13 = __gmpn_divrem();\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));\n        uVar12 = uVar16;\n        puVar17 = local_3c;\n        if (iVar13 != 0) {\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }\n      }" { (if_statement "if ((int)local_58 < (int)puVar6) {\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }" if (parenthesized_expression "((int)local_58 < (int)puVar6)" ( (binary_expression "(int)local_58 < (int)puVar6" (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }" { (expression_statement "uVar16 = (int)puVar6 * 4 + 4;" (assignment_expression "uVar16 = (int)puVar6 * 4 + 4" identifier = (binary_expression "(int)puVar6 * 4 + 4" (binary_expression "(int)puVar6 * 4" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal)) ;) (if_statement "if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }" if (parenthesized_expression "(uVar16 < 0x7f01)" ( (binary_expression "uVar16 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }" { (expression_statement "iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);" (assignment_expression "iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0)" identifier = (unary_expression "-((int)puVar6 * 4 + 0x1fU & 0xfffffff0)" - (parenthesized_expression "((int)puVar6 * 4 + 0x1fU & 0xfffffff0)" ( (binary_expression "(int)puVar6 * 4 + 0x1fU & 0xfffffff0" (binary_expression "(int)puVar6 * 4 + 0x1fU" (binary_expression "(int)puVar6 * 4" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);" (assignment_expression "local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0)" identifier = (cast_expression "(ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0)" ( (binary_expression "(uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0" (call_expression "(uint)((int)ppbVar15 + iVar13 + 0xf)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppbVar15 + iVar13 + 0xf)" ( (binary_expression "(int)ppbVar15 + iVar13 + 0xf" (binary_expression "(int)ppbVar15 + iVar13" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))) & number_literal) )))) ;) (expression_statement "ppbVar15 = (byte **)((int)ppbVar15 + iVar13);" (assignment_expression "ppbVar15 = (byte **)((int)ppbVar15 + iVar13)" identifier = (cast_expression "(byte **)((int)ppbVar15 + iVar13)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + iVar13)" ( (binary_expression "(int)ppbVar15 + iVar13" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }" else (compound_statement "{\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }" { (expression_statement "*(uint *)((int)ppbVar15 + -0xc) = uVar16;" (assignment_expression "*(uint *)((int)ppbVar15 + -0xc) = uVar16" (pointer_expression "*(uint *)((int)ppbVar15 + -0xc)" * (cast_expression "(uint *)((int)ppbVar15 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)ppbVar15 + -0x10) = &local_24;" (assignment_expression "*(int **)((int)ppbVar15 + -0x10) = &local_24" (pointer_expression "*(int **)((int)ppbVar15 + -0x10)" * (cast_expression "(int **)((int)ppbVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_24" & identifier)) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_34 = (ushort **)__gmp_tmp_reentrant_alloc();" (assignment_expression "local_34 = (ushort **)__gmp_tmp_reentrant_alloc()" identifier = (cast_expression "(ushort **)__gmp_tmp_reentrant_alloc()" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "__gmp_tmp_reentrant_alloc()" identifier (argument_list "()" ( ))))) ;) }))) (expression_statement "ppuVar10 = (ushort **)(puVar6 + -(int)local_58);" (assignment_expression "ppuVar10 = (ushort **)(puVar6 + -(int)local_58)" identifier = (cast_expression "(ushort **)(puVar6 + -(int)local_58)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -(int)local_58)" ( (binary_expression "puVar6 + -(int)local_58" identifier + (unary_expression "-(int)local_58" - (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) (expression_statement "local_38 = ppuVar10;" (assignment_expression "local_38 = ppuVar10" identifier = identifier) ;) (expression_statement "*(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;" (assignment_expression "*(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4" (pointer_expression "*(int *)((int)ppbVar15 + -8)" * (cast_expression "(int *)((int)ppbVar15 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -8)" ( (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)ppuVar10 * 4" (cast_expression "(int)ppuVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0xc) = 0;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0xc) = 0" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0xc)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x10) = local_34;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x10) = local_34" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x10)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0x10)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));" (call_expression "memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8))" identifier (argument_list "(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8))" ( (pointer_expression "*(void **)((int)ppbVar15 + -0x10)" * (cast_expression "(void **)((int)ppbVar15 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)ppbVar15 + -0xc)" * (cast_expression "(int *)((int)ppbVar15 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)ppbVar15 + -8)" * (cast_expression "(size_t *)((int)ppbVar15 + -8)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -8)" ( (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "ppuVar11 = local_34;" (assignment_expression "ppuVar11 = local_34" identifier = identifier) ;) (expression_statement "puVar17 = local_4c;" (assignment_expression "puVar17 = local_4c" identifier = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar15 + -8) = local_58;" (assignment_expression "*(undefined **)((int)ppbVar15 + -8) = local_58" (pointer_expression "*(undefined **)((int)ppbVar15 + -8)" * (cast_expression "(undefined **)((int)ppbVar15 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -8)" ( (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0xc) = local_40;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0xc) = local_40" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0xc)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0xc)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x10)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0x10)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "ppuVar11 + (int)ppuVar10" identifier + (cast_expression "(int)ppuVar10" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar2 = *(code **)(puVar17 + 0x28);" (assignment_expression "pcVar2 = *(code **)(puVar17 + 0x28)" identifier = (pointer_expression "*(code **)(puVar17 + 0x28)" * (cast_expression "(code **)(puVar17 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x28)" ( (binary_expression "puVar17 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "local_5c = (ushort **)((int)local_5c - (int)local_38);" (assignment_expression "local_5c = (ushort **)((int)local_5c - (int)local_38)" identifier = (cast_expression "(ushort **)((int)local_5c - (int)local_38)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_5c - (int)local_38)" ( (binary_expression "(int)local_5c - (int)local_38" (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_40 = local_34;" (assignment_expression "local_40 = local_34" identifier = identifier) ;) (expression_statement "local_58 = puVar6;" (assignment_expression "local_58 = puVar6" identifier = identifier) ;) })) (expression_statement "ppuVar11 = local_50;" (assignment_expression "ppuVar11 = local_50" identifier = identifier) ;) (expression_statement "puVar8 = local_50[(int)(puVar6 + -1)];" (assignment_expression "puVar8 = local_50[(int)(puVar6 + -1)]" identifier = (subscript_expression "local_50[(int)(puVar6 + -1)]" identifier [ (cast_expression "(int)(puVar6 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar6 + -1)" ( (binary_expression "puVar6 + -1" identifier + number_literal) ))) ])) ;) (if_statement "if (-1 < (int)puVar8) {\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }" if (parenthesized_expression "(-1 < (int)puVar8)" ( (binary_expression "-1 < (int)puVar8" number_literal < (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }" { (expression_statement "uVar16 = 0x1f;" (assignment_expression "uVar16 = 0x1f" identifier = number_literal) ;) (if_statement "if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }" if (parenthesized_expression "(puVar8 != (ushort *)0x0)" ( (binary_expression "puVar8 != (ushort *)0x0" identifier != (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }" { (for_statement "for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }" for ( ; (binary_expression "(uint)puVar8 >> uVar16 == 0" (binary_expression "(uint)puVar8 >> uVar16" (cast_expression "(uint)puVar8" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) == number_literal) ; (assignment_expression "uVar16 = uVar16 - 1" identifier = (binary_expression "uVar16 - 1" identifier - number_literal)) ) (compound_statement "{\n            }" { })) })) (expression_statement "*(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;" (assignment_expression "*(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f" (pointer_expression "*(uint *)((int)ppbVar15 + -4)" * (cast_expression "(uint *)((int)ppbVar15 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -4)" ( (binary_expression "(int)ppbVar15 + -4" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "uVar16 ^ 0x1f" identifier ^ number_literal)) ;) (expression_statement "*(undefined **)((int)ppbVar15 + -8) = puVar6;" (assignment_expression "*(undefined **)((int)ppbVar15 + -8) = puVar6" (pointer_expression "*(undefined **)((int)ppbVar15 + -8)" * (cast_expression "(undefined **)((int)ppbVar15 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -8)" ( (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0xc)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0xc)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x10)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0x10)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(local_4c + 0x38);" (assignment_expression "pcVar2 = *(code **)(local_4c + 0x38)" identifier = (pointer_expression "*(code **)(local_4c + 0x38)" * (cast_expression "(code **)(local_4c + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_4c + 0x38)" ( (binary_expression "local_4c + 0x38" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "ppuVar11 = local_40;" (assignment_expression "ppuVar11 = local_40" identifier = identifier) ;) (expression_statement "puVar9 = local_4c;" (assignment_expression "puVar9 = local_4c" identifier = identifier) ;) (expression_statement "*(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;" (assignment_expression "*(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f" (pointer_expression "*(uint *)((int)ppbVar15 + -0x14)" * (cast_expression "(uint *)((int)ppbVar15 + -0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "uVar16 ^ 0x1f" identifier ^ number_literal)) ;) (expression_statement "puVar17 = local_58;" (assignment_expression "puVar17 = local_58" identifier = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar15 + -0x18) = local_58;" (assignment_expression "*(undefined **)((int)ppbVar15 + -0x18) = local_58" (pointer_expression "*(undefined **)((int)ppbVar15 + -0x18)" * (cast_expression "(undefined **)((int)ppbVar15 + -0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -0x18)" ( (binary_expression "(int)ppbVar15 + -0x18" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x1c)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0x1c)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0x1c)" ( (binary_expression "(int)ppbVar15 + -0x1c" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x20)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0x20)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0x20)" ( (binary_expression "(int)ppbVar15 + -0x20" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar2 = *(code **)(puVar9 + 0x38);" (assignment_expression "pcVar2 = *(code **)(puVar9 + 0x38)" identifier = (pointer_expression "*(code **)(puVar9 + 0x38)" * (cast_expression "(code **)(puVar9 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0x38)" ( (binary_expression "puVar9 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x24)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x24)" ( (binary_expression "(int)ppbVar15 + -0x24" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "puVar8 = (ushort *)(*pcVar2)();" (assignment_expression "puVar8 = (ushort *)(*pcVar2)()" identifier = (cast_expression "(ushort *)(*pcVar2)()" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))))) ;) (if_statement "if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }" if (parenthesized_expression "(puVar8 != (ushort *)0x0)" ( (binary_expression "puVar8 != (ushort *)0x0" identifier != (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }" { (expression_statement "ppuVar11[(int)puVar17] = puVar8;" (assignment_expression "ppuVar11[(int)puVar17] = puVar8" (subscript_expression "ppuVar11[(int)puVar17]" identifier [ (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) ]) = identifier) ;) (expression_statement "local_58 = puVar17 + 1;" (assignment_expression "local_58 = puVar17 + 1" identifier = (binary_expression "puVar17 + 1" identifier + number_literal)) ;) })) })) (expression_statement "local_34 = (ushort **)((int)local_68 * 4);" (assignment_expression "local_34 = (ushort **)((int)local_68 * 4)" identifier = (cast_expression "(ushort **)((int)local_68 * 4)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_68 * 4)" ( (binary_expression "(int)local_68 * 4" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if (local_34 < (ushort **)0x7f01) {\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }" if (parenthesized_expression "(local_34 < (ushort **)0x7f01)" ( (binary_expression "local_34 < (ushort **)0x7f01" identifier < (cast_expression "(ushort **)0x7f01" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }" { (expression_statement "iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);" (assignment_expression "iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0)" identifier = (unary_expression "-((int)local_34 + 0x1bU & 0xfffffff0)" - (parenthesized_expression "((int)local_34 + 0x1bU & 0xfffffff0)" ( (binary_expression "(int)local_34 + 0x1bU & 0xfffffff0" (binary_expression "(int)local_34 + 0x1bU" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal) )))) ;) (expression_statement "uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;" (assignment_expression "uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0" identifier = (binary_expression "(uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0" (call_expression "(uint)((int)ppbVar15 + iVar13 + 0xf)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppbVar15 + iVar13 + 0xf)" ( (binary_expression "(int)ppbVar15 + iVar13 + 0xf" (binary_expression "(int)ppbVar15 + iVar13" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))) & number_literal)) ;) (expression_statement "ppbVar15 = (byte **)((int)ppbVar15 + iVar13);" (assignment_expression "ppbVar15 = (byte **)((int)ppbVar15 + iVar13)" identifier = (cast_expression "(byte **)((int)ppbVar15 + iVar13)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + iVar13)" ( (binary_expression "(int)ppbVar15 + iVar13" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }" else (compound_statement "{\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }" { (expression_statement "*(ushort ***)((int)ppbVar15 + -0xc) = local_34;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0xc) = local_34" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0xc)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0xc)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)ppbVar15 + -0x10) = &local_24;" (assignment_expression "*(int **)((int)ppbVar15 + -0x10) = &local_24" (pointer_expression "*(int **)((int)ppbVar15 + -0x10)" * (cast_expression "(int **)((int)ppbVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_24" & identifier)) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar16 = __gmp_tmp_reentrant_alloc();" (assignment_expression "uVar16 = __gmp_tmp_reentrant_alloc()" identifier = (call_expression "__gmp_tmp_reentrant_alloc()" identifier (argument_list "()" ( )))) ;) }))) (expression_statement "puVar17 = local_58;" (assignment_expression "puVar17 = local_58" identifier = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar15 + -0xc) = puVar6;" (assignment_expression "*(undefined **)((int)ppbVar15 + -0xc) = puVar6" (pointer_expression "*(undefined **)((int)ppbVar15 + -0xc)" * (cast_expression "(undefined **)((int)ppbVar15 + -0xc)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x10) = local_50;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x10) = local_50" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x10)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0x10)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar15 + -0x14) = puVar17;" (assignment_expression "*(undefined **)((int)ppbVar15 + -0x14) = puVar17" (pointer_expression "*(undefined **)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined **)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar9 = local_3c;" (assignment_expression "puVar9 = local_3c" identifier = identifier) ;) (expression_statement "ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);" (assignment_expression "ppuVar11 = (ushort **)(puVar17 + -(int)puVar6)" identifier = (cast_expression "(ushort **)(puVar17 + -(int)puVar6)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -(int)puVar6)" ( (binary_expression "puVar17 + -(int)puVar6" identifier + (unary_expression "-(int)puVar6" - (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x18) = local_40;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x18) = local_40" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x18)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0x18)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0x18)" ( (binary_expression "(int)ppbVar15 + -0x18" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_38 = ppuVar11;" (assignment_expression "local_38 = ppuVar11" identifier = identifier) ;) (expression_statement "*(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;" (assignment_expression "*(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11" (pointer_expression "*(int *)((int)ppbVar15 + -0x1c)" * (cast_expression "(int *)((int)ppbVar15 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x1c)" ( (binary_expression "(int)ppbVar15 + -0x1c" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)puVar9 - (int)ppuVar11" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppuVar11" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(uint *)((int)ppbVar15 + -0x20) = uVar16;" (assignment_expression "*(uint *)((int)ppbVar15 + -0x20) = uVar16" (pointer_expression "*(uint *)((int)ppbVar15 + -0x20)" * (cast_expression "(uint *)((int)ppbVar15 + -0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x20)" ( (binary_expression "(int)ppbVar15 + -0x20" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x24)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x24)" ( (binary_expression "(int)ppbVar15 + -0x24" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar13 = __gmpn_divrem();" (assignment_expression "iVar13 = __gmpn_divrem()" identifier = (call_expression "__gmpn_divrem()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));" (assignment_expression "puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30))" identifier = (cast_expression "(undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30))" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + (int)local_5c + (iVar13 - (int)local_30))" ( (binary_expression "(int)local_38 + (int)local_5c + (iVar13 - (int)local_30)" (binary_expression "(int)local_38 + (int)local_5c" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier)) + (parenthesized_expression "(iVar13 - (int)local_30)" ( (binary_expression "iVar13 - (int)local_30" identifier - (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "uVar12 = uVar16;" (assignment_expression "uVar12 = uVar16" identifier = identifier) ;) (expression_statement "puVar17 = local_3c;" (assignment_expression "puVar17 = local_3c" identifier = identifier) ;) (if_statement "if (iVar13 != 0) {\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }" { (expression_statement "uVar12 = uVar16 + 4;" (assignment_expression "uVar12 = uVar16 + 4" identifier = (binary_expression "uVar16 + 4" identifier + number_literal)) ;) (expression_statement "*(int *)((uVar16 - 4) + (int)local_34) = iVar13;" (assignment_expression "*(int *)((uVar16 - 4) + (int)local_34) = iVar13" (pointer_expression "*(int *)((uVar16 - 4) + (int)local_34)" * (cast_expression "(int *)((uVar16 - 4) + (int)local_34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar16 - 4) + (int)local_34)" ( (binary_expression "(uVar16 - 4) + (int)local_34" (parenthesized_expression "(uVar16 - 4)" ( (binary_expression "uVar16 - 4" identifier - number_literal) )) + (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = identifier) ;) })) }) (else_clause "else {\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        local_38 = (ushort **)((int)local_34 * 4);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }\n        *(uint *)((int)ppbVar15 + -0x20) = uVar12;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;\n        __gmpn_mul();\n        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));\n        if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }\n      }" else (compound_statement "{\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        local_38 = (ushort **)((int)local_34 * 4);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }\n        *(uint *)((int)ppbVar15 + -0x20) = uVar12;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;\n        __gmpn_mul();\n        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));\n        if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }\n      }" { (expression_statement "local_34 = (ushort **)(local_58 + (int)puVar6);" (assignment_expression "local_34 = (ushort **)(local_58 + (int)puVar6)" identifier = (cast_expression "(ushort **)(local_58 + (int)puVar6)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_58 + (int)puVar6)" ( (binary_expression "local_58 + (int)puVar6" identifier + (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_38 = (ushort **)((int)local_34 * 4);" (assignment_expression "local_38 = (ushort **)((int)local_34 * 4)" identifier = (cast_expression "(ushort **)((int)local_34 * 4)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_34 * 4)" ( (binary_expression "(int)local_34 * 4" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }" if (parenthesized_expression "(local_38 < (ushort **)0x7f01)" ( (binary_expression "local_38 < (ushort **)0x7f01" identifier < (cast_expression "(ushort **)0x7f01" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }" { (expression_statement "iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);" (assignment_expression "iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0)" identifier = (unary_expression "-((uint)((int)local_38 + 0x1bU) & 0xfffffff0)" - (parenthesized_expression "((uint)((int)local_38 + 0x1bU) & 0xfffffff0)" ( (binary_expression "(uint)((int)local_38 + 0x1bU) & 0xfffffff0" (call_expression "(uint)((int)local_38 + 0x1bU)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_38 + 0x1bU)" ( (binary_expression "(int)local_38 + 0x1bU" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) & number_literal) )))) ;) (expression_statement "uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;" (assignment_expression "uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0" identifier = (binary_expression "(uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0" (call_expression "(uint)((int)ppbVar15 + iVar13 + 0xf)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppbVar15 + iVar13 + 0xf)" ( (binary_expression "(int)ppbVar15 + iVar13 + 0xf" (binary_expression "(int)ppbVar15 + iVar13" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))) & number_literal)) ;) (expression_statement "ppbVar15 = (byte **)((int)ppbVar15 + iVar13);" (assignment_expression "ppbVar15 = (byte **)((int)ppbVar15 + iVar13)" identifier = (cast_expression "(byte **)((int)ppbVar15 + iVar13)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + iVar13)" ( (binary_expression "(int)ppbVar15 + iVar13" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }" else (compound_statement "{\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }" { (expression_statement "*(ushort ***)((int)ppbVar15 + -0xc) = local_38;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0xc) = local_38" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0xc)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0xc)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)ppbVar15 + -0x10) = &local_24;" (assignment_expression "*(int **)((int)ppbVar15 + -0x10) = &local_24" (pointer_expression "*(int **)((int)ppbVar15 + -0x10)" * (cast_expression "(int **)((int)ppbVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_24" & identifier)) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar12 = __gmp_tmp_reentrant_alloc();" (assignment_expression "uVar12 = __gmp_tmp_reentrant_alloc()" identifier = (call_expression "__gmp_tmp_reentrant_alloc()" identifier (argument_list "()" ( )))) ;) }))) (if_statement "if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }" if (parenthesized_expression "((int)local_58 < (int)puVar6)" ( (binary_expression "(int)local_58 < (int)puVar6" (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }" { (expression_statement "*(undefined **)((int)ppbVar15 + -0x10) = local_58;" (assignment_expression "*(undefined **)((int)ppbVar15 + -0x10) = local_58" (pointer_expression "*(undefined **)((int)ppbVar15 + -0x10)" * (cast_expression "(undefined **)((int)ppbVar15 + -0x10)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x14) = local_40;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x14) = local_40" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x14)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0x14)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar15 + -0x18) = puVar6;" (assignment_expression "*(undefined **)((int)ppbVar15 + -0x18) = puVar6" (pointer_expression "*(undefined **)((int)ppbVar15 + -0x18)" * (cast_expression "(undefined **)((int)ppbVar15 + -0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -0x18)" ( (binary_expression "(int)ppbVar15 + -0x18" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x1c) = local_50;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x1c) = local_50" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x1c)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0x1c)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0x1c)" ( (binary_expression "(int)ppbVar15 + -0x1c" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }" else (compound_statement "{\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }" { (expression_statement "*(undefined **)((int)ppbVar15 + -0x10) = puVar6;" (assignment_expression "*(undefined **)((int)ppbVar15 + -0x10) = puVar6" (pointer_expression "*(undefined **)((int)ppbVar15 + -0x10)" * (cast_expression "(undefined **)((int)ppbVar15 + -0x10)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x14) = local_50;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x14) = local_50" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x14)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0x14)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar15 + -0x18) = local_58;" (assignment_expression "*(undefined **)((int)ppbVar15 + -0x18) = local_58" (pointer_expression "*(undefined **)((int)ppbVar15 + -0x18)" * (cast_expression "(undefined **)((int)ppbVar15 + -0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -0x18)" ( (binary_expression "(int)ppbVar15 + -0x18" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x1c) = local_40;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x1c) = local_40" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x1c)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0x1c)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0x1c)" ( (binary_expression "(int)ppbVar15 + -0x1c" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) }))) (expression_statement "*(uint *)((int)ppbVar15 + -0x20) = uVar12;" (assignment_expression "*(uint *)((int)ppbVar15 + -0x20) = uVar12" (pointer_expression "*(uint *)((int)ppbVar15 + -0x20)" * (cast_expression "(uint *)((int)ppbVar15 + -0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x20)" ( (binary_expression "(int)ppbVar15 + -0x20" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x24)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x24)" ( (binary_expression "(int)ppbVar15 + -0x24" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "__gmpn_mul();" (call_expression "__gmpn_mul()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;" (assignment_expression "puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))" identifier = (cast_expression "(undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))" ( (binary_expression "(int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0)" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) - (call_expression "(uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)((uVar12 - 4) + (int)local_38) == 0)" ( (binary_expression "*(int *)((uVar12 - 4) + (int)local_38) == 0" (pointer_expression "*(int *)((uVar12 - 4) + (int)local_38)" * (cast_expression "(int *)((uVar12 - 4) + (int)local_38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar12 - 4) + (int)local_38)" ( (binary_expression "(uVar12 - 4) + (int)local_38" (parenthesized_expression "(uVar12 - 4)" ( (binary_expression "uVar12 - 4" identifier - number_literal) )) + (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier)) )))) == number_literal) )))) )))) ;) (expression_statement "puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));" (assignment_expression "puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17))" identifier = (cast_expression "(undefined *)((int)local_5c + (int)(local_30 + (int)puVar17))" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_5c + (int)(local_30 + (int)puVar17))" ( (binary_expression "(int)local_5c + (int)(local_30 + (int)puVar17)" (cast_expression "(int)local_5c" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(local_30 + (int)puVar17)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_30 + (int)puVar17)" ( (binary_expression "local_30 + (int)puVar17" identifier + (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )))) ;) (if_statement "if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }" if (parenthesized_expression "((int)local_3c < (int)puVar17)" ( (binary_expression "(int)local_3c < (int)puVar17" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }" { (expression_statement "uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;" (assignment_expression "uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4" identifier = (binary_expression "uVar12 + ((int)puVar17 - (int)local_3c) * 4" identifier + (binary_expression "((int)puVar17 - (int)local_3c) * 4" (parenthesized_expression "((int)puVar17 - (int)local_3c)" ( (binary_expression "(int)puVar17 - (int)local_3c" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal))) ;) (expression_statement "puVar17 = local_3c;" (assignment_expression "puVar17 = local_3c" identifier = identifier) ;) })) }))) (expression_statement "local_3c = puVar17;" (assignment_expression "local_3c = puVar17" identifier = identifier) ;) (expression_statement "puVar9 = local_3c;" (assignment_expression "puVar9 = local_3c" identifier = identifier) ;) (expression_statement "puVar3 = local_60;" (assignment_expression "puVar3 = local_60" identifier = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar15 + -8) = local_3c;" (assignment_expression "*(undefined **)((int)ppbVar15 + -8) = local_3c" (pointer_expression "*(undefined **)((int)ppbVar15 + -8)" * (cast_expression "(undefined **)((int)ppbVar15 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -8)" ( (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)((int)ppbVar15 + -0xc) = uVar12;" (assignment_expression "*(uint *)((int)ppbVar15 + -0xc) = uVar12" (pointer_expression "*(uint *)((int)ppbVar15 + -0xc)" * (cast_expression "(uint *)((int)ppbVar15 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar17 = local_4c;" (assignment_expression "puVar17 = local_4c" identifier = identifier) ;) (expression_statement "*(uint *)((int)ppbVar15 + -0x10) = puVar3[3];" (assignment_expression "*(uint *)((int)ppbVar15 + -0x10) = puVar3[3]" (pointer_expression "*(uint *)((int)ppbVar15 + -0x10)" * (cast_expression "(uint *)((int)ppbVar15 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "puVar3[3]" identifier [ number_literal ])) ;) (expression_statement "pcVar2 = *(code **)(puVar17 + 0x28);" (assignment_expression "pcVar2 = *(code **)(puVar17 + 0x28)" identifier = (pointer_expression "*(code **)(puVar17 + 0x28)" * (cast_expression "(code **)(puVar17 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 0x28)" ( (binary_expression "puVar17 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d91c;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d91c" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar17 = (undefined *)-(int)puVar9;" (assignment_expression "puVar17 = (undefined *)-(int)puVar9" identifier = (cast_expression "(undefined *)-(int)puVar9" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)puVar9" - (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (if_statement "if (local_64 == 0) {\n        puVar17 = puVar9;\n      }" if (parenthesized_expression "(local_64 == 0)" ( (binary_expression "local_64 == 0" identifier == number_literal) )) (compound_statement "{\n        puVar17 = puVar9;\n      }" { (expression_statement "puVar17 = puVar9;" (assignment_expression "puVar17 = puVar9" identifier = identifier) ;) })) (expression_statement "local_60[2] = (uint)puVar6;" (assignment_expression "local_60[2] = (uint)puVar6" (subscript_expression "local_60[2]" identifier [ number_literal ]) = (cast_expression "(uint)puVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_60[1] = (uint)puVar17;" (assignment_expression "local_60[1] = (uint)puVar17" (subscript_expression "local_60[1]" identifier [ number_literal ]) = (cast_expression "(uint)puVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (local_24 == 0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }" if (parenthesized_expression "(local_24 == 0)" ( (binary_expression "local_24 == 0" identifier == number_literal) )) (compound_statement "{\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }" { (expression_statement "puVar6 = (undefined *)0x0;" (assignment_expression "puVar6 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0001d775;" goto statement_identifier ;) })) }) (else_clause "else {\n      local_5c = (ushort **)0x0;\n      local_58 = puVar6;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar17 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar15 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar17;\n      if (local_64 == 0) {\n        puVar6 = puVar17;\n      }\n      puVar3[2] = (uint)local_30;\n      puVar3[1] = (uint)puVar6;\n      if (local_24 == 0) goto LAB_0001d7d0;\n    }" else (compound_statement "{\n      local_5c = (ushort **)0x0;\n      local_58 = puVar6;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar17 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar15 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar17;\n      if (local_64 == 0) {\n        puVar6 = puVar17;\n      }\n      puVar3[2] = (uint)local_30;\n      puVar3[1] = (uint)puVar6;\n      if (local_24 == 0) goto LAB_0001d7d0;\n    }" { (expression_statement "local_5c = (ushort **)0x0;" (assignment_expression "local_5c = (ushort **)0x0" identifier = (cast_expression "(ushort **)0x0" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "local_58 = puVar6;" (assignment_expression "local_58 = puVar6" identifier = identifier) ;) (if_statement "if (local_6c != (byte *)0x0) goto LAB_0001d4fd;" if (parenthesized_expression "(local_6c != (byte *)0x0)" ( (binary_expression "local_6c != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001d4fd;" goto statement_identifier ;)) (labeled_statement "LAB_0001d7f2:\n      local_54 = (undefined *)0x0;" statement_identifier : (expression_statement "local_54 = (undefined *)0x0;" (assignment_expression "local_54 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (local_50 != (ushort **)0x0) goto LAB_0001d589;" if (parenthesized_expression "(local_50 != (ushort **)0x0)" ( (binary_expression "local_50 != (ushort **)0x0" identifier != (cast_expression "(ushort **)0x0" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_0001d589;" goto statement_identifier ;)) (labeled_statement "LAB_0001d804:\n      puVar17 = local_58;" statement_identifier : (expression_statement "puVar17 = local_58;" (assignment_expression "puVar17 = local_58" identifier = identifier) ;)) (expression_statement "local_30 = puVar6;" (assignment_expression "local_30 = puVar6" identifier = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar15 + -8) = local_58;" (assignment_expression "*(undefined **)((int)ppbVar15 + -8) = local_58" (pointer_expression "*(undefined **)((int)ppbVar15 + -8)" * (cast_expression "(undefined **)((int)ppbVar15 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -8)" ( (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar6 = ppuVar4[-0x9b];" (assignment_expression "puVar6 = ppuVar4[-0x9b]" identifier = (subscript_expression "ppuVar4[-0x9b]" identifier [ number_literal ])) ;) (expression_statement "*(ushort ***)((int)ppbVar15 + -0xc) = local_40;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0xc) = local_40" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0xc)" * (cast_expression "(ushort ***)((int)ppbVar15 + -0xc)" ( (type_descriptor "ushort ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)((int)ppbVar15 + -0x10) = puVar3[3];" (assignment_expression "*(uint *)((int)ppbVar15 + -0x10) = puVar3[3]" (pointer_expression "*(uint *)((int)ppbVar15 + -0x10)" * (cast_expression "(uint *)((int)ppbVar15 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "puVar3[3]" identifier [ number_literal ])) ;) (expression_statement "pcVar2 = *(code **)(puVar6 + 0x28);" (assignment_expression "pcVar2 = *(code **)(puVar6 + 0x28)" identifier = (pointer_expression "*(code **)(puVar6 + 0x28)" * (cast_expression "(code **)(puVar6 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + 0x28)" ( (binary_expression "puVar6 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar6 = (undefined *)-(int)puVar17;" (assignment_expression "puVar6 = (undefined *)-(int)puVar17" identifier = (cast_expression "(undefined *)-(int)puVar17" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)puVar17" - (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (if_statement "if (local_64 == 0) {\n        puVar6 = puVar17;\n      }" if (parenthesized_expression "(local_64 == 0)" ( (binary_expression "local_64 == 0" identifier == number_literal) )) (compound_statement "{\n        puVar6 = puVar17;\n      }" { (expression_statement "puVar6 = puVar17;" (assignment_expression "puVar6 = puVar17" identifier = identifier) ;) })) (expression_statement "puVar3[2] = (uint)local_30;" (assignment_expression "puVar3[2] = (uint)local_30" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = (cast_expression "(uint)local_30" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar3[1] = (uint)puVar6;" (assignment_expression "puVar3[1] = (uint)puVar6" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = (cast_expression "(uint)puVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (local_24 == 0) goto LAB_0001d7d0;" if (parenthesized_expression "(local_24 == 0)" ( (binary_expression "local_24 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001d7d0;" goto statement_identifier ;)) }))) (expression_statement "*(int *)((int)ppbVar15 + -0x10) = local_24;" (assignment_expression "*(int *)((int)ppbVar15 + -0x10) = local_24" (pointer_expression "*(int *)((int)ppbVar15 + -0x10)" * (cast_expression "(int *)((int)ppbVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x10)" ( (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d84e;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d84e" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -0x14)" ( (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "__gmp_tmp_reentrant_free();" (call_expression "__gmp_tmp_reentrant_free()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar6 = (undefined *)0x0;" (assignment_expression "puVar6 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (labeled_statement "LAB_0001d775:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return puVar6;\n  }" { (return_statement "return puVar6;" return identifier ;) }))) (expression_statement "*(undefined4 *)((int)ppbVar15 + -4) = 0x1dbcb;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -4) = 0x1dbcb" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -4)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -4)" ( (binary_expression "(int)ppbVar15 + -4" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0007ebe0();" (call_expression "FUN_0007ebe0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression IDENT * LIT)) + LIT) ))))) ;) (while_statement while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression IDENT * LIT)) + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ])))) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) ])))) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == (pointer_expression * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) ;) })) })))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (goto_statement goto statement_identifier ;) })))) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ]))))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) ))))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( IDENT ))) * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) & LIT) )) == LIT) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ])))) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (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 = IDENT) ;) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( (assignment_expression IDENT = (binary_expression IDENT + LIT)) ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ]) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) * (call_expression IDENT (argument_list ( IDENT )))) >> LIT) ))) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) ))) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression IDENT (argument_list ( ))))) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) }) (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) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) || (binary_expression IDENT == LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (pointer_expression * IDENT) ])))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (subscript_expression IDENT [ LIT ]) ])) ;) (expression_statement (assignment_expression IDENT = (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (while_statement while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT)) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT ^ (binary_expression (parenthesized_expression ( IDENT )) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - IDENT) ))) ))) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression IDENT * LIT)) + LIT) ))) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression IDENT * LIT)) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression IDENT (argument_list ( ))))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) ^ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) )) - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (compound_statement { (for_statement for ( ; (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> IDENT) == LIT) ; (assignment_expression IDENT = (binary_expression IDENT - LIT)) ) (compound_statement { })) })) (expression_statement (assignment_expression IDENT = (binary_expression LIT - (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 IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) ))) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression IDENT (argument_list ( ))))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ])) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (for_statement for ( ; (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> IDENT) == LIT) ; (assignment_expression IDENT = (binary_expression IDENT - LIT)) ) (compound_statement { })) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT ^ LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT ^ LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 * (abstract_pointer_declarator *))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) ))) & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT))) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) + (parenthesized_expression ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 * (abstract_pointer_declarator *))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) ))) & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) == LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) * LIT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "undefined * __gmpf_set_str(uint *param_1,byte *param_2,ushort *param_3)\n\n{\n  byte bVar1;\n  code *pcVar2;\n  uint *puVar3;\n  undefined **ppuVar4;\n  byte *pbVar5;\n  undefined *puVar6;\n  int iVar7;\n  ushort *puVar8;\n  undefined *puVar9;\n  ushort **ppuVar10;\n  ushort **ppuVar11;\n  uint uVar12;\n  int iVar13;\n  byte **ppbVar14;\n  byte **ppbVar15;\n  uint uVar16;\n  undefined *puVar17;\n  int in_GS_OFFSET;\n  bool bVar18;\n  ushort *puStack_70;\n  byte *local_6c;\n  ushort *local_68;\n  uint local_64;\n  uint *local_60;\n  ushort **local_5c;\n  undefined *local_58;\n  undefined *local_54;\n  ushort **local_50;\n  undefined *local_4c;\n  ushort **local_48;\n  undefined **local_44;\n  ushort **local_40;\n  undefined *local_3c;\n  ushort **local_38;\n  ushort **local_34;\n  undefined *local_30;\n  int local_24;\n  int local_20;\n  \n  local_60 = param_1;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_44 = &__DT_PLTGOT;\n  local_40 = (ushort **)nl_langinfo(0x10000);\n  local_44 = &__DT_PLTGOT;\n  local_3c = (undefined *)strlen((char *)local_40);\n  ppbVar14 = &local_6c;\n  uVar16 = (uint)*param_2;\n  puStack_70 = (ushort *)0x1d265;\n  local_34 = __ctype_b_loc();\n  local_38 = (ushort **)*local_34;\n  bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1);\n  while ((bVar1 & 0x20) != 0) {\n    param_2 = param_2 + 1;\n    uVar16 = (uint)*param_2;\n    bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1);\n  }\n  bVar18 = uVar16 == 0x2d;\n  if (bVar18) {\n    uVar16 = (uint)param_2[1];\n    param_2 = param_2 + 1;\n  }\n  local_64 = (uint)bVar18;\n  if (param_3 == (ushort *)0x0) {\n    local_68 = (ushort *)0xa;\n    param_3 = (ushort *)0xa;\n    local_54 = local_44[-0x5c];\nLAB_0001d6ea:\n    if ((int)(uint)(byte)local_54[uVar16] < (int)param_3) goto LAB_0001d337;\nLAB_0001d2e4:\n    if (local_3c == (undefined *)0x0) {\nLAB_0001d320:\n      ppbVar15 = &local_6c;\n      if ((int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3) goto LAB_0001d337;\n    }\n    else {\n      ppbVar15 = &local_6c;\n      if (*(byte *)local_40 == *param_2) {\n        ppuVar11 = local_40;\n        pbVar5 = param_2;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);\n      }\n    }\nLAB_0001d770:\n    puVar6 = (undefined *)0xffffffff;\n    goto LAB_0001d775;\n  }\n  local_68 = param_3;\n  if ((int)param_3 < 0) {\n    param_3 = (ushort *)-(int)param_3;\n    local_68 = (ushort *)0xa;\n    if ((int)param_3 < 0x25) goto LAB_0001d748;\n  }\n  else if ((int)param_3 < 0x25) {\nLAB_0001d748:\n    local_54 = local_44[-0x5c];\n    goto LAB_0001d6ea;\n  }\n  ppbVar15 = &local_6c;\n  if (0x3e < (int)param_3) goto LAB_0001d770;\n  local_54 = local_44[-0x5c] + 0xd0;\n  if ((int)param_3 <= (int)(uint)(byte)local_54[uVar16]) goto LAB_0001d2e4;\nLAB_0001d337:\n  puVar6 = (undefined *)strlen((char *)param_2);\n  local_30 = puVar6 + -1;\n  if (local_30 == (undefined *)0x0) {\n    ppbVar14 = (byte **)&stack0xffffff84;\n    local_24 = 0;\n    local_6c = (byte *)0x0;\n    local_5c = &puStack_70;\n    local_30 = (undefined *)0x1;\nLAB_0001d3c5:\n    local_50 = (ushort **)0x0;\n    puVar6 = (undefined *)0x0;\n    local_48 = local_5c;\n    local_58 = local_3c + -1;\n    do {\n      while( true ) {\n        local_34 = (ushort **)(uint)*param_2;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        param_2 = param_2 + 1;\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }\n      if (local_3c != (undefined *)0x0) {\n        if (*param_2 == *(byte *)local_40) {\n          ppuVar11 = local_40;\n          pbVar5 = param_2;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < (int)param_3) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }\nLAB_0001d443:\n      if (local_50 != (ushort **)0x0) goto LAB_0001d756;\n      local_50 = local_48;\n      param_2 = param_2 + (int)(local_58 + 1);\n      puVar6 = puVar6 + (int)local_58 + 1;\n    } while (puVar6 < local_30);\nLAB_0001d470:\n    local_30 = (undefined *)((int)local_48 - (int)local_5c);\n    ppbVar15 = ppbVar14;\n  }\n  else {\n    bVar1 = param_2[(int)(puVar6 + -1)];\n    puVar17 = puVar6;\n    if (bVar1 == 0x40) {\nLAB_0001d729:\n      local_6c = param_2 + (int)puVar17;\n    }\n    else {\n      if ((int)param_3 < 0xb) {\n        do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);\n        goto LAB_0001d729;\n      }\n      puVar17 = local_30;\n      for (local_30 = puVar6 + -2; local_30 != (undefined *)0x0; local_30 = local_30 + -1) {\n        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;\n        puVar17 = local_30;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar17 = puVar6 + 1;\n      local_30 = puVar6;\n    }\n    local_24 = 0;\n    if ((undefined *)0x7f00 < puVar17) {\n      local_5c = (ushort **)__gmp_tmp_reentrant_alloc();\n      local_38 = (ushort **)*local_34;\n      goto LAB_0001d3c5;\n    }\n    iVar13 = -((uint)(puVar17 + 0x1b) & 0xfffffff0);\n    ppbVar14 = (byte **)((int)&local_6c + iVar13);\n    ppbVar15 = (byte **)((int)&local_6c + iVar13);\n    local_5c = (ushort **)((int)&local_60 + iVar13);\n    if (local_30 != (undefined *)0x0) goto LAB_0001d3c5;\n    local_50 = (ushort **)0x0;\n    local_48 = local_5c;\n  }\n  ppuVar11 = (ushort **)*local_60;\n  uVar12 = (uint)((ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8) * ZEXT48(local_30)\n                 >> 0x20) & 0x1ffffffc;\n  uVar16 = uVar12 + 8;\n  if (uVar16 < 0x7f01) {\n    iVar13 = -(uVar12 + 0x23 & 0xfffffff0);\n    local_40 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n    ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n  }\n  else {\n    *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n    *(int **)((int)ppbVar15 + -0x10) = &local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dabe;\n    local_40 = (ushort **)__gmp_tmp_reentrant_alloc();\n  }\n  *(ushort **)((int)ppbVar15 + -4) = param_3;\n  *(undefined **)((int)ppbVar15 + -8) = local_30;\n  *(ushort ***)((int)ppbVar15 + -0xc) = local_5c;\n  *(ushort ***)((int)ppbVar15 + -0x10) = local_40;\n  *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d4cf;\n  puVar6 = (undefined *)__gmpn_set_str();\n  ppuVar4 = local_44;\n  puVar3 = local_60;\n  if (puVar6 == (undefined *)0x0) {\n    local_60[1] = 0;\n    local_60[2] = 0;\n    if (local_24 != 0) {\n      local_30 = puVar6;\n      *(int *)((int)ppbVar15 + -0x10) = local_24;\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dadb;\n      __gmp_tmp_reentrant_free();\n      puVar6 = local_30;\n      goto LAB_0001d775;\n    }\nLAB_0001d7d0:\n    puVar6 = (undefined *)0x0;\n  }\n  else {\n    local_3c = (undefined *)((int)ppuVar11 + 1);\n    if ((int)local_3c < (int)puVar6) {\n      local_5c = (ushort **)(puVar6 + -(int)local_3c);\n      local_40 = local_40 + (int)local_5c;\n      local_58 = local_3c;\n      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;\nLAB_0001d4fd:\n      bVar1 = *local_6c;\n      local_30 = (undefined *)(uint)(bVar1 == 0x2d);\n      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);\n      uVar16 = (uint)(byte)local_54[*pbVar5];\n      ppbVar14 = ppbVar15;\n      if ((int)local_68 <= (int)uVar16) {\nLAB_0001d756:\n        ppbVar15 = ppbVar14;\n        if (local_24 != 0) {\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }\n        goto LAB_0001d770;\n      }\n      bVar1 = local_54[pbVar5[1]];\n      local_34 = (ushort **)(pbVar5 + 2);\n      ppuVar10 = (ushort **)(pbVar5 + 2);\n      while ((int)(uint)bVar1 < (int)local_68) {\n        uVar16 = uVar16 * (int)local_68 + (uint)bVar1;\n        bVar1 = local_54[*(byte *)ppuVar10];\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar10 = (ushort **)((int)ppuVar10 + 1);\n        local_38 = ppuVar11;\n      }\n      local_54 = local_30 + (uVar16 ^ (uint)-(int)local_30);\n      if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }\n      if (local_54 == (undefined *)0x0) goto LAB_0001d804;\n      local_68 = (ushort *)((int)ppuVar11 + 2);\n      uVar16 = (int)local_68 * 8;\n      if (uVar16 < 0x7f01) {\n        uVar16 = uVar16 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);\n        ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);\n        ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;\n        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;\n        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();\n      }\n      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));\n      *local_50 = param_3;\n      uVar16 = 0x1f;\n      if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n        }\n      }\n      uVar16 = 0x1e - (uVar16 ^ 0x1f);\n      if (uVar16 == 0xffffffff) {\n        iVar13 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar10 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar7 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }\n      puVar17 = local_4c;\n      if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }\n      *(undefined **)((int)ppbVar15 + -8) = puVar6;\n      *(int *)((int)ppbVar15 + -0xc) = (int)ppuVar10 + iVar13;\n      *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d87c;\n      (*pcVar2)();\n      if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }\n        ppuVar11 = local_50;\n        puVar8 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar8) {\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }\n        local_34 = (ushort **)((int)local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }\n        puVar17 = local_58;\n        *(undefined **)((int)ppbVar15 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar15 + -0x14) = puVar17;\n        puVar9 = local_3c;\n        ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar15 + -0x18) = local_40;\n        local_38 = ppuVar11;\n        *(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;\n        *(uint *)((int)ppbVar15 + -0x20) = uVar16;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;\n        iVar13 = __gmpn_divrem();\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));\n        uVar12 = uVar16;\n        puVar17 = local_3c;\n        if (iVar13 != 0) {\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }\n      }\n      else {\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        local_38 = (ushort **)((int)local_34 * 4);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }\n        *(uint *)((int)ppbVar15 + -0x20) = uVar12;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;\n        __gmpn_mul();\n        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));\n        if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }\n      }\n      local_3c = puVar17;\n      puVar9 = local_3c;\n      puVar3 = local_60;\n      *(undefined **)((int)ppbVar15 + -8) = local_3c;\n      *(uint *)((int)ppbVar15 + -0xc) = uVar12;\n      puVar17 = local_4c;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d91c;\n      (*pcVar2)();\n      puVar17 = (undefined *)-(int)puVar9;\n      if (local_64 == 0) {\n        puVar17 = puVar9;\n      }\n      local_60[2] = (uint)puVar6;\n      local_60[1] = (uint)puVar17;\n      if (local_24 == 0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }\n    }\n    else {\n      local_5c = (ushort **)0x0;\n      local_58 = puVar6;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar17 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar15 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar17;\n      if (local_64 == 0) {\n        puVar6 = puVar17;\n      }\n      puVar3[2] = (uint)local_30;\n      puVar3[1] = (uint)puVar6;\n      if (local_24 == 0) goto LAB_0001d7d0;\n    }\n    *(int *)((int)ppbVar15 + -0x10) = local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d84e;\n    __gmp_tmp_reentrant_free();\n    puVar6 = (undefined *)0x0;\n  }\nLAB_0001d775:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }\n                    \n  *(undefined4 *)((int)ppbVar15 + -4) = 0x1dbcb;\n  FUN_0007ebe0();\n}" (type_identifier "undefined") (pointer_declarator "* __gmpf_set_str(uint *param_1,byte *param_2,ushort *param_3)" (* "*") (function_declarator "__gmpf_set_str(uint *param_1,byte *param_2,ushort *param_3)" (identifier "__gmpf_set_str") (parameter_list "(uint *param_1,byte *param_2,ushort *param_3)" (( "(") (parameter_declaration "uint *param_1" (type_identifier "uint") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "byte *param_2" (type_identifier "byte") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "ushort *param_3" (type_identifier "ushort") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")")))) (compound_statement "{\n  byte bVar1;\n  code *pcVar2;\n  uint *puVar3;\n  undefined **ppuVar4;\n  byte *pbVar5;\n  undefined *puVar6;\n  int iVar7;\n  ushort *puVar8;\n  undefined *puVar9;\n  ushort **ppuVar10;\n  ushort **ppuVar11;\n  uint uVar12;\n  int iVar13;\n  byte **ppbVar14;\n  byte **ppbVar15;\n  uint uVar16;\n  undefined *puVar17;\n  int in_GS_OFFSET;\n  bool bVar18;\n  ushort *puStack_70;\n  byte *local_6c;\n  ushort *local_68;\n  uint local_64;\n  uint *local_60;\n  ushort **local_5c;\n  undefined *local_58;\n  undefined *local_54;\n  ushort **local_50;\n  undefined *local_4c;\n  ushort **local_48;\n  undefined **local_44;\n  ushort **local_40;\n  undefined *local_3c;\n  ushort **local_38;\n  ushort **local_34;\n  undefined *local_30;\n  int local_24;\n  int local_20;\n  \n  local_60 = param_1;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_44 = &__DT_PLTGOT;\n  local_40 = (ushort **)nl_langinfo(0x10000);\n  local_44 = &__DT_PLTGOT;\n  local_3c = (undefined *)strlen((char *)local_40);\n  ppbVar14 = &local_6c;\n  uVar16 = (uint)*param_2;\n  puStack_70 = (ushort *)0x1d265;\n  local_34 = __ctype_b_loc();\n  local_38 = (ushort **)*local_34;\n  bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1);\n  while ((bVar1 & 0x20) != 0) {\n    param_2 = param_2 + 1;\n    uVar16 = (uint)*param_2;\n    bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1);\n  }\n  bVar18 = uVar16 == 0x2d;\n  if (bVar18) {\n    uVar16 = (uint)param_2[1];\n    param_2 = param_2 + 1;\n  }\n  local_64 = (uint)bVar18;\n  if (param_3 == (ushort *)0x0) {\n    local_68 = (ushort *)0xa;\n    param_3 = (ushort *)0xa;\n    local_54 = local_44[-0x5c];\nLAB_0001d6ea:\n    if ((int)(uint)(byte)local_54[uVar16] < (int)param_3) goto LAB_0001d337;\nLAB_0001d2e4:\n    if (local_3c == (undefined *)0x0) {\nLAB_0001d320:\n      ppbVar15 = &local_6c;\n      if ((int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3) goto LAB_0001d337;\n    }\n    else {\n      ppbVar15 = &local_6c;\n      if (*(byte *)local_40 == *param_2) {\n        ppuVar11 = local_40;\n        pbVar5 = param_2;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);\n      }\n    }\nLAB_0001d770:\n    puVar6 = (undefined *)0xffffffff;\n    goto LAB_0001d775;\n  }\n  local_68 = param_3;\n  if ((int)param_3 < 0) {\n    param_3 = (ushort *)-(int)param_3;\n    local_68 = (ushort *)0xa;\n    if ((int)param_3 < 0x25) goto LAB_0001d748;\n  }\n  else if ((int)param_3 < 0x25) {\nLAB_0001d748:\n    local_54 = local_44[-0x5c];\n    goto LAB_0001d6ea;\n  }\n  ppbVar15 = &local_6c;\n  if (0x3e < (int)param_3) goto LAB_0001d770;\n  local_54 = local_44[-0x5c] + 0xd0;\n  if ((int)param_3 <= (int)(uint)(byte)local_54[uVar16]) goto LAB_0001d2e4;\nLAB_0001d337:\n  puVar6 = (undefined *)strlen((char *)param_2);\n  local_30 = puVar6 + -1;\n  if (local_30 == (undefined *)0x0) {\n    ppbVar14 = (byte **)&stack0xffffff84;\n    local_24 = 0;\n    local_6c = (byte *)0x0;\n    local_5c = &puStack_70;\n    local_30 = (undefined *)0x1;\nLAB_0001d3c5:\n    local_50 = (ushort **)0x0;\n    puVar6 = (undefined *)0x0;\n    local_48 = local_5c;\n    local_58 = local_3c + -1;\n    do {\n      while( true ) {\n        local_34 = (ushort **)(uint)*param_2;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        param_2 = param_2 + 1;\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }\n      if (local_3c != (undefined *)0x0) {\n        if (*param_2 == *(byte *)local_40) {\n          ppuVar11 = local_40;\n          pbVar5 = param_2;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < (int)param_3) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }\nLAB_0001d443:\n      if (local_50 != (ushort **)0x0) goto LAB_0001d756;\n      local_50 = local_48;\n      param_2 = param_2 + (int)(local_58 + 1);\n      puVar6 = puVar6 + (int)local_58 + 1;\n    } while (puVar6 < local_30);\nLAB_0001d470:\n    local_30 = (undefined *)((int)local_48 - (int)local_5c);\n    ppbVar15 = ppbVar14;\n  }\n  else {\n    bVar1 = param_2[(int)(puVar6 + -1)];\n    puVar17 = puVar6;\n    if (bVar1 == 0x40) {\nLAB_0001d729:\n      local_6c = param_2 + (int)puVar17;\n    }\n    else {\n      if ((int)param_3 < 0xb) {\n        do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);\n        goto LAB_0001d729;\n      }\n      puVar17 = local_30;\n      for (local_30 = puVar6 + -2; local_30 != (undefined *)0x0; local_30 = local_30 + -1) {\n        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;\n        puVar17 = local_30;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar17 = puVar6 + 1;\n      local_30 = puVar6;\n    }\n    local_24 = 0;\n    if ((undefined *)0x7f00 < puVar17) {\n      local_5c = (ushort **)__gmp_tmp_reentrant_alloc();\n      local_38 = (ushort **)*local_34;\n      goto LAB_0001d3c5;\n    }\n    iVar13 = -((uint)(puVar17 + 0x1b) & 0xfffffff0);\n    ppbVar14 = (byte **)((int)&local_6c + iVar13);\n    ppbVar15 = (byte **)((int)&local_6c + iVar13);\n    local_5c = (ushort **)((int)&local_60 + iVar13);\n    if (local_30 != (undefined *)0x0) goto LAB_0001d3c5;\n    local_50 = (ushort **)0x0;\n    local_48 = local_5c;\n  }\n  ppuVar11 = (ushort **)*local_60;\n  uVar12 = (uint)((ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8) * ZEXT48(local_30)\n                 >> 0x20) & 0x1ffffffc;\n  uVar16 = uVar12 + 8;\n  if (uVar16 < 0x7f01) {\n    iVar13 = -(uVar12 + 0x23 & 0xfffffff0);\n    local_40 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n    ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n  }\n  else {\n    *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n    *(int **)((int)ppbVar15 + -0x10) = &local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dabe;\n    local_40 = (ushort **)__gmp_tmp_reentrant_alloc();\n  }\n  *(ushort **)((int)ppbVar15 + -4) = param_3;\n  *(undefined **)((int)ppbVar15 + -8) = local_30;\n  *(ushort ***)((int)ppbVar15 + -0xc) = local_5c;\n  *(ushort ***)((int)ppbVar15 + -0x10) = local_40;\n  *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d4cf;\n  puVar6 = (undefined *)__gmpn_set_str();\n  ppuVar4 = local_44;\n  puVar3 = local_60;\n  if (puVar6 == (undefined *)0x0) {\n    local_60[1] = 0;\n    local_60[2] = 0;\n    if (local_24 != 0) {\n      local_30 = puVar6;\n      *(int *)((int)ppbVar15 + -0x10) = local_24;\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dadb;\n      __gmp_tmp_reentrant_free();\n      puVar6 = local_30;\n      goto LAB_0001d775;\n    }\nLAB_0001d7d0:\n    puVar6 = (undefined *)0x0;\n  }\n  else {\n    local_3c = (undefined *)((int)ppuVar11 + 1);\n    if ((int)local_3c < (int)puVar6) {\n      local_5c = (ushort **)(puVar6 + -(int)local_3c);\n      local_40 = local_40 + (int)local_5c;\n      local_58 = local_3c;\n      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;\nLAB_0001d4fd:\n      bVar1 = *local_6c;\n      local_30 = (undefined *)(uint)(bVar1 == 0x2d);\n      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);\n      uVar16 = (uint)(byte)local_54[*pbVar5];\n      ppbVar14 = ppbVar15;\n      if ((int)local_68 <= (int)uVar16) {\nLAB_0001d756:\n        ppbVar15 = ppbVar14;\n        if (local_24 != 0) {\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }\n        goto LAB_0001d770;\n      }\n      bVar1 = local_54[pbVar5[1]];\n      local_34 = (ushort **)(pbVar5 + 2);\n      ppuVar10 = (ushort **)(pbVar5 + 2);\n      while ((int)(uint)bVar1 < (int)local_68) {\n        uVar16 = uVar16 * (int)local_68 + (uint)bVar1;\n        bVar1 = local_54[*(byte *)ppuVar10];\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar10 = (ushort **)((int)ppuVar10 + 1);\n        local_38 = ppuVar11;\n      }\n      local_54 = local_30 + (uVar16 ^ (uint)-(int)local_30);\n      if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }\n      if (local_54 == (undefined *)0x0) goto LAB_0001d804;\n      local_68 = (ushort *)((int)ppuVar11 + 2);\n      uVar16 = (int)local_68 * 8;\n      if (uVar16 < 0x7f01) {\n        uVar16 = uVar16 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);\n        ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);\n        ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;\n        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;\n        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();\n      }\n      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));\n      *local_50 = param_3;\n      uVar16 = 0x1f;\n      if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n        }\n      }\n      uVar16 = 0x1e - (uVar16 ^ 0x1f);\n      if (uVar16 == 0xffffffff) {\n        iVar13 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar10 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar7 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }\n      puVar17 = local_4c;\n      if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }\n      *(undefined **)((int)ppbVar15 + -8) = puVar6;\n      *(int *)((int)ppbVar15 + -0xc) = (int)ppuVar10 + iVar13;\n      *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d87c;\n      (*pcVar2)();\n      if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }\n        ppuVar11 = local_50;\n        puVar8 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar8) {\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }\n        local_34 = (ushort **)((int)local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }\n        puVar17 = local_58;\n        *(undefined **)((int)ppbVar15 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar15 + -0x14) = puVar17;\n        puVar9 = local_3c;\n        ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar15 + -0x18) = local_40;\n        local_38 = ppuVar11;\n        *(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;\n        *(uint *)((int)ppbVar15 + -0x20) = uVar16;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;\n        iVar13 = __gmpn_divrem();\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));\n        uVar12 = uVar16;\n        puVar17 = local_3c;\n        if (iVar13 != 0) {\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }\n      }\n      else {\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        local_38 = (ushort **)((int)local_34 * 4);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }\n        *(uint *)((int)ppbVar15 + -0x20) = uVar12;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;\n        __gmpn_mul();\n        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));\n        if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }\n      }\n      local_3c = puVar17;\n      puVar9 = local_3c;\n      puVar3 = local_60;\n      *(undefined **)((int)ppbVar15 + -8) = local_3c;\n      *(uint *)((int)ppbVar15 + -0xc) = uVar12;\n      puVar17 = local_4c;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d91c;\n      (*pcVar2)();\n      puVar17 = (undefined *)-(int)puVar9;\n      if (local_64 == 0) {\n        puVar17 = puVar9;\n      }\n      local_60[2] = (uint)puVar6;\n      local_60[1] = (uint)puVar17;\n      if (local_24 == 0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }\n    }\n    else {\n      local_5c = (ushort **)0x0;\n      local_58 = puVar6;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar17 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar15 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar17;\n      if (local_64 == 0) {\n        puVar6 = puVar17;\n      }\n      puVar3[2] = (uint)local_30;\n      puVar3[1] = (uint)puVar6;\n      if (local_24 == 0) goto LAB_0001d7d0;\n    }\n    *(int *)((int)ppbVar15 + -0x10) = local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d84e;\n    __gmp_tmp_reentrant_free();\n    puVar6 = (undefined *)0x0;\n  }\nLAB_0001d775:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }\n                    \n  *(undefined4 *)((int)ppbVar15 + -4) = 0x1dbcb;\n  FUN_0007ebe0();\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "code *pcVar2;" (type_identifier "code") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "uint *puVar3;" (type_identifier "uint") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined **ppuVar4;" (type_identifier "undefined") (pointer_declarator "**ppuVar4" (* "*") (pointer_declarator "*ppuVar4" (* "*") (identifier "ppuVar4"))) (; ";")) (declaration "byte *pbVar5;" (type_identifier "byte") (pointer_declarator "*pbVar5" (* "*") (identifier "pbVar5")) (; ";")) (declaration "undefined *puVar6;" (type_identifier "undefined") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "ushort *puVar8;" (type_identifier "ushort") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "undefined *puVar9;" (type_identifier "undefined") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "ushort **ppuVar10;" (type_identifier "ushort") (pointer_declarator "**ppuVar10" (* "*") (pointer_declarator "*ppuVar10" (* "*") (identifier "ppuVar10"))) (; ";")) (declaration "ushort **ppuVar11;" (type_identifier "ushort") (pointer_declarator "**ppuVar11" (* "*") (pointer_declarator "*ppuVar11" (* "*") (identifier "ppuVar11"))) (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "byte **ppbVar14;" (type_identifier "byte") (pointer_declarator "**ppbVar14" (* "*") (pointer_declarator "*ppbVar14" (* "*") (identifier "ppbVar14"))) (; ";")) (declaration "byte **ppbVar15;" (type_identifier "byte") (pointer_declarator "**ppbVar15" (* "*") (pointer_declarator "*ppbVar15" (* "*") (identifier "ppbVar15"))) (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "undefined *puVar17;" (type_identifier "undefined") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "bool bVar18;" (primitive_type "bool") (identifier "bVar18") (; ";")) (declaration "ushort *puStack_70;" (type_identifier "ushort") (pointer_declarator "*puStack_70" (* "*") (identifier "puStack_70")) (; ";")) (declaration "byte *local_6c;" (type_identifier "byte") (pointer_declarator "*local_6c" (* "*") (identifier "local_6c")) (; ";")) (declaration "ushort *local_68;" (type_identifier "ushort") (pointer_declarator "*local_68" (* "*") (identifier "local_68")) (; ";")) (declaration "uint local_64;" (type_identifier "uint") (identifier "local_64") (; ";")) (declaration "uint *local_60;" (type_identifier "uint") (pointer_declarator "*local_60" (* "*") (identifier "local_60")) (; ";")) (declaration "ushort **local_5c;" (type_identifier "ushort") (pointer_declarator "**local_5c" (* "*") (pointer_declarator "*local_5c" (* "*") (identifier "local_5c"))) (; ";")) (declaration "undefined *local_58;" (type_identifier "undefined") (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "undefined *local_54;" (type_identifier "undefined") (pointer_declarator "*local_54" (* "*") (identifier "local_54")) (; ";")) (declaration "ushort **local_50;" (type_identifier "ushort") (pointer_declarator "**local_50" (* "*") (pointer_declarator "*local_50" (* "*") (identifier "local_50"))) (; ";")) (declaration "undefined *local_4c;" (type_identifier "undefined") (pointer_declarator "*local_4c" (* "*") (identifier "local_4c")) (; ";")) (declaration "ushort **local_48;" (type_identifier "ushort") (pointer_declarator "**local_48" (* "*") (pointer_declarator "*local_48" (* "*") (identifier "local_48"))) (; ";")) (declaration "undefined **local_44;" (type_identifier "undefined") (pointer_declarator "**local_44" (* "*") (pointer_declarator "*local_44" (* "*") (identifier "local_44"))) (; ";")) (declaration "ushort **local_40;" (type_identifier "ushort") (pointer_declarator "**local_40" (* "*") (pointer_declarator "*local_40" (* "*") (identifier "local_40"))) (; ";")) (declaration "undefined *local_3c;" (type_identifier "undefined") (pointer_declarator "*local_3c" (* "*") (identifier "local_3c")) (; ";")) (declaration "ushort **local_38;" (type_identifier "ushort") (pointer_declarator "**local_38" (* "*") (pointer_declarator "*local_38" (* "*") (identifier "local_38"))) (; ";")) (declaration "ushort **local_34;" (type_identifier "ushort") (pointer_declarator "**local_34" (* "*") (pointer_declarator "*local_34" (* "*") (identifier "local_34"))) (; ";")) (declaration "undefined *local_30;" (type_identifier "undefined") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (expression_statement "local_60 = param_1;" (assignment_expression "local_60 = param_1" (identifier "local_60") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "local_44 = &__DT_PLTGOT;" (assignment_expression "local_44 = &__DT_PLTGOT" (identifier "local_44") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (expression_statement "local_40 = (ushort **)nl_langinfo(0x10000);" (assignment_expression "local_40 = (ushort **)nl_langinfo(0x10000)" (identifier "local_40") (= "=") (cast_expression "(ushort **)nl_langinfo(0x10000)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "nl_langinfo(0x10000)" (identifier "nl_langinfo") (argument_list "(0x10000)" (( "(") (number_literal "0x10000") () ")"))))) (; ";")) (expression_statement "local_44 = &__DT_PLTGOT;" (assignment_expression "local_44 = &__DT_PLTGOT" (identifier "local_44") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (expression_statement "local_3c = (undefined *)strlen((char *)local_40);" (assignment_expression "local_3c = (undefined *)strlen((char *)local_40)" (identifier "local_3c") (= "=") (cast_expression "(undefined *)strlen((char *)local_40)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "strlen((char *)local_40)" (identifier "strlen") (argument_list "((char *)local_40)" (( "(") (cast_expression "(char *)local_40" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_40")) () ")"))))) (; ";")) (expression_statement "ppbVar14 = &local_6c;" (assignment_expression "ppbVar14 = &local_6c" (identifier "ppbVar14") (= "=") (pointer_expression "&local_6c" (& "&") (identifier "local_6c"))) (; ";")) (expression_statement "uVar16 = (uint)*param_2;" (assignment_expression "uVar16 = (uint)*param_2" (identifier "uVar16") (= "=") (binary_expression "(uint)*param_2" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "param_2"))) (; ";")) (expression_statement "puStack_70 = (ushort *)0x1d265;" (assignment_expression "puStack_70 = (ushort *)0x1d265" (identifier "puStack_70") (= "=") (cast_expression "(ushort *)0x1d265" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1d265"))) (; ";")) (expression_statement "local_34 = __ctype_b_loc();" (assignment_expression "local_34 = __ctype_b_loc()" (identifier "local_34") (= "=") (call_expression "__ctype_b_loc()" (identifier "__ctype_b_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_38 = (ushort **)*local_34;" (assignment_expression "local_38 = (ushort **)*local_34" (identifier "local_38") (= "=") (cast_expression "(ushort **)*local_34" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*local_34" (* "*") (identifier "local_34")))) (; ";")) (expression_statement "bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1);" (assignment_expression "bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)((int)local_38 + uVar16 * 2 + 1)" (* "*") (cast_expression "(byte *)((int)local_38 + uVar16 * 2 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_38 + uVar16 * 2 + 1)" (( "(") (binary_expression "(int)local_38 + uVar16 * 2 + 1" (binary_expression "(int)local_38 + uVar16 * 2" (cast_expression "(int)local_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_38")) (+ "+") (binary_expression "uVar16 * 2" (identifier "uVar16") (* "*") (number_literal "2"))) (+ "+") (number_literal "1")) () ")"))))) (; ";")) (while_statement "while ((bVar1 & 0x20) != 0) {\n    param_2 = param_2 + 1;\n    uVar16 = (uint)*param_2;\n    bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1);\n  }" (while "while") (parenthesized_expression "((bVar1 & 0x20) != 0)" (( "(") (binary_expression "(bVar1 & 0x20) != 0" (parenthesized_expression "(bVar1 & 0x20)" (( "(") (binary_expression "bVar1 & 0x20" (identifier "bVar1") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    param_2 = param_2 + 1;\n    uVar16 = (uint)*param_2;\n    bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1);\n  }" ({ "{") (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" (identifier "param_2") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar16 = (uint)*param_2;" (assignment_expression "uVar16 = (uint)*param_2" (identifier "uVar16") (= "=") (binary_expression "(uint)*param_2" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "param_2"))) (; ";")) (expression_statement "bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1);" (assignment_expression "bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)((int)local_38 + uVar16 * 2 + 1)" (* "*") (cast_expression "(byte *)((int)local_38 + uVar16 * 2 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_38 + uVar16 * 2 + 1)" (( "(") (binary_expression "(int)local_38 + uVar16 * 2 + 1" (binary_expression "(int)local_38 + uVar16 * 2" (cast_expression "(int)local_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_38")) (+ "+") (binary_expression "uVar16 * 2" (identifier "uVar16") (* "*") (number_literal "2"))) (+ "+") (number_literal "1")) () ")"))))) (; ";")) (} "}"))) (expression_statement "bVar18 = uVar16 == 0x2d;" (assignment_expression "bVar18 = uVar16 == 0x2d" (identifier "bVar18") (= "=") (binary_expression "uVar16 == 0x2d" (identifier "uVar16") (== "==") (number_literal "0x2d"))) (; ";")) (if_statement "if (bVar18) {\n    uVar16 = (uint)param_2[1];\n    param_2 = param_2 + 1;\n  }" (if "if") (parenthesized_expression "(bVar18)" (( "(") (identifier "bVar18") () ")")) (compound_statement "{\n    uVar16 = (uint)param_2[1];\n    param_2 = param_2 + 1;\n  }" ({ "{") (expression_statement "uVar16 = (uint)param_2[1];" (assignment_expression "uVar16 = (uint)param_2[1]" (identifier "uVar16") (= "=") (cast_expression "(uint)param_2[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" (identifier "param_2") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "local_64 = (uint)bVar18;" (assignment_expression "local_64 = (uint)bVar18" (identifier "local_64") (= "=") (cast_expression "(uint)bVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar18"))) (; ";")) (if_statement "if (param_3 == (ushort *)0x0) {\n    local_68 = (ushort *)0xa;\n    param_3 = (ushort *)0xa;\n    local_54 = local_44[-0x5c];\nLAB_0001d6ea:\n    if ((int)(uint)(byte)local_54[uVar16] < (int)param_3) goto LAB_0001d337;\nLAB_0001d2e4:\n    if (local_3c == (undefined *)0x0) {\nLAB_0001d320:\n      ppbVar15 = &local_6c;\n      if ((int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3) goto LAB_0001d337;\n    }\n    else {\n      ppbVar15 = &local_6c;\n      if (*(byte *)local_40 == *param_2) {\n        ppuVar11 = local_40;\n        pbVar5 = param_2;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);\n      }\n    }\nLAB_0001d770:\n    puVar6 = (undefined *)0xffffffff;\n    goto LAB_0001d775;\n  }" (if "if") (parenthesized_expression "(param_3 == (ushort *)0x0)" (( "(") (binary_expression "param_3 == (ushort *)0x0" (identifier "param_3") (== "==") (cast_expression "(ushort *)0x0" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    local_68 = (ushort *)0xa;\n    param_3 = (ushort *)0xa;\n    local_54 = local_44[-0x5c];\nLAB_0001d6ea:\n    if ((int)(uint)(byte)local_54[uVar16] < (int)param_3) goto LAB_0001d337;\nLAB_0001d2e4:\n    if (local_3c == (undefined *)0x0) {\nLAB_0001d320:\n      ppbVar15 = &local_6c;\n      if ((int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3) goto LAB_0001d337;\n    }\n    else {\n      ppbVar15 = &local_6c;\n      if (*(byte *)local_40 == *param_2) {\n        ppuVar11 = local_40;\n        pbVar5 = param_2;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);\n      }\n    }\nLAB_0001d770:\n    puVar6 = (undefined *)0xffffffff;\n    goto LAB_0001d775;\n  }" ({ "{") (expression_statement "local_68 = (ushort *)0xa;" (assignment_expression "local_68 = (ushort *)0xa" (identifier "local_68") (= "=") (cast_expression "(ushort *)0xa" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xa"))) (; ";")) (expression_statement "param_3 = (ushort *)0xa;" (assignment_expression "param_3 = (ushort *)0xa" (identifier "param_3") (= "=") (cast_expression "(ushort *)0xa" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xa"))) (; ";")) (expression_statement "local_54 = local_44[-0x5c];" (assignment_expression "local_54 = local_44[-0x5c]" (identifier "local_54") (= "=") (subscript_expression "local_44[-0x5c]" (identifier "local_44") ([ "[") (number_literal "-0x5c") (] "]"))) (; ";")) (labeled_statement "LAB_0001d6ea:\n    if ((int)(uint)(byte)local_54[uVar16] < (int)param_3) goto LAB_0001d337;" (statement_identifier "LAB_0001d6ea") (: ":") (if_statement "if ((int)(uint)(byte)local_54[uVar16] < (int)param_3) goto LAB_0001d337;" (if "if") (parenthesized_expression "((int)(uint)(byte)local_54[uVar16] < (int)param_3)" (( "(") (binary_expression "(int)(uint)(byte)local_54[uVar16] < (int)param_3" (cast_expression "(int)(uint)(byte)local_54[uVar16]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)(byte)local_54[uVar16]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)local_54[uVar16]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "local_54[uVar16]" (identifier "local_54") ([ "[") (identifier "uVar16") (] "]"))))) (< "<") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) () ")")) (goto_statement "goto LAB_0001d337;" (goto "goto") (statement_identifier "LAB_0001d337") (; ";")))) (labeled_statement "LAB_0001d2e4:\n    if (local_3c == (undefined *)0x0) {\nLAB_0001d320:\n      ppbVar15 = &local_6c;\n      if ((int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3) goto LAB_0001d337;\n    }\n    else {\n      ppbVar15 = &local_6c;\n      if (*(byte *)local_40 == *param_2) {\n        ppuVar11 = local_40;\n        pbVar5 = param_2;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);\n      }\n    }" (statement_identifier "LAB_0001d2e4") (: ":") (if_statement "if (local_3c == (undefined *)0x0) {\nLAB_0001d320:\n      ppbVar15 = &local_6c;\n      if ((int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3) goto LAB_0001d337;\n    }\n    else {\n      ppbVar15 = &local_6c;\n      if (*(byte *)local_40 == *param_2) {\n        ppuVar11 = local_40;\n        pbVar5 = param_2;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);\n      }\n    }" (if "if") (parenthesized_expression "(local_3c == (undefined *)0x0)" (( "(") (binary_expression "local_3c == (undefined *)0x0" (identifier "local_3c") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0001d320:\n      ppbVar15 = &local_6c;\n      if ((int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3) goto LAB_0001d337;\n    }" ({ "{") (labeled_statement "LAB_0001d320:\n      ppbVar15 = &local_6c;" (statement_identifier "LAB_0001d320") (: ":") (expression_statement "ppbVar15 = &local_6c;" (assignment_expression "ppbVar15 = &local_6c" (identifier "ppbVar15") (= "=") (pointer_expression "&local_6c" (& "&") (identifier "local_6c"))) (; ";"))) (if_statement "if ((int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3) goto LAB_0001d337;" (if "if") (parenthesized_expression "((int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3)" (( "(") (binary_expression "(int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3" (cast_expression "(int)(uint)(byte)local_54[param_2[(int)local_3c]]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)(byte)local_54[param_2[(int)local_3c]]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)local_54[param_2[(int)local_3c]]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "local_54[param_2[(int)local_3c]]" (identifier "local_54") ([ "[") (subscript_expression "param_2[(int)local_3c]" (identifier "param_2") ([ "[") (cast_expression "(int)local_3c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_3c")) (] "]")) (] "]"))))) (< "<") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) () ")")) (goto_statement "goto LAB_0001d337;" (goto "goto") (statement_identifier "LAB_0001d337") (; ";"))) (} "}")) (else_clause "else {\n      ppbVar15 = &local_6c;\n      if (*(byte *)local_40 == *param_2) {\n        ppuVar11 = local_40;\n        pbVar5 = param_2;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);\n      }\n    }" (else "else") (compound_statement "{\n      ppbVar15 = &local_6c;\n      if (*(byte *)local_40 == *param_2) {\n        ppuVar11 = local_40;\n        pbVar5 = param_2;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);\n      }\n    }" ({ "{") (expression_statement "ppbVar15 = &local_6c;" (assignment_expression "ppbVar15 = &local_6c" (identifier "ppbVar15") (= "=") (pointer_expression "&local_6c" (& "&") (identifier "local_6c"))) (; ";")) (if_statement "if (*(byte *)local_40 == *param_2) {\n        ppuVar11 = local_40;\n        pbVar5 = param_2;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);\n      }" (if "if") (parenthesized_expression "(*(byte *)local_40 == *param_2)" (( "(") (binary_expression "*(byte *)local_40 == *param_2" (pointer_expression "*(byte *)local_40" (* "*") (cast_expression "(byte *)local_40" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_40"))) (== "==") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) () ")")) (compound_statement "{\n        ppuVar11 = local_40;\n        pbVar5 = param_2;\n        do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);\n      }" ({ "{") (expression_statement "ppuVar11 = local_40;" (assignment_expression "ppuVar11 = local_40" (identifier "ppuVar11") (= "=") (identifier "local_40")) (; ";")) (expression_statement "pbVar5 = param_2;" (assignment_expression "pbVar5 = param_2" (identifier "pbVar5") (= "=") (identifier "param_2")) (; ";")) (do_statement "do {\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        } while (*pbVar5 == *(byte *)ppuVar11);" (do "do") (compound_statement "{\n          pbVar5 = pbVar5 + 1;\n          ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;\n          ppbVar15 = &local_6c;\n        }" ({ "{") (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + 1" (identifier "pbVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "ppuVar11 = (ushort **)((int)ppuVar11 + 1);" (assignment_expression "ppuVar11 = (ushort **)((int)ppuVar11 + 1)" (identifier "ppuVar11") (= "=") (cast_expression "(ushort **)((int)ppuVar11 + 1)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar11 + 1)" (( "(") (binary_expression "(int)ppuVar11 + 1" (cast_expression "(int)ppuVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar11")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;" (if "if") (parenthesized_expression "(param_2 + (int)local_3c == pbVar5)" (( "(") (binary_expression "param_2 + (int)local_3c == pbVar5" (binary_expression "param_2 + (int)local_3c" (identifier "param_2") (+ "+") (cast_expression "(int)local_3c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_3c"))) (== "==") (identifier "pbVar5")) () ")")) (goto_statement "goto LAB_0001d320;" (goto "goto") (statement_identifier "LAB_0001d320") (; ";"))) (expression_statement "ppbVar15 = &local_6c;" (assignment_expression "ppbVar15 = &local_6c" (identifier "ppbVar15") (= "=") (pointer_expression "&local_6c" (& "&") (identifier "local_6c"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*pbVar5 == *(byte *)ppuVar11)" (( "(") (binary_expression "*pbVar5 == *(byte *)ppuVar11" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (== "==") (pointer_expression "*(byte *)ppuVar11" (* "*") (cast_expression "(byte *)ppuVar11" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar11")))) () ")")) (; ";")) (} "}"))) (} "}"))))) (labeled_statement "LAB_0001d770:\n    puVar6 = (undefined *)0xffffffff;" (statement_identifier "LAB_0001d770") (: ":") (expression_statement "puVar6 = (undefined *)0xffffffff;" (assignment_expression "puVar6 = (undefined *)0xffffffff" (identifier "puVar6") (= "=") (cast_expression "(undefined *)0xffffffff" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";"))) (goto_statement "goto LAB_0001d775;" (goto "goto") (statement_identifier "LAB_0001d775") (; ";")) (} "}"))) (expression_statement "local_68 = param_3;" (assignment_expression "local_68 = param_3" (identifier "local_68") (= "=") (identifier "param_3")) (; ";")) (if_statement "if ((int)param_3 < 0) {\n    param_3 = (ushort *)-(int)param_3;\n    local_68 = (ushort *)0xa;\n    if ((int)param_3 < 0x25) goto LAB_0001d748;\n  }\n  else if ((int)param_3 < 0x25) {\nLAB_0001d748:\n    local_54 = local_44[-0x5c];\n    goto LAB_0001d6ea;\n  }" (if "if") (parenthesized_expression "((int)param_3 < 0)" (( "(") (binary_expression "(int)param_3 < 0" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    param_3 = (ushort *)-(int)param_3;\n    local_68 = (ushort *)0xa;\n    if ((int)param_3 < 0x25) goto LAB_0001d748;\n  }" ({ "{") (expression_statement "param_3 = (ushort *)-(int)param_3;" (assignment_expression "param_3 = (ushort *)-(int)param_3" (identifier "param_3") (= "=") (cast_expression "(ushort *)-(int)param_3" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (unary_expression "-(int)param_3" (- "-") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))))) (; ";")) (expression_statement "local_68 = (ushort *)0xa;" (assignment_expression "local_68 = (ushort *)0xa" (identifier "local_68") (= "=") (cast_expression "(ushort *)0xa" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xa"))) (; ";")) (if_statement "if ((int)param_3 < 0x25) goto LAB_0001d748;" (if "if") (parenthesized_expression "((int)param_3 < 0x25)" (( "(") (binary_expression "(int)param_3 < 0x25" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (< "<") (number_literal "0x25")) () ")")) (goto_statement "goto LAB_0001d748;" (goto "goto") (statement_identifier "LAB_0001d748") (; ";"))) (} "}")) (else_clause "else if ((int)param_3 < 0x25) {\nLAB_0001d748:\n    local_54 = local_44[-0x5c];\n    goto LAB_0001d6ea;\n  }" (else "else") (if_statement "if ((int)param_3 < 0x25) {\nLAB_0001d748:\n    local_54 = local_44[-0x5c];\n    goto LAB_0001d6ea;\n  }" (if "if") (parenthesized_expression "((int)param_3 < 0x25)" (( "(") (binary_expression "(int)param_3 < 0x25" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (< "<") (number_literal "0x25")) () ")")) (compound_statement "{\nLAB_0001d748:\n    local_54 = local_44[-0x5c];\n    goto LAB_0001d6ea;\n  }" ({ "{") (labeled_statement "LAB_0001d748:\n    local_54 = local_44[-0x5c];" (statement_identifier "LAB_0001d748") (: ":") (expression_statement "local_54 = local_44[-0x5c];" (assignment_expression "local_54 = local_44[-0x5c]" (identifier "local_54") (= "=") (subscript_expression "local_44[-0x5c]" (identifier "local_44") ([ "[") (number_literal "-0x5c") (] "]"))) (; ";"))) (goto_statement "goto LAB_0001d6ea;" (goto "goto") (statement_identifier "LAB_0001d6ea") (; ";")) (} "}"))))) (expression_statement "ppbVar15 = &local_6c;" (assignment_expression "ppbVar15 = &local_6c" (identifier "ppbVar15") (= "=") (pointer_expression "&local_6c" (& "&") (identifier "local_6c"))) (; ";")) (if_statement "if (0x3e < (int)param_3) goto LAB_0001d770;" (if "if") (parenthesized_expression "(0x3e < (int)param_3)" (( "(") (binary_expression "0x3e < (int)param_3" (number_literal "0x3e") (< "<") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) () ")")) (goto_statement "goto LAB_0001d770;" (goto "goto") (statement_identifier "LAB_0001d770") (; ";"))) (expression_statement "local_54 = local_44[-0x5c] + 0xd0;" (assignment_expression "local_54 = local_44[-0x5c] + 0xd0" (identifier "local_54") (= "=") (binary_expression "local_44[-0x5c] + 0xd0" (subscript_expression "local_44[-0x5c]" (identifier "local_44") ([ "[") (number_literal "-0x5c") (] "]")) (+ "+") (number_literal "0xd0"))) (; ";")) (if_statement "if ((int)param_3 <= (int)(uint)(byte)local_54[uVar16]) goto LAB_0001d2e4;" (if "if") (parenthesized_expression "((int)param_3 <= (int)(uint)(byte)local_54[uVar16])" (( "(") (binary_expression "(int)param_3 <= (int)(uint)(byte)local_54[uVar16]" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (<= "<=") (cast_expression "(int)(uint)(byte)local_54[uVar16]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)(byte)local_54[uVar16]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)local_54[uVar16]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "local_54[uVar16]" (identifier "local_54") ([ "[") (identifier "uVar16") (] "]")))))) () ")")) (goto_statement "goto LAB_0001d2e4;" (goto "goto") (statement_identifier "LAB_0001d2e4") (; ";"))) (labeled_statement "LAB_0001d337:\n  puVar6 = (undefined *)strlen((char *)param_2);" (statement_identifier "LAB_0001d337") (: ":") (expression_statement "puVar6 = (undefined *)strlen((char *)param_2);" (assignment_expression "puVar6 = (undefined *)strlen((char *)param_2)" (identifier "puVar6") (= "=") (cast_expression "(undefined *)strlen((char *)param_2)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "strlen((char *)param_2)" (identifier "strlen") (argument_list "((char *)param_2)" (( "(") (cast_expression "(char *)param_2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2")) () ")"))))) (; ";"))) (expression_statement "local_30 = puVar6 + -1;" (assignment_expression "local_30 = puVar6 + -1" (identifier "local_30") (= "=") (binary_expression "puVar6 + -1" (identifier "puVar6") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (local_30 == (undefined *)0x0) {\n    ppbVar14 = (byte **)&stack0xffffff84;\n    local_24 = 0;\n    local_6c = (byte *)0x0;\n    local_5c = &puStack_70;\n    local_30 = (undefined *)0x1;\nLAB_0001d3c5:\n    local_50 = (ushort **)0x0;\n    puVar6 = (undefined *)0x0;\n    local_48 = local_5c;\n    local_58 = local_3c + -1;\n    do {\n      while( true ) {\n        local_34 = (ushort **)(uint)*param_2;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        param_2 = param_2 + 1;\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }\n      if (local_3c != (undefined *)0x0) {\n        if (*param_2 == *(byte *)local_40) {\n          ppuVar11 = local_40;\n          pbVar5 = param_2;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < (int)param_3) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }\nLAB_0001d443:\n      if (local_50 != (ushort **)0x0) goto LAB_0001d756;\n      local_50 = local_48;\n      param_2 = param_2 + (int)(local_58 + 1);\n      puVar6 = puVar6 + (int)local_58 + 1;\n    } while (puVar6 < local_30);\nLAB_0001d470:\n    local_30 = (undefined *)((int)local_48 - (int)local_5c);\n    ppbVar15 = ppbVar14;\n  }\n  else {\n    bVar1 = param_2[(int)(puVar6 + -1)];\n    puVar17 = puVar6;\n    if (bVar1 == 0x40) {\nLAB_0001d729:\n      local_6c = param_2 + (int)puVar17;\n    }\n    else {\n      if ((int)param_3 < 0xb) {\n        do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);\n        goto LAB_0001d729;\n      }\n      puVar17 = local_30;\n      for (local_30 = puVar6 + -2; local_30 != (undefined *)0x0; local_30 = local_30 + -1) {\n        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;\n        puVar17 = local_30;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar17 = puVar6 + 1;\n      local_30 = puVar6;\n    }\n    local_24 = 0;\n    if ((undefined *)0x7f00 < puVar17) {\n      local_5c = (ushort **)__gmp_tmp_reentrant_alloc();\n      local_38 = (ushort **)*local_34;\n      goto LAB_0001d3c5;\n    }\n    iVar13 = -((uint)(puVar17 + 0x1b) & 0xfffffff0);\n    ppbVar14 = (byte **)((int)&local_6c + iVar13);\n    ppbVar15 = (byte **)((int)&local_6c + iVar13);\n    local_5c = (ushort **)((int)&local_60 + iVar13);\n    if (local_30 != (undefined *)0x0) goto LAB_0001d3c5;\n    local_50 = (ushort **)0x0;\n    local_48 = local_5c;\n  }" (if "if") (parenthesized_expression "(local_30 == (undefined *)0x0)" (( "(") (binary_expression "local_30 == (undefined *)0x0" (identifier "local_30") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    ppbVar14 = (byte **)&stack0xffffff84;\n    local_24 = 0;\n    local_6c = (byte *)0x0;\n    local_5c = &puStack_70;\n    local_30 = (undefined *)0x1;\nLAB_0001d3c5:\n    local_50 = (ushort **)0x0;\n    puVar6 = (undefined *)0x0;\n    local_48 = local_5c;\n    local_58 = local_3c + -1;\n    do {\n      while( true ) {\n        local_34 = (ushort **)(uint)*param_2;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        param_2 = param_2 + 1;\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }\n      if (local_3c != (undefined *)0x0) {\n        if (*param_2 == *(byte *)local_40) {\n          ppuVar11 = local_40;\n          pbVar5 = param_2;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < (int)param_3) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }\nLAB_0001d443:\n      if (local_50 != (ushort **)0x0) goto LAB_0001d756;\n      local_50 = local_48;\n      param_2 = param_2 + (int)(local_58 + 1);\n      puVar6 = puVar6 + (int)local_58 + 1;\n    } while (puVar6 < local_30);\nLAB_0001d470:\n    local_30 = (undefined *)((int)local_48 - (int)local_5c);\n    ppbVar15 = ppbVar14;\n  }" ({ "{") (expression_statement "ppbVar14 = (byte **)&stack0xffffff84;" (assignment_expression "ppbVar14 = (byte **)&stack0xffffff84" (identifier "ppbVar14") (= "=") (cast_expression "(byte **)&stack0xffffff84" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&stack0xffffff84" (& "&") (identifier "stack0xffffff84")))) (; ";")) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_6c = (byte *)0x0;" (assignment_expression "local_6c = (byte *)0x0" (identifier "local_6c") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_5c = &puStack_70;" (assignment_expression "local_5c = &puStack_70" (identifier "local_5c") (= "=") (pointer_expression "&puStack_70" (& "&") (identifier "puStack_70"))) (; ";")) (expression_statement "local_30 = (undefined *)0x1;" (assignment_expression "local_30 = (undefined *)0x1" (identifier "local_30") (= "=") (cast_expression "(undefined *)0x1" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (labeled_statement "LAB_0001d3c5:\n    local_50 = (ushort **)0x0;" (statement_identifier "LAB_0001d3c5") (: ":") (expression_statement "local_50 = (ushort **)0x0;" (assignment_expression "local_50 = (ushort **)0x0" (identifier "local_50") (= "=") (cast_expression "(ushort **)0x0" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "puVar6 = (undefined *)0x0;" (assignment_expression "puVar6 = (undefined *)0x0" (identifier "puVar6") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_48 = local_5c;" (assignment_expression "local_48 = local_5c" (identifier "local_48") (= "=") (identifier "local_5c")) (; ";")) (expression_statement "local_58 = local_3c + -1;" (assignment_expression "local_58 = local_3c + -1" (identifier "local_58") (= "=") (binary_expression "local_3c + -1" (identifier "local_3c") (+ "+") (number_literal "-1"))) (; ";")) (do_statement "do {\n      while( true ) {\n        local_34 = (ushort **)(uint)*param_2;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        param_2 = param_2 + 1;\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }\n      if (local_3c != (undefined *)0x0) {\n        if (*param_2 == *(byte *)local_40) {\n          ppuVar11 = local_40;\n          pbVar5 = param_2;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < (int)param_3) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }\nLAB_0001d443:\n      if (local_50 != (ushort **)0x0) goto LAB_0001d756;\n      local_50 = local_48;\n      param_2 = param_2 + (int)(local_58 + 1);\n      puVar6 = puVar6 + (int)local_58 + 1;\n    } while (puVar6 < local_30);" (do "do") (compound_statement "{\n      while( true ) {\n        local_34 = (ushort **)(uint)*param_2;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        param_2 = param_2 + 1;\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }\n      if (local_3c != (undefined *)0x0) {\n        if (*param_2 == *(byte *)local_40) {\n          ppuVar11 = local_40;\n          pbVar5 = param_2;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < (int)param_3) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }\nLAB_0001d443:\n      if (local_50 != (ushort **)0x0) goto LAB_0001d756;\n      local_50 = local_48;\n      param_2 = param_2 + (int)(local_58 + 1);\n      puVar6 = puVar6 + (int)local_58 + 1;\n    }" ({ "{") (while_statement "while( true ) {\n        local_34 = (ushort **)(uint)*param_2;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        param_2 = param_2 + 1;\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        local_34 = (ushort **)(uint)*param_2;\n        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;\nLAB_0001d3e0:\n        param_2 = param_2 + 1;\n        puVar6 = puVar6 + 1;\n        if (local_30 <= puVar6) goto LAB_0001d470;\n      }" ({ "{") (expression_statement "local_34 = (ushort **)(uint)*param_2;" (assignment_expression "local_34 = (ushort **)(uint)*param_2" (identifier "local_34") (= "=") (binary_expression "(ushort **)(uint)*param_2" (cast_expression "(ushort **)(uint)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "param_2"))) (; ";")) (if_statement "if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;" (if "if") (parenthesized_expression "((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0)" (( "(") (binary_expression "(*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20)" (( "(") (binary_expression "*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20" (pointer_expression "*(byte *)((int)local_38 + (int)local_34 * 2 + 1)" (* "*") (cast_expression "(byte *)((int)local_38 + (int)local_34 * 2 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_38 + (int)local_34 * 2 + 1)" (( "(") (binary_expression "(int)local_38 + (int)local_34 * 2 + 1" (binary_expression "(int)local_38 + (int)local_34 * 2" (cast_expression "(int)local_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_38")) (+ "+") (binary_expression "(int)local_34 * 2" (cast_expression "(int)local_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_34")) (* "*") (number_literal "2"))) (+ "+") (number_literal "1")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_0001d3e0:\n        param_2 = param_2 + 1;" (statement_identifier "LAB_0001d3e0") (: ":") (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" (identifier "param_2") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "puVar6 = puVar6 + 1;" (assignment_expression "puVar6 = puVar6 + 1" (identifier "puVar6") (= "=") (binary_expression "puVar6 + 1" (identifier "puVar6") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (local_30 <= puVar6) goto LAB_0001d470;" (if "if") (parenthesized_expression "(local_30 <= puVar6)" (( "(") (binary_expression "local_30 <= puVar6" (identifier "local_30") (<= "<=") (identifier "puVar6")) () ")")) (goto_statement "goto LAB_0001d470;" (goto "goto") (statement_identifier "LAB_0001d470") (; ";"))) (} "}"))) (if_statement "if (local_3c != (undefined *)0x0) {\n        if (*param_2 == *(byte *)local_40) {\n          ppuVar11 = local_40;\n          pbVar5 = param_2;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < (int)param_3) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }" (if "if") (parenthesized_expression "(local_3c != (undefined *)0x0)" (( "(") (binary_expression "local_3c != (undefined *)0x0" (identifier "local_3c") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        if (*param_2 == *(byte *)local_40) {\n          ppuVar11 = local_40;\n          pbVar5 = param_2;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);\n        }\n        if ((int)(uint)(byte)local_54[(int)local_34] < (int)param_3) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }\n        goto LAB_0001d756;\n      }" ({ "{") (if_statement "if (*param_2 == *(byte *)local_40) {\n          ppuVar11 = local_40;\n          pbVar5 = param_2;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);\n        }" (if "if") (parenthesized_expression "(*param_2 == *(byte *)local_40)" (( "(") (binary_expression "*param_2 == *(byte *)local_40" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (== "==") (pointer_expression "*(byte *)local_40" (* "*") (cast_expression "(byte *)local_40" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_40")))) () ")")) (compound_statement "{\n          ppuVar11 = local_40;\n          pbVar5 = param_2;\n          do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);\n        }" ({ "{") (expression_statement "ppuVar11 = local_40;" (assignment_expression "ppuVar11 = local_40" (identifier "ppuVar11") (= "=") (identifier "local_40")) (; ";")) (expression_statement "pbVar5 = param_2;" (assignment_expression "pbVar5 = param_2" (identifier "pbVar5") (= "=") (identifier "param_2")) (; ";")) (do_statement "do {\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          } while (*pbVar5 == *(byte *)ppuVar11);" (do "do") (compound_statement "{\n            pbVar5 = pbVar5 + 1;\n            ppuVar11 = (ushort **)((int)ppuVar11 + 1);\n            local_4c = puVar6;\n            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;\n          }" ({ "{") (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + 1" (identifier "pbVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "ppuVar11 = (ushort **)((int)ppuVar11 + 1);" (assignment_expression "ppuVar11 = (ushort **)((int)ppuVar11 + 1)" (identifier "ppuVar11") (= "=") (cast_expression "(ushort **)((int)ppuVar11 + 1)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar11 + 1)" (( "(") (binary_expression "(int)ppuVar11 + 1" (cast_expression "(int)ppuVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar11")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "local_4c = puVar6;" (assignment_expression "local_4c = puVar6" (identifier "local_4c") (= "=") (identifier "puVar6")) (; ";")) (if_statement "if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;" (if "if") (parenthesized_expression "(pbVar5 == param_2 + (int)local_3c)" (( "(") (binary_expression "pbVar5 == param_2 + (int)local_3c" (identifier "pbVar5") (== "==") (binary_expression "param_2 + (int)local_3c" (identifier "param_2") (+ "+") (cast_expression "(int)local_3c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_3c")))) () ")")) (goto_statement "goto LAB_0001d443;" (goto "goto") (statement_identifier "LAB_0001d443") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(*pbVar5 == *(byte *)ppuVar11)" (( "(") (binary_expression "*pbVar5 == *(byte *)ppuVar11" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (== "==") (pointer_expression "*(byte *)ppuVar11" (* "*") (cast_expression "(byte *)ppuVar11" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar11")))) () ")")) (; ";")) (} "}"))) (if_statement "if ((int)(uint)(byte)local_54[(int)local_34] < (int)param_3) {\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }" (if "if") (parenthesized_expression "((int)(uint)(byte)local_54[(int)local_34] < (int)param_3)" (( "(") (binary_expression "(int)(uint)(byte)local_54[(int)local_34] < (int)param_3" (cast_expression "(int)(uint)(byte)local_54[(int)local_34]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)(byte)local_54[(int)local_34]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)local_54[(int)local_34]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "local_54[(int)local_34]" (identifier "local_54") ([ "[") (cast_expression "(int)local_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_34")) (] "]"))))) (< "<") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) () ")")) (compound_statement "{\n          *(undefined *)local_48 = local_54[(int)local_34];\n          local_48 = (ushort **)((int)local_48 + 1);\n          goto LAB_0001d3e0;\n        }" ({ "{") (expression_statement "*(undefined *)local_48 = local_54[(int)local_34];" (assignment_expression "*(undefined *)local_48 = local_54[(int)local_34]" (pointer_expression "*(undefined *)local_48" (* "*") (cast_expression "(undefined *)local_48" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_48"))) (= "=") (subscript_expression "local_54[(int)local_34]" (identifier "local_54") ([ "[") (cast_expression "(int)local_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_34")) (] "]"))) (; ";")) (expression_statement "local_48 = (ushort **)((int)local_48 + 1);" (assignment_expression "local_48 = (ushort **)((int)local_48 + 1)" (identifier "local_48") (= "=") (cast_expression "(ushort **)((int)local_48 + 1)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)local_48 + 1)" (( "(") (binary_expression "(int)local_48 + 1" (cast_expression "(int)local_48" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_48")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (goto_statement "goto LAB_0001d3e0;" (goto "goto") (statement_identifier "LAB_0001d3e0") (; ";")) (} "}"))) (goto_statement "goto LAB_0001d756;" (goto "goto") (statement_identifier "LAB_0001d756") (; ";")) (} "}"))) (labeled_statement "LAB_0001d443:\n      if (local_50 != (ushort **)0x0) goto LAB_0001d756;" (statement_identifier "LAB_0001d443") (: ":") (if_statement "if (local_50 != (ushort **)0x0) goto LAB_0001d756;" (if "if") (parenthesized_expression "(local_50 != (ushort **)0x0)" (( "(") (binary_expression "local_50 != (ushort **)0x0" (identifier "local_50") (!= "!=") (cast_expression "(ushort **)0x0" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001d756;" (goto "goto") (statement_identifier "LAB_0001d756") (; ";")))) (expression_statement "local_50 = local_48;" (assignment_expression "local_50 = local_48" (identifier "local_50") (= "=") (identifier "local_48")) (; ";")) (expression_statement "param_2 = param_2 + (int)(local_58 + 1);" (assignment_expression "param_2 = param_2 + (int)(local_58 + 1)" (identifier "param_2") (= "=") (binary_expression "param_2 + (int)(local_58 + 1)" (identifier "param_2") (+ "+") (cast_expression "(int)(local_58 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(local_58 + 1)" (( "(") (binary_expression "local_58 + 1" (identifier "local_58") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "puVar6 = puVar6 + (int)local_58 + 1;" (assignment_expression "puVar6 = puVar6 + (int)local_58 + 1" (identifier "puVar6") (= "=") (binary_expression "puVar6 + (int)local_58 + 1" (binary_expression "puVar6 + (int)local_58" (identifier "puVar6") (+ "+") (cast_expression "(int)local_58" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_58"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar6 < local_30)" (( "(") (binary_expression "puVar6 < local_30" (identifier "puVar6") (< "<") (identifier "local_30")) () ")")) (; ";")) (labeled_statement "LAB_0001d470:\n    local_30 = (undefined *)((int)local_48 - (int)local_5c);" (statement_identifier "LAB_0001d470") (: ":") (expression_statement "local_30 = (undefined *)((int)local_48 - (int)local_5c);" (assignment_expression "local_30 = (undefined *)((int)local_48 - (int)local_5c)" (identifier "local_30") (= "=") (cast_expression "(undefined *)((int)local_48 - (int)local_5c)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_48 - (int)local_5c)" (( "(") (binary_expression "(int)local_48 - (int)local_5c" (cast_expression "(int)local_48" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_48")) (- "-") (cast_expression "(int)local_5c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_5c"))) () ")")))) (; ";"))) (expression_statement "ppbVar15 = ppbVar14;" (assignment_expression "ppbVar15 = ppbVar14" (identifier "ppbVar15") (= "=") (identifier "ppbVar14")) (; ";")) (} "}")) (else_clause "else {\n    bVar1 = param_2[(int)(puVar6 + -1)];\n    puVar17 = puVar6;\n    if (bVar1 == 0x40) {\nLAB_0001d729:\n      local_6c = param_2 + (int)puVar17;\n    }\n    else {\n      if ((int)param_3 < 0xb) {\n        do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);\n        goto LAB_0001d729;\n      }\n      puVar17 = local_30;\n      for (local_30 = puVar6 + -2; local_30 != (undefined *)0x0; local_30 = local_30 + -1) {\n        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;\n        puVar17 = local_30;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar17 = puVar6 + 1;\n      local_30 = puVar6;\n    }\n    local_24 = 0;\n    if ((undefined *)0x7f00 < puVar17) {\n      local_5c = (ushort **)__gmp_tmp_reentrant_alloc();\n      local_38 = (ushort **)*local_34;\n      goto LAB_0001d3c5;\n    }\n    iVar13 = -((uint)(puVar17 + 0x1b) & 0xfffffff0);\n    ppbVar14 = (byte **)((int)&local_6c + iVar13);\n    ppbVar15 = (byte **)((int)&local_6c + iVar13);\n    local_5c = (ushort **)((int)&local_60 + iVar13);\n    if (local_30 != (undefined *)0x0) goto LAB_0001d3c5;\n    local_50 = (ushort **)0x0;\n    local_48 = local_5c;\n  }" (else "else") (compound_statement "{\n    bVar1 = param_2[(int)(puVar6 + -1)];\n    puVar17 = puVar6;\n    if (bVar1 == 0x40) {\nLAB_0001d729:\n      local_6c = param_2 + (int)puVar17;\n    }\n    else {\n      if ((int)param_3 < 0xb) {\n        do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);\n        goto LAB_0001d729;\n      }\n      puVar17 = local_30;\n      for (local_30 = puVar6 + -2; local_30 != (undefined *)0x0; local_30 = local_30 + -1) {\n        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;\n        puVar17 = local_30;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar17 = puVar6 + 1;\n      local_30 = puVar6;\n    }\n    local_24 = 0;\n    if ((undefined *)0x7f00 < puVar17) {\n      local_5c = (ushort **)__gmp_tmp_reentrant_alloc();\n      local_38 = (ushort **)*local_34;\n      goto LAB_0001d3c5;\n    }\n    iVar13 = -((uint)(puVar17 + 0x1b) & 0xfffffff0);\n    ppbVar14 = (byte **)((int)&local_6c + iVar13);\n    ppbVar15 = (byte **)((int)&local_6c + iVar13);\n    local_5c = (ushort **)((int)&local_60 + iVar13);\n    if (local_30 != (undefined *)0x0) goto LAB_0001d3c5;\n    local_50 = (ushort **)0x0;\n    local_48 = local_5c;\n  }" ({ "{") (expression_statement "bVar1 = param_2[(int)(puVar6 + -1)];" (assignment_expression "bVar1 = param_2[(int)(puVar6 + -1)]" (identifier "bVar1") (= "=") (subscript_expression "param_2[(int)(puVar6 + -1)]" (identifier "param_2") ([ "[") (cast_expression "(int)(puVar6 + -1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar6 + -1)" (( "(") (binary_expression "puVar6 + -1" (identifier "puVar6") (+ "+") (number_literal "-1")) () ")"))) (] "]"))) (; ";")) (expression_statement "puVar17 = puVar6;" (assignment_expression "puVar17 = puVar6" (identifier "puVar17") (= "=") (identifier "puVar6")) (; ";")) (if_statement "if (bVar1 == 0x40) {\nLAB_0001d729:\n      local_6c = param_2 + (int)puVar17;\n    }\n    else {\n      if ((int)param_3 < 0xb) {\n        do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);\n        goto LAB_0001d729;\n      }\n      puVar17 = local_30;\n      for (local_30 = puVar6 + -2; local_30 != (undefined *)0x0; local_30 = local_30 + -1) {\n        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;\n        puVar17 = local_30;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar17 = puVar6 + 1;\n      local_30 = puVar6;\n    }" (if "if") (parenthesized_expression "(bVar1 == 0x40)" (( "(") (binary_expression "bVar1 == 0x40" (identifier "bVar1") (== "==") (number_literal "0x40")) () ")")) (compound_statement "{\nLAB_0001d729:\n      local_6c = param_2 + (int)puVar17;\n    }" ({ "{") (labeled_statement "LAB_0001d729:\n      local_6c = param_2 + (int)puVar17;" (statement_identifier "LAB_0001d729") (: ":") (expression_statement "local_6c = param_2 + (int)puVar17;" (assignment_expression "local_6c = param_2 + (int)puVar17" (identifier "local_6c") (= "=") (binary_expression "param_2 + (int)puVar17" (identifier "param_2") (+ "+") (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")))) (; ";"))) (} "}")) (else_clause "else {\n      if ((int)param_3 < 0xb) {\n        do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);\n        goto LAB_0001d729;\n      }\n      puVar17 = local_30;\n      for (local_30 = puVar6 + -2; local_30 != (undefined *)0x0; local_30 = local_30 + -1) {\n        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;\n        puVar17 = local_30;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar17 = puVar6 + 1;\n      local_30 = puVar6;\n    }" (else "else") (compound_statement "{\n      if ((int)param_3 < 0xb) {\n        do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);\n        goto LAB_0001d729;\n      }\n      puVar17 = local_30;\n      for (local_30 = puVar6 + -2; local_30 != (undefined *)0x0; local_30 = local_30 + -1) {\n        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;\n        puVar17 = local_30;\n      }\nLAB_0001d38c:\n      local_6c = (byte *)0x0;\n      puVar17 = puVar6 + 1;\n      local_30 = puVar6;\n    }" ({ "{") (if_statement "if ((int)param_3 < 0xb) {\n        do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);\n        goto LAB_0001d729;\n      }" (if "if") (parenthesized_expression "((int)param_3 < 0xb)" (( "(") (binary_expression "(int)param_3 < 0xb" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (< "<") (number_literal "0xb")) () ")")) (compound_statement "{\n        do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);\n        goto LAB_0001d729;\n      }" ({ "{") (do_statement "do {\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        } while (bVar1 != 0x40);" (do "do") (compound_statement "{\n          puVar9 = local_30;\n          if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }\n          local_30 = puVar9 + -1;\n          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;\n          bVar1 = param_2[(int)(puVar9 + -1)];\n          puVar17 = puVar9;\n        }" ({ "{") (expression_statement "puVar9 = local_30;" (assignment_expression "puVar9 = local_30" (identifier "puVar9") (= "=") (identifier "local_30")) (; ";")) (if_statement "if ((bVar1 & 0xdf) == 0x45) {\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }" (if "if") (parenthesized_expression "((bVar1 & 0xdf) == 0x45)" (( "(") (binary_expression "(bVar1 & 0xdf) == 0x45" (parenthesized_expression "(bVar1 & 0xdf)" (( "(") (binary_expression "bVar1 & 0xdf" (identifier "bVar1") (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x45")) () ")")) (compound_statement "{\n            puVar17 = puVar9 + 1;\n            local_30 = puVar9;\n            break;\n          }" ({ "{") (expression_statement "puVar17 = puVar9 + 1;" (assignment_expression "puVar17 = puVar9 + 1" (identifier "puVar17") (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_30 = puVar9;" (assignment_expression "local_30 = puVar9" (identifier "local_30") (= "=") (identifier "puVar9")) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "local_30 = puVar9 + -1;" (assignment_expression "local_30 = puVar9 + -1" (identifier "local_30") (= "=") (binary_expression "puVar9 + -1" (identifier "puVar9") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (local_30 == (undefined *)0x0) goto LAB_0001d38c;" (if "if") (parenthesized_expression "(local_30 == (undefined *)0x0)" (( "(") (binary_expression "local_30 == (undefined *)0x0" (identifier "local_30") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001d38c;" (goto "goto") (statement_identifier "LAB_0001d38c") (; ";"))) (expression_statement "bVar1 = param_2[(int)(puVar9 + -1)];" (assignment_expression "bVar1 = param_2[(int)(puVar9 + -1)]" (identifier "bVar1") (= "=") (subscript_expression "param_2[(int)(puVar9 + -1)]" (identifier "param_2") ([ "[") (cast_expression "(int)(puVar9 + -1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar9 + -1)" (( "(") (binary_expression "puVar9 + -1" (identifier "puVar9") (+ "+") (number_literal "-1")) () ")"))) (] "]"))) (; ";")) (expression_statement "puVar17 = puVar9;" (assignment_expression "puVar17 = puVar9" (identifier "puVar17") (= "=") (identifier "puVar9")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar1 != 0x40)" (( "(") (binary_expression "bVar1 != 0x40" (identifier "bVar1") (!= "!=") (number_literal "0x40")) () ")")) (; ";")) (goto_statement "goto LAB_0001d729;" (goto "goto") (statement_identifier "LAB_0001d729") (; ";")) (} "}"))) (expression_statement "puVar17 = local_30;" (assignment_expression "puVar17 = local_30" (identifier "puVar17") (= "=") (identifier "local_30")) (; ";")) (for_statement "for (local_30 = puVar6 + -2; local_30 != (undefined *)0x0; local_30 = local_30 + -1) {\n        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;\n        puVar17 = local_30;\n      }" (for "for") (( "(") (assignment_expression "local_30 = puVar6 + -2" (identifier "local_30") (= "=") (binary_expression "puVar6 + -2" (identifier "puVar6") (+ "+") (number_literal "-2"))) (; ";") (binary_expression "local_30 != (undefined *)0x0" (identifier "local_30") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "local_30 = local_30 + -1" (identifier "local_30") (= "=") (binary_expression "local_30 + -1" (identifier "local_30") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;\n        puVar17 = local_30;\n      }" ({ "{") (if_statement "if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;" (if "if") (parenthesized_expression "(param_2[(int)(puVar17 + -1)] == 0x40)" (( "(") (binary_expression "param_2[(int)(puVar17 + -1)] == 0x40" (subscript_expression "param_2[(int)(puVar17 + -1)]" (identifier "param_2") ([ "[") (cast_expression "(int)(puVar17 + -1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar17 + -1)" (( "(") (binary_expression "puVar17 + -1" (identifier "puVar17") (+ "+") (number_literal "-1")) () ")"))) (] "]")) (== "==") (number_literal "0x40")) () ")")) (goto_statement "goto LAB_0001d729;" (goto "goto") (statement_identifier "LAB_0001d729") (; ";"))) (expression_statement "puVar17 = local_30;" (assignment_expression "puVar17 = local_30" (identifier "puVar17") (= "=") (identifier "local_30")) (; ";")) (} "}"))) (labeled_statement "LAB_0001d38c:\n      local_6c = (byte *)0x0;" (statement_identifier "LAB_0001d38c") (: ":") (expression_statement "local_6c = (byte *)0x0;" (assignment_expression "local_6c = (byte *)0x0" (identifier "local_6c") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "puVar17 = puVar6 + 1;" (assignment_expression "puVar17 = puVar6 + 1" (identifier "puVar17") (= "=") (binary_expression "puVar6 + 1" (identifier "puVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_30 = puVar6;" (assignment_expression "local_30 = puVar6" (identifier "local_30") (= "=") (identifier "puVar6")) (; ";")) (} "}")))) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((undefined *)0x7f00 < puVar17) {\n      local_5c = (ushort **)__gmp_tmp_reentrant_alloc();\n      local_38 = (ushort **)*local_34;\n      goto LAB_0001d3c5;\n    }" (if "if") (parenthesized_expression "((undefined *)0x7f00 < puVar17)" (( "(") (binary_expression "(undefined *)0x7f00 < puVar17" (cast_expression "(undefined *)0x7f00" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7f00")) (< "<") (identifier "puVar17")) () ")")) (compound_statement "{\n      local_5c = (ushort **)__gmp_tmp_reentrant_alloc();\n      local_38 = (ushort **)*local_34;\n      goto LAB_0001d3c5;\n    }" ({ "{") (expression_statement "local_5c = (ushort **)__gmp_tmp_reentrant_alloc();" (assignment_expression "local_5c = (ushort **)__gmp_tmp_reentrant_alloc()" (identifier "local_5c") (= "=") (cast_expression "(ushort **)__gmp_tmp_reentrant_alloc()" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "__gmp_tmp_reentrant_alloc()" (identifier "__gmp_tmp_reentrant_alloc") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "local_38 = (ushort **)*local_34;" (assignment_expression "local_38 = (ushort **)*local_34" (identifier "local_38") (= "=") (cast_expression "(ushort **)*local_34" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*local_34" (* "*") (identifier "local_34")))) (; ";")) (goto_statement "goto LAB_0001d3c5;" (goto "goto") (statement_identifier "LAB_0001d3c5") (; ";")) (} "}"))) (expression_statement "iVar13 = -((uint)(puVar17 + 0x1b) & 0xfffffff0);" (assignment_expression "iVar13 = -((uint)(puVar17 + 0x1b) & 0xfffffff0)" (identifier "iVar13") (= "=") (unary_expression "-((uint)(puVar17 + 0x1b) & 0xfffffff0)" (- "-") (parenthesized_expression "((uint)(puVar17 + 0x1b) & 0xfffffff0)" (( "(") (binary_expression "(uint)(puVar17 + 0x1b) & 0xfffffff0" (call_expression "(uint)(puVar17 + 0x1b)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar17 + 0x1b)" (( "(") (binary_expression "puVar17 + 0x1b" (identifier "puVar17") (+ "+") (number_literal "0x1b")) () ")"))) (& "&") (number_literal "0xfffffff0")) () ")")))) (; ";")) (expression_statement "ppbVar14 = (byte **)((int)&local_6c + iVar13);" (assignment_expression "ppbVar14 = (byte **)((int)&local_6c + iVar13)" (identifier "ppbVar14") (= "=") (cast_expression "(byte **)((int)&local_6c + iVar13)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)&local_6c + iVar13)" (( "(") (binary_expression "(int)&local_6c + iVar13" (cast_expression "(int)&local_6c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&local_6c" (& "&") (identifier "local_6c"))) (+ "+") (identifier "iVar13")) () ")")))) (; ";")) (expression_statement "ppbVar15 = (byte **)((int)&local_6c + iVar13);" (assignment_expression "ppbVar15 = (byte **)((int)&local_6c + iVar13)" (identifier "ppbVar15") (= "=") (cast_expression "(byte **)((int)&local_6c + iVar13)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)&local_6c + iVar13)" (( "(") (binary_expression "(int)&local_6c + iVar13" (cast_expression "(int)&local_6c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&local_6c" (& "&") (identifier "local_6c"))) (+ "+") (identifier "iVar13")) () ")")))) (; ";")) (expression_statement "local_5c = (ushort **)((int)&local_60 + iVar13);" (assignment_expression "local_5c = (ushort **)((int)&local_60 + iVar13)" (identifier "local_5c") (= "=") (cast_expression "(ushort **)((int)&local_60 + iVar13)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)&local_60 + iVar13)" (( "(") (binary_expression "(int)&local_60 + iVar13" (cast_expression "(int)&local_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&local_60" (& "&") (identifier "local_60"))) (+ "+") (identifier "iVar13")) () ")")))) (; ";")) (if_statement "if (local_30 != (undefined *)0x0) goto LAB_0001d3c5;" (if "if") (parenthesized_expression "(local_30 != (undefined *)0x0)" (( "(") (binary_expression "local_30 != (undefined *)0x0" (identifier "local_30") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001d3c5;" (goto "goto") (statement_identifier "LAB_0001d3c5") (; ";"))) (expression_statement "local_50 = (ushort **)0x0;" (assignment_expression "local_50 = (ushort **)0x0" (identifier "local_50") (= "=") (cast_expression "(ushort **)0x0" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_48 = local_5c;" (assignment_expression "local_48 = local_5c" (identifier "local_48") (= "=") (identifier "local_5c")) (; ";")) (} "}")))) (expression_statement "ppuVar11 = (ushort **)*local_60;" (assignment_expression "ppuVar11 = (ushort **)*local_60" (identifier "ppuVar11") (= "=") (cast_expression "(ushort **)*local_60" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*local_60" (* "*") (identifier "local_60")))) (; ";")) (expression_statement "uVar12 = (uint)((ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8) * ZEXT48(local_30)\n                 >> 0x20) & 0x1ffffffc;" (assignment_expression "uVar12 = (uint)((ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8) * ZEXT48(local_30)\n                 >> 0x20) & 0x1ffffffc" (identifier "uVar12") (= "=") (binary_expression "(uint)((ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8) * ZEXT48(local_30)\n                 >> 0x20) & 0x1ffffffc" (call_expression "(uint)((ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8) * ZEXT48(local_30)\n                 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8) * ZEXT48(local_30)\n                 >> 0x20)" (( "(") (binary_expression "(ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8) * ZEXT48(local_30)\n                 >> 0x20" (binary_expression "(ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8) * ZEXT48(local_30)" (binary_expression "(ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (* "*") (cast_expression "(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_44[-0x56] + (int)param_3 * 0x14 + 8)" (( "(") (binary_expression "local_44[-0x56] + (int)param_3 * 0x14 + 8" (binary_expression "local_44[-0x56] + (int)param_3 * 0x14" (subscript_expression "local_44[-0x56]" (identifier "local_44") ([ "[") (number_literal "-0x56") (] "]")) (+ "+") (binary_expression "(int)param_3 * 0x14" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (* "*") (number_literal "0x14"))) (+ "+") (number_literal "8")) () ")")))) (* "*") (call_expression "ZEXT48(local_30)" (identifier "ZEXT48") (argument_list "(local_30)" (( "(") (identifier "local_30") () ")")))) (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (number_literal "0x1ffffffc"))) (; ";")) (expression_statement "uVar16 = uVar12 + 8;" (assignment_expression "uVar16 = uVar12 + 8" (identifier "uVar16") (= "=") (binary_expression "uVar12 + 8" (identifier "uVar12") (+ "+") (number_literal "8"))) (; ";")) (if_statement "if (uVar16 < 0x7f01) {\n    iVar13 = -(uVar12 + 0x23 & 0xfffffff0);\n    local_40 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n    ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n  }\n  else {\n    *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n    *(int **)((int)ppbVar15 + -0x10) = &local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dabe;\n    local_40 = (ushort **)__gmp_tmp_reentrant_alloc();\n  }" (if "if") (parenthesized_expression "(uVar16 < 0x7f01)" (( "(") (binary_expression "uVar16 < 0x7f01" (identifier "uVar16") (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n    iVar13 = -(uVar12 + 0x23 & 0xfffffff0);\n    local_40 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n    ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n  }" ({ "{") (expression_statement "iVar13 = -(uVar12 + 0x23 & 0xfffffff0);" (assignment_expression "iVar13 = -(uVar12 + 0x23 & 0xfffffff0)" (identifier "iVar13") (= "=") (unary_expression "-(uVar12 + 0x23 & 0xfffffff0)" (- "-") (parenthesized_expression "(uVar12 + 0x23 & 0xfffffff0)" (( "(") (binary_expression "uVar12 + 0x23 & 0xfffffff0" (binary_expression "uVar12 + 0x23" (identifier "uVar12") (+ "+") (number_literal "0x23")) (& "&") (number_literal "0xfffffff0")) () ")")))) (; ";")) (expression_statement "local_40 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);" (assignment_expression "local_40 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0)" (identifier "local_40") (= "=") (cast_expression "(ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0)" (( "(") (binary_expression "(uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0" (call_expression "(uint)((int)ppbVar15 + iVar13 + 0xf)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)ppbVar15 + iVar13 + 0xf)" (( "(") (binary_expression "(int)ppbVar15 + iVar13 + 0xf" (binary_expression "(int)ppbVar15 + iVar13" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (identifier "iVar13")) (+ "+") (number_literal "0xf")) () ")"))) (& "&") (number_literal "0xfffffff0")) () ")")))) (; ";")) (expression_statement "ppbVar15 = (byte **)((int)ppbVar15 + iVar13);" (assignment_expression "ppbVar15 = (byte **)((int)ppbVar15 + iVar13)" (identifier "ppbVar15") (= "=") (cast_expression "(byte **)((int)ppbVar15 + iVar13)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppbVar15 + iVar13)" (( "(") (binary_expression "(int)ppbVar15 + iVar13" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (identifier "iVar13")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n    *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n    *(int **)((int)ppbVar15 + -0x10) = &local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dabe;\n    local_40 = (ushort **)__gmp_tmp_reentrant_alloc();\n  }" (else "else") (compound_statement "{\n    *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n    *(int **)((int)ppbVar15 + -0x10) = &local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dabe;\n    local_40 = (ushort **)__gmp_tmp_reentrant_alloc();\n  }" ({ "{") (expression_statement "*(uint *)((int)ppbVar15 + -0xc) = uVar16;" (assignment_expression "*(uint *)((int)ppbVar15 + -0xc) = uVar16" (pointer_expression "*(uint *)((int)ppbVar15 + -0xc)" (* "*") (cast_expression "(uint *)((int)ppbVar15 + -0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0xc)" (( "(") (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "uVar16")) (; ";")) (expression_statement "*(int **)((int)ppbVar15 + -0x10) = &local_24;" (assignment_expression "*(int **)((int)ppbVar15 + -0x10) = &local_24" (pointer_expression "*(int **)((int)ppbVar15 + -0x10)" (* "*") (cast_expression "(int **)((int)ppbVar15 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x10)" (( "(") (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "&local_24" (& "&") (identifier "local_24"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dabe;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dabe" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x14)" (( "(") (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1dabe")) (; ";")) (expression_statement "local_40 = (ushort **)__gmp_tmp_reentrant_alloc();" (assignment_expression "local_40 = (ushort **)__gmp_tmp_reentrant_alloc()" (identifier "local_40") (= "=") (cast_expression "(ushort **)__gmp_tmp_reentrant_alloc()" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "__gmp_tmp_reentrant_alloc()" (identifier "__gmp_tmp_reentrant_alloc") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}")))) (expression_statement "*(ushort **)((int)ppbVar15 + -4) = param_3;" (assignment_expression "*(ushort **)((int)ppbVar15 + -4) = param_3" (pointer_expression "*(ushort **)((int)ppbVar15 + -4)" (* "*") (cast_expression "(ushort **)((int)ppbVar15 + -4)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppbVar15 + -4)" (( "(") (binary_expression "(int)ppbVar15 + -4" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*(undefined **)((int)ppbVar15 + -8) = local_30;" (assignment_expression "*(undefined **)((int)ppbVar15 + -8) = local_30" (pointer_expression "*(undefined **)((int)ppbVar15 + -8)" (* "*") (cast_expression "(undefined **)((int)ppbVar15 + -8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppbVar15 + -8)" (( "(") (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_30")) (; ";")) (expression_statement "*(ushort ***)((int)ppbVar15 + -0xc) = local_5c;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0xc) = local_5c" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0xc)" (* "*") (cast_expression "(ushort ***)((int)ppbVar15 + -0xc)" (( "(") (type_descriptor "ushort ***" (type_identifier "ushort") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppbVar15 + -0xc)" (( "(") (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_5c")) (; ";")) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x10) = local_40;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x10) = local_40" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x10)" (* "*") (cast_expression "(ushort ***)((int)ppbVar15 + -0x10)" (( "(") (type_descriptor "ushort ***" (type_identifier "ushort") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x10)" (( "(") (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_40")) (; ";")) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d4cf;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d4cf" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x14)" (( "(") (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1d4cf")) (; ";")) (expression_statement "puVar6 = (undefined *)__gmpn_set_str();" (assignment_expression "puVar6 = (undefined *)__gmpn_set_str()" (identifier "puVar6") (= "=") (cast_expression "(undefined *)__gmpn_set_str()" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "__gmpn_set_str()" (identifier "__gmpn_set_str") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "ppuVar4 = local_44;" (assignment_expression "ppuVar4 = local_44" (identifier "ppuVar4") (= "=") (identifier "local_44")) (; ";")) (expression_statement "puVar3 = local_60;" (assignment_expression "puVar3 = local_60" (identifier "puVar3") (= "=") (identifier "local_60")) (; ";")) (if_statement "if (puVar6 == (undefined *)0x0) {\n    local_60[1] = 0;\n    local_60[2] = 0;\n    if (local_24 != 0) {\n      local_30 = puVar6;\n      *(int *)((int)ppbVar15 + -0x10) = local_24;\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dadb;\n      __gmp_tmp_reentrant_free();\n      puVar6 = local_30;\n      goto LAB_0001d775;\n    }\nLAB_0001d7d0:\n    puVar6 = (undefined *)0x0;\n  }\n  else {\n    local_3c = (undefined *)((int)ppuVar11 + 1);\n    if ((int)local_3c < (int)puVar6) {\n      local_5c = (ushort **)(puVar6 + -(int)local_3c);\n      local_40 = local_40 + (int)local_5c;\n      local_58 = local_3c;\n      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;\nLAB_0001d4fd:\n      bVar1 = *local_6c;\n      local_30 = (undefined *)(uint)(bVar1 == 0x2d);\n      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);\n      uVar16 = (uint)(byte)local_54[*pbVar5];\n      ppbVar14 = ppbVar15;\n      if ((int)local_68 <= (int)uVar16) {\nLAB_0001d756:\n        ppbVar15 = ppbVar14;\n        if (local_24 != 0) {\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }\n        goto LAB_0001d770;\n      }\n      bVar1 = local_54[pbVar5[1]];\n      local_34 = (ushort **)(pbVar5 + 2);\n      ppuVar10 = (ushort **)(pbVar5 + 2);\n      while ((int)(uint)bVar1 < (int)local_68) {\n        uVar16 = uVar16 * (int)local_68 + (uint)bVar1;\n        bVar1 = local_54[*(byte *)ppuVar10];\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar10 = (ushort **)((int)ppuVar10 + 1);\n        local_38 = ppuVar11;\n      }\n      local_54 = local_30 + (uVar16 ^ (uint)-(int)local_30);\n      if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }\n      if (local_54 == (undefined *)0x0) goto LAB_0001d804;\n      local_68 = (ushort *)((int)ppuVar11 + 2);\n      uVar16 = (int)local_68 * 8;\n      if (uVar16 < 0x7f01) {\n        uVar16 = uVar16 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);\n        ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);\n        ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;\n        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;\n        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();\n      }\n      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));\n      *local_50 = param_3;\n      uVar16 = 0x1f;\n      if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n        }\n      }\n      uVar16 = 0x1e - (uVar16 ^ 0x1f);\n      if (uVar16 == 0xffffffff) {\n        iVar13 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar10 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar7 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }\n      puVar17 = local_4c;\n      if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }\n      *(undefined **)((int)ppbVar15 + -8) = puVar6;\n      *(int *)((int)ppbVar15 + -0xc) = (int)ppuVar10 + iVar13;\n      *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d87c;\n      (*pcVar2)();\n      if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }\n        ppuVar11 = local_50;\n        puVar8 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar8) {\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }\n        local_34 = (ushort **)((int)local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }\n        puVar17 = local_58;\n        *(undefined **)((int)ppbVar15 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar15 + -0x14) = puVar17;\n        puVar9 = local_3c;\n        ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar15 + -0x18) = local_40;\n        local_38 = ppuVar11;\n        *(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;\n        *(uint *)((int)ppbVar15 + -0x20) = uVar16;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;\n        iVar13 = __gmpn_divrem();\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));\n        uVar12 = uVar16;\n        puVar17 = local_3c;\n        if (iVar13 != 0) {\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }\n      }\n      else {\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        local_38 = (ushort **)((int)local_34 * 4);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }\n        *(uint *)((int)ppbVar15 + -0x20) = uVar12;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;\n        __gmpn_mul();\n        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));\n        if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }\n      }\n      local_3c = puVar17;\n      puVar9 = local_3c;\n      puVar3 = local_60;\n      *(undefined **)((int)ppbVar15 + -8) = local_3c;\n      *(uint *)((int)ppbVar15 + -0xc) = uVar12;\n      puVar17 = local_4c;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d91c;\n      (*pcVar2)();\n      puVar17 = (undefined *)-(int)puVar9;\n      if (local_64 == 0) {\n        puVar17 = puVar9;\n      }\n      local_60[2] = (uint)puVar6;\n      local_60[1] = (uint)puVar17;\n      if (local_24 == 0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }\n    }\n    else {\n      local_5c = (ushort **)0x0;\n      local_58 = puVar6;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar17 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar15 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar17;\n      if (local_64 == 0) {\n        puVar6 = puVar17;\n      }\n      puVar3[2] = (uint)local_30;\n      puVar3[1] = (uint)puVar6;\n      if (local_24 == 0) goto LAB_0001d7d0;\n    }\n    *(int *)((int)ppbVar15 + -0x10) = local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d84e;\n    __gmp_tmp_reentrant_free();\n    puVar6 = (undefined *)0x0;\n  }" (if "if") (parenthesized_expression "(puVar6 == (undefined *)0x0)" (( "(") (binary_expression "puVar6 == (undefined *)0x0" (identifier "puVar6") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    local_60[1] = 0;\n    local_60[2] = 0;\n    if (local_24 != 0) {\n      local_30 = puVar6;\n      *(int *)((int)ppbVar15 + -0x10) = local_24;\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dadb;\n      __gmp_tmp_reentrant_free();\n      puVar6 = local_30;\n      goto LAB_0001d775;\n    }\nLAB_0001d7d0:\n    puVar6 = (undefined *)0x0;\n  }" ({ "{") (expression_statement "local_60[1] = 0;" (assignment_expression "local_60[1] = 0" (subscript_expression "local_60[1]" (identifier "local_60") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_60[2] = 0;" (assignment_expression "local_60[2] = 0" (subscript_expression "local_60[2]" (identifier "local_60") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_24 != 0) {\n      local_30 = puVar6;\n      *(int *)((int)ppbVar15 + -0x10) = local_24;\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dadb;\n      __gmp_tmp_reentrant_free();\n      puVar6 = local_30;\n      goto LAB_0001d775;\n    }" (if "if") (parenthesized_expression "(local_24 != 0)" (( "(") (binary_expression "local_24 != 0" (identifier "local_24") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      local_30 = puVar6;\n      *(int *)((int)ppbVar15 + -0x10) = local_24;\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dadb;\n      __gmp_tmp_reentrant_free();\n      puVar6 = local_30;\n      goto LAB_0001d775;\n    }" ({ "{") (expression_statement "local_30 = puVar6;" (assignment_expression "local_30 = puVar6" (identifier "local_30") (= "=") (identifier "puVar6")) (; ";")) (expression_statement "*(int *)((int)ppbVar15 + -0x10) = local_24;" (assignment_expression "*(int *)((int)ppbVar15 + -0x10) = local_24" (pointer_expression "*(int *)((int)ppbVar15 + -0x10)" (* "*") (cast_expression "(int *)((int)ppbVar15 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x10)" (( "(") (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_24")) (; ";")) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dadb;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dadb" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x14)" (( "(") (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1dadb")) (; ";")) (expression_statement "__gmp_tmp_reentrant_free();" (call_expression "__gmp_tmp_reentrant_free()" (identifier "__gmp_tmp_reentrant_free") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar6 = local_30;" (assignment_expression "puVar6 = local_30" (identifier "puVar6") (= "=") (identifier "local_30")) (; ";")) (goto_statement "goto LAB_0001d775;" (goto "goto") (statement_identifier "LAB_0001d775") (; ";")) (} "}"))) (labeled_statement "LAB_0001d7d0:\n    puVar6 = (undefined *)0x0;" (statement_identifier "LAB_0001d7d0") (: ":") (expression_statement "puVar6 = (undefined *)0x0;" (assignment_expression "puVar6 = (undefined *)0x0" (identifier "puVar6") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (} "}")) (else_clause "else {\n    local_3c = (undefined *)((int)ppuVar11 + 1);\n    if ((int)local_3c < (int)puVar6) {\n      local_5c = (ushort **)(puVar6 + -(int)local_3c);\n      local_40 = local_40 + (int)local_5c;\n      local_58 = local_3c;\n      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;\nLAB_0001d4fd:\n      bVar1 = *local_6c;\n      local_30 = (undefined *)(uint)(bVar1 == 0x2d);\n      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);\n      uVar16 = (uint)(byte)local_54[*pbVar5];\n      ppbVar14 = ppbVar15;\n      if ((int)local_68 <= (int)uVar16) {\nLAB_0001d756:\n        ppbVar15 = ppbVar14;\n        if (local_24 != 0) {\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }\n        goto LAB_0001d770;\n      }\n      bVar1 = local_54[pbVar5[1]];\n      local_34 = (ushort **)(pbVar5 + 2);\n      ppuVar10 = (ushort **)(pbVar5 + 2);\n      while ((int)(uint)bVar1 < (int)local_68) {\n        uVar16 = uVar16 * (int)local_68 + (uint)bVar1;\n        bVar1 = local_54[*(byte *)ppuVar10];\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar10 = (ushort **)((int)ppuVar10 + 1);\n        local_38 = ppuVar11;\n      }\n      local_54 = local_30 + (uVar16 ^ (uint)-(int)local_30);\n      if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }\n      if (local_54 == (undefined *)0x0) goto LAB_0001d804;\n      local_68 = (ushort *)((int)ppuVar11 + 2);\n      uVar16 = (int)local_68 * 8;\n      if (uVar16 < 0x7f01) {\n        uVar16 = uVar16 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);\n        ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);\n        ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;\n        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;\n        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();\n      }\n      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));\n      *local_50 = param_3;\n      uVar16 = 0x1f;\n      if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n        }\n      }\n      uVar16 = 0x1e - (uVar16 ^ 0x1f);\n      if (uVar16 == 0xffffffff) {\n        iVar13 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar10 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar7 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }\n      puVar17 = local_4c;\n      if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }\n      *(undefined **)((int)ppbVar15 + -8) = puVar6;\n      *(int *)((int)ppbVar15 + -0xc) = (int)ppuVar10 + iVar13;\n      *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d87c;\n      (*pcVar2)();\n      if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }\n        ppuVar11 = local_50;\n        puVar8 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar8) {\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }\n        local_34 = (ushort **)((int)local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }\n        puVar17 = local_58;\n        *(undefined **)((int)ppbVar15 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar15 + -0x14) = puVar17;\n        puVar9 = local_3c;\n        ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar15 + -0x18) = local_40;\n        local_38 = ppuVar11;\n        *(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;\n        *(uint *)((int)ppbVar15 + -0x20) = uVar16;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;\n        iVar13 = __gmpn_divrem();\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));\n        uVar12 = uVar16;\n        puVar17 = local_3c;\n        if (iVar13 != 0) {\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }\n      }\n      else {\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        local_38 = (ushort **)((int)local_34 * 4);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }\n        *(uint *)((int)ppbVar15 + -0x20) = uVar12;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;\n        __gmpn_mul();\n        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));\n        if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }\n      }\n      local_3c = puVar17;\n      puVar9 = local_3c;\n      puVar3 = local_60;\n      *(undefined **)((int)ppbVar15 + -8) = local_3c;\n      *(uint *)((int)ppbVar15 + -0xc) = uVar12;\n      puVar17 = local_4c;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d91c;\n      (*pcVar2)();\n      puVar17 = (undefined *)-(int)puVar9;\n      if (local_64 == 0) {\n        puVar17 = puVar9;\n      }\n      local_60[2] = (uint)puVar6;\n      local_60[1] = (uint)puVar17;\n      if (local_24 == 0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }\n    }\n    else {\n      local_5c = (ushort **)0x0;\n      local_58 = puVar6;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar17 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar15 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar17;\n      if (local_64 == 0) {\n        puVar6 = puVar17;\n      }\n      puVar3[2] = (uint)local_30;\n      puVar3[1] = (uint)puVar6;\n      if (local_24 == 0) goto LAB_0001d7d0;\n    }\n    *(int *)((int)ppbVar15 + -0x10) = local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d84e;\n    __gmp_tmp_reentrant_free();\n    puVar6 = (undefined *)0x0;\n  }" (else "else") (compound_statement "{\n    local_3c = (undefined *)((int)ppuVar11 + 1);\n    if ((int)local_3c < (int)puVar6) {\n      local_5c = (ushort **)(puVar6 + -(int)local_3c);\n      local_40 = local_40 + (int)local_5c;\n      local_58 = local_3c;\n      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;\nLAB_0001d4fd:\n      bVar1 = *local_6c;\n      local_30 = (undefined *)(uint)(bVar1 == 0x2d);\n      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);\n      uVar16 = (uint)(byte)local_54[*pbVar5];\n      ppbVar14 = ppbVar15;\n      if ((int)local_68 <= (int)uVar16) {\nLAB_0001d756:\n        ppbVar15 = ppbVar14;\n        if (local_24 != 0) {\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }\n        goto LAB_0001d770;\n      }\n      bVar1 = local_54[pbVar5[1]];\n      local_34 = (ushort **)(pbVar5 + 2);\n      ppuVar10 = (ushort **)(pbVar5 + 2);\n      while ((int)(uint)bVar1 < (int)local_68) {\n        uVar16 = uVar16 * (int)local_68 + (uint)bVar1;\n        bVar1 = local_54[*(byte *)ppuVar10];\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar10 = (ushort **)((int)ppuVar10 + 1);\n        local_38 = ppuVar11;\n      }\n      local_54 = local_30 + (uVar16 ^ (uint)-(int)local_30);\n      if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }\n      if (local_54 == (undefined *)0x0) goto LAB_0001d804;\n      local_68 = (ushort *)((int)ppuVar11 + 2);\n      uVar16 = (int)local_68 * 8;\n      if (uVar16 < 0x7f01) {\n        uVar16 = uVar16 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);\n        ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);\n        ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;\n        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;\n        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();\n      }\n      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));\n      *local_50 = param_3;\n      uVar16 = 0x1f;\n      if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n        }\n      }\n      uVar16 = 0x1e - (uVar16 ^ 0x1f);\n      if (uVar16 == 0xffffffff) {\n        iVar13 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar10 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar7 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }\n      puVar17 = local_4c;\n      if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }\n      *(undefined **)((int)ppbVar15 + -8) = puVar6;\n      *(int *)((int)ppbVar15 + -0xc) = (int)ppuVar10 + iVar13;\n      *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d87c;\n      (*pcVar2)();\n      if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }\n        ppuVar11 = local_50;\n        puVar8 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar8) {\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }\n        local_34 = (ushort **)((int)local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }\n        puVar17 = local_58;\n        *(undefined **)((int)ppbVar15 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar15 + -0x14) = puVar17;\n        puVar9 = local_3c;\n        ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar15 + -0x18) = local_40;\n        local_38 = ppuVar11;\n        *(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;\n        *(uint *)((int)ppbVar15 + -0x20) = uVar16;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;\n        iVar13 = __gmpn_divrem();\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));\n        uVar12 = uVar16;\n        puVar17 = local_3c;\n        if (iVar13 != 0) {\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }\n      }\n      else {\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        local_38 = (ushort **)((int)local_34 * 4);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }\n        *(uint *)((int)ppbVar15 + -0x20) = uVar12;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;\n        __gmpn_mul();\n        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));\n        if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }\n      }\n      local_3c = puVar17;\n      puVar9 = local_3c;\n      puVar3 = local_60;\n      *(undefined **)((int)ppbVar15 + -8) = local_3c;\n      *(uint *)((int)ppbVar15 + -0xc) = uVar12;\n      puVar17 = local_4c;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d91c;\n      (*pcVar2)();\n      puVar17 = (undefined *)-(int)puVar9;\n      if (local_64 == 0) {\n        puVar17 = puVar9;\n      }\n      local_60[2] = (uint)puVar6;\n      local_60[1] = (uint)puVar17;\n      if (local_24 == 0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }\n    }\n    else {\n      local_5c = (ushort **)0x0;\n      local_58 = puVar6;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar17 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar15 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar17;\n      if (local_64 == 0) {\n        puVar6 = puVar17;\n      }\n      puVar3[2] = (uint)local_30;\n      puVar3[1] = (uint)puVar6;\n      if (local_24 == 0) goto LAB_0001d7d0;\n    }\n    *(int *)((int)ppbVar15 + -0x10) = local_24;\n    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d84e;\n    __gmp_tmp_reentrant_free();\n    puVar6 = (undefined *)0x0;\n  }" ({ "{") (expression_statement "local_3c = (undefined *)((int)ppuVar11 + 1);" (assignment_expression "local_3c = (undefined *)((int)ppuVar11 + 1)" (identifier "local_3c") (= "=") (cast_expression "(undefined *)((int)ppuVar11 + 1)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar11 + 1)" (( "(") (binary_expression "(int)ppuVar11 + 1" (cast_expression "(int)ppuVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar11")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if ((int)local_3c < (int)puVar6) {\n      local_5c = (ushort **)(puVar6 + -(int)local_3c);\n      local_40 = local_40 + (int)local_5c;\n      local_58 = local_3c;\n      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;\nLAB_0001d4fd:\n      bVar1 = *local_6c;\n      local_30 = (undefined *)(uint)(bVar1 == 0x2d);\n      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);\n      uVar16 = (uint)(byte)local_54[*pbVar5];\n      ppbVar14 = ppbVar15;\n      if ((int)local_68 <= (int)uVar16) {\nLAB_0001d756:\n        ppbVar15 = ppbVar14;\n        if (local_24 != 0) {\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }\n        goto LAB_0001d770;\n      }\n      bVar1 = local_54[pbVar5[1]];\n      local_34 = (ushort **)(pbVar5 + 2);\n      ppuVar10 = (ushort **)(pbVar5 + 2);\n      while ((int)(uint)bVar1 < (int)local_68) {\n        uVar16 = uVar16 * (int)local_68 + (uint)bVar1;\n        bVar1 = local_54[*(byte *)ppuVar10];\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar10 = (ushort **)((int)ppuVar10 + 1);\n        local_38 = ppuVar11;\n      }\n      local_54 = local_30 + (uVar16 ^ (uint)-(int)local_30);\n      if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }\n      if (local_54 == (undefined *)0x0) goto LAB_0001d804;\n      local_68 = (ushort *)((int)ppuVar11 + 2);\n      uVar16 = (int)local_68 * 8;\n      if (uVar16 < 0x7f01) {\n        uVar16 = uVar16 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);\n        ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);\n        ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;\n        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;\n        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();\n      }\n      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));\n      *local_50 = param_3;\n      uVar16 = 0x1f;\n      if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n        }\n      }\n      uVar16 = 0x1e - (uVar16 ^ 0x1f);\n      if (uVar16 == 0xffffffff) {\n        iVar13 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar10 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar7 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }\n      puVar17 = local_4c;\n      if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }\n      *(undefined **)((int)ppbVar15 + -8) = puVar6;\n      *(int *)((int)ppbVar15 + -0xc) = (int)ppuVar10 + iVar13;\n      *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d87c;\n      (*pcVar2)();\n      if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }\n        ppuVar11 = local_50;\n        puVar8 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar8) {\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }\n        local_34 = (ushort **)((int)local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }\n        puVar17 = local_58;\n        *(undefined **)((int)ppbVar15 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar15 + -0x14) = puVar17;\n        puVar9 = local_3c;\n        ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar15 + -0x18) = local_40;\n        local_38 = ppuVar11;\n        *(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;\n        *(uint *)((int)ppbVar15 + -0x20) = uVar16;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;\n        iVar13 = __gmpn_divrem();\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));\n        uVar12 = uVar16;\n        puVar17 = local_3c;\n        if (iVar13 != 0) {\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }\n      }\n      else {\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        local_38 = (ushort **)((int)local_34 * 4);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }\n        *(uint *)((int)ppbVar15 + -0x20) = uVar12;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;\n        __gmpn_mul();\n        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));\n        if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }\n      }\n      local_3c = puVar17;\n      puVar9 = local_3c;\n      puVar3 = local_60;\n      *(undefined **)((int)ppbVar15 + -8) = local_3c;\n      *(uint *)((int)ppbVar15 + -0xc) = uVar12;\n      puVar17 = local_4c;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d91c;\n      (*pcVar2)();\n      puVar17 = (undefined *)-(int)puVar9;\n      if (local_64 == 0) {\n        puVar17 = puVar9;\n      }\n      local_60[2] = (uint)puVar6;\n      local_60[1] = (uint)puVar17;\n      if (local_24 == 0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }\n    }\n    else {\n      local_5c = (ushort **)0x0;\n      local_58 = puVar6;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar17 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar15 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar17;\n      if (local_64 == 0) {\n        puVar6 = puVar17;\n      }\n      puVar3[2] = (uint)local_30;\n      puVar3[1] = (uint)puVar6;\n      if (local_24 == 0) goto LAB_0001d7d0;\n    }" (if "if") (parenthesized_expression "((int)local_3c < (int)puVar6)" (( "(") (binary_expression "(int)local_3c < (int)puVar6" (cast_expression "(int)local_3c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_3c")) (< "<") (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6"))) () ")")) (compound_statement "{\n      local_5c = (ushort **)(puVar6 + -(int)local_3c);\n      local_40 = local_40 + (int)local_5c;\n      local_58 = local_3c;\n      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;\nLAB_0001d4fd:\n      bVar1 = *local_6c;\n      local_30 = (undefined *)(uint)(bVar1 == 0x2d);\n      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);\n      uVar16 = (uint)(byte)local_54[*pbVar5];\n      ppbVar14 = ppbVar15;\n      if ((int)local_68 <= (int)uVar16) {\nLAB_0001d756:\n        ppbVar15 = ppbVar14;\n        if (local_24 != 0) {\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }\n        goto LAB_0001d770;\n      }\n      bVar1 = local_54[pbVar5[1]];\n      local_34 = (ushort **)(pbVar5 + 2);\n      ppuVar10 = (ushort **)(pbVar5 + 2);\n      while ((int)(uint)bVar1 < (int)local_68) {\n        uVar16 = uVar16 * (int)local_68 + (uint)bVar1;\n        bVar1 = local_54[*(byte *)ppuVar10];\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar10 = (ushort **)((int)ppuVar10 + 1);\n        local_38 = ppuVar11;\n      }\n      local_54 = local_30 + (uVar16 ^ (uint)-(int)local_30);\n      if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }\n      if (local_54 == (undefined *)0x0) goto LAB_0001d804;\n      local_68 = (ushort *)((int)ppuVar11 + 2);\n      uVar16 = (int)local_68 * 8;\n      if (uVar16 < 0x7f01) {\n        uVar16 = uVar16 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);\n        ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);\n        ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;\n        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;\n        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();\n      }\n      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));\n      *local_50 = param_3;\n      uVar16 = 0x1f;\n      if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n        }\n      }\n      uVar16 = 0x1e - (uVar16 ^ 0x1f);\n      if (uVar16 == 0xffffffff) {\n        iVar13 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar10 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar7 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }\n      puVar17 = local_4c;\n      if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }\n      *(undefined **)((int)ppbVar15 + -8) = puVar6;\n      *(int *)((int)ppbVar15 + -0xc) = (int)ppuVar10 + iVar13;\n      *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d87c;\n      (*pcVar2)();\n      if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }\n        ppuVar11 = local_50;\n        puVar8 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar8) {\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }\n        local_34 = (ushort **)((int)local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }\n        puVar17 = local_58;\n        *(undefined **)((int)ppbVar15 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar15 + -0x14) = puVar17;\n        puVar9 = local_3c;\n        ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar15 + -0x18) = local_40;\n        local_38 = ppuVar11;\n        *(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;\n        *(uint *)((int)ppbVar15 + -0x20) = uVar16;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;\n        iVar13 = __gmpn_divrem();\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));\n        uVar12 = uVar16;\n        puVar17 = local_3c;\n        if (iVar13 != 0) {\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }\n      }\n      else {\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        local_38 = (ushort **)((int)local_34 * 4);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }\n        *(uint *)((int)ppbVar15 + -0x20) = uVar12;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;\n        __gmpn_mul();\n        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));\n        if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }\n      }\n      local_3c = puVar17;\n      puVar9 = local_3c;\n      puVar3 = local_60;\n      *(undefined **)((int)ppbVar15 + -8) = local_3c;\n      *(uint *)((int)ppbVar15 + -0xc) = uVar12;\n      puVar17 = local_4c;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar17 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d91c;\n      (*pcVar2)();\n      puVar17 = (undefined *)-(int)puVar9;\n      if (local_64 == 0) {\n        puVar17 = puVar9;\n      }\n      local_60[2] = (uint)puVar6;\n      local_60[1] = (uint)puVar17;\n      if (local_24 == 0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }\n    }" ({ "{") (expression_statement "local_5c = (ushort **)(puVar6 + -(int)local_3c);" (assignment_expression "local_5c = (ushort **)(puVar6 + -(int)local_3c)" (identifier "local_5c") (= "=") (cast_expression "(ushort **)(puVar6 + -(int)local_3c)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar6 + -(int)local_3c)" (( "(") (binary_expression "puVar6 + -(int)local_3c" (identifier "puVar6") (+ "+") (unary_expression "-(int)local_3c" (- "-") (cast_expression "(int)local_3c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_3c")))) () ")")))) (; ";")) (expression_statement "local_40 = local_40 + (int)local_5c;" (assignment_expression "local_40 = local_40 + (int)local_5c" (identifier "local_40") (= "=") (binary_expression "local_40 + (int)local_5c" (identifier "local_40") (+ "+") (cast_expression "(int)local_5c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_5c")))) (; ";")) (expression_statement "local_58 = local_3c;" (assignment_expression "local_58 = local_3c" (identifier "local_58") (= "=") (identifier "local_3c")) (; ";")) (if_statement "if (local_6c == (byte *)0x0) goto LAB_0001d7f2;" (if "if") (parenthesized_expression "(local_6c == (byte *)0x0)" (( "(") (binary_expression "local_6c == (byte *)0x0" (identifier "local_6c") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001d7f2;" (goto "goto") (statement_identifier "LAB_0001d7f2") (; ";"))) (labeled_statement "LAB_0001d4fd:\n      bVar1 = *local_6c;" (statement_identifier "LAB_0001d4fd") (: ":") (expression_statement "bVar1 = *local_6c;" (assignment_expression "bVar1 = *local_6c" (identifier "bVar1") (= "=") (pointer_expression "*local_6c" (* "*") (identifier "local_6c"))) (; ";"))) (expression_statement "local_30 = (undefined *)(uint)(bVar1 == 0x2d);" (assignment_expression "local_30 = (undefined *)(uint)(bVar1 == 0x2d)" (identifier "local_30") (= "=") (cast_expression "(undefined *)(uint)(bVar1 == 0x2d)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(bVar1 == 0x2d)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(bVar1 == 0x2d)" (( "(") (binary_expression "bVar1 == 0x2d" (identifier "bVar1") (== "==") (number_literal "0x2d")) () ")"))))) (; ";")) (expression_statement "pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);" (assignment_expression "pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d)" (identifier "pbVar5") (= "=") (binary_expression "local_6c + (bVar1 == 0x2b || bVar1 == 0x2d)" (identifier "local_6c") (+ "+") (parenthesized_expression "(bVar1 == 0x2b || bVar1 == 0x2d)" (( "(") (binary_expression "bVar1 == 0x2b || bVar1 == 0x2d" (binary_expression "bVar1 == 0x2b" (identifier "bVar1") (== "==") (number_literal "0x2b")) (|| "||") (binary_expression "bVar1 == 0x2d" (identifier "bVar1") (== "==") (number_literal "0x2d"))) () ")")))) (; ";")) (expression_statement "uVar16 = (uint)(byte)local_54[*pbVar5];" (assignment_expression "uVar16 = (uint)(byte)local_54[*pbVar5]" (identifier "uVar16") (= "=") (cast_expression "(uint)(byte)local_54[*pbVar5]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)local_54[*pbVar5]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "local_54[*pbVar5]" (identifier "local_54") ([ "[") (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (] "]"))))) (; ";")) (expression_statement "ppbVar14 = ppbVar15;" (assignment_expression "ppbVar14 = ppbVar15" (identifier "ppbVar14") (= "=") (identifier "ppbVar15")) (; ";")) (if_statement "if ((int)local_68 <= (int)uVar16) {\nLAB_0001d756:\n        ppbVar15 = ppbVar14;\n        if (local_24 != 0) {\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }\n        goto LAB_0001d770;\n      }" (if "if") (parenthesized_expression "((int)local_68 <= (int)uVar16)" (( "(") (binary_expression "(int)local_68 <= (int)uVar16" (cast_expression "(int)local_68" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_68")) (<= "<=") (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16"))) () ")")) (compound_statement "{\nLAB_0001d756:\n        ppbVar15 = ppbVar14;\n        if (local_24 != 0) {\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }\n        goto LAB_0001d770;\n      }" ({ "{") (labeled_statement "LAB_0001d756:\n        ppbVar15 = ppbVar14;" (statement_identifier "LAB_0001d756") (: ":") (expression_statement "ppbVar15 = ppbVar14;" (assignment_expression "ppbVar15 = ppbVar14" (identifier "ppbVar15") (= "=") (identifier "ppbVar14")) (; ";"))) (if_statement "if (local_24 != 0) {\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }" (if "if") (parenthesized_expression "(local_24 != 0)" (( "(") (binary_expression "local_24 != 0" (identifier "local_24") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          *(int *)((int)ppbVar14 + -0x10) = local_24;\n          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;\n          __gmp_tmp_reentrant_free();\n        }" ({ "{") (expression_statement "*(int *)((int)ppbVar14 + -0x10) = local_24;" (assignment_expression "*(int *)((int)ppbVar14 + -0x10) = local_24" (pointer_expression "*(int *)((int)ppbVar14 + -0x10)" (* "*") (cast_expression "(int *)((int)ppbVar14 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar14 + -0x10)" (( "(") (binary_expression "(int)ppbVar14 + -0x10" (cast_expression "(int)ppbVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar14")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_24")) (; ";")) (expression_statement "*(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;" (assignment_expression "*(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769" (pointer_expression "*(undefined4 *)((int)ppbVar14 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppbVar14 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar14 + -0x14)" (( "(") (binary_expression "(int)ppbVar14 + -0x14" (cast_expression "(int)ppbVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar14")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1d769")) (; ";")) (expression_statement "__gmp_tmp_reentrant_free();" (call_expression "__gmp_tmp_reentrant_free()" (identifier "__gmp_tmp_reentrant_free") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_0001d770;" (goto "goto") (statement_identifier "LAB_0001d770") (; ";")) (} "}"))) (expression_statement "bVar1 = local_54[pbVar5[1]];" (assignment_expression "bVar1 = local_54[pbVar5[1]]" (identifier "bVar1") (= "=") (subscript_expression "local_54[pbVar5[1]]" (identifier "local_54") ([ "[") (subscript_expression "pbVar5[1]" (identifier "pbVar5") ([ "[") (number_literal "1") (] "]")) (] "]"))) (; ";")) (expression_statement "local_34 = (ushort **)(pbVar5 + 2);" (assignment_expression "local_34 = (ushort **)(pbVar5 + 2)" (identifier "local_34") (= "=") (cast_expression "(ushort **)(pbVar5 + 2)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar5 + 2)" (( "(") (binary_expression "pbVar5 + 2" (identifier "pbVar5") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "ppuVar10 = (ushort **)(pbVar5 + 2);" (assignment_expression "ppuVar10 = (ushort **)(pbVar5 + 2)" (identifier "ppuVar10") (= "=") (cast_expression "(ushort **)(pbVar5 + 2)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar5 + 2)" (( "(") (binary_expression "pbVar5 + 2" (identifier "pbVar5") (+ "+") (number_literal "2")) () ")")))) (; ";")) (while_statement "while ((int)(uint)bVar1 < (int)local_68) {\n        uVar16 = uVar16 * (int)local_68 + (uint)bVar1;\n        bVar1 = local_54[*(byte *)ppuVar10];\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar10 = (ushort **)((int)ppuVar10 + 1);\n        local_38 = ppuVar11;\n      }" (while "while") (parenthesized_expression "((int)(uint)bVar1 < (int)local_68)" (( "(") (binary_expression "(int)(uint)bVar1 < (int)local_68" (cast_expression "(int)(uint)bVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1"))) (< "<") (cast_expression "(int)local_68" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_68"))) () ")")) (compound_statement "{\n        uVar16 = uVar16 * (int)local_68 + (uint)bVar1;\n        bVar1 = local_54[*(byte *)ppuVar10];\n        local_34 = (ushort **)-(int)local_30;\n        ppuVar10 = (ushort **)((int)ppuVar10 + 1);\n        local_38 = ppuVar11;\n      }" ({ "{") (expression_statement "uVar16 = uVar16 * (int)local_68 + (uint)bVar1;" (assignment_expression "uVar16 = uVar16 * (int)local_68 + (uint)bVar1" (identifier "uVar16") (= "=") (binary_expression "uVar16 * (int)local_68 + (uint)bVar1" (binary_expression "uVar16 * (int)local_68" (identifier "uVar16") (* "*") (cast_expression "(int)local_68" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_68"))) (+ "+") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")))) (; ";")) (expression_statement "bVar1 = local_54[*(byte *)ppuVar10];" (assignment_expression "bVar1 = local_54[*(byte *)ppuVar10]" (identifier "bVar1") (= "=") (subscript_expression "local_54[*(byte *)ppuVar10]" (identifier "local_54") ([ "[") (pointer_expression "*(byte *)ppuVar10" (* "*") (cast_expression "(byte *)ppuVar10" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar10"))) (] "]"))) (; ";")) (expression_statement "local_34 = (ushort **)-(int)local_30;" (assignment_expression "local_34 = (ushort **)-(int)local_30" (identifier "local_34") (= "=") (cast_expression "(ushort **)-(int)local_30" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (unary_expression "-(int)local_30" (- "-") (cast_expression "(int)local_30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_30"))))) (; ";")) (expression_statement "ppuVar10 = (ushort **)((int)ppuVar10 + 1);" (assignment_expression "ppuVar10 = (ushort **)((int)ppuVar10 + 1)" (identifier "ppuVar10") (= "=") (cast_expression "(ushort **)((int)ppuVar10 + 1)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar10 + 1)" (( "(") (binary_expression "(int)ppuVar10 + 1" (cast_expression "(int)ppuVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar10")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "local_38 = ppuVar11;" (assignment_expression "local_38 = ppuVar11" (identifier "local_38") (= "=") (identifier "ppuVar11")) (; ";")) (} "}"))) (expression_statement "local_54 = local_30 + (uVar16 ^ (uint)-(int)local_30);" (assignment_expression "local_54 = local_30 + (uVar16 ^ (uint)-(int)local_30)" (identifier "local_54") (= "=") (binary_expression "local_30 + (uVar16 ^ (uint)-(int)local_30)" (identifier "local_30") (+ "+") (parenthesized_expression "(uVar16 ^ (uint)-(int)local_30)" (( "(") (binary_expression "uVar16 ^ (uint)-(int)local_30" (identifier "uVar16") (^ "^") (binary_expression "(uint)-(int)local_30" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (- "-") (cast_expression "(int)local_30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_30")))) () ")")))) (; ";")) (if_statement "if (local_50 != (ushort **)0x0) {\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }" (if "if") (parenthesized_expression "(local_50 != (ushort **)0x0)" (( "(") (binary_expression "local_50 != (ushort **)0x0" (identifier "local_50") (!= "!=") (cast_expression "(ushort **)0x0" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);\n      }" ({ "{") (labeled_statement "LAB_0001d589:\n        local_54 = local_54 + -((int)local_48 - (int)local_50);" (statement_identifier "LAB_0001d589") (: ":") (expression_statement "local_54 = local_54 + -((int)local_48 - (int)local_50);" (assignment_expression "local_54 = local_54 + -((int)local_48 - (int)local_50)" (identifier "local_54") (= "=") (binary_expression "local_54 + -((int)local_48 - (int)local_50)" (identifier "local_54") (+ "+") (unary_expression "-((int)local_48 - (int)local_50)" (- "-") (parenthesized_expression "((int)local_48 - (int)local_50)" (( "(") (binary_expression "(int)local_48 - (int)local_50" (cast_expression "(int)local_48" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_48")) (- "-") (cast_expression "(int)local_50" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_50"))) () ")"))))) (; ";"))) (} "}"))) (if_statement "if (local_54 == (undefined *)0x0) goto LAB_0001d804;" (if "if") (parenthesized_expression "(local_54 == (undefined *)0x0)" (( "(") (binary_expression "local_54 == (undefined *)0x0" (identifier "local_54") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001d804;" (goto "goto") (statement_identifier "LAB_0001d804") (; ";"))) (expression_statement "local_68 = (ushort *)((int)ppuVar11 + 2);" (assignment_expression "local_68 = (ushort *)((int)ppuVar11 + 2)" (identifier "local_68") (= "=") (cast_expression "(ushort *)((int)ppuVar11 + 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar11 + 2)" (( "(") (binary_expression "(int)ppuVar11 + 2" (cast_expression "(int)ppuVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar11")) (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "uVar16 = (int)local_68 * 8;" (assignment_expression "uVar16 = (int)local_68 * 8" (identifier "uVar16") (= "=") (binary_expression "(int)local_68 * 8" (cast_expression "(int)local_68" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_68")) (* "*") (number_literal "8"))) (; ";")) (if_statement "if (uVar16 < 0x7f01) {\n        uVar16 = uVar16 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);\n        ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);\n        ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);\n      }\n      else {\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;\n        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;\n        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();\n      }" (if "if") (parenthesized_expression "(uVar16 < 0x7f01)" (( "(") (binary_expression "uVar16 < 0x7f01" (identifier "uVar16") (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n        uVar16 = uVar16 + 0x1b & 0xfffffff0;\n        local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);\n        ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);\n        ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);\n      }" ({ "{") (expression_statement "uVar16 = uVar16 + 0x1b & 0xfffffff0;" (assignment_expression "uVar16 = uVar16 + 0x1b & 0xfffffff0" (identifier "uVar16") (= "=") (binary_expression "uVar16 + 0x1b & 0xfffffff0" (binary_expression "uVar16 + 0x1b" (identifier "uVar16") (+ "+") (number_literal "0x1b")) (& "&") (number_literal "0xfffffff0"))) (; ";")) (expression_statement "local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);" (assignment_expression "local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0)" (identifier "local_50") (= "=") (cast_expression "(ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0)" (( "(") (binary_expression "(uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0" (call_expression "(uint)((int)ppbVar15 + (0xf - uVar16))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)ppbVar15 + (0xf - uVar16))" (( "(") (binary_expression "(int)ppbVar15 + (0xf - uVar16)" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (parenthesized_expression "(0xf - uVar16)" (( "(") (binary_expression "0xf - uVar16" (number_literal "0xf") (- "-") (identifier "uVar16")) () ")"))) () ")"))) (& "&") (number_literal "0xfffffff0")) () ")")))) (; ";")) (expression_statement "ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);" (assignment_expression "ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0)" (identifier "ppuVar11") (= "=") (cast_expression "(ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0)" (( "(") (binary_expression "(uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0" (call_expression "(uint)((int)ppbVar15 + uVar16 * -2 + 0xf)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)ppbVar15 + uVar16 * -2 + 0xf)" (( "(") (binary_expression "(int)ppbVar15 + uVar16 * -2 + 0xf" (binary_expression "(int)ppbVar15 + uVar16 * -2" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (binary_expression "uVar16 * -2" (identifier "uVar16") (* "*") (number_literal "-2"))) (+ "+") (number_literal "0xf")) () ")"))) (& "&") (number_literal "0xfffffff0")) () ")")))) (; ";")) (expression_statement "ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);" (assignment_expression "ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2)" (identifier "ppbVar15") (= "=") (cast_expression "(byte **)((int)ppbVar15 + uVar16 * -2)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppbVar15 + uVar16 * -2)" (( "(") (binary_expression "(int)ppbVar15 + uVar16 * -2" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (binary_expression "uVar16 * -2" (identifier "uVar16") (* "*") (number_literal "-2"))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;\n        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;\n        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();\n      }" (else "else") (compound_statement "{\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;\n        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();\n        *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n        *(int **)((int)ppbVar15 + -0x10) = &local_24;\n        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;\n        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();\n      }" ({ "{") (expression_statement "*(uint *)((int)ppbVar15 + -0xc) = uVar16;" (assignment_expression "*(uint *)((int)ppbVar15 + -0xc) = uVar16" (pointer_expression "*(uint *)((int)ppbVar15 + -0xc)" (* "*") (cast_expression "(uint *)((int)ppbVar15 + -0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0xc)" (( "(") (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "uVar16")) (; ";")) (expression_statement "*(int **)((int)ppbVar15 + -0x10) = &local_24;" (assignment_expression "*(int **)((int)ppbVar15 + -0x10) = &local_24" (pointer_expression "*(int **)((int)ppbVar15 + -0x10)" (* "*") (cast_expression "(int **)((int)ppbVar15 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x10)" (( "(") (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "&local_24" (& "&") (identifier "local_24"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x14)" (( "(") (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1db57")) (; ";")) (expression_statement "local_50 = (ushort **)__gmp_tmp_reentrant_alloc();" (assignment_expression "local_50 = (ushort **)__gmp_tmp_reentrant_alloc()" (identifier "local_50") (= "=") (cast_expression "(ushort **)__gmp_tmp_reentrant_alloc()" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "__gmp_tmp_reentrant_alloc()" (identifier "__gmp_tmp_reentrant_alloc") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*(uint *)((int)ppbVar15 + -0xc) = uVar16;" (assignment_expression "*(uint *)((int)ppbVar15 + -0xc) = uVar16" (pointer_expression "*(uint *)((int)ppbVar15 + -0xc)" (* "*") (cast_expression "(uint *)((int)ppbVar15 + -0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0xc)" (( "(") (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "uVar16")) (; ";")) (expression_statement "*(int **)((int)ppbVar15 + -0x10) = &local_24;" (assignment_expression "*(int **)((int)ppbVar15 + -0x10) = &local_24" (pointer_expression "*(int **)((int)ppbVar15 + -0x10)" (* "*") (cast_expression "(int **)((int)ppbVar15 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x10)" (( "(") (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "&local_24" (& "&") (identifier "local_24"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x14)" (( "(") (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1db66")) (; ";")) (expression_statement "ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();" (assignment_expression "ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc()" (identifier "ppuVar11") (= "=") (cast_expression "(ushort **)__gmp_tmp_reentrant_alloc()" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "__gmp_tmp_reentrant_alloc()" (identifier "__gmp_tmp_reentrant_alloc") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}")))) (expression_statement "local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));" (assignment_expression "local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f))" (identifier "local_48") (= "=") (cast_expression "(ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f))" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f))" (( "(") (binary_expression "((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f)" (parenthesized_expression "((uint)local_54 ^ (int)local_54 >> 0x1f)" (( "(") (binary_expression "(uint)local_54 ^ (int)local_54 >> 0x1f" (cast_expression "(uint)local_54" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_54")) (^ "^") (binary_expression "(int)local_54 >> 0x1f" (cast_expression "(int)local_54" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_54")) (>> ">>") (number_literal "0x1f"))) () ")")) (- "-") (parenthesized_expression "((int)local_54 >> 0x1f)" (( "(") (binary_expression "(int)local_54 >> 0x1f" (cast_expression "(int)local_54" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_54")) (>> ">>") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (expression_statement "*local_50 = param_3;" (assignment_expression "*local_50 = param_3" (pointer_expression "*local_50" (* "*") (identifier "local_50")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "uVar16 = 0x1f;" (assignment_expression "uVar16 = 0x1f" (identifier "uVar16") (= "=") (number_literal "0x1f")) (; ";")) (if_statement "if (local_48 != (ushort **)0x0) {\n        for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n        }\n      }" (if "if") (parenthesized_expression "(local_48 != (ushort **)0x0)" (( "(") (binary_expression "local_48 != (ushort **)0x0" (identifier "local_48") (!= "!=") (cast_expression "(ushort **)0x0" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n        }\n      }" ({ "{") (for_statement "for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n        }" (for "for") (( "(") (; ";") (binary_expression "(uint)local_48 >> uVar16 == 0" (binary_expression "(uint)local_48 >> uVar16" (cast_expression "(uint)local_48" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_48")) (>> ">>") (identifier "uVar16")) (== "==") (number_literal "0")) (; ";") (assignment_expression "uVar16 = uVar16 - 1" (identifier "uVar16") (= "=") (binary_expression "uVar16 - 1" (identifier "uVar16") (- "-") (number_literal "1"))) () ")") (compound_statement "{\n        }" ({ "{") (} "}"))) (} "}"))) (expression_statement "uVar16 = 0x1e - (uVar16 ^ 0x1f);" (assignment_expression "uVar16 = 0x1e - (uVar16 ^ 0x1f)" (identifier "uVar16") (= "=") (binary_expression "0x1e - (uVar16 ^ 0x1f)" (number_literal "0x1e") (- "-") (parenthesized_expression "(uVar16 ^ 0x1f)" (( "(") (binary_expression "uVar16 ^ 0x1f" (identifier "uVar16") (^ "^") (number_literal "0x1f")) () ")")))) (; ";")) (if_statement "if (uVar16 == 0xffffffff) {\n        iVar13 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar10 = local_50;\n      }\n      else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar7 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }" (if "if") (parenthesized_expression "(uVar16 == 0xffffffff)" (( "(") (binary_expression "uVar16 == 0xffffffff" (identifier "uVar16") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n        iVar13 = 0;\n        local_30 = (undefined *)0x0;\n        puVar6 = (undefined *)0x1;\n        local_4c = local_44[-0x9b];\n        ppuVar10 = local_50;\n      }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_30 = (undefined *)0x0;" (assignment_expression "local_30 = (undefined *)0x0" (identifier "local_30") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar6 = (undefined *)0x1;" (assignment_expression "puVar6 = (undefined *)0x1" (identifier "puVar6") (= "=") (cast_expression "(undefined *)0x1" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "local_4c = local_44[-0x9b];" (assignment_expression "local_4c = local_44[-0x9b]" (identifier "local_4c") (= "=") (subscript_expression "local_44[-0x9b]" (identifier "local_44") ([ "[") (number_literal "-0x9b") (] "]"))) (; ";")) (expression_statement "ppuVar10 = local_50;" (assignment_expression "ppuVar10 = local_50" (identifier "ppuVar10") (= "=") (identifier "local_50")) (; ";")) (} "}")) (else_clause "else {\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar7 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }" (else "else") (compound_statement "{\n        local_34 = local_50;\n        puVar6 = (undefined *)0x1;\n        iVar7 = 0;\n        local_30 = (undefined *)0x0;\n        local_4c = local_44[-0x9b];\n        while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }\n      }" ({ "{") (expression_statement "local_34 = local_50;" (assignment_expression "local_34 = local_50" (identifier "local_34") (= "=") (identifier "local_50")) (; ";")) (expression_statement "puVar6 = (undefined *)0x1;" (assignment_expression "puVar6 = (undefined *)0x1" (identifier "puVar6") (= "=") (cast_expression "(undefined *)0x1" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_30 = (undefined *)0x0;" (assignment_expression "local_30 = (undefined *)0x0" (identifier "local_30") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_4c = local_44[-0x9b];" (assignment_expression "local_4c = local_44[-0x9b]" (identifier "local_4c") (= "=") (subscript_expression "local_44[-0x9b]" (identifier "local_44") ([ "[") (number_literal "-0x9b") (] "]"))) (; ";")) (while_statement "while( true ) {\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          ppuVar10 = local_34;\n          local_38 = ppuVar11;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;\n          __gmpn_sqr();\n          local_30 = (undefined *)((int)local_30 * 2);\n          puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));\n          if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }\n          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }\n          ppuVar11 = local_34;\n          uVar16 = uVar16 - 1;\n          ppuVar10 = local_38;\n          if (uVar16 == 0xffffffff) break;\n          local_34 = local_38;\n        }" ({ "{") (expression_statement "ppuVar10 = local_34;" (assignment_expression "ppuVar10 = local_34" (identifier "ppuVar10") (= "=") (identifier "local_34")) (; ";")) (expression_statement "local_38 = ppuVar11;" (assignment_expression "local_38 = ppuVar11" (identifier "local_38") (= "=") (identifier "ppuVar11")) (; ";")) (expression_statement "*(undefined **)((int)ppbVar15 + -8) = puVar6;" (assignment_expression "*(undefined **)((int)ppbVar15 + -8) = puVar6" (pointer_expression "*(undefined **)((int)ppbVar15 + -8)" (* "*") (cast_expression "(undefined **)((int)ppbVar15 + -8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppbVar15 + -8)" (( "(") (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "puVar6")) (; ";")) (expression_statement "*(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0xc)" (* "*") (cast_expression "(ushort ***)((int)ppbVar15 + -0xc)" (( "(") (type_descriptor "ushort ***" (type_identifier "ushort") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppbVar15 + -0xc)" (( "(") (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "ppuVar10 + iVar7" (identifier "ppuVar10") (+ "+") (identifier "iVar7"))) (; ";")) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x10)" (* "*") (cast_expression "(ushort ***)((int)ppbVar15 + -0x10)" (( "(") (type_descriptor "ushort ***" (type_identifier "ushort") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x10)" (( "(") (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "ppuVar11")) (; ";")) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x14)" (( "(") (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1d69f")) (; ";")) (expression_statement "__gmpn_sqr();" (call_expression "__gmpn_sqr()" (identifier "__gmpn_sqr") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_30 = (undefined *)((int)local_30 * 2);" (assignment_expression "local_30 = (undefined *)((int)local_30 * 2)" (identifier "local_30") (= "=") (cast_expression "(undefined *)((int)local_30 * 2)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_30 * 2)" (( "(") (binary_expression "(int)local_30 * 2" (cast_expression "(int)local_30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_30")) (* "*") (number_literal "2")) () ")")))) (; ";")) (expression_statement "puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));" (assignment_expression "puVar6 = (undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0))" (identifier "puVar6") (= "=") (cast_expression "(undefined *)\n                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0))" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0))" (( "(") (binary_expression "(int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0)" (binary_expression "(int)puVar6 * 2" (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")) (* "*") (number_literal "2")) (- "-") (call_expression "(uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0)" (( "(") (binary_expression "local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0" (subscript_expression "local_38[(int)puVar6 * 2 + -1]" (identifier "local_38") ([ "[") (binary_expression "(int)puVar6 * 2 + -1" (binary_expression "(int)puVar6 * 2" (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")) (* "*") (number_literal "2")) (+ "+") (number_literal "-1")) (] "]")) (== "==") (cast_expression "(ushort *)0x0" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")))) () ")")))) (; ";")) (if_statement "if ((int)local_3c < (int)puVar6) {\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }\n          else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }" (if "if") (parenthesized_expression "((int)local_3c < (int)puVar6)" (( "(") (binary_expression "(int)local_3c < (int)puVar6" (cast_expression "(int)local_3c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_3c")) (< "<") (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6"))) () ")")) (compound_statement "{\n            iVar7 = (int)puVar6 - (int)local_3c;\n            local_30 = local_30 + iVar7;\n            iVar13 = iVar7 * 4;\n            puVar6 = local_3c;\n          }" ({ "{") (expression_statement "iVar7 = (int)puVar6 - (int)local_3c;" (assignment_expression "iVar7 = (int)puVar6 - (int)local_3c" (identifier "iVar7") (= "=") (binary_expression "(int)puVar6 - (int)local_3c" (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")) (- "-") (cast_expression "(int)local_3c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_3c")))) (; ";")) (expression_statement "local_30 = local_30 + iVar7;" (assignment_expression "local_30 = local_30 + iVar7" (identifier "local_30") (= "=") (binary_expression "local_30 + iVar7" (identifier "local_30") (+ "+") (identifier "iVar7"))) (; ";")) (expression_statement "iVar13 = iVar7 * 4;" (assignment_expression "iVar13 = iVar7 * 4" (identifier "iVar13") (= "=") (binary_expression "iVar7 * 4" (identifier "iVar7") (* "*") (number_literal "4"))) (; ";")) (expression_statement "puVar6 = local_3c;" (assignment_expression "puVar6 = local_3c" (identifier "puVar6") (= "=") (identifier "local_3c")) (; ";")) (} "}")) (else_clause "else {\n            iVar13 = 0;\n            iVar7 = 0;\n          }" (else "else") (compound_statement "{\n            iVar13 = 0;\n            iVar7 = 0;\n          }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (} "}")))) (if_statement "if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }" (if "if") (parenthesized_expression "(((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0)" (( "(") (binary_expression "((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0" (parenthesized_expression "((uint)local_48 >> (uVar16 & 0x1f) & 1)" (( "(") (binary_expression "(uint)local_48 >> (uVar16 & 0x1f) & 1" (binary_expression "(uint)local_48 >> (uVar16 & 0x1f)" (cast_expression "(uint)local_48" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_48")) (>> ">>") (parenthesized_expression "(uVar16 & 0x1f)" (( "(") (binary_expression "uVar16 & 0x1f" (identifier "uVar16") (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            *(ushort **)((int)ppbVar15 + -4) = param_3;\n            puVar17 = local_4c;\n            *(undefined **)((int)ppbVar15 + -8) = puVar6;\n            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;\n            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;\n            pcVar2 = *(code **)(puVar17 + 100);\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;\n            puVar8 = (ushort *)(*pcVar2)();\n            local_38[(int)puVar6] = puVar8;\n            iVar13 = 0;\n            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);\n            iVar7 = 0;\n          }" ({ "{") (expression_statement "*(ushort **)((int)ppbVar15 + -4) = param_3;" (assignment_expression "*(ushort **)((int)ppbVar15 + -4) = param_3" (pointer_expression "*(ushort **)((int)ppbVar15 + -4)" (* "*") (cast_expression "(ushort **)((int)ppbVar15 + -4)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppbVar15 + -4)" (( "(") (binary_expression "(int)ppbVar15 + -4" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "puVar17 = local_4c;" (assignment_expression "puVar17 = local_4c" (identifier "puVar17") (= "=") (identifier "local_4c")) (; ";")) (expression_statement "*(undefined **)((int)ppbVar15 + -8) = puVar6;" (assignment_expression "*(undefined **)((int)ppbVar15 + -8) = puVar6" (pointer_expression "*(undefined **)((int)ppbVar15 + -8)" (* "*") (cast_expression "(undefined **)((int)ppbVar15 + -8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppbVar15 + -8)" (( "(") (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "puVar6")) (; ";")) (expression_statement "*(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;" (assignment_expression "*(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38" (pointer_expression "*(int *)((int)ppbVar15 + -0xc)" (* "*") (cast_expression "(int *)((int)ppbVar15 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0xc)" (( "(") (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "iVar13 + (int)local_38" (identifier "iVar13") (+ "+") (cast_expression "(int)local_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_38")))) (; ";")) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x10) = local_38;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x10) = local_38" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x10)" (* "*") (cast_expression "(ushort ***)((int)ppbVar15 + -0x10)" (( "(") (type_descriptor "ushort ***" (type_identifier "ushort") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x10)" (( "(") (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_38")) (; ";")) (expression_statement "pcVar2 = *(code **)(puVar17 + 100);" (assignment_expression "pcVar2 = *(code **)(puVar17 + 100)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(puVar17 + 100)" (* "*") (cast_expression "(code **)(puVar17 + 100)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + 100)" (( "(") (binary_expression "puVar17 + 100" (identifier "puVar17") (+ "+") (number_literal "100")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x14)" (( "(") (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1d65b")) (; ";")) (expression_statement "puVar8 = (ushort *)(*pcVar2)();" (assignment_expression "puVar8 = (ushort *)(*pcVar2)()" (identifier "puVar8") (= "=") (cast_expression "(ushort *)(*pcVar2)()" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "local_38[(int)puVar6] = puVar8;" (assignment_expression "local_38[(int)puVar6] = puVar8" (subscript_expression "local_38[(int)puVar6]" (identifier "local_38") ([ "[") (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")) (] "]")) (= "=") (identifier "puVar8")) (; ";")) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar6 = puVar6 + (puVar8 != (ushort *)0x0);" (assignment_expression "puVar6 = puVar6 + (puVar8 != (ushort *)0x0)" (identifier "puVar6") (= "=") (binary_expression "puVar6 + (puVar8 != (ushort *)0x0)" (identifier "puVar6") (+ "+") (parenthesized_expression "(puVar8 != (ushort *)0x0)" (( "(") (binary_expression "puVar8 != (ushort *)0x0" (identifier "puVar8") (!= "!=") (cast_expression "(ushort *)0x0" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")))) (; ";")) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "ppuVar11 = local_34;" (assignment_expression "ppuVar11 = local_34" (identifier "ppuVar11") (= "=") (identifier "local_34")) (; ";")) (expression_statement "uVar16 = uVar16 - 1;" (assignment_expression "uVar16 = uVar16 - 1" (identifier "uVar16") (= "=") (binary_expression "uVar16 - 1" (identifier "uVar16") (- "-") (number_literal "1"))) (; ";")) (expression_statement "ppuVar10 = local_38;" (assignment_expression "ppuVar10 = local_38" (identifier "ppuVar10") (= "=") (identifier "local_38")) (; ";")) (if_statement "if (uVar16 == 0xffffffff) break;" (if "if") (parenthesized_expression "(uVar16 == 0xffffffff)" (( "(") (binary_expression "uVar16 == 0xffffffff" (identifier "uVar16") (== "==") (number_literal "0xffffffff")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "local_34 = local_38;" (assignment_expression "local_34 = local_38" (identifier "local_34") (= "=") (identifier "local_38")) (; ";")) (} "}"))) (} "}")))) (expression_statement "puVar17 = local_4c;" (assignment_expression "puVar17 = local_4c" (identifier "puVar17") (= "=") (identifier "local_4c")) (; ";")) (if_statement "if ((int)local_3c < (int)puVar6) {\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }" (if "if") (parenthesized_expression "((int)local_3c < (int)puVar6)" (( "(") (binary_expression "(int)local_3c < (int)puVar6" (cast_expression "(int)local_3c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_3c")) (< "<") (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6"))) () ")")) (compound_statement "{\n        local_30 = local_30 + ((int)puVar6 - (int)local_3c);\n        ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);\n        puVar6 = local_3c;\n      }" ({ "{") (expression_statement "local_30 = local_30 + ((int)puVar6 - (int)local_3c);" (assignment_expression "local_30 = local_30 + ((int)puVar6 - (int)local_3c)" (identifier "local_30") (= "=") (binary_expression "local_30 + ((int)puVar6 - (int)local_3c)" (identifier "local_30") (+ "+") (parenthesized_expression "((int)puVar6 - (int)local_3c)" (( "(") (binary_expression "(int)puVar6 - (int)local_3c" (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")) (- "-") (cast_expression "(int)local_3c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_3c"))) () ")")))) (; ";")) (expression_statement "ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);" (assignment_expression "ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c)" (identifier "ppuVar10") (= "=") (binary_expression "ppuVar10 + ((int)puVar6 - (int)local_3c)" (identifier "ppuVar10") (+ "+") (parenthesized_expression "((int)puVar6 - (int)local_3c)" (( "(") (binary_expression "(int)puVar6 - (int)local_3c" (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")) (- "-") (cast_expression "(int)local_3c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_3c"))) () ")")))) (; ";")) (expression_statement "puVar6 = local_3c;" (assignment_expression "puVar6 = local_3c" (identifier "puVar6") (= "=") (identifier "local_3c")) (; ";")) (} "}"))) (expression_statement "*(undefined **)((int)ppbVar15 + -8) = puVar6;" (assignment_expression "*(undefined **)((int)ppbVar15 + -8) = puVar6" (pointer_expression "*(undefined **)((int)ppbVar15 + -8)" (* "*") (cast_expression "(undefined **)((int)ppbVar15 + -8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppbVar15 + -8)" (( "(") (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "puVar6")) (; ";")) (expression_statement "*(int *)((int)ppbVar15 + -0xc) = (int)ppuVar10 + iVar13;" (assignment_expression "*(int *)((int)ppbVar15 + -0xc) = (int)ppuVar10 + iVar13" (pointer_expression "*(int *)((int)ppbVar15 + -0xc)" (* "*") (cast_expression "(int *)((int)ppbVar15 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0xc)" (( "(") (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "(int)ppuVar10 + iVar13" (cast_expression "(int)ppuVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar10")) (+ "+") (identifier "iVar13"))) (; ";")) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x10) = local_50;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x10) = local_50" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x10)" (* "*") (cast_expression "(ushort ***)((int)ppbVar15 + -0x10)" (( "(") (type_descriptor "ushort ***" (type_identifier "ushort") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x10)" (( "(") (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (expression_statement "pcVar2 = *(code **)(puVar17 + 0x28);" (assignment_expression "pcVar2 = *(code **)(puVar17 + 0x28)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(puVar17 + 0x28)" (* "*") (cast_expression "(code **)(puVar17 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + 0x28)" (( "(") (binary_expression "puVar17 + 0x28" (identifier "puVar17") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d87c;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d87c" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x14)" (( "(") (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1d87c")) (; ";")) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if ((int)local_54 < 0) {\n        if ((int)local_58 < (int)puVar6) {\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }\n        ppuVar11 = local_50;\n        puVar8 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar8) {\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }\n        local_34 = (ushort **)((int)local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }\n        puVar17 = local_58;\n        *(undefined **)((int)ppbVar15 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar15 + -0x14) = puVar17;\n        puVar9 = local_3c;\n        ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar15 + -0x18) = local_40;\n        local_38 = ppuVar11;\n        *(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;\n        *(uint *)((int)ppbVar15 + -0x20) = uVar16;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;\n        iVar13 = __gmpn_divrem();\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));\n        uVar12 = uVar16;\n        puVar17 = local_3c;\n        if (iVar13 != 0) {\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }\n      }\n      else {\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        local_38 = (ushort **)((int)local_34 * 4);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }\n        *(uint *)((int)ppbVar15 + -0x20) = uVar12;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;\n        __gmpn_mul();\n        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));\n        if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }\n      }" (if "if") (parenthesized_expression "((int)local_54 < 0)" (( "(") (binary_expression "(int)local_54 < 0" (cast_expression "(int)local_54" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_54")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        if ((int)local_58 < (int)puVar6) {\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }\n        ppuVar11 = local_50;\n        puVar8 = local_50[(int)(puVar6 + -1)];\n        if (-1 < (int)puVar8) {\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }\n        local_34 = (ushort **)((int)local_68 * 4);\n        if (local_34 < (ushort **)0x7f01) {\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }\n        puVar17 = local_58;\n        *(undefined **)((int)ppbVar15 + -0xc) = puVar6;\n        *(ushort ***)((int)ppbVar15 + -0x10) = local_50;\n        *(undefined **)((int)ppbVar15 + -0x14) = puVar17;\n        puVar9 = local_3c;\n        ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);\n        *(ushort ***)((int)ppbVar15 + -0x18) = local_40;\n        local_38 = ppuVar11;\n        *(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;\n        *(uint *)((int)ppbVar15 + -0x20) = uVar16;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;\n        iVar13 = __gmpn_divrem();\n        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));\n        uVar12 = uVar16;\n        puVar17 = local_3c;\n        if (iVar13 != 0) {\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }\n      }" ({ "{") (if_statement "if ((int)local_58 < (int)puVar6) {\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }" (if "if") (parenthesized_expression "((int)local_58 < (int)puVar6)" (( "(") (binary_expression "(int)local_58 < (int)puVar6" (cast_expression "(int)local_58" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_58")) (< "<") (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6"))) () ")")) (compound_statement "{\n          uVar16 = (int)puVar6 * 4 + 4;\n          if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }\n          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);\n          local_38 = ppuVar10;\n          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;\n          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;\n          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;\n          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));\n          ppuVar11 = local_34;\n          puVar17 = local_4c;\n          *(undefined **)((int)ppbVar15 + -8) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;\n          pcVar2 = *(code **)(puVar17 + 0x28);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;\n          (*pcVar2)();\n          local_5c = (ushort **)((int)local_5c - (int)local_38);\n          local_40 = local_34;\n          local_58 = puVar6;\n        }" ({ "{") (expression_statement "uVar16 = (int)puVar6 * 4 + 4;" (assignment_expression "uVar16 = (int)puVar6 * 4 + 4" (identifier "uVar16") (= "=") (binary_expression "(int)puVar6 * 4 + 4" (binary_expression "(int)puVar6 * 4" (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")) (* "*") (number_literal "4")) (+ "+") (number_literal "4"))) (; ";")) (if_statement "if (uVar16 < 0x7f01) {\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }\n          else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }" (if "if") (parenthesized_expression "(uVar16 < 0x7f01)" (( "(") (binary_expression "uVar16 < 0x7f01" (identifier "uVar16") (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);\n            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);\n            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n          }" ({ "{") (expression_statement "iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);" (assignment_expression "iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0)" (identifier "iVar13") (= "=") (unary_expression "-((int)puVar6 * 4 + 0x1fU & 0xfffffff0)" (- "-") (parenthesized_expression "((int)puVar6 * 4 + 0x1fU & 0xfffffff0)" (( "(") (binary_expression "(int)puVar6 * 4 + 0x1fU & 0xfffffff0" (binary_expression "(int)puVar6 * 4 + 0x1fU" (binary_expression "(int)puVar6 * 4" (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")) (* "*") (number_literal "4")) (+ "+") (number_literal "0x1fU")) (& "&") (number_literal "0xfffffff0")) () ")")))) (; ";")) (expression_statement "local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);" (assignment_expression "local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0)" (identifier "local_34") (= "=") (cast_expression "(ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0)" (( "(") (binary_expression "(uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0" (call_expression "(uint)((int)ppbVar15 + iVar13 + 0xf)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)ppbVar15 + iVar13 + 0xf)" (( "(") (binary_expression "(int)ppbVar15 + iVar13 + 0xf" (binary_expression "(int)ppbVar15 + iVar13" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (identifier "iVar13")) (+ "+") (number_literal "0xf")) () ")"))) (& "&") (number_literal "0xfffffff0")) () ")")))) (; ";")) (expression_statement "ppbVar15 = (byte **)((int)ppbVar15 + iVar13);" (assignment_expression "ppbVar15 = (byte **)((int)ppbVar15 + iVar13)" (identifier "ppbVar15") (= "=") (cast_expression "(byte **)((int)ppbVar15 + iVar13)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppbVar15 + iVar13)" (( "(") (binary_expression "(int)ppbVar15 + iVar13" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (identifier "iVar13")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }" (else "else") (compound_statement "{\n            *(uint *)((int)ppbVar15 + -0xc) = uVar16;\n            *(int **)((int)ppbVar15 + -0x10) = &local_24;\n            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;\n            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();\n          }" ({ "{") (expression_statement "*(uint *)((int)ppbVar15 + -0xc) = uVar16;" (assignment_expression "*(uint *)((int)ppbVar15 + -0xc) = uVar16" (pointer_expression "*(uint *)((int)ppbVar15 + -0xc)" (* "*") (cast_expression "(uint *)((int)ppbVar15 + -0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0xc)" (( "(") (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "uVar16")) (; ";")) (expression_statement "*(int **)((int)ppbVar15 + -0x10) = &local_24;" (assignment_expression "*(int **)((int)ppbVar15 + -0x10) = &local_24" (pointer_expression "*(int **)((int)ppbVar15 + -0x10)" (* "*") (cast_expression "(int **)((int)ppbVar15 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x10)" (( "(") (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "&local_24" (& "&") (identifier "local_24"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x14)" (( "(") (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1dbbc")) (; ";")) (expression_statement "local_34 = (ushort **)__gmp_tmp_reentrant_alloc();" (assignment_expression "local_34 = (ushort **)__gmp_tmp_reentrant_alloc()" (identifier "local_34") (= "=") (cast_expression "(ushort **)__gmp_tmp_reentrant_alloc()" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "__gmp_tmp_reentrant_alloc()" (identifier "__gmp_tmp_reentrant_alloc") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}")))) (expression_statement "ppuVar10 = (ushort **)(puVar6 + -(int)local_58);" (assignment_expression "ppuVar10 = (ushort **)(puVar6 + -(int)local_58)" (identifier "ppuVar10") (= "=") (cast_expression "(ushort **)(puVar6 + -(int)local_58)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar6 + -(int)local_58)" (( "(") (binary_expression "puVar6 + -(int)local_58" (identifier "puVar6") (+ "+") (unary_expression "-(int)local_58" (- "-") (cast_expression "(int)local_58" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_58")))) () ")")))) (; ";")) (expression_statement "local_38 = ppuVar10;" (assignment_expression "local_38 = ppuVar10" (identifier "local_38") (= "=") (identifier "ppuVar10")) (; ";")) (expression_statement "*(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;" (assignment_expression "*(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4" (pointer_expression "*(int *)((int)ppbVar15 + -8)" (* "*") (cast_expression "(int *)((int)ppbVar15 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -8)" (( "(") (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "(int)ppuVar10 * 4" (cast_expression "(int)ppuVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar10")) (* "*") (number_literal "4"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0xc) = 0;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0xc) = 0" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)ppbVar15 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0xc)" (( "(") (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x10) = local_34;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x10) = local_34" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x10)" (* "*") (cast_expression "(ushort ***)((int)ppbVar15 + -0x10)" (( "(") (type_descriptor "ushort ***" (type_identifier "ushort") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x10)" (( "(") (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x14)" (( "(") (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1d9a1")) (; ";")) (expression_statement "memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8));" (call_expression "memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8))" (identifier "memset") (argument_list "(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),\n                 *(size_t *)((int)ppbVar15 + -8))" (( "(") (pointer_expression "*(void **)((int)ppbVar15 + -0x10)" (* "*") (cast_expression "(void **)((int)ppbVar15 + -0x10)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x10)" (( "(") (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (, ",") (pointer_expression "*(int *)((int)ppbVar15 + -0xc)" (* "*") (cast_expression "(int *)((int)ppbVar15 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0xc)" (( "(") (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0xc")) () ")")))) (, ",") (pointer_expression "*(size_t *)((int)ppbVar15 + -8)" (* "*") (cast_expression "(size_t *)((int)ppbVar15 + -8)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -8)" (( "(") (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-8")) () ")")))) () ")"))) (; ";")) (expression_statement "ppuVar11 = local_34;" (assignment_expression "ppuVar11 = local_34" (identifier "ppuVar11") (= "=") (identifier "local_34")) (; ";")) (expression_statement "puVar17 = local_4c;" (assignment_expression "puVar17 = local_4c" (identifier "puVar17") (= "=") (identifier "local_4c")) (; ";")) (expression_statement "*(undefined **)((int)ppbVar15 + -8) = local_58;" (assignment_expression "*(undefined **)((int)ppbVar15 + -8) = local_58" (pointer_expression "*(undefined **)((int)ppbVar15 + -8)" (* "*") (cast_expression "(undefined **)((int)ppbVar15 + -8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppbVar15 + -8)" (( "(") (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_58")) (; ";")) (expression_statement "*(ushort ***)((int)ppbVar15 + -0xc) = local_40;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0xc) = local_40" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0xc)" (* "*") (cast_expression "(ushort ***)((int)ppbVar15 + -0xc)" (( "(") (type_descriptor "ushort ***" (type_identifier "ushort") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppbVar15 + -0xc)" (( "(") (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_40")) (; ";")) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x10)" (* "*") (cast_expression "(ushort ***)((int)ppbVar15 + -0x10)" (( "(") (type_descriptor "ushort ***" (type_identifier "ushort") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x10)" (( "(") (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "ppuVar11 + (int)ppuVar10" (identifier "ppuVar11") (+ "+") (cast_expression "(int)ppuVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar10")))) (; ";")) (expression_statement "pcVar2 = *(code **)(puVar17 + 0x28);" (assignment_expression "pcVar2 = *(code **)(puVar17 + 0x28)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(puVar17 + 0x28)" (* "*") (cast_expression "(code **)(puVar17 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + 0x28)" (( "(") (binary_expression "puVar17 + 0x28" (identifier "puVar17") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x14)" (( "(") (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1d9b6")) (; ";")) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_5c = (ushort **)((int)local_5c - (int)local_38);" (assignment_expression "local_5c = (ushort **)((int)local_5c - (int)local_38)" (identifier "local_5c") (= "=") (cast_expression "(ushort **)((int)local_5c - (int)local_38)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)local_5c - (int)local_38)" (( "(") (binary_expression "(int)local_5c - (int)local_38" (cast_expression "(int)local_5c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_5c")) (- "-") (cast_expression "(int)local_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_38"))) () ")")))) (; ";")) (expression_statement "local_40 = local_34;" (assignment_expression "local_40 = local_34" (identifier "local_40") (= "=") (identifier "local_34")) (; ";")) (expression_statement "local_58 = puVar6;" (assignment_expression "local_58 = puVar6" (identifier "local_58") (= "=") (identifier "puVar6")) (; ";")) (} "}"))) (expression_statement "ppuVar11 = local_50;" (assignment_expression "ppuVar11 = local_50" (identifier "ppuVar11") (= "=") (identifier "local_50")) (; ";")) (expression_statement "puVar8 = local_50[(int)(puVar6 + -1)];" (assignment_expression "puVar8 = local_50[(int)(puVar6 + -1)]" (identifier "puVar8") (= "=") (subscript_expression "local_50[(int)(puVar6 + -1)]" (identifier "local_50") ([ "[") (cast_expression "(int)(puVar6 + -1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar6 + -1)" (( "(") (binary_expression "puVar6 + -1" (identifier "puVar6") (+ "+") (number_literal "-1")) () ")"))) (] "]"))) (; ";")) (if_statement "if (-1 < (int)puVar8) {\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }" (if "if") (parenthesized_expression "(-1 < (int)puVar8)" (( "(") (binary_expression "-1 < (int)puVar8" (number_literal "-1") (< "<") (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8"))) () ")")) (compound_statement "{\n          uVar16 = 0x1f;\n          if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }\n          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;\n          *(undefined **)((int)ppbVar15 + -8) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;\n          pcVar2 = *(code **)(local_4c + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;\n          (*pcVar2)();\n          ppuVar11 = local_40;\n          puVar9 = local_4c;\n          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;\n          puVar17 = local_58;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;\n          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;\n          pcVar2 = *(code **)(puVar9 + 0x38);\n          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;\n          puVar8 = (ushort *)(*pcVar2)();\n          if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }\n        }" ({ "{") (expression_statement "uVar16 = 0x1f;" (assignment_expression "uVar16 = 0x1f" (identifier "uVar16") (= "=") (number_literal "0x1f")) (; ";")) (if_statement "if (puVar8 != (ushort *)0x0) {\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }" (if "if") (parenthesized_expression "(puVar8 != (ushort *)0x0)" (( "(") (binary_expression "puVar8 != (ushort *)0x0" (identifier "puVar8") (!= "!=") (cast_expression "(ushort *)0x0" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }\n          }" ({ "{") (for_statement "for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {\n            }" (for "for") (( "(") (; ";") (binary_expression "(uint)puVar8 >> uVar16 == 0" (binary_expression "(uint)puVar8 >> uVar16" (cast_expression "(uint)puVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar8")) (>> ">>") (identifier "uVar16")) (== "==") (number_literal "0")) (; ";") (assignment_expression "uVar16 = uVar16 - 1" (identifier "uVar16") (= "=") (binary_expression "uVar16 - 1" (identifier "uVar16") (- "-") (number_literal "1"))) () ")") (compound_statement "{\n            }" ({ "{") (} "}"))) (} "}"))) (expression_statement "*(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;" (assignment_expression "*(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f" (pointer_expression "*(uint *)((int)ppbVar15 + -4)" (* "*") (cast_expression "(uint *)((int)ppbVar15 + -4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -4)" (( "(") (binary_expression "(int)ppbVar15 + -4" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (binary_expression "uVar16 ^ 0x1f" (identifier "uVar16") (^ "^") (number_literal "0x1f"))) (; ";")) (expression_statement "*(undefined **)((int)ppbVar15 + -8) = puVar6;" (assignment_expression "*(undefined **)((int)ppbVar15 + -8) = puVar6" (pointer_expression "*(undefined **)((int)ppbVar15 + -8)" (* "*") (cast_expression "(undefined **)((int)ppbVar15 + -8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppbVar15 + -8)" (( "(") (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "puVar6")) (; ";")) (expression_statement "*(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0xc)" (* "*") (cast_expression "(ushort ***)((int)ppbVar15 + -0xc)" (( "(") (type_descriptor "ushort ***" (type_identifier "ushort") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppbVar15 + -0xc)" (( "(") (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "ppuVar11")) (; ";")) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x10)" (* "*") (cast_expression "(ushort ***)((int)ppbVar15 + -0x10)" (( "(") (type_descriptor "ushort ***" (type_identifier "ushort") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x10)" (( "(") (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "ppuVar11")) (; ";")) (expression_statement "pcVar2 = *(code **)(local_4c + 0x38);" (assignment_expression "pcVar2 = *(code **)(local_4c + 0x38)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(local_4c + 0x38)" (* "*") (cast_expression "(code **)(local_4c + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_4c + 0x38)" (( "(") (binary_expression "local_4c + 0x38" (identifier "local_4c") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x14)" (( "(") (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1d9e3")) (; ";")) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "ppuVar11 = local_40;" (assignment_expression "ppuVar11 = local_40" (identifier "ppuVar11") (= "=") (identifier "local_40")) (; ";")) (expression_statement "puVar9 = local_4c;" (assignment_expression "puVar9 = local_4c" (identifier "puVar9") (= "=") (identifier "local_4c")) (; ";")) (expression_statement "*(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;" (assignment_expression "*(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f" (pointer_expression "*(uint *)((int)ppbVar15 + -0x14)" (* "*") (cast_expression "(uint *)((int)ppbVar15 + -0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x14)" (( "(") (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (binary_expression "uVar16 ^ 0x1f" (identifier "uVar16") (^ "^") (number_literal "0x1f"))) (; ";")) (expression_statement "puVar17 = local_58;" (assignment_expression "puVar17 = local_58" (identifier "puVar17") (= "=") (identifier "local_58")) (; ";")) (expression_statement "*(undefined **)((int)ppbVar15 + -0x18) = local_58;" (assignment_expression "*(undefined **)((int)ppbVar15 + -0x18) = local_58" (pointer_expression "*(undefined **)((int)ppbVar15 + -0x18)" (* "*") (cast_expression "(undefined **)((int)ppbVar15 + -0x18)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x18)" (( "(") (binary_expression "(int)ppbVar15 + -0x18" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "local_58")) (; ";")) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x1c)" (* "*") (cast_expression "(ushort ***)((int)ppbVar15 + -0x1c)" (( "(") (type_descriptor "ushort ***" (type_identifier "ushort") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x1c)" (( "(") (binary_expression "(int)ppbVar15 + -0x1c" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "ppuVar11")) (; ";")) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x20)" (* "*") (cast_expression "(ushort ***)((int)ppbVar15 + -0x20)" (( "(") (type_descriptor "ushort ***" (type_identifier "ushort") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x20)" (( "(") (binary_expression "(int)ppbVar15 + -0x20" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "ppuVar11")) (; ";")) (expression_statement "pcVar2 = *(code **)(puVar9 + 0x38);" (assignment_expression "pcVar2 = *(code **)(puVar9 + 0x38)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(puVar9 + 0x38)" (* "*") (cast_expression "(code **)(puVar9 + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0x38)" (( "(") (binary_expression "puVar9 + 0x38" (identifier "puVar9") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x24)" (* "*") (cast_expression "(undefined4 *)((int)ppbVar15 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x24)" (( "(") (binary_expression "(int)ppbVar15 + -0x24" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x1d9f3")) (; ";")) (expression_statement "puVar8 = (ushort *)(*pcVar2)();" (assignment_expression "puVar8 = (ushort *)(*pcVar2)()" (identifier "puVar8") (= "=") (cast_expression "(ushort *)(*pcVar2)()" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (puVar8 != (ushort *)0x0) {\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }" (if "if") (parenthesized_expression "(puVar8 != (ushort *)0x0)" (( "(") (binary_expression "puVar8 != (ushort *)0x0" (identifier "puVar8") (!= "!=") (cast_expression "(ushort *)0x0" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            ppuVar11[(int)puVar17] = puVar8;\n            local_58 = puVar17 + 1;\n          }" ({ "{") (expression_statement "ppuVar11[(int)puVar17] = puVar8;" (assignment_expression "ppuVar11[(int)puVar17] = puVar8" (subscript_expression "ppuVar11[(int)puVar17]" (identifier "ppuVar11") ([ "[") (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (] "]")) (= "=") (identifier "puVar8")) (; ";")) (expression_statement "local_58 = puVar17 + 1;" (assignment_expression "local_58 = puVar17 + 1" (identifier "local_58") (= "=") (binary_expression "puVar17 + 1" (identifier "puVar17") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "local_34 = (ushort **)((int)local_68 * 4);" (assignment_expression "local_34 = (ushort **)((int)local_68 * 4)" (identifier "local_34") (= "=") (cast_expression "(ushort **)((int)local_68 * 4)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)local_68 * 4)" (( "(") (binary_expression "(int)local_68 * 4" (cast_expression "(int)local_68" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_68")) (* "*") (number_literal "4")) () ")")))) (; ";")) (if_statement "if (local_34 < (ushort **)0x7f01) {\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }" (if "if") (parenthesized_expression "(local_34 < (ushort **)0x7f01)" (( "(") (binary_expression "local_34 < (ushort **)0x7f01" (identifier "local_34") (< "<") (cast_expression "(ushort **)0x7f01" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x7f01"))) () ")")) (compound_statement "{\n          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);\n          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }" ({ "{") (expression_statement "iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);" (assignment_expression "iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0)" (identifier "iVar13") (= "=") (unary_expression "-((int)local_34 + 0x1bU & 0xfffffff0)" (- "-") (parenthesized_expression "((int)local_34 + 0x1bU & 0xfffffff0)" (( "(") (binary_expression "(int)local_34 + 0x1bU & 0xfffffff0" (binary_expression "(int)local_34 + 0x1bU" (cast_expression "(int)local_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_34")) (+ "+") (number_literal "0x1bU")) (& "&") (number_literal "0xfffffff0")) () ")")))) (; ";")) (expression_statement "uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;" (assignment_expression "uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0" (identifier "uVar16") (= "=") (binary_expression "(uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0" (call_expression "(uint)((int)ppbVar15 + iVar13 + 0xf)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)ppbVar15 + iVar13 + 0xf)" (( "(") (binary_expression "(int)ppbVar15 + iVar13 + 0xf" (binary_expression "(int)ppbVar15 + iVar13" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (identifier "iVar13")) (+ "+") (number_literal "0xf")) () ")"))) (& "&") (number_literal "0xfffffff0"))) (; ";")) (expression_statement "ppbVar15 = (byte **)((int)ppbVar15 + iVar13);" (assignment_expression "ppbVar15 = (byte **)((int)ppbVar15 + iVar13)" (identifier "ppbVar15") (= "=") (cast_expression "(byte **)((int)ppbVar15 + iVar13)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppbVar15 + iVar13)" (( "(") (binary_expression "(int)ppbVar15 + iVar13" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (identifier "iVar13")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }" (else "else") (compound_statement "{\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;\n          uVar16 = __gmp_tmp_reentrant_alloc();\n        }" ({ "{") (expression_statement "*(ushort ***)((int)ppbVar15 + -0xc) = local_34;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0xc) = local_34" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0xc)" (* "*") (cast_expression "(ushort ***)((int)ppbVar15 + -0xc)" (( "(") (type_descriptor "ushort ***" (type_identifier "ushort") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppbVar15 + -0xc)" (( "(") (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(int **)((int)ppbVar15 + -0x10) = &local_24;" (assignment_expression "*(int **)((int)ppbVar15 + -0x10) = &local_24" (pointer_expression "*(int **)((int)ppbVar15 + -0x10)" (* "*") (cast_expression "(int **)((int)ppbVar15 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x10)" (( "(") (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "&local_24" (& "&") (identifier "local_24"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x14)" (( "(") (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1dba2")) (; ";")) (expression_statement "uVar16 = __gmp_tmp_reentrant_alloc();" (assignment_expression "uVar16 = __gmp_tmp_reentrant_alloc()" (identifier "uVar16") (= "=") (call_expression "__gmp_tmp_reentrant_alloc()" (identifier "__gmp_tmp_reentrant_alloc") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "puVar17 = local_58;" (assignment_expression "puVar17 = local_58" (identifier "puVar17") (= "=") (identifier "local_58")) (; ";")) (expression_statement "*(undefined **)((int)ppbVar15 + -0xc) = puVar6;" (assignment_expression "*(undefined **)((int)ppbVar15 + -0xc) = puVar6" (pointer_expression "*(undefined **)((int)ppbVar15 + -0xc)" (* "*") (cast_expression "(undefined **)((int)ppbVar15 + -0xc)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppbVar15 + -0xc)" (( "(") (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "puVar6")) (; ";")) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x10) = local_50;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x10) = local_50" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x10)" (* "*") (cast_expression "(ushort ***)((int)ppbVar15 + -0x10)" (( "(") (type_descriptor "ushort ***" (type_identifier "ushort") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x10)" (( "(") (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (expression_statement "*(undefined **)((int)ppbVar15 + -0x14) = puVar17;" (assignment_expression "*(undefined **)((int)ppbVar15 + -0x14) = puVar17" (pointer_expression "*(undefined **)((int)ppbVar15 + -0x14)" (* "*") (cast_expression "(undefined **)((int)ppbVar15 + -0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x14)" (( "(") (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "puVar17")) (; ";")) (expression_statement "puVar9 = local_3c;" (assignment_expression "puVar9 = local_3c" (identifier "puVar9") (= "=") (identifier "local_3c")) (; ";")) (expression_statement "ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);" (assignment_expression "ppuVar11 = (ushort **)(puVar17 + -(int)puVar6)" (identifier "ppuVar11") (= "=") (cast_expression "(ushort **)(puVar17 + -(int)puVar6)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -(int)puVar6)" (( "(") (binary_expression "puVar17 + -(int)puVar6" (identifier "puVar17") (+ "+") (unary_expression "-(int)puVar6" (- "-") (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")))) () ")")))) (; ";")) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x18) = local_40;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x18) = local_40" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x18)" (* "*") (cast_expression "(ushort ***)((int)ppbVar15 + -0x18)" (( "(") (type_descriptor "ushort ***" (type_identifier "ushort") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x18)" (( "(") (binary_expression "(int)ppbVar15 + -0x18" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "local_40")) (; ";")) (expression_statement "local_38 = ppuVar11;" (assignment_expression "local_38 = ppuVar11" (identifier "local_38") (= "=") (identifier "ppuVar11")) (; ";")) (expression_statement "*(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;" (assignment_expression "*(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11" (pointer_expression "*(int *)((int)ppbVar15 + -0x1c)" (* "*") (cast_expression "(int *)((int)ppbVar15 + -0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x1c)" (( "(") (binary_expression "(int)ppbVar15 + -0x1c" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (binary_expression "(int)puVar9 - (int)ppuVar11" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (- "-") (cast_expression "(int)ppuVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar11")))) (; ";")) (expression_statement "*(uint *)((int)ppbVar15 + -0x20) = uVar16;" (assignment_expression "*(uint *)((int)ppbVar15 + -0x20) = uVar16" (pointer_expression "*(uint *)((int)ppbVar15 + -0x20)" (* "*") (cast_expression "(uint *)((int)ppbVar15 + -0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x20)" (( "(") (binary_expression "(int)ppbVar15 + -0x20" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "uVar16")) (; ";")) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x24)" (* "*") (cast_expression "(undefined4 *)((int)ppbVar15 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x24)" (( "(") (binary_expression "(int)ppbVar15 + -0x24" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x1da4a")) (; ";")) (expression_statement "iVar13 = __gmpn_divrem();" (assignment_expression "iVar13 = __gmpn_divrem()" (identifier "iVar13") (= "=") (call_expression "__gmpn_divrem()" (identifier "__gmpn_divrem") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));" (assignment_expression "puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30))" (identifier "puVar6") (= "=") (cast_expression "(undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30))" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_38 + (int)local_5c + (iVar13 - (int)local_30))" (( "(") (binary_expression "(int)local_38 + (int)local_5c + (iVar13 - (int)local_30)" (binary_expression "(int)local_38 + (int)local_5c" (cast_expression "(int)local_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_38")) (+ "+") (cast_expression "(int)local_5c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_5c"))) (+ "+") (parenthesized_expression "(iVar13 - (int)local_30)" (( "(") (binary_expression "iVar13 - (int)local_30" (identifier "iVar13") (- "-") (cast_expression "(int)local_30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_30"))) () ")"))) () ")")))) (; ";")) (expression_statement "uVar12 = uVar16;" (assignment_expression "uVar12 = uVar16" (identifier "uVar12") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "puVar17 = local_3c;" (assignment_expression "puVar17 = local_3c" (identifier "puVar17") (= "=") (identifier "local_3c")) (; ";")) (if_statement "if (iVar13 != 0) {\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }" (if "if") (parenthesized_expression "(iVar13 != 0)" (( "(") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar12 = uVar16 + 4;\n          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;\n        }" ({ "{") (expression_statement "uVar12 = uVar16 + 4;" (assignment_expression "uVar12 = uVar16 + 4" (identifier "uVar12") (= "=") (binary_expression "uVar16 + 4" (identifier "uVar16") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "*(int *)((uVar16 - 4) + (int)local_34) = iVar13;" (assignment_expression "*(int *)((uVar16 - 4) + (int)local_34) = iVar13" (pointer_expression "*(int *)((uVar16 - 4) + (int)local_34)" (* "*") (cast_expression "(int *)((uVar16 - 4) + (int)local_34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uVar16 - 4) + (int)local_34)" (( "(") (binary_expression "(uVar16 - 4) + (int)local_34" (parenthesized_expression "(uVar16 - 4)" (( "(") (binary_expression "uVar16 - 4" (identifier "uVar16") (- "-") (number_literal "4")) () ")")) (+ "+") (cast_expression "(int)local_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_34"))) () ")")))) (= "=") (identifier "iVar13")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        local_38 = (ushort **)((int)local_34 * 4);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }\n        *(uint *)((int)ppbVar15 + -0x20) = uVar12;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;\n        __gmpn_mul();\n        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));\n        if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }\n      }" (else "else") (compound_statement "{\n        local_34 = (ushort **)(local_58 + (int)puVar6);\n        local_38 = (ushort **)((int)local_34 * 4);\n        if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }\n        if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }\n        *(uint *)((int)ppbVar15 + -0x20) = uVar12;\n        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;\n        __gmpn_mul();\n        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;\n        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));\n        if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }\n      }" ({ "{") (expression_statement "local_34 = (ushort **)(local_58 + (int)puVar6);" (assignment_expression "local_34 = (ushort **)(local_58 + (int)puVar6)" (identifier "local_34") (= "=") (cast_expression "(ushort **)(local_58 + (int)puVar6)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_58 + (int)puVar6)" (( "(") (binary_expression "local_58 + (int)puVar6" (identifier "local_58") (+ "+") (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6"))) () ")")))) (; ";")) (expression_statement "local_38 = (ushort **)((int)local_34 * 4);" (assignment_expression "local_38 = (ushort **)((int)local_34 * 4)" (identifier "local_38") (= "=") (cast_expression "(ushort **)((int)local_34 * 4)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)local_34 * 4)" (( "(") (binary_expression "(int)local_34 * 4" (cast_expression "(int)local_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_34")) (* "*") (number_literal "4")) () ")")))) (; ";")) (if_statement "if (local_38 < (ushort **)0x7f01) {\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }\n        else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }" (if "if") (parenthesized_expression "(local_38 < (ushort **)0x7f01)" (( "(") (binary_expression "local_38 < (ushort **)0x7f01" (identifier "local_38") (< "<") (cast_expression "(ushort **)0x7f01" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x7f01"))) () ")")) (compound_statement "{\n          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);\n          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;\n          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);\n        }" ({ "{") (expression_statement "iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);" (assignment_expression "iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0)" (identifier "iVar13") (= "=") (unary_expression "-((uint)((int)local_38 + 0x1bU) & 0xfffffff0)" (- "-") (parenthesized_expression "((uint)((int)local_38 + 0x1bU) & 0xfffffff0)" (( "(") (binary_expression "(uint)((int)local_38 + 0x1bU) & 0xfffffff0" (call_expression "(uint)((int)local_38 + 0x1bU)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)local_38 + 0x1bU)" (( "(") (binary_expression "(int)local_38 + 0x1bU" (cast_expression "(int)local_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_38")) (+ "+") (number_literal "0x1bU")) () ")"))) (& "&") (number_literal "0xfffffff0")) () ")")))) (; ";")) (expression_statement "uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;" (assignment_expression "uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0" (identifier "uVar12") (= "=") (binary_expression "(uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0" (call_expression "(uint)((int)ppbVar15 + iVar13 + 0xf)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)ppbVar15 + iVar13 + 0xf)" (( "(") (binary_expression "(int)ppbVar15 + iVar13 + 0xf" (binary_expression "(int)ppbVar15 + iVar13" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (identifier "iVar13")) (+ "+") (number_literal "0xf")) () ")"))) (& "&") (number_literal "0xfffffff0"))) (; ";")) (expression_statement "ppbVar15 = (byte **)((int)ppbVar15 + iVar13);" (assignment_expression "ppbVar15 = (byte **)((int)ppbVar15 + iVar13)" (identifier "ppbVar15") (= "=") (cast_expression "(byte **)((int)ppbVar15 + iVar13)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppbVar15 + iVar13)" (( "(") (binary_expression "(int)ppbVar15 + iVar13" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (identifier "iVar13")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }" (else "else") (compound_statement "{\n          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;\n          *(int **)((int)ppbVar15 + -0x10) = &local_24;\n          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;\n          uVar12 = __gmp_tmp_reentrant_alloc();\n        }" ({ "{") (expression_statement "*(ushort ***)((int)ppbVar15 + -0xc) = local_38;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0xc) = local_38" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0xc)" (* "*") (cast_expression "(ushort ***)((int)ppbVar15 + -0xc)" (( "(") (type_descriptor "ushort ***" (type_identifier "ushort") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppbVar15 + -0xc)" (( "(") (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_38")) (; ";")) (expression_statement "*(int **)((int)ppbVar15 + -0x10) = &local_24;" (assignment_expression "*(int **)((int)ppbVar15 + -0x10) = &local_24" (pointer_expression "*(int **)((int)ppbVar15 + -0x10)" (* "*") (cast_expression "(int **)((int)ppbVar15 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x10)" (( "(") (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "&local_24" (& "&") (identifier "local_24"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x14)" (( "(") (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1db83")) (; ";")) (expression_statement "uVar12 = __gmp_tmp_reentrant_alloc();" (assignment_expression "uVar12 = __gmp_tmp_reentrant_alloc()" (identifier "uVar12") (= "=") (call_expression "__gmp_tmp_reentrant_alloc()" (identifier "__gmp_tmp_reentrant_alloc") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (if_statement "if ((int)local_58 < (int)puVar6) {\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }\n        else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }" (if "if") (parenthesized_expression "((int)local_58 < (int)puVar6)" (( "(") (binary_expression "(int)local_58 < (int)puVar6" (cast_expression "(int)local_58" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_58")) (< "<") (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6"))) () ")")) (compound_statement "{\n          *(undefined **)((int)ppbVar15 + -0x10) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;\n          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;\n        }" ({ "{") (expression_statement "*(undefined **)((int)ppbVar15 + -0x10) = local_58;" (assignment_expression "*(undefined **)((int)ppbVar15 + -0x10) = local_58" (pointer_expression "*(undefined **)((int)ppbVar15 + -0x10)" (* "*") (cast_expression "(undefined **)((int)ppbVar15 + -0x10)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x10)" (( "(") (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_58")) (; ";")) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x14) = local_40;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x14) = local_40" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x14)" (* "*") (cast_expression "(ushort ***)((int)ppbVar15 + -0x14)" (( "(") (type_descriptor "ushort ***" (type_identifier "ushort") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x14)" (( "(") (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_40")) (; ";")) (expression_statement "*(undefined **)((int)ppbVar15 + -0x18) = puVar6;" (assignment_expression "*(undefined **)((int)ppbVar15 + -0x18) = puVar6" (pointer_expression "*(undefined **)((int)ppbVar15 + -0x18)" (* "*") (cast_expression "(undefined **)((int)ppbVar15 + -0x18)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x18)" (( "(") (binary_expression "(int)ppbVar15 + -0x18" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "puVar6")) (; ";")) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x1c) = local_50;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x1c) = local_50" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x1c)" (* "*") (cast_expression "(ushort ***)((int)ppbVar15 + -0x1c)" (( "(") (type_descriptor "ushort ***" (type_identifier "ushort") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x1c)" (( "(") (binary_expression "(int)ppbVar15 + -0x1c" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (} "}")) (else_clause "else {\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }" (else "else") (compound_statement "{\n          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;\n          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;\n          *(undefined **)((int)ppbVar15 + -0x18) = local_58;\n          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;\n        }" ({ "{") (expression_statement "*(undefined **)((int)ppbVar15 + -0x10) = puVar6;" (assignment_expression "*(undefined **)((int)ppbVar15 + -0x10) = puVar6" (pointer_expression "*(undefined **)((int)ppbVar15 + -0x10)" (* "*") (cast_expression "(undefined **)((int)ppbVar15 + -0x10)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x10)" (( "(") (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "puVar6")) (; ";")) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x14) = local_50;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x14) = local_50" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x14)" (* "*") (cast_expression "(ushort ***)((int)ppbVar15 + -0x14)" (( "(") (type_descriptor "ushort ***" (type_identifier "ushort") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x14)" (( "(") (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (expression_statement "*(undefined **)((int)ppbVar15 + -0x18) = local_58;" (assignment_expression "*(undefined **)((int)ppbVar15 + -0x18) = local_58" (pointer_expression "*(undefined **)((int)ppbVar15 + -0x18)" (* "*") (cast_expression "(undefined **)((int)ppbVar15 + -0x18)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x18)" (( "(") (binary_expression "(int)ppbVar15 + -0x18" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "local_58")) (; ";")) (expression_statement "*(ushort ***)((int)ppbVar15 + -0x1c) = local_40;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0x1c) = local_40" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0x1c)" (* "*") (cast_expression "(ushort ***)((int)ppbVar15 + -0x1c)" (( "(") (type_descriptor "ushort ***" (type_identifier "ushort") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x1c)" (( "(") (binary_expression "(int)ppbVar15 + -0x1c" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "local_40")) (; ";")) (} "}")))) (expression_statement "*(uint *)((int)ppbVar15 + -0x20) = uVar12;" (assignment_expression "*(uint *)((int)ppbVar15 + -0x20) = uVar12" (pointer_expression "*(uint *)((int)ppbVar15 + -0x20)" (* "*") (cast_expression "(uint *)((int)ppbVar15 + -0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x20)" (( "(") (binary_expression "(int)ppbVar15 + -0x20" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x24)" (* "*") (cast_expression "(undefined4 *)((int)ppbVar15 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x24)" (( "(") (binary_expression "(int)ppbVar15 + -0x24" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0x1d8d6")) (; ";")) (expression_statement "__gmpn_mul();" (call_expression "__gmpn_mul()" (identifier "__gmpn_mul") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))\n        ;" (assignment_expression "puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))" (identifier "puVar17") (= "=") (cast_expression "(undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))" (( "(") (binary_expression "(int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0)" (cast_expression "(int)local_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_34")) (- "-") (call_expression "(uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)((uVar12 - 4) + (int)local_38) == 0)" (( "(") (binary_expression "*(int *)((uVar12 - 4) + (int)local_38) == 0" (pointer_expression "*(int *)((uVar12 - 4) + (int)local_38)" (* "*") (cast_expression "(int *)((uVar12 - 4) + (int)local_38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uVar12 - 4) + (int)local_38)" (( "(") (binary_expression "(uVar12 - 4) + (int)local_38" (parenthesized_expression "(uVar12 - 4)" (( "(") (binary_expression "uVar12 - 4" (identifier "uVar12") (- "-") (number_literal "4")) () ")")) (+ "+") (cast_expression "(int)local_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_38"))) () ")")))) (== "==") (number_literal "0")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));" (assignment_expression "puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17))" (identifier "puVar6") (= "=") (cast_expression "(undefined *)((int)local_5c + (int)(local_30 + (int)puVar17))" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_5c + (int)(local_30 + (int)puVar17))" (( "(") (binary_expression "(int)local_5c + (int)(local_30 + (int)puVar17)" (cast_expression "(int)local_5c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_5c")) (+ "+") (cast_expression "(int)(local_30 + (int)puVar17)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(local_30 + (int)puVar17)" (( "(") (binary_expression "local_30 + (int)puVar17" (identifier "local_30") (+ "+") (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17"))) () ")")))) () ")")))) (; ";")) (if_statement "if ((int)local_3c < (int)puVar17) {\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }" (if "if") (parenthesized_expression "((int)local_3c < (int)puVar17)" (( "(") (binary_expression "(int)local_3c < (int)puVar17" (cast_expression "(int)local_3c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_3c")) (< "<") (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17"))) () ")")) (compound_statement "{\n          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;\n          puVar17 = local_3c;\n        }" ({ "{") (expression_statement "uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;" (assignment_expression "uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4" (identifier "uVar12") (= "=") (binary_expression "uVar12 + ((int)puVar17 - (int)local_3c) * 4" (identifier "uVar12") (+ "+") (binary_expression "((int)puVar17 - (int)local_3c) * 4" (parenthesized_expression "((int)puVar17 - (int)local_3c)" (( "(") (binary_expression "(int)puVar17 - (int)local_3c" (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (- "-") (cast_expression "(int)local_3c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_3c"))) () ")")) (* "*") (number_literal "4")))) (; ";")) (expression_statement "puVar17 = local_3c;" (assignment_expression "puVar17 = local_3c" (identifier "puVar17") (= "=") (identifier "local_3c")) (; ";")) (} "}"))) (} "}")))) (expression_statement "local_3c = puVar17;" (assignment_expression "local_3c = puVar17" (identifier "local_3c") (= "=") (identifier "puVar17")) (; ";")) (expression_statement "puVar9 = local_3c;" (assignment_expression "puVar9 = local_3c" (identifier "puVar9") (= "=") (identifier "local_3c")) (; ";")) (expression_statement "puVar3 = local_60;" (assignment_expression "puVar3 = local_60" (identifier "puVar3") (= "=") (identifier "local_60")) (; ";")) (expression_statement "*(undefined **)((int)ppbVar15 + -8) = local_3c;" (assignment_expression "*(undefined **)((int)ppbVar15 + -8) = local_3c" (pointer_expression "*(undefined **)((int)ppbVar15 + -8)" (* "*") (cast_expression "(undefined **)((int)ppbVar15 + -8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppbVar15 + -8)" (( "(") (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_3c")) (; ";")) (expression_statement "*(uint *)((int)ppbVar15 + -0xc) = uVar12;" (assignment_expression "*(uint *)((int)ppbVar15 + -0xc) = uVar12" (pointer_expression "*(uint *)((int)ppbVar15 + -0xc)" (* "*") (cast_expression "(uint *)((int)ppbVar15 + -0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0xc)" (( "(") (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "puVar17 = local_4c;" (assignment_expression "puVar17 = local_4c" (identifier "puVar17") (= "=") (identifier "local_4c")) (; ";")) (expression_statement "*(uint *)((int)ppbVar15 + -0x10) = puVar3[3];" (assignment_expression "*(uint *)((int)ppbVar15 + -0x10) = puVar3[3]" (pointer_expression "*(uint *)((int)ppbVar15 + -0x10)" (* "*") (cast_expression "(uint *)((int)ppbVar15 + -0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x10)" (( "(") (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "pcVar2 = *(code **)(puVar17 + 0x28);" (assignment_expression "pcVar2 = *(code **)(puVar17 + 0x28)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(puVar17 + 0x28)" (* "*") (cast_expression "(code **)(puVar17 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + 0x28)" (( "(") (binary_expression "puVar17 + 0x28" (identifier "puVar17") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d91c;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d91c" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x14)" (( "(") (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1d91c")) (; ";")) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar17 = (undefined *)-(int)puVar9;" (assignment_expression "puVar17 = (undefined *)-(int)puVar9" (identifier "puVar17") (= "=") (cast_expression "(undefined *)-(int)puVar9" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (unary_expression "-(int)puVar9" (- "-") (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9"))))) (; ";")) (if_statement "if (local_64 == 0) {\n        puVar17 = puVar9;\n      }" (if "if") (parenthesized_expression "(local_64 == 0)" (( "(") (binary_expression "local_64 == 0" (identifier "local_64") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        puVar17 = puVar9;\n      }" ({ "{") (expression_statement "puVar17 = puVar9;" (assignment_expression "puVar17 = puVar9" (identifier "puVar17") (= "=") (identifier "puVar9")) (; ";")) (} "}"))) (expression_statement "local_60[2] = (uint)puVar6;" (assignment_expression "local_60[2] = (uint)puVar6" (subscript_expression "local_60[2]" (identifier "local_60") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(uint)puVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar6"))) (; ";")) (expression_statement "local_60[1] = (uint)puVar17;" (assignment_expression "local_60[1] = (uint)puVar17" (subscript_expression "local_60[1]" (identifier "local_60") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(uint)puVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar17"))) (; ";")) (if_statement "if (local_24 == 0) {\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }" (if "if") (parenthesized_expression "(local_24 == 0)" (( "(") (binary_expression "local_24 == 0" (identifier "local_24") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        puVar6 = (undefined *)0x0;\n        goto LAB_0001d775;\n      }" ({ "{") (expression_statement "puVar6 = (undefined *)0x0;" (assignment_expression "puVar6 = (undefined *)0x0" (identifier "puVar6") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_0001d775;" (goto "goto") (statement_identifier "LAB_0001d775") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      local_5c = (ushort **)0x0;\n      local_58 = puVar6;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar17 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar15 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar17;\n      if (local_64 == 0) {\n        puVar6 = puVar17;\n      }\n      puVar3[2] = (uint)local_30;\n      puVar3[1] = (uint)puVar6;\n      if (local_24 == 0) goto LAB_0001d7d0;\n    }" (else "else") (compound_statement "{\n      local_5c = (ushort **)0x0;\n      local_58 = puVar6;\n      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;\nLAB_0001d7f2:\n      local_54 = (undefined *)0x0;\n      if (local_50 != (ushort **)0x0) goto LAB_0001d589;\nLAB_0001d804:\n      puVar17 = local_58;\n      local_30 = puVar6;\n      *(undefined **)((int)ppbVar15 + -8) = local_58;\n      puVar6 = ppuVar4[-0x9b];\n      *(ushort ***)((int)ppbVar15 + -0xc) = local_40;\n      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];\n      pcVar2 = *(code **)(puVar6 + 0x28);\n      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823;\n      (*pcVar2)();\n      puVar6 = (undefined *)-(int)puVar17;\n      if (local_64 == 0) {\n        puVar6 = puVar17;\n      }\n      puVar3[2] = (uint)local_30;\n      puVar3[1] = (uint)puVar6;\n      if (local_24 == 0) goto LAB_0001d7d0;\n    }" ({ "{") (expression_statement "local_5c = (ushort **)0x0;" (assignment_expression "local_5c = (ushort **)0x0" (identifier "local_5c") (= "=") (cast_expression "(ushort **)0x0" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_58 = puVar6;" (assignment_expression "local_58 = puVar6" (identifier "local_58") (= "=") (identifier "puVar6")) (; ";")) (if_statement "if (local_6c != (byte *)0x0) goto LAB_0001d4fd;" (if "if") (parenthesized_expression "(local_6c != (byte *)0x0)" (( "(") (binary_expression "local_6c != (byte *)0x0" (identifier "local_6c") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001d4fd;" (goto "goto") (statement_identifier "LAB_0001d4fd") (; ";"))) (labeled_statement "LAB_0001d7f2:\n      local_54 = (undefined *)0x0;" (statement_identifier "LAB_0001d7f2") (: ":") (expression_statement "local_54 = (undefined *)0x0;" (assignment_expression "local_54 = (undefined *)0x0" (identifier "local_54") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (if_statement "if (local_50 != (ushort **)0x0) goto LAB_0001d589;" (if "if") (parenthesized_expression "(local_50 != (ushort **)0x0)" (( "(") (binary_expression "local_50 != (ushort **)0x0" (identifier "local_50") (!= "!=") (cast_expression "(ushort **)0x0" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001d589;" (goto "goto") (statement_identifier "LAB_0001d589") (; ";"))) (labeled_statement "LAB_0001d804:\n      puVar17 = local_58;" (statement_identifier "LAB_0001d804") (: ":") (expression_statement "puVar17 = local_58;" (assignment_expression "puVar17 = local_58" (identifier "puVar17") (= "=") (identifier "local_58")) (; ";"))) (expression_statement "local_30 = puVar6;" (assignment_expression "local_30 = puVar6" (identifier "local_30") (= "=") (identifier "puVar6")) (; ";")) (expression_statement "*(undefined **)((int)ppbVar15 + -8) = local_58;" (assignment_expression "*(undefined **)((int)ppbVar15 + -8) = local_58" (pointer_expression "*(undefined **)((int)ppbVar15 + -8)" (* "*") (cast_expression "(undefined **)((int)ppbVar15 + -8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppbVar15 + -8)" (( "(") (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_58")) (; ";")) (expression_statement "puVar6 = ppuVar4[-0x9b];" (assignment_expression "puVar6 = ppuVar4[-0x9b]" (identifier "puVar6") (= "=") (subscript_expression "ppuVar4[-0x9b]" (identifier "ppuVar4") ([ "[") (number_literal "-0x9b") (] "]"))) (; ";")) (expression_statement "*(ushort ***)((int)ppbVar15 + -0xc) = local_40;" (assignment_expression "*(ushort ***)((int)ppbVar15 + -0xc) = local_40" (pointer_expression "*(ushort ***)((int)ppbVar15 + -0xc)" (* "*") (cast_expression "(ushort ***)((int)ppbVar15 + -0xc)" (( "(") (type_descriptor "ushort ***" (type_identifier "ushort") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)ppbVar15 + -0xc)" (( "(") (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_40")) (; ";")) (expression_statement "*(uint *)((int)ppbVar15 + -0x10) = puVar3[3];" (assignment_expression "*(uint *)((int)ppbVar15 + -0x10) = puVar3[3]" (pointer_expression "*(uint *)((int)ppbVar15 + -0x10)" (* "*") (cast_expression "(uint *)((int)ppbVar15 + -0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x10)" (( "(") (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "pcVar2 = *(code **)(puVar6 + 0x28);" (assignment_expression "pcVar2 = *(code **)(puVar6 + 0x28)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(puVar6 + 0x28)" (* "*") (cast_expression "(code **)(puVar6 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar6 + 0x28)" (( "(") (binary_expression "puVar6 + 0x28" (identifier "puVar6") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x14)" (( "(") (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1d823")) (; ";")) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar6 = (undefined *)-(int)puVar17;" (assignment_expression "puVar6 = (undefined *)-(int)puVar17" (identifier "puVar6") (= "=") (cast_expression "(undefined *)-(int)puVar17" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (unary_expression "-(int)puVar17" (- "-") (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17"))))) (; ";")) (if_statement "if (local_64 == 0) {\n        puVar6 = puVar17;\n      }" (if "if") (parenthesized_expression "(local_64 == 0)" (( "(") (binary_expression "local_64 == 0" (identifier "local_64") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        puVar6 = puVar17;\n      }" ({ "{") (expression_statement "puVar6 = puVar17;" (assignment_expression "puVar6 = puVar17" (identifier "puVar6") (= "=") (identifier "puVar17")) (; ";")) (} "}"))) (expression_statement "puVar3[2] = (uint)local_30;" (assignment_expression "puVar3[2] = (uint)local_30" (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(uint)local_30" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_30"))) (; ";")) (expression_statement "puVar3[1] = (uint)puVar6;" (assignment_expression "puVar3[1] = (uint)puVar6" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(uint)puVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar6"))) (; ";")) (if_statement "if (local_24 == 0) goto LAB_0001d7d0;" (if "if") (parenthesized_expression "(local_24 == 0)" (( "(") (binary_expression "local_24 == 0" (identifier "local_24") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001d7d0;" (goto "goto") (statement_identifier "LAB_0001d7d0") (; ";"))) (} "}")))) (expression_statement "*(int *)((int)ppbVar15 + -0x10) = local_24;" (assignment_expression "*(int *)((int)ppbVar15 + -0x10) = local_24" (pointer_expression "*(int *)((int)ppbVar15 + -0x10)" (* "*") (cast_expression "(int *)((int)ppbVar15 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x10)" (( "(") (binary_expression "(int)ppbVar15 + -0x10" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_24")) (; ";")) (expression_statement "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d84e;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d84e" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppbVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -0x14)" (( "(") (binary_expression "(int)ppbVar15 + -0x14" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1d84e")) (; ";")) (expression_statement "__gmp_tmp_reentrant_free();" (call_expression "__gmp_tmp_reentrant_free()" (identifier "__gmp_tmp_reentrant_free") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar6 = (undefined *)0x0;" (assignment_expression "puVar6 = (undefined *)0x0" (identifier "puVar6") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (labeled_statement "LAB_0001d775:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }" (statement_identifier "LAB_0001d775") (: ":") (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return puVar6;\n  }" (if "if") (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (== "==") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n    return puVar6;\n  }" ({ "{") (return_statement "return puVar6;" (return "return") (identifier "puVar6") (; ";")) (} "}")))) (expression_statement "*(undefined4 *)((int)ppbVar15 + -4) = 0x1dbcb;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -4) = 0x1dbcb" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -4)" (* "*") (cast_expression "(undefined4 *)((int)ppbVar15 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -4)" (( "(") (binary_expression "(int)ppbVar15 + -4" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x1dbcb")) (; ";")) (expression_statement "FUN_0007ebe0();" (call_expression "FUN_0007ebe0()" (identifier "FUN_0007ebe0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

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

int function_1(type_1 x,char *var_4,int var_8)

{
  type_2 var_7;
  type_3 *pcVar2;
  type_1 p_Var3;
  type_4 **ppuVar4;
  type_2 *var_10;
  type_4 *var_11;
  type_4 *var_12;
  int var_30;
  type_5 *var_32;
  type_4 *var_16;
  type_6 var_38;
  type_5 **var_29;
  type_5 **var_34;
  type_7 var_20;
  int var_18;
  type_2 **ppbVar16;
  type_2 **ppbVar17;
  type_7 var_6;
  void *pvVar19;
  void *pvVar20;
  int var_1;
  bool bVar21;
  type_5 *puStack_70;
  type_2 *var_25;
  int var_26;
  type_7 var_41;
  type_1 local_60;
  type_5 **local_5c;
  type_4 *var_15;
  type_4 *var_27;
  type_5 **var_14;
  type_4 *var_35;
  type_5 **var_28;
  type_4 **local_44;
  type_5 **var_24;
  type_4 *var_9;
  type_5 **var_39;
  type_5 **var_36;
  type_4 *var_13;
  type_8 *var_22;
  int var_42;
  
  local_60 = x;
  var_42 = *(int *)(var_1 + 0x14);
  local_44 = &_GLOBAL_OFFSET_TABLE_;
  var_24 = (type_5 **)var_2(0x10000);
  local_44 = &_GLOBAL_OFFSET_TABLE_;
  var_9 = (type_4 *)var_3((char *)var_24);
  ppbVar16 = &var_25;
  var_6 = (type_7)(type_2)*var_4;
  puStack_70 = (type_5 *)0x1d265;
  var_36 = var_5();
  var_39 = (type_5 **)*var_36;
  var_7 = *(type_2 *)((int)var_39 + var_6 * 2 + 1);
  while ((var_7 & 0x20) != 0) {
    var_4 = (char *)((type_2 *)var_4 + 1);
    var_6 = (type_7)(type_2)*var_4;
    var_7 = *(type_2 *)((int)var_39 + var_6 * 2 + 1);
  }
  bVar21 = var_6 == 0x2d;
  if (bVar21) {
    var_6 = (type_7)((type_2 *)var_4)[1];
    var_4 = (char *)((type_2 *)var_4 + 1);
  }
  var_41 = (type_7)bVar21;
  if (var_8 == 0) {
    var_26 = 10;
    var_8 = 10;
    var_27 = local_44[-0x5c];
LAB_0001d6ea:
    if ((int)(type_7)(type_2)var_27[var_6] < var_8) goto LAB_0001d337;
LAB_0001d2e4:
    if (var_9 == (type_4 *)0x0) {
LAB_0001d320:
      ppbVar17 = &var_25;
      if ((int)(type_7)(type_2)var_27[((type_2 *)var_4)[(int)var_9]] < var_8) goto LAB_0001d337;
    }
    else {
      ppbVar17 = &var_25;
      if (*(type_2 *)var_24 == *var_4) {
        var_34 = var_24;
        var_10 = (type_2 *)var_4;
        do {
          var_10 = var_10 + 1;
          var_34 = (type_5 **)((int)var_34 + 1);
          if ((type_2 *)var_4 + (int)var_9 == var_10) goto LAB_0001d320;
          ppbVar17 = &var_25;
        } while (*var_10 == *(type_2 *)var_34);
      }
    }
LAB_0001d770:
    var_11 = (type_4 *)0xffffffff;
    goto LAB_0001d775;
  }
  var_26 = var_8;
  if (var_8 < 0) {
    var_8 = -var_8;
    var_26 = 10;
    if (var_8 < 0x25) goto LAB_0001d748;
  }
  else if (var_8 < 0x25) {
LAB_0001d748:
    var_27 = local_44[-0x5c];
    goto LAB_0001d6ea;
  }
  ppbVar17 = &var_25;
  if (0x3e < var_8) goto LAB_0001d770;
  var_27 = local_44[-0x5c] + 0xd0;
  if (var_8 <= (int)(type_7)(type_2)var_27[var_6]) goto LAB_0001d2e4;
LAB_0001d337:
  var_11 = (type_4 *)var_3(var_4);
  var_13 = var_11;
  var_12 = var_11 + -1;
  if (var_12 == (type_4 *)0x0) {
    ppbVar16 = (type_2 **)&stack0xffffff84;
    var_22 = (type_8 *)0x0;
    var_25 = (type_2 *)0x0;
    var_13 = (type_4 *)0x1;
    local_5c = &puStack_70;
LAB_0001d3c5:
    var_14 = (type_5 **)0x0;
    var_11 = (type_4 *)0x0;
    var_28 = local_5c;
    var_15 = var_9 + -1;
    do {
      while( true ) {
        var_36 = (type_5 **)(type_7)(type_2)*var_4;
        if ((*(type_2 *)((int)var_39 + (int)var_36 * 2 + 1) & 0x20) == 0) break;
LAB_0001d3e0:
        var_4 = (char *)((type_2 *)var_4 + 1);
        var_11 = var_11 + 1;
        if (var_13 <= var_11) goto LAB_0001d470;
      }
      if (var_9 != (type_4 *)0x0) {
        if (*var_4 == *(type_2 *)var_24) {
          var_35 = var_11;
          var_34 = var_24;
          var_10 = (type_2 *)var_4;
          do {
            var_10 = var_10 + 1;
            var_34 = (type_5 **)((int)var_34 + 1);
            if (var_10 == (type_2 *)var_4 + (int)var_9) goto LAB_0001d443;
          } while (*var_10 == *(type_2 *)var_34);
        }
        if ((int)(type_7)(type_2)var_27[(int)var_36] < var_8) {
          *(type_4 *)var_28 = var_27[(int)var_36];
          var_28 = (type_5 **)((int)var_28 + 1);
          goto LAB_0001d3e0;
        }
        goto LAB_0001d756;
      }
LAB_0001d443:
      if (var_14 != (type_5 **)0x0) goto LAB_0001d756;
      var_4 = (char *)((type_2 *)var_4 + (int)(var_15 + 1));
      var_11 = var_11 + (int)var_15 + 1;
      var_14 = var_28;
    } while (var_11 < var_13);
LAB_0001d470:
    var_13 = (type_4 *)((int)var_28 - (int)local_5c);
    ppbVar17 = ppbVar16;
  }
  else {
    var_7 = ((type_2 *)var_4)[(int)(var_11 + -1)];
    if (var_7 == 0x40) {
      var_13 = var_12;
LAB_0001d729:
      var_25 = (type_2 *)var_4 + (int)var_11;
    }
    else {
      if (var_8 < 0xb) {
        do {
          var_16 = var_12;
          if ((var_7 & 0xdf) == 0x45) {
            var_13 = var_16;
            var_11 = var_16 + 1;
            goto LAB_0001d729;
          }
          var_12 = var_16 + -1;
          if (var_12 == (type_4 *)0x0) goto LAB_0001d38c;
          var_7 = ((type_2 *)var_4)[(int)(var_16 + -1)];
        } while (var_7 != 0x40);
        var_13 = var_12;
        var_11 = var_16;
        goto LAB_0001d729;
      }
      for (var_16 = var_11 + -2; var_16 != (type_4 *)0x0; var_16 = var_16 + -1) {
        if (((type_2 *)var_4)[(int)(var_12 + -1)] == 0x40) {
          var_13 = var_16;
          var_11 = var_12;
          goto LAB_0001d729;
        }
        var_12 = var_16;
      }
LAB_0001d38c:
      var_25 = (type_2 *)0x0;
      var_11 = var_11 + 1;
    }
    var_22 = (type_8 *)0x0;
    if ((type_4 *)0x7f00 < var_11) {
      local_5c = (type_5 **)var_17(&var_22,(size_t)var_11);
      var_39 = (type_5 **)*var_36;
      goto LAB_0001d3c5;
    }
    var_18 = -((type_7)(var_11 + 0x1b) & 0xfffffff0);
    ppbVar16 = (type_2 **)((int)&var_25 + var_18);
    ppbVar17 = (type_2 **)((int)&var_25 + var_18);
    local_5c = (type_5 **)((int)&local_60 + var_18);
    if (var_13 != (type_4 *)0x0) goto LAB_0001d3c5;
    var_28 = (type_5 **)((int)&local_60 + var_18);
    var_14 = (type_5 **)0x0;
  }
  var_34 = (type_5 **)local_60->_mp_prec;
  var_20 = (type_7)((ulonglong)*(type_7 *)(local_44[-0x56] + var_8 * 0x14 + 8) * var_19(var_13) >> 0x20
                 ) & 0x1ffffffc;
  var_6 = var_20 + 8;
  if (var_6 < 0x7f01) {
    var_18 = -(var_20 + 0x23 & 0xfffffff0);
    var_24 = (type_5 **)((type_7)((int)ppbVar17 + var_18 + 0xf) & 0xfffffff0);
    ppbVar17 = (type_2 **)((int)ppbVar17 + var_18);
  }
  else {
    *(type_7 *)((int)ppbVar17 + -0xc) = var_6;
    *(type_8 ***)((int)ppbVar17 + -0x10) = &var_22;
    *(type_9 *)((int)ppbVar17 + -0x14) = 0x1dabe;
    var_24 = (type_5 **)
               var_17
                         (*(type_8 ***)((int)ppbVar17 + -0x10),
                          *(size_t *)((int)ppbVar17 + -0xc));
  }
  *(int *)((int)ppbVar17 + -4) = var_8;
  *(type_4 **)((int)ppbVar17 + -8) = var_13;
  *(type_5 ***)((int)ppbVar17 + -0xc) = local_5c;
  *(type_5 ***)((int)ppbVar17 + -0x10) = var_24;
  *(type_9 *)((int)ppbVar17 + -0x14) = 0x1d4cf;
  var_11 = (type_4 *)
           var_21(*(type_10 *)((int)ppbVar17 + -0x10),*(type_11 **)((int)ppbVar17 + -0xc),
                          *(size_t *)((int)ppbVar17 + -8),*(int *)((int)ppbVar17 + -4));
  ppuVar4 = local_44;
  p_Var3 = local_60;
  if (var_11 == (type_4 *)0x0) {
    local_60->_mp_size = 0;
    local_60->_mp_exp = 0;
    if (var_22 != (type_8 *)0x0) {
      var_13 = var_11;
      *(type_8 **)((int)ppbVar17 + -0x10) = var_22;
      *(type_9 *)((int)ppbVar17 + -0x14) = 0x1dadb;
      var_23(*(type_8 **)((int)ppbVar17 + -0x10));
      var_11 = var_13;
      goto LAB_0001d775;
    }
LAB_0001d7d0:
    var_11 = (type_4 *)0x0;
  }
  else {
    var_9 = (type_4 *)((int)var_34 + 1);
    if ((int)var_9 < (int)var_11) {
      var_15 = var_9;
      local_5c = (type_5 **)(var_11 + -(int)var_9);
      var_24 = var_24 + (int)(var_11 + -(int)var_9);
      if (var_25 == (type_2 *)0x0) goto LAB_0001d7f2;
LAB_0001d4fd:
      var_7 = *var_25;
      var_13 = (type_4 *)(type_7)(var_7 == 0x2d);
      var_10 = var_25 + (var_7 == 0x2b || var_7 == 0x2d);
      var_6 = (type_7)(type_2)var_27[*var_10];
      ppbVar16 = ppbVar17;
      if (var_26 <= (int)var_6) {
LAB_0001d756:
        ppbVar17 = ppbVar16;
        if (var_22 != (type_8 *)0x0) {
          *(type_8 **)((int)ppbVar16 + -0x10) = var_22;
          *(type_9 *)((int)ppbVar16 + -0x14) = 0x1d769;
          var_23(*(type_8 **)((int)ppbVar16 + -0x10));
        }
        goto LAB_0001d770;
      }
      var_36 = (type_5 **)(var_10 + 2);
      var_20 = (type_7)(type_2)var_27[var_10[1]];
      if ((int)var_20 < var_26) {
        var_39 = var_34;
        var_36 = (type_5 **)-(int)var_13;
        var_29 = (type_5 **)(var_10 + 2);
        do {
          var_6 = var_6 * var_26 + var_20;
          var_20 = (type_7)(type_2)var_27[*(type_2 *)var_29];
          var_29 = (type_5 **)((int)var_29 + 1);
        } while ((int)var_20 < var_26);
      }
      var_27 = var_13 + (var_6 ^ (type_7)-(int)var_13);
      if (var_14 != (type_5 **)0x0) {
LAB_0001d589:
        var_27 = var_27 + -((int)var_28 - (int)var_14);
      }
      if (var_27 == (type_4 *)0x0) goto LAB_0001d804;
      var_6 = ((int)var_34 + 2U) * 8;
      var_26 = (int)var_34 + 2U;
      if (var_6 < 0x7f01) {
        var_6 = var_6 + 0x1b & 0xfffffff0;
        var_14 = (type_5 **)((type_7)((int)ppbVar17 + (0xf - var_6)) & 0xfffffff0);
        var_34 = (type_5 **)((type_7)((int)ppbVar17 + var_6 * -2 + 0xf) & 0xfffffff0);
        ppbVar17 = (type_2 **)((int)ppbVar17 + var_6 * -2);
      }
      else {
        *(type_7 *)((int)ppbVar17 + -0xc) = var_6;
        *(type_8 ***)((int)ppbVar17 + -0x10) = &var_22;
        *(type_9 *)((int)ppbVar17 + -0x14) = 0x1db57;
        var_14 = (type_5 **)
                   var_17
                             (*(type_8 ***)((int)ppbVar17 + -0x10),
                              *(size_t *)((int)ppbVar17 + -0xc));
        *(type_7 *)((int)ppbVar17 + -0xc) = var_6;
        *(type_8 ***)((int)ppbVar17 + -0x10) = &var_22;
        *(type_9 *)((int)ppbVar17 + -0x14) = 0x1db66;
        var_34 = (type_5 **)
                   var_17
                             (*(type_8 ***)((int)ppbVar17 + -0x10),
                              *(size_t *)((int)ppbVar17 + -0xc));
      }
      var_28 = (type_5 **)(((type_7)var_27 ^ (int)var_27 >> 0x1f) - ((int)var_27 >> 0x1f));
      *var_14 = (type_5 *)var_8;
      var_6 = 0x1f;
      if (var_28 != (type_5 **)0x0) {
        for (; (type_7)var_28 >> var_6 == 0; var_6 = var_6 - 1) {
        }
      }
      var_6 = 0x1e - (var_6 ^ 0x1f);
      if (var_6 == 0xffffffff) {
        var_18 = 0;
        var_13 = (type_4 *)0x0;
        var_11 = (type_4 *)0x1;
        var_35 = local_44[-0x9b];
        var_29 = var_14;
      }
      else {
        var_36 = var_14;
        var_11 = (type_4 *)0x1;
        var_30 = 0;
        var_13 = (type_4 *)0x0;
        var_35 = local_44[-0x9b];
        while( true ) {
          var_29 = var_36;
          var_39 = var_34;
          *(type_4 **)((int)ppbVar17 + -8) = var_11;
          *(type_5 ***)((int)ppbVar17 + -0xc) = var_29 + var_30;
          *(type_5 ***)((int)ppbVar17 + -0x10) = var_34;
          *(type_9 *)((int)ppbVar17 + -0x14) = 0x1d69f;
          var_31(*(type_10 *)((int)ppbVar17 + -0x10),*(type_12 *)((int)ppbVar17 + -0xc),
                     *(type_13 *)((int)ppbVar17 + -8));
          var_13 = (type_4 *)((int)var_13 * 2);
          var_11 = (type_4 *)
                   ((int)var_11 * 2 - (type_7)(var_39[(int)var_11 * 2 + -1] == (type_5 *)0x0));
          if ((int)var_9 < (int)var_11) {
            var_30 = (int)var_11 - (int)var_9;
            var_13 = var_13 + var_30;
            var_18 = var_30 * 4;
            var_11 = var_9;
          }
          else {
            var_18 = 0;
            var_30 = 0;
          }
          if (((type_7)var_28 >> (var_6 & 0x1f) & 1) != 0) {
            *(int *)((int)ppbVar17 + -4) = var_8;
            var_12 = var_35;
            *(type_4 **)((int)ppbVar17 + -8) = var_11;
            *(int *)((int)ppbVar17 + -0xc) = var_18 + (int)var_39;
            *(type_5 ***)((int)ppbVar17 + -0x10) = var_39;
            pcVar2 = *(type_3 **)(var_12 + 100);
            *(type_9 *)((int)ppbVar17 + -0x14) = 0x1d65b;
            var_32 = (type_5 *)(*pcVar2)();
            var_39[(int)var_11] = var_32;
            var_18 = 0;
            var_11 = var_11 + (var_32 != (type_5 *)0x0);
            var_30 = 0;
          }
          var_34 = var_36;
          var_6 = var_6 - 1;
          var_29 = var_39;
          if (var_6 == 0xffffffff) break;
          var_36 = var_39;
        }
      }
      var_12 = var_35;
      if ((int)var_9 < (int)var_11) {
        var_13 = var_13 + ((int)var_11 - (int)var_9);
        var_29 = var_29 + ((int)var_11 - (int)var_9);
        var_11 = var_9;
      }
      *(type_4 **)((int)ppbVar17 + -8) = var_11;
      *(int *)((int)ppbVar17 + -0xc) = (int)var_29 + var_18;
      *(type_5 ***)((int)ppbVar17 + -0x10) = var_14;
      pcVar2 = *(type_3 **)(var_12 + 0x28);
      *(type_9 *)((int)ppbVar17 + -0x14) = 0x1d87c;
      (*pcVar2)();
      if ((int)var_27 < 0) {
        if ((int)var_15 < (int)var_11) {
          var_6 = (int)var_11 * 4 + 4;
          if (var_6 < 0x7f01) {
            var_18 = -((int)var_11 * 4 + 0x1fU & 0xfffffff0);
            var_36 = (type_5 **)((type_7)((int)ppbVar17 + var_18 + 0xf) & 0xfffffff0);
            ppbVar17 = (type_2 **)((int)ppbVar17 + var_18);
          }
          else {
            *(type_7 *)((int)ppbVar17 + -0xc) = var_6;
            *(type_8 ***)((int)ppbVar17 + -0x10) = &var_22;
            *(type_9 *)((int)ppbVar17 + -0x14) = 0x1dbbc;
            var_36 = (type_5 **)
                       var_17
                                 (*(type_8 ***)((int)ppbVar17 + -0x10),
                                  *(size_t *)((int)ppbVar17 + -0xc));
          }
          var_29 = (type_5 **)(var_11 + -(int)var_15);
          var_39 = var_29;
          *(int *)((int)ppbVar17 + -8) = (int)var_29 * 4;
          *(type_9 *)((int)ppbVar17 + -0xc) = 0;
          *(type_5 ***)((int)ppbVar17 + -0x10) = var_36;
          *(type_9 *)((int)ppbVar17 + -0x14) = 0x1d9a1;
          var_33(*(void **)((int)ppbVar17 + -0x10),*(int *)((int)ppbVar17 + -0xc),
                 *(size_t *)((int)ppbVar17 + -8));
          var_34 = var_36;
          var_12 = var_35;
          *(type_4 **)((int)ppbVar17 + -8) = var_15;
          *(type_5 ***)((int)ppbVar17 + -0xc) = var_24;
          *(type_5 ***)((int)ppbVar17 + -0x10) = var_34 + (int)var_29;
          pcVar2 = *(type_3 **)(var_12 + 0x28);
          *(type_9 *)((int)ppbVar17 + -0x14) = 0x1d9b6;
          (*pcVar2)();
          var_15 = var_11;
          local_5c = (type_5 **)((int)local_5c - (int)var_39);
          var_24 = var_36;
        }
        var_34 = var_14;
        var_32 = var_14[(int)(var_11 + -1)];
        if (-1 < (int)var_32) {
          var_6 = 0x1f;
          if (var_32 != (type_5 *)0x0) {
            for (; (type_7)var_32 >> var_6 == 0; var_6 = var_6 - 1) {
            }
          }
          *(type_7 *)((int)ppbVar17 + -4) = var_6 ^ 0x1f;
          *(type_4 **)((int)ppbVar17 + -8) = var_11;
          *(type_5 ***)((int)ppbVar17 + -0xc) = var_34;
          *(type_5 ***)((int)ppbVar17 + -0x10) = var_34;
          pcVar2 = *(type_3 **)(var_35 + 0x38);
          *(type_9 *)((int)ppbVar17 + -0x14) = 0x1d9e3;
          (*pcVar2)();
          var_34 = var_24;
          var_16 = var_35;
          *(type_7 *)((int)ppbVar17 + -0x14) = var_6 ^ 0x1f;
          var_12 = var_15;
          *(type_4 **)((int)ppbVar17 + -0x18) = var_15;
          *(type_5 ***)((int)ppbVar17 + -0x1c) = var_34;
          *(type_5 ***)((int)ppbVar17 + -0x20) = var_34;
          pcVar2 = *(type_3 **)(var_16 + 0x38);
          *(type_9 *)((int)ppbVar17 + -0x24) = 0x1d9f3;
          var_32 = (type_5 *)(*pcVar2)();
          if (var_32 != (type_5 *)0x0) {
            var_34[(int)var_12] = var_32;
            var_15 = var_12 + 1;
          }
        }
        var_36 = (type_5 **)(var_26 * 4);
        if (var_36 < (type_5 **)0x7f01) {
          var_18 = -((int)var_36 + 0x1bU & 0xfffffff0);
          pvVar20 = (void *)((type_7)((int)ppbVar17 + var_18 + 0xf) & 0xfffffff0);
          ppbVar17 = (type_2 **)((int)ppbVar17 + var_18);
        }
        else {
          *(type_5 ***)((int)ppbVar17 + -0xc) = var_36;
          *(type_8 ***)((int)ppbVar17 + -0x10) = &var_22;
          *(type_9 *)((int)ppbVar17 + -0x14) = 0x1dba2;
          pvVar20 = var_17
                              (*(type_8 ***)((int)ppbVar17 + -0x10),
                               *(size_t *)((int)ppbVar17 + -0xc));
        }
        var_12 = var_15;
        *(type_4 **)((int)ppbVar17 + -0xc) = var_11;
        *(type_5 ***)((int)ppbVar17 + -0x10) = var_14;
        *(type_4 **)((int)ppbVar17 + -0x14) = var_12;
        var_16 = var_9;
        var_34 = (type_5 **)(var_12 + -(int)var_11);
        *(type_5 ***)((int)ppbVar17 + -0x18) = var_24;
        var_39 = var_34;
        *(int *)((int)ppbVar17 + -0x1c) = (int)var_16 - (int)var_34;
        *(void **)((int)ppbVar17 + -0x20) = pvVar20;
        *(type_9 *)((int)ppbVar17 + -0x24) = 0x1da4a;
        var_38 = var_37(*(type_10 *)((int)ppbVar17 + -0x20),
                               *(type_13 *)((int)ppbVar17 + -0x1c),
                               *(type_10 *)((int)ppbVar17 + -0x18),
                               *(type_13 *)((int)ppbVar17 + -0x14),
                               *(type_12 *)((int)ppbVar17 + -0x10),
                               *(type_13 *)((int)ppbVar17 + -0xc));
        var_11 = (type_4 *)((int)var_39 + (int)local_5c + (var_38 - (int)var_13));
        pvVar19 = pvVar20;
        var_12 = var_9;
        if (var_38 != 0) {
          pvVar19 = (void *)((int)pvVar20 + 4);
          *(type_6 *)((int)pvVar20 + -4 + (int)var_36) = var_38;
        }
      }
      else {
        var_39 = (type_5 **)((int)(var_15 + (int)var_11) * 4);
        var_36 = (type_5 **)(var_15 + (int)var_11);
        if (var_39 < (type_5 **)0x7f01) {
          var_18 = -((type_7)((int)var_39 + 0x1bU) & 0xfffffff0);
          pvVar19 = (void *)((type_7)((int)ppbVar17 + var_18 + 0xf) & 0xfffffff0);
          ppbVar17 = (type_2 **)((int)ppbVar17 + var_18);
        }
        else {
          *(type_5 ***)((int)ppbVar17 + -0xc) = var_39;
          *(type_8 ***)((int)ppbVar17 + -0x10) = &var_22;
          *(type_9 *)((int)ppbVar17 + -0x14) = 0x1db83;
          pvVar19 = var_17
                              (*(type_8 ***)((int)ppbVar17 + -0x10),
                               *(size_t *)((int)ppbVar17 + -0xc));
        }
        if ((int)var_15 < (int)var_11) {
          *(type_4 **)((int)ppbVar17 + -0x10) = var_15;
          *(type_5 ***)((int)ppbVar17 + -0x14) = var_24;
          *(type_4 **)((int)ppbVar17 + -0x18) = var_11;
          *(type_5 ***)((int)ppbVar17 + -0x1c) = var_14;
        }
        else {
          *(type_4 **)((int)ppbVar17 + -0x10) = var_11;
          *(type_5 ***)((int)ppbVar17 + -0x14) = var_14;
          *(type_4 **)((int)ppbVar17 + -0x18) = var_15;
          *(type_5 ***)((int)ppbVar17 + -0x1c) = var_24;
        }
        *(void **)((int)ppbVar17 + -0x20) = pvVar19;
        *(type_9 *)((int)ppbVar17 + -0x24) = 0x1d8d6;
        var_40(*(type_10 *)((int)ppbVar17 + -0x20),*(type_12 *)((int)ppbVar17 + -0x1c),
                   *(type_13 *)((int)ppbVar17 + -0x18),*(type_12 *)((int)ppbVar17 + -0x14),
                   *(type_13 *)((int)ppbVar17 + -0x10));
        var_12 = (type_4 *)
                 ((int)var_36 - (type_7)(*(int *)((int)pvVar19 + -4 + (int)var_39) == 0));
        var_11 = (type_4 *)((int)local_5c + (int)(var_13 + (int)var_12));
        if ((int)var_9 < (int)var_12) {
          pvVar19 = (void *)((int)pvVar19 + ((int)var_12 - (int)var_9) * 4);
          var_12 = var_9;
        }
      }
      var_9 = var_12;
      var_16 = var_9;
      p_Var3 = local_60;
      *(type_4 **)((int)ppbVar17 + -8) = var_9;
      *(void **)((int)ppbVar17 + -0xc) = pvVar19;
      var_12 = var_35;
      *(type_6 **)((int)ppbVar17 + -0x10) = p_Var3->_mp_d;
      pcVar2 = *(type_3 **)(var_12 + 0x28);
      *(type_9 *)((int)ppbVar17 + -0x14) = 0x1d91c;
      (*pcVar2)();
      var_12 = (type_4 *)-(int)var_16;
      if (var_41 == 0) {
        var_12 = var_16;
      }
      local_60->_mp_exp = (type_14)var_11;
      local_60->_mp_size = (int)var_12;
      if (var_22 == (type_8 *)0x0) {
        var_11 = (type_4 *)0x0;
        goto LAB_0001d775;
      }
    }
    else {
      var_15 = var_11;
      local_5c = (type_5 **)0x0;
      if (var_25 != (type_2 *)0x0) goto LAB_0001d4fd;
LAB_0001d7f2:
      var_27 = (type_4 *)0x0;
      if (var_14 != (type_5 **)0x0) goto LAB_0001d589;
LAB_0001d804:
      var_12 = var_15;
      var_13 = var_11;
      *(type_4 **)((int)ppbVar17 + -8) = var_15;
      var_11 = ppuVar4[-0x9b];
      *(type_5 ***)((int)ppbVar17 + -0xc) = var_24;
      *(type_6 **)((int)ppbVar17 + -0x10) = p_Var3->_mp_d;
      pcVar2 = *(type_3 **)(var_11 + 0x28);
      *(type_9 *)((int)ppbVar17 + -0x14) = 0x1d823;
      (*pcVar2)();
      var_11 = (type_4 *)-(int)var_12;
      if (var_41 == 0) {
        var_11 = var_12;
      }
      p_Var3->_mp_exp = (type_14)var_13;
      p_Var3->_mp_size = (int)var_11;
      if (var_22 == (type_8 *)0x0) goto LAB_0001d7d0;
    }
    *(type_8 **)((int)ppbVar17 + -0x10) = var_22;
    *(type_9 *)((int)ppbVar17 + -0x14) = 0x1d84e;
    var_23(*(type_8 **)((int)ppbVar17 + -0x10));
    var_11 = (type_4 *)0x0;
  }
LAB_0001d775:
  if (var_42 == *(int *)(var_1 + 0x14)) {
    return (int)var_11;
  }
                    /* WARNING: Subroutine does not return */
  *(type_9 *)((int)ppbVar17 + -4) = 0x1dbcb;
  var_43();
}


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

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

undefined * MASKED(uint *param_1,byte *param_2,ushort *param_3)

{
  byte bVar1;
  code *pcVar2;
  uint *puVar3;
  undefined **ppuVar4;
  byte *pbVar5;
  undefined *puVar6;
  int iVar7;
  ushort *puVar8;
  undefined *puVar9;
  ushort **ppuVar10;
  ushort **ppuVar11;
  uint uVar12;
  int iVar13;
  byte **ppbVar14;
  byte **ppbVar15;
  uint uVar16;
  undefined *puVar17;
  int in_GS_OFFSET;
  bool bVar18;
  ushort *puStack_70;
  byte *local_6c;
  ushort *local_68;
  uint local_64;
  uint *local_60;
  ushort **local_5c;
  undefined *local_58;
  undefined *local_54;
  ushort **local_50;
  undefined *local_4c;
  ushort **local_48;
  undefined **local_44;
  ushort **local_40;
  undefined *local_3c;
  ushort **local_38;
  ushort **local_34;
  undefined *local_30;
  int local_24;
  int local_20;
  
  local_60 = param_1;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  local_44 = &__DT_PLTGOT;
  local_40 = (ushort **)nl_langinfo(0x10000);
  local_44 = &__DT_PLTGOT;
  local_3c = (undefined *)strlen((char *)local_40);
  ppbVar14 = &local_6c;
  uVar16 = (uint)*param_2;
  puStack_70 = (ushort *)0x1d265;
  local_34 = __ctype_b_loc();
  local_38 = (ushort **)*local_34;
  bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1);
  while ((bVar1 & 0x20) != 0) {
    param_2 = param_2 + 1;
    uVar16 = (uint)*param_2;
    bVar1 = *(byte *)((int)local_38 + uVar16 * 2 + 1);
  }
  bVar18 = uVar16 == 0x2d;
  if (bVar18) {
    uVar16 = (uint)param_2[1];
    param_2 = param_2 + 1;
  }
  local_64 = (uint)bVar18;
  if (param_3 == (ushort *)0x0) {
    local_68 = (ushort *)0xa;
    param_3 = (ushort *)0xa;
    local_54 = local_44[-0x5c];
LAB_0001d6ea:
    if ((int)(uint)(byte)local_54[uVar16] < (int)param_3) goto LAB_0001d337;
LAB_0001d2e4:
    if (local_3c == (undefined *)0x0) {
LAB_0001d320:
      ppbVar15 = &local_6c;
      if ((int)(uint)(byte)local_54[param_2[(int)local_3c]] < (int)param_3) goto LAB_0001d337;
    }
    else {
      ppbVar15 = &local_6c;
      if (*(byte *)local_40 == *param_2) {
        ppuVar11 = local_40;
        pbVar5 = param_2;
        do {
          pbVar5 = pbVar5 + 1;
          ppuVar11 = (ushort **)((int)ppuVar11 + 1);
          if (param_2 + (int)local_3c == pbVar5) goto LAB_0001d320;
          ppbVar15 = &local_6c;
        } while (*pbVar5 == *(byte *)ppuVar11);
      }
    }
LAB_0001d770:
    puVar6 = (undefined *)0xffffffff;
    goto LAB_0001d775;
  }
  local_68 = param_3;
  if ((int)param_3 < 0) {
    param_3 = (ushort *)-(int)param_3;
    local_68 = (ushort *)0xa;
    if ((int)param_3 < 0x25) goto LAB_0001d748;
  }
  else if ((int)param_3 < 0x25) {
LAB_0001d748:
    local_54 = local_44[-0x5c];
    goto LAB_0001d6ea;
  }
  ppbVar15 = &local_6c;
  if (0x3e < (int)param_3) goto LAB_0001d770;
  local_54 = local_44[-0x5c] + 0xd0;
  if ((int)param_3 <= (int)(uint)(byte)local_54[uVar16]) goto LAB_0001d2e4;
LAB_0001d337:
  puVar6 = (undefined *)strlen((char *)param_2);
  local_30 = puVar6 + -1;
  if (local_30 == (undefined *)0x0) {
    ppbVar14 = (byte **)&stack0xffffff84;
    local_24 = 0;
    local_6c = (byte *)0x0;
    local_5c = &puStack_70;
    local_30 = (undefined *)0x1;
LAB_0001d3c5:
    local_50 = (ushort **)0x0;
    puVar6 = (undefined *)0x0;
    local_48 = local_5c;
    local_58 = local_3c + -1;
    do {
      while( true ) {
        local_34 = (ushort **)(uint)*param_2;
        if ((*(byte *)((int)local_38 + (int)local_34 * 2 + 1) & 0x20) == 0) break;
LAB_0001d3e0:
        param_2 = param_2 + 1;
        puVar6 = puVar6 + 1;
        if (local_30 <= puVar6) goto LAB_0001d470;
      }
      if (local_3c != (undefined *)0x0) {
        if (*param_2 == *(byte *)local_40) {
          ppuVar11 = local_40;
          pbVar5 = param_2;
          do {
            pbVar5 = pbVar5 + 1;
            ppuVar11 = (ushort **)((int)ppuVar11 + 1);
            local_4c = puVar6;
            if (pbVar5 == param_2 + (int)local_3c) goto LAB_0001d443;
          } while (*pbVar5 == *(byte *)ppuVar11);
        }
        if ((int)(uint)(byte)local_54[(int)local_34] < (int)param_3) {
          *(undefined *)local_48 = local_54[(int)local_34];
          local_48 = (ushort **)((int)local_48 + 1);
          goto LAB_0001d3e0;
        }
        goto LAB_0001d756;
      }
LAB_0001d443:
      if (local_50 != (ushort **)0x0) goto LAB_0001d756;
      local_50 = local_48;
      param_2 = param_2 + (int)(local_58 + 1);
      puVar6 = puVar6 + (int)local_58 + 1;
    } while (puVar6 < local_30);
LAB_0001d470:
    local_30 = (undefined *)((int)local_48 - (int)local_5c);
    ppbVar15 = ppbVar14;
  }
  else {
    bVar1 = param_2[(int)(puVar6 + -1)];
    puVar17 = puVar6;
    if (bVar1 == 0x40) {
LAB_0001d729:
      local_6c = param_2 + (int)puVar17;
    }
    else {
      if ((int)param_3 < 0xb) {
        do {
          puVar9 = local_30;
          if ((bVar1 & 0xdf) == 0x45) {
            puVar17 = puVar9 + 1;
            local_30 = puVar9;
            break;
          }
          local_30 = puVar9 + -1;
          if (local_30 == (undefined *)0x0) goto LAB_0001d38c;
          bVar1 = param_2[(int)(puVar9 + -1)];
          puVar17 = puVar9;
        } while (bVar1 != 0x40);
        goto LAB_0001d729;
      }
      puVar17 = local_30;
      for (local_30 = puVar6 + -2; local_30 != (undefined *)0x0; local_30 = local_30 + -1) {
        if (param_2[(int)(puVar17 + -1)] == 0x40) goto LAB_0001d729;
        puVar17 = local_30;
      }
LAB_0001d38c:
      local_6c = (byte *)0x0;
      puVar17 = puVar6 + 1;
      local_30 = puVar6;
    }
    local_24 = 0;
    if ((undefined *)0x7f00 < puVar17) {
      local_5c = (ushort **)__gmp_tmp_reentrant_alloc();
      local_38 = (ushort **)*local_34;
      goto LAB_0001d3c5;
    }
    iVar13 = -((uint)(puVar17 + 0x1b) & 0xfffffff0);
    ppbVar14 = (byte **)((int)&local_6c + iVar13);
    ppbVar15 = (byte **)((int)&local_6c + iVar13);
    local_5c = (ushort **)((int)&local_60 + iVar13);
    if (local_30 != (undefined *)0x0) goto LAB_0001d3c5;
    local_50 = (ushort **)0x0;
    local_48 = local_5c;
  }
  ppuVar11 = (ushort **)*local_60;
  uVar12 = (uint)((ulonglong)*(uint *)(local_44[-0x56] + (int)param_3 * 0x14 + 8) * ZEXT48(local_30)
                 >> 0x20) & 0x1ffffffc;
  uVar16 = uVar12 + 8;
  if (uVar16 < 0x7f01) {
    iVar13 = -(uVar12 + 0x23 & 0xfffffff0);
    local_40 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);
    ppbVar15 = (byte **)((int)ppbVar15 + iVar13);
  }
  else {
    *(uint *)((int)ppbVar15 + -0xc) = uVar16;
    *(int **)((int)ppbVar15 + -0x10) = &local_24;
    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dabe;
    local_40 = (ushort **)__gmp_tmp_reentrant_alloc();
  }
  *(ushort **)((int)ppbVar15 + -4) = param_3;
  *(undefined **)((int)ppbVar15 + -8) = local_30;
  *(ushort ***)((int)ppbVar15 + -0xc) = local_5c;
  *(ushort ***)((int)ppbVar15 + -0x10) = local_40;
  *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d4cf;
  puVar6 = (undefined *)__gmpn_set_str();
  ppuVar4 = local_44;
  puVar3 = local_60;
  if (puVar6 == (undefined *)0x0) {
    local_60[1] = 0;
    local_60[2] = 0;
    if (local_24 != 0) {
      local_30 = puVar6;
      *(int *)((int)ppbVar15 + -0x10) = local_24;
      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dadb;
      __gmp_tmp_reentrant_free();
      puVar6 = local_30;
      goto LAB_0001d775;
    }
LAB_0001d7d0:
    puVar6 = (undefined *)0x0;
  }
  else {
    local_3c = (undefined *)((int)ppuVar11 + 1);
    if ((int)local_3c < (int)puVar6) {
      local_5c = (ushort **)(puVar6 + -(int)local_3c);
      local_40 = local_40 + (int)local_5c;
      local_58 = local_3c;
      if (local_6c == (byte *)0x0) goto LAB_0001d7f2;
LAB_0001d4fd:
      bVar1 = *local_6c;
      local_30 = (undefined *)(uint)(bVar1 == 0x2d);
      pbVar5 = local_6c + (bVar1 == 0x2b || bVar1 == 0x2d);
      uVar16 = (uint)(byte)local_54[*pbVar5];
      ppbVar14 = ppbVar15;
      if ((int)local_68 <= (int)uVar16) {
LAB_0001d756:
        ppbVar15 = ppbVar14;
        if (local_24 != 0) {
          *(int *)((int)ppbVar14 + -0x10) = local_24;
          *(undefined4 *)((int)ppbVar14 + -0x14) = 0x1d769;
          __gmp_tmp_reentrant_free();
        }
        goto LAB_0001d770;
      }
      bVar1 = local_54[pbVar5[1]];
      local_34 = (ushort **)(pbVar5 + 2);
      ppuVar10 = (ushort **)(pbVar5 + 2);
      while ((int)(uint)bVar1 < (int)local_68) {
        uVar16 = uVar16 * (int)local_68 + (uint)bVar1;
        bVar1 = local_54[*(byte *)ppuVar10];
        local_34 = (ushort **)-(int)local_30;
        ppuVar10 = (ushort **)((int)ppuVar10 + 1);
        local_38 = ppuVar11;
      }
      local_54 = local_30 + (uVar16 ^ (uint)-(int)local_30);
      if (local_50 != (ushort **)0x0) {
LAB_0001d589:
        local_54 = local_54 + -((int)local_48 - (int)local_50);
      }
      if (local_54 == (undefined *)0x0) goto LAB_0001d804;
      local_68 = (ushort *)((int)ppuVar11 + 2);
      uVar16 = (int)local_68 * 8;
      if (uVar16 < 0x7f01) {
        uVar16 = uVar16 + 0x1b & 0xfffffff0;
        local_50 = (ushort **)((uint)((int)ppbVar15 + (0xf - uVar16)) & 0xfffffff0);
        ppuVar11 = (ushort **)((uint)((int)ppbVar15 + uVar16 * -2 + 0xf) & 0xfffffff0);
        ppbVar15 = (byte **)((int)ppbVar15 + uVar16 * -2);
      }
      else {
        *(uint *)((int)ppbVar15 + -0xc) = uVar16;
        *(int **)((int)ppbVar15 + -0x10) = &local_24;
        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db57;
        local_50 = (ushort **)__gmp_tmp_reentrant_alloc();
        *(uint *)((int)ppbVar15 + -0xc) = uVar16;
        *(int **)((int)ppbVar15 + -0x10) = &local_24;
        *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db66;
        ppuVar11 = (ushort **)__gmp_tmp_reentrant_alloc();
      }
      local_48 = (ushort **)(((uint)local_54 ^ (int)local_54 >> 0x1f) - ((int)local_54 >> 0x1f));
      *local_50 = param_3;
      uVar16 = 0x1f;
      if (local_48 != (ushort **)0x0) {
        for (; (uint)local_48 >> uVar16 == 0; uVar16 = uVar16 - 1) {
        }
      }
      uVar16 = 0x1e - (uVar16 ^ 0x1f);
      if (uVar16 == 0xffffffff) {
        iVar13 = 0;
        local_30 = (undefined *)0x0;
        puVar6 = (undefined *)0x1;
        local_4c = local_44[-0x9b];
        ppuVar10 = local_50;
      }
      else {
        local_34 = local_50;
        puVar6 = (undefined *)0x1;
        iVar7 = 0;
        local_30 = (undefined *)0x0;
        local_4c = local_44[-0x9b];
        while( true ) {
          ppuVar10 = local_34;
          local_38 = ppuVar11;
          *(undefined **)((int)ppbVar15 + -8) = puVar6;
          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar10 + iVar7;
          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;
          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d69f;
          __gmpn_sqr();
          local_30 = (undefined *)((int)local_30 * 2);
          puVar6 = (undefined *)
                   ((int)puVar6 * 2 - (uint)(local_38[(int)puVar6 * 2 + -1] == (ushort *)0x0));
          if ((int)local_3c < (int)puVar6) {
            iVar7 = (int)puVar6 - (int)local_3c;
            local_30 = local_30 + iVar7;
            iVar13 = iVar7 * 4;
            puVar6 = local_3c;
          }
          else {
            iVar13 = 0;
            iVar7 = 0;
          }
          if (((uint)local_48 >> (uVar16 & 0x1f) & 1) != 0) {
            *(ushort **)((int)ppbVar15 + -4) = param_3;
            puVar17 = local_4c;
            *(undefined **)((int)ppbVar15 + -8) = puVar6;
            *(int *)((int)ppbVar15 + -0xc) = iVar13 + (int)local_38;
            *(ushort ***)((int)ppbVar15 + -0x10) = local_38;
            pcVar2 = *(code **)(puVar17 + 100);
            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d65b;
            puVar8 = (ushort *)(*pcVar2)();
            local_38[(int)puVar6] = puVar8;
            iVar13 = 0;
            puVar6 = puVar6 + (puVar8 != (ushort *)0x0);
            iVar7 = 0;
          }
          ppuVar11 = local_34;
          uVar16 = uVar16 - 1;
          ppuVar10 = local_38;
          if (uVar16 == 0xffffffff) break;
          local_34 = local_38;
        }
      }
      puVar17 = local_4c;
      if ((int)local_3c < (int)puVar6) {
        local_30 = local_30 + ((int)puVar6 - (int)local_3c);
        ppuVar10 = ppuVar10 + ((int)puVar6 - (int)local_3c);
        puVar6 = local_3c;
      }
      *(undefined **)((int)ppbVar15 + -8) = puVar6;
      *(int *)((int)ppbVar15 + -0xc) = (int)ppuVar10 + iVar13;
      *(ushort ***)((int)ppbVar15 + -0x10) = local_50;
      pcVar2 = *(code **)(puVar17 + 0x28);
      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d87c;
      (*pcVar2)();
      if ((int)local_54 < 0) {
        if ((int)local_58 < (int)puVar6) {
          uVar16 = (int)puVar6 * 4 + 4;
          if (uVar16 < 0x7f01) {
            iVar13 = -((int)puVar6 * 4 + 0x1fU & 0xfffffff0);
            local_34 = (ushort **)((uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0);
            ppbVar15 = (byte **)((int)ppbVar15 + iVar13);
          }
          else {
            *(uint *)((int)ppbVar15 + -0xc) = uVar16;
            *(int **)((int)ppbVar15 + -0x10) = &local_24;
            *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dbbc;
            local_34 = (ushort **)__gmp_tmp_reentrant_alloc();
          }
          ppuVar10 = (ushort **)(puVar6 + -(int)local_58);
          local_38 = ppuVar10;
          *(int *)((int)ppbVar15 + -8) = (int)ppuVar10 * 4;
          *(undefined4 *)((int)ppbVar15 + -0xc) = 0;
          *(ushort ***)((int)ppbVar15 + -0x10) = local_34;
          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9a1;
          memset(*(void **)((int)ppbVar15 + -0x10),*(int *)((int)ppbVar15 + -0xc),
                 *(size_t *)((int)ppbVar15 + -8));
          ppuVar11 = local_34;
          puVar17 = local_4c;
          *(undefined **)((int)ppbVar15 + -8) = local_58;
          *(ushort ***)((int)ppbVar15 + -0xc) = local_40;
          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11 + (int)ppuVar10;
          pcVar2 = *(code **)(puVar17 + 0x28);
          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9b6;
          (*pcVar2)();
          local_5c = (ushort **)((int)local_5c - (int)local_38);
          local_40 = local_34;
          local_58 = puVar6;
        }
        ppuVar11 = local_50;
        puVar8 = local_50[(int)(puVar6 + -1)];
        if (-1 < (int)puVar8) {
          uVar16 = 0x1f;
          if (puVar8 != (ushort *)0x0) {
            for (; (uint)puVar8 >> uVar16 == 0; uVar16 = uVar16 - 1) {
            }
          }
          *(uint *)((int)ppbVar15 + -4) = uVar16 ^ 0x1f;
          *(undefined **)((int)ppbVar15 + -8) = puVar6;
          *(ushort ***)((int)ppbVar15 + -0xc) = ppuVar11;
          *(ushort ***)((int)ppbVar15 + -0x10) = ppuVar11;
          pcVar2 = *(code **)(local_4c + 0x38);
          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d9e3;
          (*pcVar2)();
          ppuVar11 = local_40;
          puVar9 = local_4c;
          *(uint *)((int)ppbVar15 + -0x14) = uVar16 ^ 0x1f;
          puVar17 = local_58;
          *(undefined **)((int)ppbVar15 + -0x18) = local_58;
          *(ushort ***)((int)ppbVar15 + -0x1c) = ppuVar11;
          *(ushort ***)((int)ppbVar15 + -0x20) = ppuVar11;
          pcVar2 = *(code **)(puVar9 + 0x38);
          *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d9f3;
          puVar8 = (ushort *)(*pcVar2)();
          if (puVar8 != (ushort *)0x0) {
            ppuVar11[(int)puVar17] = puVar8;
            local_58 = puVar17 + 1;
          }
        }
        local_34 = (ushort **)((int)local_68 * 4);
        if (local_34 < (ushort **)0x7f01) {
          iVar13 = -((int)local_34 + 0x1bU & 0xfffffff0);
          uVar16 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;
          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);
        }
        else {
          *(ushort ***)((int)ppbVar15 + -0xc) = local_34;
          *(int **)((int)ppbVar15 + -0x10) = &local_24;
          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1dba2;
          uVar16 = __gmp_tmp_reentrant_alloc();
        }
        puVar17 = local_58;
        *(undefined **)((int)ppbVar15 + -0xc) = puVar6;
        *(ushort ***)((int)ppbVar15 + -0x10) = local_50;
        *(undefined **)((int)ppbVar15 + -0x14) = puVar17;
        puVar9 = local_3c;
        ppuVar11 = (ushort **)(puVar17 + -(int)puVar6);
        *(ushort ***)((int)ppbVar15 + -0x18) = local_40;
        local_38 = ppuVar11;
        *(int *)((int)ppbVar15 + -0x1c) = (int)puVar9 - (int)ppuVar11;
        *(uint *)((int)ppbVar15 + -0x20) = uVar16;
        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1da4a;
        iVar13 = __gmpn_divrem();
        puVar6 = (undefined *)((int)local_38 + (int)local_5c + (iVar13 - (int)local_30));
        uVar12 = uVar16;
        puVar17 = local_3c;
        if (iVar13 != 0) {
          uVar12 = uVar16 + 4;
          *(int *)((uVar16 - 4) + (int)local_34) = iVar13;
        }
      }
      else {
        local_34 = (ushort **)(local_58 + (int)puVar6);
        local_38 = (ushort **)((int)local_34 * 4);
        if (local_38 < (ushort **)0x7f01) {
          iVar13 = -((uint)((int)local_38 + 0x1bU) & 0xfffffff0);
          uVar12 = (uint)((int)ppbVar15 + iVar13 + 0xf) & 0xfffffff0;
          ppbVar15 = (byte **)((int)ppbVar15 + iVar13);
        }
        else {
          *(ushort ***)((int)ppbVar15 + -0xc) = local_38;
          *(int **)((int)ppbVar15 + -0x10) = &local_24;
          *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1db83;
          uVar12 = __gmp_tmp_reentrant_alloc();
        }
        if ((int)local_58 < (int)puVar6) {
          *(undefined **)((int)ppbVar15 + -0x10) = local_58;
          *(ushort ***)((int)ppbVar15 + -0x14) = local_40;
          *(undefined **)((int)ppbVar15 + -0x18) = puVar6;
          *(ushort ***)((int)ppbVar15 + -0x1c) = local_50;
        }
        else {
          *(undefined **)((int)ppbVar15 + -0x10) = puVar6;
          *(ushort ***)((int)ppbVar15 + -0x14) = local_50;
          *(undefined **)((int)ppbVar15 + -0x18) = local_58;
          *(ushort ***)((int)ppbVar15 + -0x1c) = local_40;
        }
        *(uint *)((int)ppbVar15 + -0x20) = uVar12;
        *(undefined4 *)((int)ppbVar15 + -0x24) = 0x1d8d6;
        __gmpn_mul();
        puVar17 = (undefined *)((int)local_34 - (uint)(*(int *)((uVar12 - 4) + (int)local_38) == 0))
        ;
        puVar6 = (undefined *)((int)local_5c + (int)(local_30 + (int)puVar17));
        if ((int)local_3c < (int)puVar17) {
          uVar12 = uVar12 + ((int)puVar17 - (int)local_3c) * 4;
          puVar17 = local_3c;
        }
      }
      local_3c = puVar17;
      puVar9 = local_3c;
      puVar3 = local_60;
      *(undefined **)((int)ppbVar15 + -8) = local_3c;
      *(uint *)((int)ppbVar15 + -0xc) = uVar12;
      puVar17 = local_4c;
      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];
      pcVar2 = *(code **)(puVar17 + 0x28);
      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d91c;
      (*pcVar2)();
      puVar17 = (undefined *)-(int)puVar9;
      if (local_64 == 0) {
        puVar17 = puVar9;
      }
      local_60[2] = (uint)puVar6;
      local_60[1] = (uint)puVar17;
      if (local_24 == 0) {
        puVar6 = (undefined *)0x0;
        goto LAB_0001d775;
      }
    }
    else {
      local_5c = (ushort **)0x0;
      local_58 = puVar6;
      if (local_6c != (byte *)0x0) goto LAB_0001d4fd;
LAB_0001d7f2:
      local_54 = (undefined *)0x0;
      if (local_50 != (ushort **)0x0) goto LAB_0001d589;
LAB_0001d804:
      puVar17 = local_58;
      local_30 = puVar6;
      *(undefined **)((int)ppbVar15 + -8) = local_58;
      puVar6 = ppuVar4[-0x9b];
      *(ushort ***)((int)ppbVar15 + -0xc) = local_40;
      *(uint *)((int)ppbVar15 + -0x10) = puVar3[3];
      pcVar2 = *(code **)(puVar6 + 0x28);
      *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d823;
      (*pcVar2)();
      puVar6 = (undefined *)-(int)puVar17;
      if (local_64 == 0) {
        puVar6 = puVar17;
      }
      puVar3[2] = (uint)local_30;
      puVar3[1] = (uint)puVar6;
      if (local_24 == 0) goto LAB_0001d7d0;
    }
    *(int *)((int)ppbVar15 + -0x10) = local_24;
    *(undefined4 *)((int)ppbVar15 + -0x14) = 0x1d84e;
    __gmp_tmp_reentrant_free();
    puVar6 = (undefined *)0x0;
  }
LAB_0001d775:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return puVar6;
  }
                    /* WARNING: Subroutine does not return */
  *(undefined4 *)((int)ppbVar15 + -4) = 0x1dbcb;
  FUN_0007ebe0();
}

